mirror of
https://github.com/adrianjagielak/home-assistant-futurehome.git
synced 2026-07-07 13:23:03 +00:00
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:
@@ -1,5 +1,9 @@
|
||||
<!-- 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)
|
||||
|
||||
- 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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-config
|
||||
name: Futurehome
|
||||
version: '1.7.0'
|
||||
version: '1.8.0'
|
||||
slug: futurehome
|
||||
description: Local Futurehome Smarthub integration
|
||||
url: 'https://github.com/adrianjagielak/home-assistant-futurehome'
|
||||
|
||||
@@ -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 {
|
||||
components: components,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user