diff --git a/main.py b/main.py index a8f8532..919947c 100644 --- a/main.py +++ b/main.py @@ -33,6 +33,7 @@ solar_client = InfluxDBClient('localhost', 8086, database='solar2') PORT = 6903 if PROD else 6904 def controller_message(message): + logging.info('Sending controller message: %s', message) payload = dict(home=message) r = requests.post('https://tbot.tannercollin.com/message', data=payload, timeout=10) if r.status_code == 200: @@ -106,7 +107,13 @@ class Sensor(): return data = self.value.copy() - self.transform(data) + + try: + self.transform(data) + except BaseException as e: + logging.exception('Problem transforming sensor data: {} - {}'.format(e.__class__.__name__, str(e))) + logging.error('Data: %s', str(data)) + return for key in self.bad_keys: data.pop(key, None) @@ -273,9 +280,11 @@ class AcuRite6002RM(Sensor): def transform(self, data): if data.get('battery_ok', None) != 1: logging.error('%s battery not ok!', self) + data['temperature_C'] = float(data['temperature_C']) + self.temp_offset data['humidity'] = float(data['humidity']) + self.hum_offset + class QotMotionSensor(Sensor): type_ = 'qotmotion' update_period = False @@ -509,7 +518,7 @@ if __name__ == '__main__': sensors.add(Acurite606TX('185', 'Outside', 0.0)) sensors.add(AcuRite6002RM('999999', 'Seeds', 0.0)) # A sensors.add(AcuRite6002RM('999998', 'Misc', 0.7, -1.0)) # A - sensors.add(AcuRite6002RM('5613', 'Basement', 0.7, -1.0)) # A + sensors.add(AcuRite6002RM('12516', 'Basement', 0.7, -1.0)) # A sensors.add(AcuRite6002RM('5109', 'Nook', 0.2, -1.0)) # B sensors.add(AcuRite6002RM('11087', 'Bedroom', -0.7, 1.0)) # C sensors.add(SleepSensor('sleep1', 'Bedroom'))