HmIP-PS / PS-2 - fehlerhafter Status in Programmen
Verfasst: 27.03.2024, 00:06
Hallo!
Habe Problem!
Hintergrund:
Mein Bruder und ich möchten die Amateurfunkstation in unserem Wochenendhaus so umgestalten, dass sie auch remote bedienbar wird. Dazu wird auch ein wesentlicher Teil per HM geschaltet, konkret mit einem HmIP-PS. Um in einer Visualisierung dem jeweilig anderen anzeigen zu können, ob die Station gerade lokal oder remote benutzt wird, werden die virtuellen Kanäle und eine Systemvariable genutzt, die den Status des Aktors abbildet. Hier ist mir aufgefallen, dass auch bei lokaler Bedienung "remote" angezeigt wird. Da das Projekt erst im Entstehen ist und ich z.B. einem Raspi mit einem kalten Abschalten nicht den Boden unter den Füßen wegziehen möchte, habe ich das nun zu Hause auf der Test-CCU mit einem HmIP-PS-2 nachgebildet.
Vorbemerkung:
Jeweils aktuelle Raspberrymatic-Version (3.75.6.20240316) und aktuelle Firmware der Aktoren (PS & PS-2: 2.24.2).
Der Status des Aktors, genauer gesagt der ersten beiden virtuellen Kanäle soll auf eine Systemvariable abgebildet werden.
Dabei ist sowohl der dritte virtuelle Kanal (immer aus, ODER-verknüpft), als auch die Priorität der ersten beiden Kanäle zu vernachlässigen.
Die Systemvariable ist eine Werteliste mit den Werten "undefiniert;aus;ein lokal;ein remote" und wird protokolliert.
Alle Varianten wurden durch Löschen des vorigen Programms und neu Anlegen (ohne Editieren) des nächsten Programms durchgeführt.
Erster Test:
Über die WebUI wird zwei Mal abwechselnd der erste VK (lokal) ein- und ausgeschaltet, dann der zweite VK (remote), einige Sekunden Pause zwischen den Schaltbefehlen.
Das zugehörige Protokoll: Hier fällt auf, dass trotz Auslösen auf Änderung "lokal ein" zwei Mal hintereinander protokolliert wird.
Da ich schon einmal einen merkwürdigen Fehler durch Umkehren der Logik nachweisen/beheben konnte, das zweite Programm
Zweiter Test:
Einfach nur die Abfrage lokal/remote umgekehrt. Im Protokoll fällt auf, dass nun der "remote"-Eintrag doppelt geführt wird (erste Bedingung im Programm!)
Dritter Test:
Programm komplett umgestellt und auch den Statuskanal genutzt.
Ganz besonders sei hier nochmals hingewiesen, dass auf den 3. VK keine Rücksicht genommen wird!
Tja - Bingo! - "ein lokal - ein remote" in kurzer Abfolge, obwohl der 2. VK definitiv nicht eingeschaltet ist! Die SV stellt natürlich den Status falsch dar!
Und auch hier wird wieder die erste Abfrage im Programm, das "aus" doppelt protokolliert!
Ergänzung:
Dieses dritte Programm ist aktuell auch am produktivem System in Betrieb. Auffällig hier ist das Systemprotokoll:
Trotz "Auslösen auf Änderung" wird der Status "aus" etwa jede Stunde ins Protokoll geschrieben, obwohl sich der Status nicht geändert hat.
Fragen:
Warum wird - auffällig! - die erste Bedingung im Programm doppelt protokolliert?
Warum wird der Status "ein remote" angezeigt, obwohl der virtuelle Kanal definitiv aus ist?
Warum wird "aus" etwa jede Stunde (zyklische Statusmeldung!) protokolliert, obwohl sich am Status nicht geändert hat?
And last but not least: Wie lässt sich das ganze beheben?!
Roland
Habe Problem!
Hintergrund:
Mein Bruder und ich möchten die Amateurfunkstation in unserem Wochenendhaus so umgestalten, dass sie auch remote bedienbar wird. Dazu wird auch ein wesentlicher Teil per HM geschaltet, konkret mit einem HmIP-PS. Um in einer Visualisierung dem jeweilig anderen anzeigen zu können, ob die Station gerade lokal oder remote benutzt wird, werden die virtuellen Kanäle und eine Systemvariable genutzt, die den Status des Aktors abbildet. Hier ist mir aufgefallen, dass auch bei lokaler Bedienung "remote" angezeigt wird. Da das Projekt erst im Entstehen ist und ich z.B. einem Raspi mit einem kalten Abschalten nicht den Boden unter den Füßen wegziehen möchte, habe ich das nun zu Hause auf der Test-CCU mit einem HmIP-PS-2 nachgebildet.
Vorbemerkung:
Jeweils aktuelle Raspberrymatic-Version (3.75.6.20240316) und aktuelle Firmware der Aktoren (PS & PS-2: 2.24.2).
Der Status des Aktors, genauer gesagt der ersten beiden virtuellen Kanäle soll auf eine Systemvariable abgebildet werden.
Dabei ist sowohl der dritte virtuelle Kanal (immer aus, ODER-verknüpft), als auch die Priorität der ersten beiden Kanäle zu vernachlässigen.
Die Systemvariable ist eine Werteliste mit den Werten "undefiniert;aus;ein lokal;ein remote" und wird protokolliert.
Alle Varianten wurden durch Löschen des vorigen Programms und neu Anlegen (ohne Editieren) des nächsten Programms durchgeführt.
Erster Test:
Über die WebUI wird zwei Mal abwechselnd der erste VK (lokal) ein- und ausgeschaltet, dann der zweite VK (remote), einige Sekunden Pause zwischen den Schaltbefehlen.
Das zugehörige Protokoll: Hier fällt auf, dass trotz Auslösen auf Änderung "lokal ein" zwei Mal hintereinander protokolliert wird.
Da ich schon einmal einen merkwürdigen Fehler durch Umkehren der Logik nachweisen/beheben konnte, das zweite Programm
Zweiter Test:
Einfach nur die Abfrage lokal/remote umgekehrt. Im Protokoll fällt auf, dass nun der "remote"-Eintrag doppelt geführt wird (erste Bedingung im Programm!)
Dritter Test:
Programm komplett umgestellt und auch den Statuskanal genutzt.
Ganz besonders sei hier nochmals hingewiesen, dass auf den 3. VK keine Rücksicht genommen wird!
Tja - Bingo! - "ein lokal - ein remote" in kurzer Abfolge, obwohl der 2. VK definitiv nicht eingeschaltet ist! Die SV stellt natürlich den Status falsch dar!
Und auch hier wird wieder die erste Abfrage im Programm, das "aus" doppelt protokolliert!
Ergänzung:
Dieses dritte Programm ist aktuell auch am produktivem System in Betrieb. Auffällig hier ist das Systemprotokoll:
Trotz "Auslösen auf Änderung" wird der Status "aus" etwa jede Stunde ins Protokoll geschrieben, obwohl sich der Status nicht geändert hat.
Fragen:
Warum wird - auffällig! - die erste Bedingung im Programm doppelt protokolliert?
Warum wird der Status "ein remote" angezeigt, obwohl der virtuelle Kanal definitiv aus ist?
Warum wird "aus" etwa jede Stunde (zyklische Statusmeldung!) protokolliert, obwohl sich am Status nicht geändert hat?
And last but not least: Wie lässt sich das ganze beheben?!
Roland