So wie versprochen ein kurzer Exkurs zur Definition der Things in einem Config file
Vorausgesetzt sei an dieser Stelle das grundlegende Verständnis der Dateistruktur bzw. Zugriff auf Ordner und Dateien abhängig von Betriebssystem und Art der Installation Manuell / OpenHabian / Qnap Plugin ... Hier im Detail drauf einzugehen sprengt etwas den Rahmen und es gibt reichlich Informationen in der offiziellen Doku und in den weiten des WWW. -> OH Docu openhab.org
Abhängig von dem Betriebssystem solltet Ihr einen Ordnerstruktur wie folgende vorfinden
pasted-from-clipboard.png
Die Config files werden in dem dazugehörigen Ordner abgelegt und automatisch bei Änderung von OH angewendet.
Um nun also eine Config Datei für die Things anzulegen, wechseln wir in den Ordner Things und erstellen eine neue Datei. Z.B. shelly.things Wichtig ist die Dateiendung, da dieses die Art der Objekte definiert. Es muss nicht alles in einer Datei definiert werden, theoretisch können beliebig viele Dateien angelegt werden.
Kurz wie ist der Syntax für ein Thing aufgebaut
Thing <binding_id>:<type_id>:<thing_id> "Label" @ "Location" [ <parameters> ]
- Thing - Schlüsselwort das die folgende Definition ein Thing ist
- <binding_id> - Name des zugehörigen Binding, hier also shelly
- <type_id> - Thing Type entsprechend des Shelly Device -> siehe Shelly Binding Doku
- <thing_id> - frei definierbare eindeutige ID für das Shelly Device. (Ich nutze die 6 letzten Stellen der MAC Adresse, ähnlich wie das Binding es über das Paper UI macht)
- "Label" - Alternativer Name/Bezeichner für das Shelly Device
- @ "Location" - Optional zur einfacheren Organisation den Standort definieren z.B. Wohnzimmer, Garage ...
- [ <parameters> ] - Konfigurationsparameter des Bindings für unsere Shellys minimum [ deviceIp=Ip des Shelly ] List der optionalen Parameter -> hier
Beispiel Shelly 1PM
Thing shelly:shelly1pm:XXXXX1 "Steckdose Küche" @ "Küche" [deviceIp="192.168.178.100", userId="", password=""]
- Thing - Definition ein Thing ist
- <binding_id> - shelly
- <type_id> - shelly1pm
- <thing_id> - XXXXX1
- "Label" - Steckdose Küche
- @ "Location" - Küche
- [ <parameters> ] - deviceIp=192.168.178.100 userId="", password=""
Alle weiteren Shellys einfach Zeile für Zeile hinzufügen
Thing shelly:shelly25-relay:XXXXX1 "steckdose_terrasse" @ "Terrasse" [deviceIp="X.X.X.X", userId="", password=""]
Thing shelly:shellydimmer:XXXXX2 "dimmer_esstisch" @ "Wohnzimmer" [deviceIp="X.X.X.X", userId="", password=""]
Thing shelly:shellydimmer:XXXXX3 "dimmer_wohnzimmer" @ "Wohnzimmer" [deviceIp="X.X.X.X", userId="", password=""]
Thing shelly:shelly1pm:XXXXX4 "Steckdose_Waschmaschine" @ "Keller" [deviceIp="X.X.X.X", userId="", password=""]
Thing shelly:shelly1pm:XXXXX5 "Steckdose_Trockner" @ "Keller" [deviceIp="X.X.X.X", userId="", password=""]
Thing shelly:shellybulbduo:XXXXX6 "Lampe" @ "Flur" [deviceIp="X.X.X:X", userId="", password=""]
Thing shelly:shellybulbduo:XXXXX7 "Strahler" @ "Flur" [deviceIp="X.X.X.X", userId="", password=""]
Wie mache ich es nun bei einem Update alle Things zu löschen und neu "anzulegen"
Entweder ich kommentiere die Zeilen in meiner Things Datei temporär für das Update aus
// für eine einzelne Zeile oder /* Thing shelly:shelly1pm... */ für einen Zeilen Block.
OH löscht dann die Things aus der Datenbank (die Item links bleiben erhalten)
Oder noch einfacher ich benenne die *.things Datei temporär um, z.B. in shelly.thingsTMP
OH löscht wieder die Things aus der Datenbank, nach dem Update das ganze wieder zurück auf den ursprünglichen Namen, OH fügt die Things neu hinzu und stellt alle Links zu den Items wieder her. Dies funktioniert natürlich nur solange sich nichts an der Definition des Thing ändert.
Natürlich ist das keine Klick Klick Klick Anleitung und bevor man sich an diese Konfigurationen rantastet braucht es noch die eine oder andere Grundlage mehr. Aber am Ende zählt Versuch macht Klug und zu jedem Thema gibt es zig bessere Anleitungen Dokus als ich es hier auf die schnelle skizieren könnte.