diff --git a/addon_meterstoha/build.yaml b/addon_meterstoha/build.yaml index d92637f..e3cc2a4 100644 --- a/addon_meterstoha/build.yaml +++ b/addon_meterstoha/build.yaml @@ -1,10 +1,10 @@ --- build_from: - aarch64: ghcr.io/hassio-addons/base:18.1.1 - amd64: ghcr.io/hassio-addons/base:18.1.1 - # armhf: ghcr.io/hassio-addons/base:18.1.1 - armv7: ghcr.io/hassio-addons/base:18.1.1 - # i386: ghcr.io/hassio-addons/base:18.1.1 + aarch64: ghcr.io/hassio-addons/base:20.1.1 + amd64: ghcr.io/hassio-addons/base:20.1.1 + # armhf: ghcr.io/hassio-addons/base:20.1.1 + armv7: ghcr.io/hassio-addons/base:20.1.1 + # i386: ghcr.io/hassio-addons/base:20.1.1 # codenotary: # base_image: dummy@dummy.com # signer: dummy@dummy.com diff --git a/addon_meterstoha/config.yaml b/addon_meterstoha/config.yaml index 0838699..7611f96 100644 --- a/addon_meterstoha/config.yaml +++ b/addon_meterstoha/config.yaml @@ -1,6 +1,6 @@ --- name: MetersToHA -version: "v2025.9.3" +version: "v2026.5.3" slug: meterstoha description: MetersToHA add-on for Home Assistant url: https://github.com/mdeweerd/meterstoha diff --git a/apps/meters_to_ha/meters_to_ha.py b/apps/meters_to_ha/meters_to_ha.py index b5aaf33..438cbad 100755 --- a/apps/meters_to_ha/meters_to_ha.py +++ b/apps/meters_to_ha/meters_to_ha.py @@ -3515,6 +3515,41 @@ def update_grdf_device(self, json_file): update_state_file( self.configuration[STATE_FILE], {"grdf": entity_data} ) + + # Preserve gas_daily_kwh sensor on reboot or no new data (issue #3) + # Try to get the last known value from HA + for daily_sensor in ( + sensor_name_daily_pce_kwh, + sensor_name_daily_generic_kwh, + ): + try: + response = self.open_url( + HA_API_SENSOR_FORMAT % (daily_sensor,) + ) + if isinstance(response, dict) and "state" in response: + # Preserve the last known value + last_daily_kwh = response["state"] + last_attributes = response.get("attributes", {}) + + # Update the sensor to preserve its value + preserve_data = { + "state": last_daily_kwh, + "attributes": { + **last_attributes, + "last_check": now_isostr, + }, + } + r = self.open_url( + HA_API_SENSOR_FORMAT % (daily_sensor,), + preserve_data, + ) + self.mylog( + f"Preserved {daily_sensor}: {last_daily_kwh}" + ) + break + except RuntimeError: + # Sensor doesn't exist yet or is unavailable + pass else: self.mylog( f" update value is {date_time.isoformat()}:"