Verständnis von OH - Es fehlt an Grundlagen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Murdock79
Beiträge: 46
Registriert: 26. Nov 2021 15:26
Wohnort: Braunschweig

Verständnis von OH - Es fehlt an Grundlagen

Beitrag von Murdock79 »

Hallo,
ich habe OH3 und versuche ein Projekt hier aus dem Forum nachzubauen. Leider fehlen mir hier Grundlagen.
Ich weiß was Items, Channels und Gruppen sind und kann diese auch in OH anlegen.

Bei dem Projekt geht es um Rollosteuerung nach Sonnenstand.

Es wird folgendes eingerichtet:

Code: Alles auswählen

Group gruppeRolladen_West
// Konfiguration Rollo-Automatik West
Switch Rolloautomatik "Rollo-Automatik aus/an"
Switch Rolloautomatik_oeffnen "Rolladen öffnen aus/an"
Number Rolloautomatik_zielwert "Schließen auf [%d Prozent]"
Number Rolloautomatik_temp_min "Temperatur größer [%d °C]"
Number Rolloautomatik_wolken_max "Bewölkung weniger als [%d Prozent]"
Number Rolloautomatik_azimuth_start "Sonnenrichtung größer gleich [%d °]"
Number Rolloautomatik_elevation_ende "Sonnenhöhe kleiner gleich [%d °]"
DateTime Rolloautomatik_start_last "Letzte Ausführung (Rollo ab)"
DateTime Rolloautomatik_ende_last "Letzte Ausführung (Rollo hoch)"
Also dachte ich mir, gehe ich bei der OH Oberfläche auf Items und lege dort die Gruppe an. Weit gefehlt.
Ich kann die einzelnen Rollos auch als Group Member anlegen.
Dann hört es aber auch schon auf. Wo und wie stelle ich die Switch, Number, DateTime ein?
Geht das überhaupt so, wie ich das versuche, oder muss man eine Datei erstellen?
Bin so sehr unsicher und weiß nicht direkt, wie ich wo etwas einstellen kann/muss bzw. wo ich ansetzen muss.
Wäre nett, wenn mir jemand erklären kann, wie das geht oder mit einen Tipp gibt, wo ich das dann nachvollziehen und lernen kann. Wenn ich die OH Doku lese, stehen dort auch Codezeilen, die man irgendwo eingeben kann, aber wo?
Ich denke, bei mir fehlt es noch am grundlegenden Verständnis. Wo setze ich am besten an?
Vielen Dank

------------------------------------------------------------------------------------------------
"O Jahrhundert, o Wissenschaften!
Es ist eine Lust zu leben, wenn auch nicht in der Stille.
Die Studien blühen, die Geister regen sich.
Barbarei nimm dir einen Strick und mache dich auf Verbannung gefasst."
(Ulrich von Hutten/1515)

Benutzeravatar
udo1toni
Beiträge: 13931
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Verständnis von OH - Es fehlt an Grundlagen

Beitrag von udo1toni »

Diese Items kannst Du tatsächlich leicht alle über die Main UI unter Administration->Einstellungen->Items anlegen, und zwar unten rechts in der Ecke auf das weiße Plus im blauen Kreis und dann Add Item. Auf der nächsten Seite, die aufgeht, kannst Du den Itemnamen, das Label und natürlich auch den Typ auswählen.

Wahlweise kannst Du Items (und auch Things und andere Dinge) auch über die "alte" Textkonfiguration erstellen. Das geht, indem Du entsprecehnde Dateien im Konfigurationszweig an der richtigen Stelle anlegst, z.B. auf GNU/Linux Systemen unter /etc/openhab/. Dort gibt es für jeden Dateityp ein eigenes Unterverzeichnis, Items Dateien kommen in Verzeichnis items, Things Dateien kommen ins Verzeichnis things und so weiter.

Die Textkonfiguration ist vor allem aus Kompatibilitätsgründen mit dabei, allerdings schwören die alten Hasen darauf, weil man so sehr schnell sehr viele gleichartige Items/Things/Channel anlegen kann, z.B. vier gleichartige Dimmer mit jeweils drei Kanälen -> Ein Thing anlegen, Definition dreimal kopieren und die Details anpassen. Mit VSCode als Editor bannst Du auch vollautomatisch ganze Things oder einzelnen Channel als Item abbilden lassen (natürlich nur mit einer Standard Konfiguration, aber ausreichend, um direkt damit weiter zu arbeiten).

Die Textkonfiguration kann parallel zur UI Konfiguration erfolgen, jedoch werden Textkonfigurationen in der UI nur lesbar, aber nicht änderbar sein, UI Konfigurationen tauchen in der Textkonfiguration nicht auf (gerade dieser Punkt führt bei den meisten Neulingen zu starker Verwirrung).

openHAB erkennt, wenn die Textdateien bearbeitet wurden und liest diese dann erneut ein, um alle Items/Things neu anzulegen, das geht also im laufenden Betrieb.

