Datenübergabe in OpenHAB
Aus Debacher-Wiki
Zur Navigation springenZur Suche springen
In OpenHAB ist es möglich Daten von einem Widget an ein aufgerufenes Widget zu Übergeben. Das Beispiel geht von meinem Batterie-Widget aus. Dieses Widget zeigt alle Batteriezustände an, wenn die Einträge zu einer Gruppe gehören. Nur diese Gruppe muss ausgewählt werden. Falls auch eine Batteriespannung vorhanden ist, so wird diese als Footer angezeigt.
uid: ud_batterie_parameter
tags: []
props:
parameters:
- context: item
description: Name des
label: Batterie Zustands Item
name: batLevel
required: true
type: TEXT
filterCriteria:
- value: Group
name: type
parameterGroups: []
timestamp: Jan 1, 2022, 4:24:17 PM
component: oh-list-card
config:
title: '="Eine Batterie Leer: " + ((items[props.batLevel].state === "OFF") ? "Nein" : "Ja")'
slots:
default:
- component: oh-repeater
config:
fragment: true
for: item
sourceType: itemsInGroup
groupItem: =props.batLevel
fetchMetadata: widgetOrder
slots:
default:
- component: oh-list-item
config:
icon: '=(loop.item.state === "OFF") ? "f7:battery_100" : "f7:battery_0"'
iconColor: '=(loop.item.state === "OFF") ? "green" : "red"'
title: = loop.item.name.split('_')[0]
item: =loop.item.name
badge: '=(loop.item.state === "OFF") ? "Ok" : "Wechseln"'
badgeColor: '=(loop.item.state === "OFF") ? "green" : "red"'
footer: =items[loop.item.name.split('_')[0]+"_BatteryState"].state
action: popup
actionModal: widget:ud_standard_widget
actionModalConfig:
equipment: = loop.item.name.split('_')[0]
Am Ende wird aus dem list-item quasi ein Button (action: popup), der ein weiteres Widget aufruft (ud_standard_widget). Diesem Widget wird in der letzten Zeile das zur Batterie gehörige Gerät als Parameter übergeben.
Das Zielwidget hat folgenden Aufbau:
uid: ud_standard_widget
tags: []
props:
parameters:
- description: Überschrift
label: Überschrift
name: ueberschrift
required: false
type: TEXT
- context: item
description: Das Equipment für die Anzeige
label: equipment
name: equipment
required: true
type: TEXT
parameterGroups: []
timestamp: Dec 10, 2021, 1:58:37 PM
component: f7-card
config:
title: '="Zustand von " + ((props.ueberschrift) ? props.ueberschrift : props.equipment)'
slots:
default:
- component: oh-list
config:
mediaList: true
slots:
default:
- component: oh-repeater
config:
fragment: true
for: element
sourceType: itemsInGroup
groupItem: = props.equipment
filter: =loop.element.metadata && loop.item.metadata.semantics
fetchMetadata: semantics
slots:
default:
- component: oh-list-item
config:
title: =loop.element.name.split('_')[1]+":"
icon: = 'oh:' + loop.element.category
subtitle: =loop.element.metadata.semantics.value
footer: =loop.element.metadata.semantics.config.relatesTo
item: = loop.element.name
badge: =loop.element.state
Noch Screenshots dazu: