Mögliche "STATUS PENDING" Anzeige in WebUI. Feedback erbeten.

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Benutzeravatar
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.

Beitrag von jmaus » 11.07.2022, 21:09

MichaelN hat geschrieben:
11.07.2022, 20:44
jmaus hat geschrieben:
11.07.2022, 19:59
Weil nur dieser "STATUS PENDING“ Text ist vielleicht etwas nichtssagend oder gar verwirrend
Zumindest sollte es bei deutscher Sprache entsprechend übersetzt werden
" Status undefiniert"
Oder
"Aktualisierung ausstehend"
Das versteht sich von selbst.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
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.

Beitrag von jmaus » 11.07.2022, 21:12

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:

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&nbsp;PENDING</span>');
+              }
+            } else {
+              Write(sLastTime);
+            }
             
             Write("</span></td></tr>");
             Write( '<tr><td style="text-align:center;" class="CLASS03502">' );
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.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Xel66
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.

Beitrag von Xel66 » 11.07.2022, 22:07

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! :-))
-------------------------------------------------------------------------------------------
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

jp112sdl
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.

Beitrag von jp112sdl » 11.07.2022, 22:19

Xel66 hat geschrieben:
11.07.2022, 22:07
Solange die Abweichungen in RM nur kosmetischer Natur sind
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.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
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.

Beitrag von Baxxy » 11.07.2022, 22:35

Das braucht funktionstechnisch noch Feinschliff. :wink:

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.
RM_IP_Status-Pending.JPG
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?

Benutzeravatar
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.

Beitrag von Baxxy » 11.07.2022, 22:59

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.
Baxxy hat geschrieben:
11.07.2022, 22:35
Wie oft wird denn das abgefragt?
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:
RM-Pending_PCBS2_nach_Reboot.JPG
Und ganz normal nachdem sie sich gemeldet hat:
RM-Pending_PCBS2_nach_zykl_Meldung.JPG
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.

Xel66
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.

Beitrag von Xel66 » 11.07.2022, 23:19

jp112sdl hat geschrieben:
11.07.2022, 22:19
Sind sie - Es geht hier nur um das Hinzufügen eines Anzeige-Labels in "Status und Bedienung".
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

Benutzeravatar
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.

Beitrag von jmaus » 11.07.2022, 23:22

Baxxy hat geschrieben:
11.07.2022, 22:59
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.
Baxxy hat geschrieben:
11.07.2022, 22:35
Wie oft wird denn das abgefragt?
Beim erneuten Aufrufen des Gerätes, Browser reload oder wenn sich was ändert.

Klappt jetzt erstmal ganz gut.
"Zeig her deine Kleider, zeig her deine Schuh..." ;-) D.h. Quellcode(änderungen) zeigen ist aussagekräftiger als irgendwelche Screenshots und beschreibungen der Änderungen :)
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
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.

Beitrag von Baxxy » 11.07.2022, 23:31

Kommt doch schon... :wink:
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&nbsp;PENDING</span>');
              }
            } else {
              Write(sLastTime);
            }

jp112sdl
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.

Beitrag von jp112sdl » 12.07.2022, 06:22

Xel66 hat geschrieben:
11.07.2022, 23:19
Nur wenn der "gespeicherte und angezeigte" Status valide ist (und eben nicht der gesetzte Default-Wert), dann soll ein Programm drauf triggern.
Ja, so wäre das auch meiner Sicht auch am sinnvollsten. Würde dann aber definitiv zu einer Diskrepanz zur CCU3-Firmware führen.
Xel66 hat geschrieben:
11.07.2022, 23:19
rein informativ wie die RSSI-Info
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.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „RaspberryMatic“