Über die UI können Items Dateien auch ins UI-Format umgewandelt werden, das ist aber nur interessant, wenn man eine *.items Datei vorliegen hat und lieber über die UI arbeiten will. Ein Weg zurück ist nicht in openHAB vorgesehen, allerdings gibt es im englischen Forum Scripte, um aus den json Dateien, in denen openHAB seine Konfiguration speichert, Items und Things zu erstellen.
Aber wie gesagt, wenn Du kein Text Fan bist, musst Du das nicht weiter beachten. In der Doku ist die Textform allerdings dominant, weil sie so viel kompakter ist. Wer das Format grundsätzlich verstanden hat, kann daraus sehr leicht die notwendigen Parameter in der UI ableiten.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Murdock79
Beiträge: 46
Registriert: 26. Nov 2021 15:26
Wohnort: Braunschweig

Re: Verständnis von OH - Es fehlt an Grundlagen

Beitrag von Murdock79 »

Hab vielen Dank, für deine sehr ausführliche Erklärung. Soweit war das klar, jedoch hast du es nochmal sehr gut nachvollziehbar dargestellt.
Jetzt habe ich jedoch weitere Fragen: Ich habe OH als Docker laufen dort habe ich dann ein Verzeichnis, openhab/conf/items.
1. Wenn ich dort eine Items Datei wie die vom Post #1 anlege, sehe ich diese Itemsdatei nicht in der UI. Ist das richtig, oder braucht OH einen Neustart? Du hattest ja oben geschrieben:
openHAB erkennt, wenn die Textdateien bearbeitet wurden und liest diese dann erneut ein, um alle Items/Things neu anzulegen, das geht also im laufenden Betrieb.
Zusatzfrage: habe ich in dem Verzeichnis dann nur eine einzige items Datei, oder sind das dann jeweils eigene Dateien?
2. Wenn ich das obige Bespiel in die UI übertragen will, scheitere ich daran, dass ich nicht weiß, wo dann die entsprechenden Codes angegeben werden müssten. Sprich, wo muss ich die Angaben:
Switch Rolloautomatik "Rollo-Automatik aus/an
"Number Rolloautomatik_zielwert "Schließen auf [%d Prozent]
"DateTime Rolloautomatik_start_last "Letzte Ausführung (Rollo ab)"
einpflegen?
3. Habe ich dich das richtig verstanden: Wenn ich über die UI etwas anlege, bekomme ich dazu keine Textdatei, die ich dann ergänzen oder ändern könnte?

------------------------------------------------------------------------------------------------
"O Jahrhundert, o Wissenschaften!
Es ist eine Lust zu leben, wenn auch nicht in der Stille.
Die Studien blühen, die Geister regen sich.
Barbarei nimm dir einen Strick und mache dich auf Verbannung gefasst."
(Ulrich von Hutten/1515)

SRX
Beiträge: 58
Registriert: 15. Okt 2019 19:50

Re: Verständnis von OH - Es fehlt an Grundlagen

Beitrag von SRX »

Hi
mein Rat, wenn Du jetzt ohne Vorbelastung in OH3 eintauchst.
Fang nicht mit den alten Textfiles an.
Du beraubst Dich der Möglichkeiten welche die Oberfläche bietet.

So gesehen gibt es drei verwschiedene Wege ein Item anzulegen
per Datei
per vordeiniertem Text
über die Oberfläche

