Expose battery maintenance status (e.g. replace_now) as a sensor

Some battery devices report a full battery level while still signalling that
the battery must be replaced (the customer's log shows devices at lvl 100 with
state "replace_now"). That maintenance state was not surfaced anywhere.

When the battery service supports the replace_* events (per its `sup_events`
property), expose the hub-reported `state` attribute as a diagnostic
"Battery status" sensor.
This commit is contained in:
Adrian Jagielak
2026-07-01 23:38:08 +02:00
parent 93a036c4f7
commit b892e20920
3 changed files with 25 additions and 1 deletions

View File

@@ -1,5 +1,9 @@
<!-- https://developers.home-assistant.io/docs/add-ons/presentation#keeping-a-changelog --> <!-- https://developers.home-assistant.io/docs/add-ons/presentation#keeping-a-changelog -->
## 1.8.0 (01.07.2026)
- Expose the battery maintenance status (e.g. `replace_now`) as a diagnostic "Battery status" sensor for devices that support the `replace_*` battery events. Previously this was not surfaced at all, so a device could report a full battery level while actually needing its battery replaced.
## 1.7.0 (01.07.2026) ## 1.7.0 (01.07.2026)
- Added support for the Futurehome house mode (Home/Away/Sleep/Vacation). The current mode is exposed as a `Mode` selector on the Smarthub device, updates in real time (e.g. when a Futurehome Modeswitch button is pressed), and can be changed from Home Assistant. - Added support for the Futurehome house mode (Home/Away/Sleep/Vacation). The current mode is exposed as a `Mode` selector on the Smarthub device, updates in real time (e.g. when a Futurehome Modeswitch button is pressed), and can be changed from Home Assistant.

View File

@@ -1,6 +1,6 @@
# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-config # https://developers.home-assistant.io/docs/add-ons/configuration#add-on-config
name: Futurehome name: Futurehome
version: '1.7.0' version: '1.8.0'
slug: futurehome slug: futurehome
description: Local Futurehome Smarthub integration description: Local Futurehome Smarthub integration
url: 'https://github.com/adrianjagielak/home-assistant-futurehome' url: 'https://github.com/adrianjagielak/home-assistant-futurehome'

View File

@@ -32,6 +32,26 @@ export function battery__components(
}; };
} }
// Battery maintenance status (e.g. "replace_now"). A device can report a full
// battery level while still asking to be replaced, so when it supports the
// replace_* events this is surfaced as its own diagnostic sensor. The hub
// reports the current state as a plain string in the `state` attribute.
const supEvents: string[] = svc.props?.sup_events ?? [];
if (
supEvents.some(
(event) => typeof event === 'string' && event.startsWith('replace'),
)
) {
components[`${svc.addr}_state`] = {
unique_id: `${svc.addr}_state`,
platform: 'sensor',
entity_category: 'diagnostic',
icon: 'mdi:battery-heart-variant',
name: 'Battery status',
value_template: `{{ value_json['${svc.addr}'].state | default('ok', true) }}`,
};
}
return { return {
components: components, components: components,
}; };