Batterie-Ladestandsanzeige als Widget
Verfasst: 15. Jul 2025 10:58
Ich hab mir ein kleines Widget gebastelt mit dem man sich den Ladestand (prozentual) der Batterien anzeigen lassen kann.
Es werden alle Batterien überwacht, die den Tag "LowBattery" (Property) haben. Man muss also nicht eine bestimmte Gruppe angeben. Die Selektionsgrenze(n) ist(sind) skalierbar.
Der Yaml-Code:
Vielleicht gefällt's dem ein oder anderen.
Es werden alle Batterien überwacht, die den Tag "LowBattery" (Property) haben. Man muss also nicht eine bestimmte Gruppe angeben. Die Selektionsgrenze(n) ist(sind) skalierbar.
Der Yaml-Code:
Code: Alles auswählen
uid: battery_charging_status
tags:
- peter
- rich
- rlk_battery_status - derivation
- null
props:
parameters:
- default: "55"
description: Maximum percentage to show in the widget
label: Max Percent
name: max
required: false
type: INTEGER
min: 0
max: 100
- default: "50"
description: The percentage above which green is used
label: Green Level
name: green
required: false
type: INTEGER
min: 0
max: 100
- default: "39"
description: The percentage above which orange is used
label: Orange Level
name: orange
required: false
type: INTEGER
min: 0
max: 100
- default: Battery Charging Status /Ladezustand
description: Title used for the widget to the left of the colon.
label: Title
name: title
required: false
type: TEXT
parameterGroups: []
timestamp: Jul 15, 2025, 9:28:03 AM
component: oh-list-card
config:
title: =props.title
style:
background: linear-gradient(to bottom left,#FA8072 30%,#00FFFF 60%)
border-radius: var(--f7-card-expandable-border-radius)
slots:
default:
- component: oh-repeater
config:
filter: Number.parseFloat(items[loop.item.name].state) <= props.max
for: item
fragment: true
itemTags: LowBattery
sourceType: itemsWithTags
slots:
default:
- component: oh-list-item
config:
badge: "=(items[loop.item.name].displayState === undefined) ? loop.item.state :
items[loop.item.name].displayState"
badgeColor: '=(Number.parseFloat(loop.item.state) > props.green) ? "green" :
(Number.parseFloat(loop.item.state) > props.orange) ? "orange" :
"red"'
icon: '=(Number.parseFloat(loop.item.state) > props.green) ? "f7:battery_100" :
(Number.parseFloat(loop.item.state) > props.orange) ?
"f7:battery_25" : "f7:battery_0"'
iconColor: '=(Number.parseFloat(loop.item.state) > props.green) ? "green" :
(Number.parseFloat(loop.item.state) > props.orange) ? "orange" :
"red"'
item: =loop.item.name
title: =loop.item.label