Catch bad OwnTrack data, add WH51 soil sensor
This commit is contained in:
@@ -269,6 +269,15 @@ class SoilSensor(Sensor):
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
class WH51SoilSensor(Sensor):
|
||||
type_ = 'soil'
|
||||
bad_keys = [
|
||||
'model',
|
||||
'mic',
|
||||
'battery_ok',
|
||||
]
|
||||
update_period = 60*30
|
||||
|
||||
class P2ProScaleSensor(Sensor):
|
||||
type_ = 'scale'
|
||||
skip_cooldown = 60.0 * 60 * 18 # 18 hours
|
||||
@@ -399,6 +408,7 @@ async def fetch_mqtt():
|
||||
|
||||
|
||||
async def owntracks(request):
|
||||
try:
|
||||
data = await request.json()
|
||||
logging.debug('Web data: %s', str(data))
|
||||
|
||||
@@ -411,7 +421,14 @@ async def owntracks(request):
|
||||
else:
|
||||
logging.info('Not a location, skipping.')
|
||||
|
||||
return web.Response()
|
||||
return web.json_response({'status': 'ok'}, status=200)
|
||||
except BaseException as e:
|
||||
logging.exception('Problem with OwnTracks data: {} - {}'.format(e.__class__.__name__, str(e)))
|
||||
try:
|
||||
logging.info('Data: %s', str(data))
|
||||
except:
|
||||
pass
|
||||
return web.json_response({'error': str(e)}, status=500)
|
||||
|
||||
|
||||
def share_sha256(measurement, share_start, share_end, api_key):
|
||||
@@ -691,7 +708,7 @@ if __name__ == '__main__':
|
||||
sensors.add(AirSensor('air1', 'Laundry Room'))
|
||||
sensors.add(AirSensor('air2', 'Bedroom'))
|
||||
sensors.add(AirSensor('air3', 'Kitchen'))
|
||||
sensors.add(Acurite606TX('185', 'Outside', 0.0))
|
||||
sensors.add(Acurite606TX('252', 'Outside', 0.0))
|
||||
sensors.add(AcuRite6002RM('999999', 'Seeds', 0.0)) # A
|
||||
sensors.add(AcuRite6002RM('999998', 'Misc', 0.7, -1.0)) # A
|
||||
sensors.add(AcuRite6002RM('12516', 'Basement', 0.7, -1.0)) # A
|
||||
@@ -702,6 +719,7 @@ if __name__ == '__main__':
|
||||
sensors.add(SoilSensor('soil1', 'Dumb Cane'))
|
||||
sensors.add(SoilSensor('soil2', 'Kitchen Pothos'))
|
||||
sensors.add(SoilSensor('soil3', 'Dracaena'))
|
||||
sensors.add(WH51SoilSensor('0fafff', 'Side Garden'))
|
||||
sensors.add(P2ProScaleSensor('scale1', 'Master Bathroom'))
|
||||
|
||||
sensors.add(QotMotionSensor('qot_dc3c', 'Bedroom'))
|
||||
|
||||
Reference in New Issue
Block a user