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.

 1uid: ud_batterie_parameter
 2tags: []
 3props:
 4  parameters:
 5    - context: item
 6      description: Name des
 7      label: Batterie Zustands Item
 8      name: batLevel
 9      required: true
10      type: TEXT
11      filterCriteria:
12        - value: Group
13          name: type
14  parameterGroups: []
15timestamp: Jan 1, 2022, 4:24:17 PM
16component: oh-list-card
17config:
18  title: '="Eine Batterie Leer: " + ((items[props.batLevel].state === "OFF") ? "Nein" : "Ja")'
19slots:
20  default:
21    - component: oh-repeater
22      config:
23        fragment: true
24        for: item
25        sourceType: itemsInGroup
26        groupItem: =props.batLevel
27        fetchMetadata: widgetOrder
28      slots:
29        default:
30          - component: oh-list-item
31            config:
32              icon: '=(loop.item.state === "OFF") ? "f7:battery_100" : "f7:battery_0"'
33              iconColor: '=(loop.item.state === "OFF") ? "green" :  "red"'
34              title: = loop.item.name.split('_')[0]
35              item: =loop.item.name
36              badge: '=(loop.item.state === "OFF") ? "Ok" : "Wechseln"'
37              badgeColor: '=(loop.item.state === "OFF") ? "green" : "red"'
38              footer: =items[loop.item.name.split('_')[0]+"_BatteryState"].state
39              action: popup
40              actionModal: widget:ud_standard_widget
41              actionModalConfig:
42                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:

 1uid: ud_standard_widget
 2tags: []
 3props:
 4  parameters:
 5    - description: Überschrift
 6      label: Überschrift
 7      name: ueberschrift
 8      required: false
 9      type: TEXT
10    - context: item
11      description: Das Equipment für die Anzeige
12      label: equipment
13      name: equipment
14      required: true
15      type: TEXT
16  parameterGroups: []
17timestamp: Dec 10, 2021, 1:58:37 PM
18component: f7-card
19config:
20  title: '="Zustand von " + ((props.ueberschrift) ? props.ueberschrift : props.equipment)'
21slots:
22  default:
23    - component: oh-list
24      config:
25        mediaList: true
26      slots:
27        default:
28          - component: oh-repeater
29            config:
30              fragment: true
31              for: element
32              sourceType: itemsInGroup
33              groupItem: = props.equipment
34              filter: =loop.element.metadata && loop.item.metadata.semantics
35              fetchMetadata: semantics
36            slots:
37              default:
38                - component: oh-list-item
39                  config:
40                    title: =loop.element.name.split('_')[1]+":"
41                    icon: = 'oh:' + loop.element.category
42                    subtitle: =loop.element.metadata.semantics.value
43                    footer: =loop.element.metadata.semantics.config.relatesTo
44                    item: = loop.element.name
45                    badge: =loop.element.state

Noch Screenshots dazu:

Bildschirmfoto von 2022-01-01 16-38-58.png

Bildschirmfoto von 2022-01-01 16-39-15.png