Hallo zusammen,
ich bin gerade dabei ein Binding für eine Relaisschaltung mit Eingängen für die Hutschiene zu schreiben (NET-PwrCtrl HUT: ANEL-Elektronik NET-PwrCtrl ), aber ich vermute es wird auch mit den anderen schaltbaren Steckdosen von Anel funktionieren ( ANEL-Elektronik NET-PwrCtrl ). Die Kommunikation geschieht über UDP, das ganze funktioniert soweit auch ganz prima. Naja, fast.
Beim Startup von openHAB wird das Binding über update(Dictionary) konfiguriert und wenn etwas geschaltet wird, bekommt das Binding das auch über ein entsprechendes UDP-Paket mittels einen UDP-Listener-Threads mit. Zusätzlich als AbstractActiveBinding pollt es auch regelmäßig den Zustand, für den Fall dass etwas über UDP mal nicht ankommen sollte oder das Netzwerk unterbrochen war usw. Intern hält das Binding den Zustand der Relais in einer Map, sodass nur tatsächliche Zustandsänderungen als Events an den openHAB Bus gehen.
Das Problem ergibt sich jetzt, sobald openHAB die items neu einliest, z.B. wenn die items-Datei geändert wurde. Dann ist der Zustand aller Switch-items nämlich unspecified und mein Binding bekommt nicht mit dass das so ist.
Meine Frage: Gibt es einen Hook damit mein Binding mitbekommt, sobald der Zustand resettet wurde, sodass es dann entsprechende Updates an den Bus schicken kann? Oder was ist hier der gängige Weg? Die startup-Rules werden ja nur beim Startup ausgeführt und nicht beim neu Einlesen der items?
Zweite Frage: Das Binding würde ich gerne contributen, habe aber noch keinen offiziellen Weg gefunden. Ist das geschickteste, das über ein Github-Ticket zu tun?
ich bin gerade dabei ein Binding für eine Relaisschaltung mit Eingängen für die Hutschiene zu schreiben (NET-PwrCtrl HUT: ANEL-Elektronik NET-PwrCtrl ), aber ich vermute es wird auch mit den anderen schaltbaren Steckdosen von Anel funktionieren ( ANEL-Elektronik NET-PwrCtrl ). Die Kommunikation geschieht über UDP, das ganze funktioniert soweit auch ganz prima. Naja, fast.
Beim Startup von openHAB wird das Binding über update(Dictionary) konfiguriert und wenn etwas geschaltet wird, bekommt das Binding das auch über ein entsprechendes UDP-Paket mittels einen UDP-Listener-Threads mit. Zusätzlich als AbstractActiveBinding pollt es auch regelmäßig den Zustand, für den Fall dass etwas über UDP mal nicht ankommen sollte oder das Netzwerk unterbrochen war usw. Intern hält das Binding den Zustand der Relais in einer Map, sodass nur tatsächliche Zustandsänderungen als Events an den openHAB Bus gehen.
Das Problem ergibt sich jetzt, sobald openHAB die items neu einliest, z.B. wenn die items-Datei geändert wurde. Dann ist der Zustand aller Switch-items nämlich unspecified und mein Binding bekommt nicht mit dass das so ist.
Meine Frage: Gibt es einen Hook damit mein Binding mitbekommt, sobald der Zustand resettet wurde, sodass es dann entsprechende Updates an den Bus schicken kann? Oder was ist hier der gängige Weg? Die startup-Rules werden ja nur beim Startup ausgeführt und nicht beim neu Einlesen der items?
Zweite Frage: Das Binding würde ich gerne contributen, habe aber noch keinen offiziellen Weg gefunden. Ist das geschickteste, das über ein Github-Ticket zu tun?
Kommentar