mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-21 08:16:36 +00:00
Support binary sensor batteries (#8367)
This commit is contained in:
parent
781c0701fc
commit
f5fb6c1e03
@ -8,12 +8,19 @@ export const batteryIcon = (
|
|||||||
const battery = Number(batteryState.state);
|
const battery = Number(batteryState.state);
|
||||||
const battery_charging =
|
const battery_charging =
|
||||||
batteryChargingState && batteryChargingState.state === "on";
|
batteryChargingState && batteryChargingState.state === "on";
|
||||||
|
let icon = "hass:battery";
|
||||||
|
|
||||||
if (isNaN(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;
|
const batteryRound = Math.round(battery / 10) * 10;
|
||||||
if (battery_charging && battery > 10) {
|
if (battery_charging && battery > 10) {
|
||||||
icon += `-charging-${batteryRound}`;
|
icon += `-charging-${batteryRound}`;
|
||||||
|
@ -12,6 +12,7 @@ import {
|
|||||||
import { ifDefined } from "lit-html/directives/if-defined";
|
import { ifDefined } from "lit-html/directives/if-defined";
|
||||||
import memoizeOne from "memoize-one";
|
import memoizeOne from "memoize-one";
|
||||||
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
|
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 { computeStateName } from "../../../common/entity/compute_state_name";
|
||||||
import { compare } from "../../../common/string/compare";
|
import { compare } from "../../../common/string/compare";
|
||||||
import { slugify } from "../../../common/string/slugify";
|
import { slugify } from "../../../common/string/slugify";
|
||||||
@ -160,6 +161,8 @@ export class HaConfigDevicePage extends LitElement {
|
|||||||
const batteryState = batteryEntity
|
const batteryState = batteryEntity
|
||||||
? this.hass.states[batteryEntity.entity_id]
|
? this.hass.states[batteryEntity.entity_id]
|
||||||
: undefined;
|
: undefined;
|
||||||
|
const batteryIsBinary = batteryState
|
||||||
|
&& computeStateDomain(batteryState) === "binary_sensor";
|
||||||
const batteryChargingState = batteryChargingEntity
|
const batteryChargingState = batteryChargingEntity
|
||||||
? this.hass.states[batteryChargingEntity.entity_id]
|
? this.hass.states[batteryChargingEntity.entity_id]
|
||||||
: undefined;
|
: undefined;
|
||||||
@ -215,7 +218,7 @@ export class HaConfigDevicePage extends LitElement {
|
|||||||
batteryState
|
batteryState
|
||||||
? html`
|
? html`
|
||||||
<div class="battery">
|
<div class="battery">
|
||||||
${batteryState.state}%
|
${batteryIsBinary ? "" : batteryState.state + "%"}
|
||||||
<ha-battery-icon
|
<ha-battery-icon
|
||||||
.hass=${this.hass!}
|
.hass=${this.hass!}
|
||||||
.batteryStateObj=${batteryState}
|
.batteryStateObj=${batteryState}
|
||||||
|
@ -15,6 +15,7 @@ import {
|
|||||||
import { classMap } from "lit-html/directives/class-map";
|
import { classMap } from "lit-html/directives/class-map";
|
||||||
import memoizeOne from "memoize-one";
|
import memoizeOne from "memoize-one";
|
||||||
import { HASSDomEvent } from "../../../common/dom/fire_event";
|
import { HASSDomEvent } from "../../../common/dom/fire_event";
|
||||||
|
import { computeStateDomain } from "../../../common/entity/compute_state_domain";
|
||||||
import { navigate } from "../../../common/navigate";
|
import { navigate } from "../../../common/navigate";
|
||||||
import { LocalizeFunc } from "../../../common/translations/localize";
|
import { LocalizeFunc } from "../../../common/translations/localize";
|
||||||
import { computeRTL } from "../../../common/util/compute_rtl";
|
import { computeRTL } from "../../../common/util/compute_rtl";
|
||||||
@ -293,9 +294,11 @@ export class HaConfigDeviceDashboard extends LitElement {
|
|||||||
batteryEntityPair && batteryEntityPair[1]
|
batteryEntityPair && batteryEntityPair[1]
|
||||||
? this.hass.states[batteryEntityPair[1]]
|
? this.hass.states[batteryEntityPair[1]]
|
||||||
: undefined;
|
: undefined;
|
||||||
return battery && !isNaN(battery.state as any)
|
const batteryIsBinary =
|
||||||
|
battery && computeStateDomain(battery) === "binary_sensor";
|
||||||
|
return battery && (batteryIsBinary || !isNaN(battery.state as any))
|
||||||
? html`
|
? html`
|
||||||
${battery.state}%
|
${batteryIsBinary ? "" : battery.state + "%"}
|
||||||
<ha-battery-icon
|
<ha-battery-icon
|
||||||
.hass=${this.hass!}
|
.hass=${this.hass!}
|
||||||
.batteryStateObj=${battery}
|
.batteryStateObj=${battery}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user