Das versteht sich von selbst.
Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
Moderatoren: jmaus, Co-Administratoren
- jmaus
- Beiträge: 9819
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 459 Mal
- Danksagung erhalten: 1856 Mal
- Kontaktdaten:
Re: Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
- jmaus
- Beiträge: 9819
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 459 Mal
- Danksagung erhalten: 1856 Mal
- Kontaktdaten:
Re: Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
So, anhand der aktuellsten Erkenntnisse von Baxxy bzgl. Nutzung von .TimestampSeconds() auf einem Datenpunkt des Kanales vs. LastDPActionTimeSeconds() auf den gesamten Kanal hab ich mal meinen Patch etwas angepasst. Siehe hier:
Wer mag kann das ja mal auf die WebUI loslassen und damit entsprechend testen ob nun der Pending status korrekt für Kanäle angezeigt wird und dann auch bei Aktualisierung auch entsprechend wieder verschwindet.
Code: Alles auswählen
--- /www/rega/pages/tabs/control/hdevichannels.htm.orig
+++ /www/rega/pages/tabs/control/hdevichannels.htm
@@ -246,10 +246,29 @@
Write("<table style='width:100%;'>");
Write("<tr><td class='CLASS03502'><span id='tmc"#chn.ID()#"' name='timeStamp'>");
+ integer dpSeconds = -1;
+ string tmp = "";
+ foreach(tmp, chn.DPs()) {
+ object oDP = dom.GetObject(tmp);
+ if(oDP) {
+ dpSeconds = oDP.TimestampSeconds();
+ if(dpSeconds == 0) {
+ break;
+ }
+ }
+ }
integer cId = chn.ID();
string sLastTime = "";
+ string iSeconds = -1;
Call("/esp/system.fn::getLastTime()");
- Write(sLastTime);
+ if((iSeconds == 0) && (dpSeconds == 0)) {
+ string cType = chn.HssType();
+ if((cType != "VIRTUAL_KEY") && (cType != "KEY_TRANSCEIVER") && (cType != "KEY") && (cType != "SYSTEM")) {
+ Write('<span style="background-color: #FFFF00;">STATUS PENDING</span>');
+ }
+ } else {
+ Write(sLastTime);
+ }
Write("</span></td></tr>");
Write( '<tr><td style="text-align:center;" class="CLASS03502">' );
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
-
- Beiträge: 14085
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 580 Mal
- Danksagung erhalten: 1492 Mal
Re: Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
Ich gebe mal wieder den "Advocatus Diaboli" (Mitleser, die damit noch nichts anfangen können, bitte Füße noch stillhalten und informieren). Man möge mich nicht gleich steinigen, sondern meine Zeilen nur als zusätzliche Gedanken wahrnehmen. Ich bin auch nicht grundsätzlich gegen Weiterentwicklung - im Gegenteil -, nur habe ich bei meinen Betrachtungen immer mit einem Auge das mögliche Fallback auf eine Originalfirmware im Hinterkopf, sollte z.B. Raspberrymatic aus irgendeinem Grund nicht mehr weiterentwickelt werden. Tote Entwicklungsstränge für verschiedenste Virtualisierungslösungen, Addons etc. gibt es ja ausreichend (und auch in anderen außer-HM-Bereichen ist sowas "üblich"). Solange die Abweichungen in RM nur kosmetischer Natur sind und im Hintergrund trotzdem korrekt gehandlet werden (Beispiel: negierte Abfragen), alles kein Problem. Wenn es allerdings aktiv in Programmen genutzte Datenpunkte sind, die im Original oder Alternativsystemen nicht existieren, dann wird es langsam tricky, weil das potenziell funktionsunfähige Programmierungen hinterlässt.
Ich halte das für ein druchaus verzichtbares Feature. Wer sich mit dem System auseinandersetzt, sollte wissen, dass Status teilweise mit Defaultwerten besetzt werden und erst im Rahmen der zyklischen Statusmeldungen auf den aktuellen Stand gebracht werden. Das kann man auch ohne Programmieraufwand eindringlicher kommunizieren. Und die Tatsache, dass das System nach einem Update rebootet wird, sollte auch bekannt vorausgesetzt werden. Ferner sollten Anwender wissen, wenn sie ihr System gerade selbst aus irgeneinem Grund rebootet haben. Denen ist auch damit nicht wirklich geholfen. Eine Startmeldung beim ersten Login in die WebUI, dass angezeigte Status noch nicht den tatsächlichen entsprechen, wenn die Aktualisierungszeit noch nicht abgelaufen ist, wäre deutlich einfacher. Die aus dieser Entwicklung resultierenden Features werden sowieso nur advanced User einsetzen. Die große Masse der WebUI-Handbuch-Lektüren-Verweigerer wird diese Feature eher nicht erreichen Maximal in irgendwelchen Nachklickanleitungen, die die aber dann nicht nachvollziehen (ähnlich der Anwendung des Anwesenheitsvariablen-Workarounds). Das ist kein Vorurteil, sondern mein tägliche Beobachtung hier im Forum.
Die Sicherung gegen Fehlauslösen durch ggf. falsche Status gibt es ja auch schon mit diesem unsäglichen Anwesenheitsvariablen-Workaround (unsäglich, wenn global im ganzen System sinnfrei eingesetzt - vereinzelt und zielführend genutzt aber recht nützlich!). Zumindest für die Erkennung eines Reboots ist es ja zielführend. Ferner entfernt sich Raspberrymatic damit funktionell weiter von der Originalfirmware, wenn diese zusätzlich generierten Datenpunkte in Automatisierungen verwendet werden. Es gibt schon einige Features in RM, die nicht in die CCU-FW Eingang gefunden haben (z.B. WebUI-Patches von jp112sdl).
Just my2ct.
Gruß Xel66 (und ... peace! )
Ich halte das für ein druchaus verzichtbares Feature. Wer sich mit dem System auseinandersetzt, sollte wissen, dass Status teilweise mit Defaultwerten besetzt werden und erst im Rahmen der zyklischen Statusmeldungen auf den aktuellen Stand gebracht werden. Das kann man auch ohne Programmieraufwand eindringlicher kommunizieren. Und die Tatsache, dass das System nach einem Update rebootet wird, sollte auch bekannt vorausgesetzt werden. Ferner sollten Anwender wissen, wenn sie ihr System gerade selbst aus irgeneinem Grund rebootet haben. Denen ist auch damit nicht wirklich geholfen. Eine Startmeldung beim ersten Login in die WebUI, dass angezeigte Status noch nicht den tatsächlichen entsprechen, wenn die Aktualisierungszeit noch nicht abgelaufen ist, wäre deutlich einfacher. Die aus dieser Entwicklung resultierenden Features werden sowieso nur advanced User einsetzen. Die große Masse der WebUI-Handbuch-Lektüren-Verweigerer wird diese Feature eher nicht erreichen Maximal in irgendwelchen Nachklickanleitungen, die die aber dann nicht nachvollziehen (ähnlich der Anwendung des Anwesenheitsvariablen-Workarounds). Das ist kein Vorurteil, sondern mein tägliche Beobachtung hier im Forum.
Die Sicherung gegen Fehlauslösen durch ggf. falsche Status gibt es ja auch schon mit diesem unsäglichen Anwesenheitsvariablen-Workaround (unsäglich, wenn global im ganzen System sinnfrei eingesetzt - vereinzelt und zielführend genutzt aber recht nützlich!). Zumindest für die Erkennung eines Reboots ist es ja zielführend. Ferner entfernt sich Raspberrymatic damit funktionell weiter von der Originalfirmware, wenn diese zusätzlich generierten Datenpunkte in Automatisierungen verwendet werden. Es gibt schon einige Features in RM, die nicht in die CCU-FW Eingang gefunden haben (z.B. WebUI-Patches von jp112sdl).
Just my2ct.
Gruß Xel66 (und ... peace! )
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
Sind sie - Es geht hier nur um das Hinzufügen eines Anzeige-Labels in "Status und Bedienung". Das beeinträchtigt keinerlei Kompatibilität zur CCU3 Firmware.
- Baxxy
- Beiträge: 10648
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 597 Mal
- Danksagung erhalten: 2180 Mal
Re: Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
Das braucht funktionstechnisch noch Feinschliff.
Zum einen braucht das nicht auf jedem Kanal angezeigt werden, wie geschrieben reicht bei IP-Schaltaktoren der jeweilige Statuskanal.
Dann ist aufgefallen das die Pending-Anzeige da ist obwohl der DP vom Kanal einen aktuellen Zeitstempel hat. Sie verschwindet erst wenn eine Änderung stattfand also der Zeitstempel "letzte Änderung" erscheint. Das bedeutet dann auch das beim Wochenprogramm-Kanal immer Pending ansteht wenn man da nie was verstellt. Kanal 1 & 3 zeigen hier fälschlicherweise Pending obwohl die einen aktuellen Zeitstempel haben.
Wie oft wird denn das abgefragt? Bei jedem Aufruf des Gerätes? Oder wird die Meldung nur überschrieben wenn ein Zeitstempel bei letzte Änderung eingetragen wird?
Zum einen braucht das nicht auf jedem Kanal angezeigt werden, wie geschrieben reicht bei IP-Schaltaktoren der jeweilige Statuskanal.
Dann ist aufgefallen das die Pending-Anzeige da ist obwohl der DP vom Kanal einen aktuellen Zeitstempel hat. Sie verschwindet erst wenn eine Änderung stattfand also der Zeitstempel "letzte Änderung" erscheint. Das bedeutet dann auch das beim Wochenprogramm-Kanal immer Pending ansteht wenn man da nie was verstellt. Kanal 1 & 3 zeigen hier fälschlicherweise Pending obwohl die einen aktuellen Zeitstempel haben.
Wie oft wird denn das abgefragt? Bei jedem Aufruf des Gerätes? Oder wird die Meldung nur überschrieben wenn ein Zeitstempel bei letzte Änderung eingetragen wird?
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
- Baxxy
- Beiträge: 10648
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 597 Mal
- Danksagung erhalten: 2180 Mal
Re: Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
Ok, ich habe das erstmal etwas abgespeckt und die Pending Anzeige auf die Statuskanäle beschränkt.
Dazu die Bedingung "LastDPAction Time vom Kanal" = 0 rausgeschmissen. Ist eh 0 beim Start und allgemein nicht aussagekräftig zumindest bei Schaltaktoren.
Klappt jetzt erstmal ganz gut.
So sieht jetzt eine PCBS2 nach Reboot aus: Und ganz normal nachdem sie sich gemeldet hat: Bei der Filterung (wenn gewünscht) würde ich eher über eine Positiv-Liste (nur erlaubte) gehen, macht m.E. das ganze übersichtlicher und einfacher erweiterbar.
Dazu die Bedingung "LastDPAction Time vom Kanal" = 0 rausgeschmissen. Ist eh 0 beim Start und allgemein nicht aussagekräftig zumindest bei Schaltaktoren.
Beim erneuten Aufrufen des Gerätes, Browser reload oder wenn sich was ändert.
Klappt jetzt erstmal ganz gut.
So sieht jetzt eine PCBS2 nach Reboot aus: Und ganz normal nachdem sie sich gemeldet hat: Bei der Filterung (wenn gewünscht) würde ich eher über eine Positiv-Liste (nur erlaubte) gehen, macht m.E. das ganze übersichtlicher und einfacher erweiterbar.
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 14085
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 580 Mal
- Danksagung erhalten: 1492 Mal
Re: Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
Hatte ich auch so wahrgenommen, aber dann ist dieser Status im Grund nur rein informativ wie die RSSI-Info, die man eben auch bewerten muss und dessen "Berechnungsgrundlagen" vielen Nachfragern eben nicht geläufig sind. Ich hatte noch diesen Post mit einem diesbezüglichen Wunsch aus diesem Thread im Hinterkopf. Und ich denke mal, das wäre der eigentliche Nutzen einer solchen Information. Nur wenn der "gespeicherte und angezeigte" Status valide ist (und eben nicht der gesetzte Default-Wert), dann soll ein Programm drauf triggern.
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
- jmaus
- Beiträge: 9819
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 459 Mal
- Danksagung erhalten: 1856 Mal
- Kontaktdaten:
Re: Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
"Zeig her deine Kleider, zeig her deine Schuh..." D.h. Quellcode(änderungen) zeigen ist aussagekräftiger als irgendwelche Screenshots und beschreibungen der ÄnderungenBaxxy hat geschrieben: ↑11.07.2022, 22:59Ok, ich habe das erstmal etwas abgespeckt und die Pending Anzeige auf die Statuskanäle beschränkt.
Dazu die Bedingung "LastDPAction Time vom Kanal" = 0 rausgeschmissen. Ist eh 0 beim Start und allgemein nicht aussagekräftig zumindest bei Schaltaktoren.
Beim erneuten Aufrufen des Gerätes, Browser reload oder wenn sich was ändert.
Klappt jetzt erstmal ganz gut.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
- Baxxy
- Beiträge: 10648
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 597 Mal
- Danksagung erhalten: 2180 Mal
Re: Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
Kommt doch schon...
Hier mal der ganze Block, nen diff bekomme ich gerade nicht hin. Sind ja nur 2 Zeilen geändert.
Wie geschrieben erstmal nur für "SWITCH_TRANSMITTER".
Hier mal der ganze Block, nen diff bekomme ich gerade nicht hin. Sind ja nur 2 Zeilen geändert.
Wie geschrieben erstmal nur für "SWITCH_TRANSMITTER".
Code: Alles auswählen
integer dpSeconds = -1;
string tmp = "";
foreach(tmp, chn.DPs()) {
object oDP = dom.GetObject(tmp);
if(oDP) {
dpSeconds = oDP.TimestampSeconds();
if(dpSeconds == 0) {
break;
}
}
}
integer cId = chn.ID();
string sLastTime = "";
string iSeconds = -1;
Call("/esp/system.fn::getLastTime()");
if(dpSeconds == 0) {
string cType = chn.HssType();
if(cType == "SWITCH_TRANSMITTER") {
Write('<span style="background-color: #FFFF00;">STATUS PENDING</span>');
}
} else {
Write(sLastTime);
}
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.
Ja, so wäre das auch meiner Sicht auch am sinnvollsten. Würde dann aber definitiv zu einer Diskrepanz zur CCU3-Firmware führen.
Die habe ich bei mir "rausgepatcht", weil es das (vollständige Hintergrund-)Laden der Geräteliste bei mir unnötig verzögert.
Wie viele Nachfragen dann bald kommen werden, was "STATUS PENDING" an der Stelle bedeutet, werden wir ja hier im Forum sehen.
Vielleicht könnte Jens noch einen mouseover Hint einbauen, mit einem kurzen lokalisierten Hinweistext, welche Bedeutung dahintersteckt.