diff --git a/solaredge_modbus_mqtt/__init__.py b/solaredge_modbus_mqtt/__init__.py index baadf19..19750e4 100644 --- a/solaredge_modbus_mqtt/__init__.py +++ b/solaredge_modbus_mqtt/__init__.py @@ -469,7 +469,8 @@ class SolarData: value = value * math.pow(10, scale) if 'bit' in config: - value = bool(value & config['bit']) + # integer, not boolean: Grafana's InfluxQL time series drops booleans + value = int(bool(value & config['bit'])) if 'map' in config: value = config['map'][value] if 0 <= value < len(config['map']) else 'Unknown ({0})'.format(value) diff --git a/solaredge_modbus_mqtt/test_SolarData.py b/solaredge_modbus_mqtt/test_SolarData.py index aa6be67..3201fb5 100644 --- a/solaredge_modbus_mqtt/test_SolarData.py +++ b/solaredge_modbus_mqtt/test_SolarData.py @@ -138,8 +138,8 @@ class TestSolarData(unittest.TestCase): self.assertIs(False, inverter._decode_value(decoder, 1, registerDataType.INT16, int)) def testOffgrid(self): - self.assertIs(False, SolarData(probe_data()).data['offgrid']) - self.assertIs(True, SolarData(probe_data(event_1_vendor=5)).data['offgrid']) + self.assertEqual(0, SolarData(probe_data()).data['offgrid']) + self.assertEqual(1, SolarData(probe_data(event_1_vendor=5)).data['offgrid']) def testMeter(self): solarData = SolarData(probe_data()) @@ -229,7 +229,7 @@ class TestSolarData(unittest.TestCase): self.assertTrue(line.startswith('solaredge,model=SE10K-RWB48BFN4,serialnumber=7E1FF4D1 ')) self.assertIn(',status=4i', line) - self.assertIn(',offgrid=f', line) + self.assertIn(',offgrid=0i', line) self.assertIn(',power_ac=597.0', line) self.assertIn(',meter1_power=939.4', line) self.assertIn(',battery1_soe=100.0', line)