Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.
Moderatoren: Cyrelian , seppy
peter-pan
Beiträge: 2773 Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd
Beitrag
von peter-pan » 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.
lowbatt.jpg
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
Vielleicht gefällt's dem ein oder anderen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5
openhabian
peter-pan
Beiträge: 2773 Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd
Beitrag
von peter-pan » Gestern 20:50
Mit Hilfe von JustinG aus dem internationalen Forum, konnte das Widget noch etwas modifiziert werden.
Die Werte, werden nun in aufsteigender Reihenfolge ausgegeben.
battery.jpg
Der Yaml-Code:
Code: Alles auswählen
uid: battery_charging_status
tags:
- peter
- rich
- JustinG - Sort_Function
- rlk_battery_status - derivation
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 18, 2025, 8:41:31 PM
component: oh-list-card
config:
style:
background: linear-gradient(to bottom left,#FA8072 30%,#00FFFF 60%)
border-radius: var(--f7-card-expandable-border-radius)
title: =props.title
slots:
default:
- component: oh-repeater
config:
filter: Number.parseFloat(items[loop.item.name].state) <= props.max
for: item
fragment: true
itemTags: LowBattery
sourceType: itemsWithTags
map: loop.item_source.sort((x,y)
=>(x.state).localeCompare(y.state))[loop.item_idx]
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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5
openhabian