Wenn Du unbedingt das ganze als Text vorbereiten willst, dann kannst Du das in dem Editor Deiner Wahl vorbereiten und per Copy / Paste an der Oberfläche anlegen
Beispiel, nachgelagertes Beipiel legt ein numerisches Item mit Namen "Test Number Item" an, füllt die Metadaten für die Formatierung (Pattern) , setzt Min und Max Werte, gibt die Schritte vor und legt unter Optionen die Werte fest, das Item wird der Gruppe "Test" hinzugefügt. (Diese muss schon vorhanden sein

Code: Alles auswählen


Number nTest "Test Number Item"  (test)  { 	stateDescription=" "[pattern="%d%%", min="1", max="3", step="1", options="1=Red, 2=Green, 3=Blue"	]}

Das kannst Du per Copy / Paste hier anlegen
Einstellungen > Items > unten rechts auf den blauen Kreis mit dem Plus klicken

Hier die Auswahl "Add Items from textual Definition"
Screenshot 2022-08-16 113001.png
Das so angelegte Item ist dann komplett über die Oberfläche konfigurierbar
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Murdock79
Beiträge: 46
Registriert: 26. Nov 2021 15:26
Wohnort: Braunschweig

Re: Verständnis von OH - Es fehlt an Grundlagen

Beitrag von Murdock79 »

Vielen Dank, jetzt wird da ein Schuh draus. Ich beginne zu verstehen. Der entscheidende Hinweis war "Add Items from textual Definition"
Jetzt muss ich das noch alles richtig verstehen, aber der Anfang ist gemacht. Danke. Ich werde, wie du vorschlägst, gleich über die UI gehen.

------------------------------------------------------------------------------------------------
"O Jahrhundert, o Wissenschaften!
Es ist eine Lust zu leben, wenn auch nicht in der Stille.
Die Studien blühen, die Geister regen sich.
Barbarei nimm dir einen Strick und mache dich auf Verbannung gefasst."
(Ulrich von Hutten/1515)

SRX
Beiträge: 58
Registriert: 15. Okt 2019 19:50

Re: Verständnis von OH - Es fehlt an Grundlagen

Beitrag von SRX »

Wenn ich das richtig sehe, möchtest Du eine automatische Absenkung von Rolladen durchführen.
Dazu bedarf es dann aber noch einer Regel (Rule)
Hier kannst Du dann entweder über die Oberfläche eine Regel bauen oder modifiziert eine Textregel nutzen. Sobald diese als .rules im Rules Verzeichnis abgespeichert wird ist sie in OH sicht- und nutzbar.

Um den Zeitstempel zu setzen, kannst Du z.B. das nutzen. "MyDateTimeTypeTimestamp" hat dann das Datum welches Du dem "Rolloautomatik_start_last" zuweisen kannst.


val DateTimeType MyDateTimeTypeTimestamp = DateTimeType.valueOf(now.toLocalDateTime().toString())
Rolloautomatik_start_last.postUpdate(MyDateTimeTypeTimestamp)

Benutzeravatar
udo1toni
Beiträge: 13931
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Verständnis von OH - Es fehlt an Grundlagen

Beitrag von udo1toni »

Kurze Frage: Welche Möglichkeiten bietet die UI, welche ich nicht über die Dateien habe?

Um außerdem die gestellten Fragen zu beantworten:

1. Du siehst nicht die Dateien in der UI, sondern die durch die Datei definierten Items (in der Item Liste, bzw, in der Things Liste)
2. Du kannst beliebig innerhalb einer oder mehrerer Dateien Items und Things definieren. Die Dateien müssen jeweils die korrekte Endung haben, für Items also .items und an dem s am Ende kannst Du auch direkt ablesen, dass in dieser Datei mehrere Items angelegt werden können.
Das gilt sinngemäß auch für Things, allerdings mit einer Einschränkung, abhängig von der Form der Definition. Man kann Things, die zu einer Bridge gehören, als "Kind" der Bridge definieren. Naturgemäß müssen diese Things dann alle innerhalb der Datei angelegt werden, in der sich auch die Bridge befindet. Man kann aber auch einen Link auf die Bridge setzen, dann sind die Things tatsächlich unabhängig von der Bridge. Aber es scheint sinnvoll, die Definition nach Bridges dateiweise zu organisieren, wenn man dies tun möchte, also z.B. eine Datei mqtt.things, eine Datei knx.things und so weiter. Dabei ist der Name der Datei aber egal, ich kann die Datei auch hugendubel.things nennen und dort drölfzig verschiedene Things verschiedener Bindings anlegen.
3. Ja, exakt. Was Du in der UI machst, bleibt in der UI. Aber nochmal: die Definitionen können gemischt werden (ob man das tun sollte, ist eine andere Sache). Ich kann also z.B. ein Thing in der UI anlegen und anschließend eine *.items Datei definieren, in der ich Items mit den zugehörigen Channels dieses Things verlinke. In VSCode gibt es eine Live Liste aller Items, Things und Channels, welche über die REST API geholt wird. Diese hat nichts mit den Textdateien zu tun, aber man kann sie verwenden, um in den Textdateien Elemente zu erzeugen, einfach über das Kontext Menü.

Ich habe ja oben schon darauf hingewiesen, dass gerade Neueinsteiger gerne die UI nutzen können und sollen. Die Textdateien haben aber auch Vorteile gegenüber der UI, wenn Du tiefer eintauchst, ist es immer von Vorteil, zumindest zu wissen, worum es geht. Und es gibt immer noch Dinge, die nicht direkt in der UI angelegt werden können und für dir Du zwingend auf die Textkonfiguration angewiesen bist, beispielsweise Dateien für Transformations, sei es SCALE, JS, XSL, MAP, all diese Transformations verlangen Textdateien mit der konkreten Anweisung, wie ein Wert zu transformieren ist.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Murdock79
Beiträge: 46
Registriert: 26. Nov 2021 15:26
Wohnort: Braunschweig

Re: Verständnis von OH - Es fehlt an Grundlagen

Beitrag von Murdock79 »

Vielen Dank für eure tollen Antworten. Das waren tatsächlich sehr wichtige Informationen. Ich erkenne schon jetzt, wie umfangreich Openhab durchdacht und aufgebaut ist. Da gibt es noch viel zu lernen.
@SRX das eine Rule noch angelegt werden muss, ist mir klar gewesen. Ich hatte oben nur einen Teil des Projektes gepostet, damit es nicht zu lange ist.
Die Regel für die Beschattung habe ich ja unter Projekte hier im Forum gesehen.

------------------------------------------------------------------------------------------------
"O Jahrhundert, o Wissenschaften!
Es ist eine Lust zu leben, wenn auch nicht in der Stille.
Die Studien blühen, die Geister regen sich.
Barbarei nimm dir einen Strick und mache dich auf Verbannung gefasst."
(Ulrich von Hutten/1515)

Antworten