add sensor filters

This commit is contained in:
Викторов Андрей Германович
2021-10-28 15:02:11 +03:00
parent bc34c1a0b3
commit d4dddc61fd

View File

@@ -228,6 +228,7 @@ class Mega1WSensor(FilterBadValues):
self._device_class = device_class self._device_class = device_class
self._unit_of_measurement = unit_of_measurement self._unit_of_measurement = unit_of_measurement
self.mega.sensors.append(self) self.mega.sensors.append(self)
self.prev_value = None
@property @property
def unit_of_measurement(self): def unit_of_measurement(self):
@@ -281,7 +282,8 @@ class Mega1WSensor(FilterBadValues):
ret = float(ret) ret = float(ret)
ret = str(ret) ret = str(ret)
except: except:
ret = None self.lg.warning(f'could not convert to float "{ret}"')
ret = self.prev_value
if self.customize.get(CONF_HEX_TO_FLOAT): if self.customize.get(CONF_HEX_TO_FLOAT):
try: try:
ret = struct.unpack('!f', bytes.fromhex(ret))[0] ret = struct.unpack('!f', bytes.fromhex(ret))[0]
@@ -296,6 +298,7 @@ class Mega1WSensor(FilterBadValues):
except: except:
pass pass
ret = self.filter_value(ret) ret = self.filter_value(ret)
self.prev_value = ret
return str(ret) return str(ret)
@property @property