Szenen und Regeln sammeln

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Proton
Beiträge: 93
Registriert: 10. Okt 2022 12:13
Answers: 4
Wohnort: Oberbergisches

Re: Szenen und Regeln sammeln

Beitrag von Proton »

udo1toni hat geschrieben: 8. Nov 2023 01:59 Ja, aber mein Punkt ist ja, dass es keinen Grund gibt, das über einen speziellen Bereich in der UI zu erledigen, die Rule kannst Du ja genauso triggern, also wo ist der Vorteil einer Scene? Oh, ja, das Ding heißt Scene, toller Vorteil... Dafür fehlen sämtliche Möglichkeiten, eine Scene zu dynamisieren, was innerhalb einer Rule fast unbegrenzt möglich ist-
Okay, jetzt habe ich gedacht, dass ich es verstanden hätte und habe ein Gruppe für die Szenen angelegt und dort als erstes den Schalter für die Mediabox hinzugefügt
Bild
Die Frage ist jetzt: Muss ich den Schalter wieder ausschalten oder reagiere ich auf das "received command" und der Schalter ist immer eingeschaltet?
udo1toni hat geschrieben: 8. Nov 2023 01:59 Das einzige, was mir dazu einfällt, ist die Möglichkeit, innerhalb einer Sitemap einzelne Widgets invisible zu schalten, was z.B. sehr praktisch ist, um Bedienelemente auszublenden, die derzeit ohne Funktion sind. Oder man möchte die Formatierung eines Widgets dynamisch ändern, aber in Abhängigkeit eines anderen Items als desjenigen, welches man steuern möchte
Ich hatte gedacht, dass man Elemente entsprechend der eingeschalteten Szene/Rule ein und ausblenden könnte, aber dann müsste der Schalter ja auf jeden Fall wieder ausgeschaltet werden. Zumindest nach meinem Verständnis. :D
udo1toni hat geschrieben: 8. Nov 2023 01:59 ganz lang: Es kann natürlich sein, dass Du ein System steuerst, welches empfindlich auf unnütze Befehle reagiert, das wird es dann aber auch über die native Oberfläche tun, ist also kein openHAB-Spezifishces Problem.
Ich habe Z-Wave und das scheint relativ stabil zu sein, von daher bin ich froh, dass es keine anderen Schwierigkeiten macht außer mehr Log-Ausgaben. :)

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

Re: Szenen und Regeln sammeln

Beitrag von udo1toni »

Eine Scene/Rule ist niemals "eingeschaltet".
Allenfalls kannst Du Dir merken, ob die Scene/Rule getriggert wurde.
Wenn Du Scenes/Rules so definierst, dass niemals, unter keinen Umständen, irgendwelche Beteiligten dieser Scene/Rule von irgendwo anders gesteuert werden, kannst Du dann anhand dieses gemerkten Triggers mit einiger Sicherheit rückschließen, welchen Zustand die Beteiligten der Scene haben, mehr aber auch nicht.

Grundsätzlich ist openHAB stateless (das gilt natürlich nicht für Items, die haben durchaus einen Status).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Proton
Beiträge: 93
Registriert: 10. Okt 2022 12:13
Answers: 4
Wohnort: Oberbergisches

Re: Szenen und Regeln sammeln

Beitrag von Proton »

udo1toni hat geschrieben: 10. Nov 2023 23:01 Eine Scene/Rule ist niemals "eingeschaltet".
Okay, in dem Fall wäre wohl "ausgelöste Szene" die bessere Formulierung gewesen, aber ich habe schon verstanden, dass die Szene keinen Status hat und habe deswegen auch immer vom Schalter gesprochen und nicht etwas von der Szene(außer in diesem Fall). Den Schalter brauche ich doch um die Regel auszulösen, oder nicht? Wie und wann sollte der Schalter denn zurückgesetzt werden, damit die Regel wieder ausgelöst werden kann?

Schönen Gruß

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

Re: Szenen und Regeln sammeln

Beitrag von udo1toni »

Das kommt auf den Auslöser an :)
Wenn die Szene über ein "Item received command" getriggert wird, musst Du lediglich den gewünschten Befehl senden.
Entgegen der üblichen Vorstellung hat ein Item zwar einen Status, dieser hat jedoch nicht zwingend etwas mit dem Befehl zu tun, soll heißen, ich kann ein Command ON oder OFF an ein Item senden, ganz unabhängig davon, welchen Status dieses Item hat.
openHAB wird gewöhnlich den Status eines Items immer passend zum gesendeten Befehl setzen, das kann man aber verhindern (Metadata autoupdate=false), dann wird der Status des Items gar nicht gesetzt, solange es keine externe Quelle für den Status gibt.

Wenn Du die Scene über die UI auslöst, musst Du lediglich einen Knopf in die UI einbauen, der immer den entsprechenden Befehl sendet.

Toggle als Widget ist hingegen nicht gut geeignet, eben weil fälschlich ein Status angezeigt wird :)
Wenn Du dennoch ein Toggle Widget verwenden willst, kannst Du in der Rule einfach einen Befehl derSchalter.postUpdate(OFF) mit einbauen, dann wird dautoamtisch sofort zurück getoggelt.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Proton
Beiträge: 93
Registriert: 10. Okt 2022 12:13
Answers: 4
Wohnort: Oberbergisches

Re: Szenen und Regeln sammeln

Beitrag von Proton »

udo1toni hat geschrieben: 11. Nov 2023 01:30 ich kann ein Command ON oder OFF an ein Item senden, ganz unabhängig davon, welchen Status dieses Item hat.
Das war ein Denkfehler von mir, weil ich auch einen Schalter einrichten möchte, der den aktuellen Status der Mediabox repräsentiert.
udo1toni hat geschrieben: 11. Nov 2023 01:30 Wenn Du die Scene über die UI auslöst, musst Du lediglich einen Knopf in die UI einbauen, der immer den entsprechenden Befehl sendet.
Ich habe jetzt für jede Regel, die ich über Sprachsteuerung oder Spracheingabe steuern können möchte, ein Switch-Item angelegt.
Habe ich das so richtig verstanden?
udo1toni hat geschrieben: 11. Nov 2023 01:30 Toggle als Widget ist hingegen nicht gut geeignet, eben weil fälschlich ein Status angezeigt wird :)
Wenn Du dennoch ein Toggle Widget verwenden willst, kannst Du in der Rule einfach einen Befehl derSchalter.postUpdate(OFF) mit einbauen, dann wird dautoamtisch sofort zurück getoggelt.
Kann ich damit den oben genannten Schalter umsetzten, der den Status der Mediabox darstellt bzw. was ist die beste Möglichkeit um das umzusetzen?

Zudem habe eine weitere Frage:
Bevor ich die Steckdose ausschalten kann, muss sicher gestellt sein, dass die Mediabox runtergefahren ist. Im Moment warte ich einfach eine gewissen Zeit. Gibt es eine elegantere Art zu überprüfen ob ein Ereignis eingetreten ist, als Polling?

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

Re: Szenen und Regeln sammeln

Beitrag von udo1toni »

Du vermischst Da Dinge miteinander...

Eine Szene wird ausgelöst. Sie hat keinen Zustand.
Ein Switch Item hat einen Zustand und kann einen Befehl senden (bzw. zwei unterschiedliche Befehle, eben ON oder OFF)

Die Konfiguration läuft folgendermaßen ab:
Schritt 1: Es wird das benötigte Binding installiert.
Schritt 2: Es wird pro Hardware ein Thing angelegt. Falls das Binding einen Bus anbindet, muss natürlich zunächst ein Thing für den Bus angelegt werden (dieses Thing wird dann als Bridge bezeichnet)
Schritt 3: Für jede Eigenschaft wird ein Channel angelegt. Ein Channel kann dabei nur lesbar, nur schreibbar oder schreib- und lesbar sein.
Beispiel: Ein Thermostat liefert die gemessene Temperatur als nur nur lesbaren Wert (Channel 1). Die Solltemperatur kann gelesen und geschrieben werden (Channel 2). Ein geöffnetes Fenster kann als Befehl an den Thermostaten gesendet werden (Channel 3).

Je nach Binding kann es auch sein, dass die Channel automatisch angelegt werden.

Schritt 4: für jeden verwendeten Channel wird ein Item angelegt, welches zum einen den Status des Channels hält und zum anderen Befehle an den Channel sendet (gegeben, dass der Channel schreib- und lesbar ist).

Im Fall der Mediabox hast Du also z.B. ein Switch Item, deren Zustand ON oder OFF ist (je nachdem, ob die Box läuft oder eben nicht) und deren ON-Befehl ein WOL auslöst (zum Einchalten der Box) während der OFF-Befehl z.B. einen API Call gegen die Mediabox sendet, womit über die Steuerschnittstelle in der Mediabox der Befehl zum Ausschalten ausgelöst wird.

Das Toggle Widget kannst Du in dem Zusammenhang problemlos nutzen, Die muss aber klar sein, dass ein ON-Befehl eventuell mehrere Sekunden benötigt, bis er sich überhaupt auswirkt. Evtl. wurde dann zwischenzeitlich der Status wieder angezeigt, so dass der Switch in die OFF-Stellung zurück springt. Dennoch wurde der Befehl erfolgreich abgesetzt, und meinetwegen 20 Sekunden später springt der Schalter wieder zurück auf ON. Das Gleiche kann dann sinngemäß auch für den Ausschaltbefehl gelten. Ich habe für meine VDR Rechner so umgesetzt.

Ob die Mediabox läuft, kannst Du z.B. über das network Binding heraus finden. dabei wird für jedes Gerät ein networkpingdevice angelegt, über welches dann ON (Ping wird beantwortet) oder OFF (Ping wird nicht beantwortet) signalisiert wird.
Naturgemäß gibt es hier auch eine gewisse Totzeit, weil der Ping halt nur z.B. alle 30 Sekunden geschickt wird.

Wenn man fortgeschrittene Technik einsetzt :) kann man auch den Router/DHCP Server fragen, ob ein Lease freigegeben wurde, ich meine, dass z.B. Ubiquiti das kann, aber der Ping ist die einfache Variante, die eigentlich immer funktionieren sollte.
Übrigens kann man über das selbe Thing dann das Gerät auch per WOL einschalten.
Beispiel als Textkonfiguration:

Code: Alles auswählen

Thing network:pingdevice:vdrserv "NH vdr Server" @ "Ping" [ hostname="192.168.1.25", port=0, retry=1, timeout=5000, refreshInterval=60000, macAddress="01:23:45:67:89:ab" ]
Es wird alle 60 Sekunden ein Ping geschickt, wird dieser nach 5 Sekunden nicht beantwortet, gilt das Gerät als OFF. Sendet man ON anden Channel, so wird über die MAC 01:23:45:67:89:ab ein WOL Paket abgesetzt.

Wenn Du mehrere Geräte automatisch gemeinsam einschalten willst,definierst Du eine Regel, welche alle Einschaltbefehle beinhaltet. Wie Du die Regel auslöst, ist egal. Die Regel hat aber keinen Zustand, Du kannst allenfalls die Zustände der beteiligten Geräte als Indikator heranziehen, aber bitte nicht, um eine Szene als "aktiv" zu kennzeichnen, sondern allenfalls, um darauf besierend Entscheidungen zu treffen (z.B. ob es nötig ist, ein Gerät auszuschalten.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Proton
Beiträge: 93
Registriert: 10. Okt 2022 12:13
Answers: 4
Wohnort: Oberbergisches

Re: Szenen und Regeln sammeln

Beitrag von Proton »

Sorry, mir ist total durchgegangen, dass ich nicht geantwortet habe.
Vielen Dank für die Antwort. Die Überprüfung mit dem Ping werde ich bei Gelegenheit umsetzen, es funktioniert ja auch so. :)

Schönen Gruß

Antworten