Da Du mehr als zwei mögliche Status und auch Befehle hast, musst Du einen anderen Channel Type verwenden. Das Einfachste ist da, mit einem String Channel anzufangen:
Code: Alles auswählen
Bridge mqtt:broker:1 "Mosquitto" [
host="xxxx",
port=1883
] {
// Garagentür
Thing topic garage "Garagentür" {
Channels:
Type string : tuer "Öffner" [ stateTopic="garagentuer/state", commandTopic="garagentuer/command" ]
}
}
Das kannst Du nun mit einem passenden String Item verbinden. Bitte beachte, dass die Channel UID dennoch in Paper UI nachzuschauen ist. In der Theorie sollte der Link aber folgendermaßen heißen:
Code: Alles auswählen
String Garagentuer "Garage [MAP(garage.map):%s]" { channel="mqtt:topic:1:garage:tuer", autoupdate="false" }
Das Mapping musst Du natürlich noch anlegen, transform/garage.map:
Code: Alles auswählen
locked=geschlossen
unlocked=geöffnet
open=offen
null=null
-=-
Nicht vergessen, dass die Map Transformation installiert sein muss...
autoupdate="false" sorgt dafür, dass openHAB nicht übereifrig den Befehl als Status setzt.
In der Sitemap könntest Du dann einen Switch mit Schaltflächen einsetzen:
Code: Alles auswählen
Switch item=Garagentuer mappings=[2="lock",3="unlock"]
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet