From f5fb6c1e03be9c2abb02f18f7598db21926f319e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Wed, 24 Feb 2021 17:00:07 +0100 Subject: [PATCH] Support binary sensor batteries (#8367) --- src/common/entity/battery_icon.ts | 11 +++++++++-- src/panels/config/devices/ha-config-device-page.ts | 5 ++++- .../config/devices/ha-config-devices-dashboard.ts | 7 +++++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/common/entity/battery_icon.ts b/src/common/entity/battery_icon.ts index 61539c6c43..f4b1784232 100644 --- a/src/common/entity/battery_icon.ts +++ b/src/common/entity/battery_icon.ts @@ -8,12 +8,19 @@ export const batteryIcon = ( const battery = Number(batteryState.state); const battery_charging = batteryChargingState && batteryChargingState.state === "on"; + let icon = "hass:battery"; if (isNaN(battery)) { - return "hass:battery-unknown"; + if (batteryState.state === "off") { + icon += "-full"; + } else if (batteryState.state === "on") { + icon += "-alert"; + } else { + icon += "-unknown"; + } + return icon; } - let icon = "hass:battery"; const batteryRound = Math.round(battery / 10) * 10; if (battery_charging && battery > 10) { icon += `-charging-${batteryRound}`; diff --git a/src/panels/config/devices/ha-config-device-page.ts b/src/panels/config/devices/ha-config-device-page.ts index 9aef24e530..7cd2ba9eba 100644 --- a/src/panels/config/devices/ha-config-device-page.ts +++ b/src/panels/config/devices/ha-config-device-page.ts @@ -12,6 +12,7 @@ import { import { ifDefined } from "lit-html/directives/if-defined"; import memoizeOne from "memoize-one"; import { isComponentLoaded } from "../../../common/config/is_component_loaded"; +import { computeStateDomain } from "../../../common/entity/compute_state_domain"; import { computeStateName } from "../../../common/entity/compute_state_name"; import { compare } from "../../../common/string/compare"; import { slugify } from "../../../common/string/slugify"; @@ -160,6 +161,8 @@ export class HaConfigDevicePage extends LitElement { const batteryState = batteryEntity ? this.hass.states[batteryEntity.entity_id] : undefined; + const batteryIsBinary = batteryState + && computeStateDomain(batteryState) === "binary_sensor"; const batteryChargingState = batteryChargingEntity ? this.hass.states[batteryChargingEntity.entity_id] : undefined; @@ -215,7 +218,7 @@ export class HaConfigDevicePage extends LitElement { batteryState ? html`
- ${batteryState.state}% + ${batteryIsBinary ? "" : batteryState.state + "%"}