From 113ccae7bf2c54dbad17a993ac97a0ddc2a2a573 Mon Sep 17 00:00:00 2001 From: Tijs Verkoyen Date: Thu, 3 Nov 2022 17:00:57 +0100 Subject: [PATCH] Use multiplier for the value --- .../energy_id/meter_reading_sensor.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/custom_components/energy_id/meter_reading_sensor.py b/custom_components/energy_id/meter_reading_sensor.py index 43d78ec..0689bdc 100644 --- a/custom_components/energy_id/meter_reading_sensor.py +++ b/custom_components/energy_id/meter_reading_sensor.py @@ -31,6 +31,7 @@ def __init__( self._record = record self._attribute = attribute self._state = None + self._value = None @property def name(self): @@ -135,13 +136,23 @@ def unit_of_measurement(self) -> str: return None + @property + def native_value(self) -> float: + return self._value + @property def state_class(self) -> str: return STATE_CLASS_TOTAL_INCREASING @property def state(self) -> float: - return self._state + if self._value is None: + return None + + if self._meter.multiplier is None: + return self._value + + return self._value * self._meter.multiplier @callback def _handle_coordinator_update(self) -> None: @@ -150,5 +161,5 @@ def _handle_coordinator_update(self) -> None: _LOGGER.debug(f'Updating meter {self._meter.id} reading {self._attribute} to {reading}') if reading is not None and reading[RESPONSE_ATTRIBUTE_IGNORE] is False: - self._state = reading[RESPONSE_ATTRIBUTE_VALUE] + self._value = reading[RESPONSE_ATTRIBUTE_VALUE] self.async_write_ha_state()