Seite 3 von 6

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

Verfasst: 11.07.2022, 21:09
von jmaus
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.

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

Verfasst: 11.07.2022, 21:12
von jmaus
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.

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

Verfasst: 11.07.2022, 22:07
von Xel66
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! :-))

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

Verfasst: 11.07.2022, 22:19
von jp112sdl
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.

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

Verfasst: 11.07.2022, 22:35
von Baxxy
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?

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

Verfasst: 11.07.2022, 22:59
von Baxxy
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.

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

Verfasst: 11.07.2022, 23:19
von Xel66
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

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

Verfasst: 11.07.2022, 23:22
von jmaus
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 :)

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

Verfasst: 11.07.2022, 23:31
von Baxxy
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);
            }

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

Verfasst: 12.07.2022, 06:22
von jp112sdl
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.