Ja, da liegt ein Missverständnis vor (aber kein Wunder...)
Du hast In der UI in der Code Ansicht yaml Code eingegeben. das kann man machen, muss aber natürlich genau wissen, was man da einträgt. Die Code Ansicht ist durchaus geeignet, Änderungen an bestehenden Things (und inzwischen auch Items) vorzunehmen. Neu erstellen geht aber nicht, einzig könnte man ein "default" Thing des gewünschten Addons erstellen und anschließend den Code von einem bestehenden Thing der selben Sorte (!) ins neu erzeugte Thing einfügen, um dann dort Teile des Texts anzupassen.
Man kann damit super aus einem Kanal eines Things z.B. sieben weitere - fast komplett identische - Kanäle erstellen, weil man hier kein neues Thing benötigt, sondern einfach im bestehenden Thing die Anzahl der Kanäle erweitert, mittels Vorlage des bestehenden Kanals, das ist also prima, um z.B. eine Relaiskarte mit mehreren Kanälen ziemlich schnell vollständig manuell einzurichten.
Die "echte" Textkonfiguration hat nichts mit der UI zu tun
Es gibt den VS Code Editor, und dieser bringt im eigenen Marketplace auch ein openHAB Plugin mit. In diesem Plugin kann man einstellen, unter welcher Adresse der eigene openHAB Server erreichbar ist (und natürlich kann man dort auch die notwendigen Credentials hinterlegen, also z.B. einen eigens dafür erstellten Token).
Anschließend muss man in VS Code ein Arbeitsverzeichnis öffnen. Auf einem Windows PC richtet man dafür am besten ein Netzwerklaufwerk ein (der UNC-Pfad sollte eigentlich auch funktionieren, macht aber regelmäßig Probleme, also besser Laufwerksbuchstaben mappen), die Freigabe schaut auf
\\openhabian\openhab_conf\ (User
openhabian, Passwort
openhabian) und diese Freigabe öffnet man als Arbeitsverzeichnis.
Im Arbeitsverzeichnis gibt es dann für jede Art Konfigurationsdatei ein eigenes Unterverzeichnis,
items,
things,
rules usw.
In diesen Ordnern kann man wiederum Textdateien anlegen, die die korrekte Endung haben und die passende Konfiguration enthalten müssen.
Beispiel für eine Konfiguration für ein mqtt Device (hier ein 4-Kanal-Aktor mit Tasmota als Firmware) in einer Datei meine.things:
Code: Alles auswählen
Bridge mqtt:broker:mosquitto "Mosquitto" [
host="192.168.178.2",
clientID="openHAB4",
birthTopic="openHAB4/system/LWT",
lwtTopic="openHAB4/system/LWT",
shutdownTopic="openHAB4/system/LWT",
lwtMessage="Offline",
shutdownMessage="Offline",
birthMessage="Online"
] {
Thing topic sonoff4Ch "Sonoff 4-Channel mit Tasmota" [
availabilityTopic="tele/tasmota-1/LWT",
payloadAvailable="Online",
payloadNotAvailable="Offline"
] {
Channels:
Type switch : ch1 "Channel 1" [ stateTopic="stat/tasmota-1/POWER", commandTopic="cmnd/tasmota-1/POWER" ]
Type switch : ch2 "Channel 2" [ stateTopic="stat/tasmota-1/POWER2", commandTopic="cmnd/tasmota-1/POWER2" ]
Type switch : ch3 "Channel 3" [ stateTopic="stat/tasmota-1/POWER3", commandTopic="cmnd/tasmota-1/POWER3" ]
Type switch : ch4 "Channel 4" [ stateTopic="stat/tasmota-1/POWER4", commandTopic="cmnd/tasmota-1/POWER4" ]
}
}
Insbesondere die vier Channel sind interessant, weil die drei unteren Zeilen letztlich nur Kopien der ersten Zeile sind, mit geändertem Index. das geht auch ganz gut über die UI Code Ansicht.
Aber wenn ich nun von diesem 4-Kanal-Gerät drei Stück habe, wird es in der UI unpraktisch. Im VS Code Editor muss ich hier aber lediglich den gesamten Thing-Block vervielfältigen und das Topic anpassen (das geht prima mit Suchen & Ersetzen...)
Die zugehörigen Items (mitsamt Links) kommen dann in eine andere Datei - beispielsweise meineSuper.items:
Code: Alles auswählen
Switch sonoff4Ch_ch1 "Channel 1" <light> {channel="mqtt:topic:broker:sonoff4Ch:ch1",autoupdate="false"}
Switch sonoff4Ch_ch2 "Channel 2" <light> {channel="mqtt:topic:broker:sonoff4Ch:ch2",autoupdate="false"}
Switch sonoff4Ch_ch3 "Channel 3" <light> {channel="mqtt:topic:broker:sonoff4Ch:ch3",autoupdate="false"}
Switch sonoff4Ch_ch4 "Channel 4" <light> {channel="mqtt:topic:broker:sonoff4Ch:ch4",autoupdate="false"}
Ich habe hier mal auf alles weitere verzichtet, man kann in dieser Textdatei aber alle Aspekte eines Items konfigurieren, Gruppenzugehörigkeit, Tags, Profiles, Metadaten, wird halt beliebig kompliziert, weil viele dieser möglichen Parameter erst viel später erfunden wurden, als die Textkonfiguration schon nur noch optional war.
Der Witz ist aber, dass man diesen Text nicht mal selbst schreiben muss, es reicht, im VS Code die Things-Liste zu öffnen (wir erinnern uns - das Plugin hat Zugang zum eigenen openHAB Server), dort das Thing zu suchen und über das Kontextmenü Items für alle Channel zu erzeugen. Die Items werden dann in der zuletzt ausgewählten *.items Datei an der Cursorposition angelegt, so dass man sie dort direkt editieren kann.
Seine Stärken spielt das Plugin aber bei der Entwicklung von Rules aus, denn der eingegeben Code wird jederzeit live auf dem aktuellen System auf Korrektheit geprüft. Was leider nicht (mehr) zuverlässig funktioniert, ist die automatische Ergänzung von Schlüsselworten, das war mal besser. Trotzdem kann man DSL Rules so sehr komfortabel erstellen und hat auch nette Zusatzfunktionen, z.B. kann man durch MouseOver sehen, welchen Status ein Item hat - in diesem Moment - oder auch welche Items zu einem Group Item gehören - wird alles live abgefragt, super praktisch beim Erstellen generalisierter Rules.
*.items Dateien kann man über die UI auch einlesen, dabei erzeugt openHAB dann automatisch "nach Rezept" die Items in der UI, mit allem, was dazu gehört, also auch verteilt über die diversen Untermenüs. Für die *.things Dateien fehlt eine solche Import-Funktion leider, und es ist auch nicht vorgesehen, von der UI aus den umgekehrten Weg zu gehen, also die Konfiguration in *.items und *.things zu exportieren.
Ein weites Feld...

ich habe halt mit openHAB1.0 angefangen, da gab es noch nicht mal Things, ganz zu schweigen von einer Verwaltungs-UI, Textdateien waren die einzige Möglichkeit, openHAB zu konfigurieren, ich habe das also mal so gelernt und habe entsprechend auch keinerlei Probleme, das so zu nutzen - auch mit der aktuellen openHAB Version.