Die Things folgen alle dem selben Schema. Natürlich unterscheiden sich die Namen der Parameter (und deren Funktion) teilweise erheblich, da diese ja vom abgebildeten System abhängen.
Aber grundsätzlich: Gibt es einen Bus, so gibt es in openHAB eine Bridge, die den Kontakt zu dem Bus herstellt.
(Der Begriff "Bus" ist dabei aber weit gefasst... z.B. unterstützen Yamaha Receiver teilweise mehrere Zonen. Im Binding werden die Zonen als Things abgebildet und der Verstärker als Ganzes ist die Bridge. Letztlich geht es um eine zweistufige Hierarchie, das übergeordnete ist die Bridge, darunter folgen Things, die die Bridge zur Komunikation benötigen.)
Unterhalb der Bridge gibt es dann die Things, wobei ein Thing einem Gerät entspricht
(auch wenn das teilweise nicht zwingend ist, sollte man diesem Prinzip folgen... also z.B. nicht den mqtt "Bus" als ein großes Gerät mit zig Channels betrachten, sondern jedes Gerät, welches per mqtt mit openHAB kommuniziert, als einzelnes Thing anlegen.)
Üblicherweise wird man alle Things, die zu einer Bridge gehören, als Tochterelemente anlegen, also innerhalb der geschweiften Klammern, welche der Bridge folgen.
Genauso sind die Channel eines Things innerhalb der geschweiften Klammern des Things verortet. Die Schlüsselworte Bridge, Thing und Channels könnten sogar entfallen (aber es hilft. die Definition später zu verstehen). Die Parameter der entsprechenden Sektion kommen in [], Parameternamen stehen ohne Anführungszeichen, der Wert steht in Anführungszeichen, sobald es sich um einen String handelt, Zahlen stehen gewöhnlich ohne Anführungszeichen. Die einzelnen Parameter sind durch Komma voneinander getrennt.
Bridge und Thing (soweit das Thing keiner Bridge zugeordnet ist!) werden durch das Binding, den Typ und die ID definiert, also z.B. astro:sun:home, astro ist das Binding, sun ist der Thingtyp und home ist der vergebene Name, mit dem das Thing angesprochen wird. Danach folgt das Label, welches in der Auflistung der Things verwendet wird. nach dem optionalen @ folgt noch die Location für openHAB2, dieser Teil ist in openHAB3 obsolet (löst aber keinen Fehler aus, falls vorhanden).
Wenn ein Thing einer Bridge zugeordnet ist, entfällt die Angabe des Bindings, dies ergibt sich ja zwingend aus der Bridge. Deshalb steht dann auchkein Doppelpunkt zwischen Typ und Name des Things.
Man kann Things, die zu eijner Bridge gehören allerdings auch losgelöst von der Bridge anlegen, dann sind es wieder Things "ohne" Bridgezuordnung (weil die Zuordnung erst innerhalb der Definition erfolgt.) Die UID der Bridge wird in () hinter der UID des Thing geschrieben. Hierarchisch so::
Code: Alles auswählen
Bridge hue:bridge:mybridge [ ipAddress="192.168.3.123" ] {
Thing 0210 bulb1 [ lightId="1" ]
Thing 0210 bulb2 [ lightId="2" ]
}
Getrennt so:
Code: Alles auswählen
Bridge hue:bridge:mybridge [ ipAddress="192.168.3.123" ]
Thing hue:0210:mybridge:bulb1 "Label" (hue:bridge:mybridge) @ "Location" [lightId="1"]
Thing hue:0210:mybridge:bulb2 "Label" (hue:bridge:mybridge) @ "Location" [lightId="2"]
Vorteil der zweiten Version ist, dass Bridge und Thing nicht zwingend in der selben Datei definiert sein müssen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet