Jochen hat geschrieben: ↑19. Jan 2025 17:14
Kann ich die beiden Items Torstatus und Torkommando irgendwie zu einem Eintrag zusammenbasteln?
Dazu gibt es verschiedene Wege.
1.: Du bindest mehrere Channel an ein Item. Abhängig von den beteiligten Channels funktioniert das natürlich nur mit Items, die alle möglichen Werte und Befehle darstellen können (mutmaßlich am ehesten ein String Item). Zusätzlich setzt Du das Item auf autoupdate="false". Nun kannst Du über ein Switch Widget eine oder mehrere Schaltflächen generieren, die dann den verknüpften Befehl senden. Weil autoupdate="false" gesetzt ist, ändert sich der Status aber nur, wenn der passende Channel ein Update sendet. Das kann funktionieren, muss es aber nicht zwingend.
2.: ähnlich wie die erste Variante, nur diesmal mit n+1 Items (n ist die Anzahl der verknüpften Channel). Zusätzlich gibt es dann zwei Rules, die eine sammelt alle Status Updates ein (received update) und überträgt sie auf das n+1. Item, die zweite rule reagiert auf Item n+1 received command und leitet den Befehl passend an das entsprechende Item weiter. In der Sitemap wird nur Item n+1 eingebaut. Funktioniert auf jeden Fall.
3. Kommt ohne extra Item aus, dafür wird die Sitemap etwas komplizierter. Du legst für jeden Status eine eigene Zeile mit dem Befehls-Item an (Beschriftung des Items enthält den Status und die Schaltfläche den Befehl). In jeder Zeile ergänzt Du den visibility Parameter und gibst das Item an, welches den Status enthält. Es wird also immer nur exakt eine der Zeilen angezeigt, nämlich die, welche den aktuellen Status enthält.
Beispiel:
Code: Alles auswählen
Switch item=torBefehl label="Tor offen[]" mappings=[ON="Go!"] visibility=[torStatus=="OPEN"]
Switch item=torBefehl label="Tor geschlossen[]" mappings=[ON="Go!"] visibility=[torStatus=="CLOSED"]
Bei diesr Variante setzen wir stillschweigend voraus, dass der Status immer einer angegebenen Status ist. Falls es nur zwei Möglichkeiten gibt, kann man es auch so machen:
Code: Alles auswählen
Switch item=torBefehl label="Tor offen[]" mappings=[ON="Go!"] visibility=[torStatus!="CLOSED"]
Switch item=torBefehl label="Tor geschlossen[]" mappings=[ON="Go!"] visibility=[torStatus=="CLOSED"]
Nun wird der erste Eintrag angezeigt, solange das Tor nicht explizit als geschlossen gemeldet wird, also auch, wenn der Status NULL ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet