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

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

Moderatoren: jmaus, Co-Administratoren

MichaelN
Beiträge: 9608
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1612 Mal

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

Beitrag von MichaelN » 12.07.2022, 19:58

Baxxy hat geschrieben:
11.07.2022, 23:31
Wie geschrieben erstmal nur für "SWITCH_TRANSMITTER".
Das hat auf jeden Fall Seiteneffekte auch für nicht Switch Transmitter:

alt:
Unbenannt.JPG
neu:
Unbenannt2.JPG
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Baxxy
Beiträge: 10710
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2190 Mal

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

Beitrag von Baxxy » 12.07.2022, 20:14

MichaelN hat geschrieben:
12.07.2022, 19:58
Das hat auf jeden Fall Seiteneffekte auch für nicht Switch Transmitter:
Komisch. Habe ich da was versemmelt?
Musste C&P machen weil sich der Nightly nicht patchen ließ.

Außerdem ist die "Sprache" (java-script / html ???) gar nicht meins.
Aber laut Dokumentation sollte mit...

Code: Alles auswählen

if(cType == "SWITCH_TRANSMITTER") {
                Write('<span style="background-color: #FFFF00;">STATUS&nbsp;PENDING</span>');
              }
            } else {
              Write(sLastTime);
            } 
... das Pending aktuell nur bei einem "SWITCH_TRANSMITTER" angezeigt werden.
Alles andere läuft doch in den else-Zweig, oder nicht?

Jens?

MichaelN
Beiträge: 9608
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1612 Mal

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

Beitrag von MichaelN » 12.07.2022, 20:18

Baxxy hat geschrieben:
12.07.2022, 20:14
Alles andere läuft doch in den else-Zweig, oder nicht?
Würde ich auch sagen. Daher wäre meine Vermutung, das sLastTime nicht richtig gesetzt wird.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Baxxy
Beiträge: 10710
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2190 Mal

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

Beitrag von Baxxy » 12.07.2022, 20:22

MichaelN hat geschrieben:
12.07.2022, 20:18
das sLastTime nicht richtig gesetzt wird
Daran wurde nicht gefummelt.
Der Wert kommt aus der Funktion getLastTime() in der /www/rega/esp/system.fn
Kann es sein das nur nicht "aktualisiert wird"? Hast du mal refreshed oder reloaded?

Code: Alles auswählen

function ::getLastTime()
{
  integer iLast = 0;
  string sLastTime = "";
  integer iSeconds = 0;
  object obj = dom.GetObject(system.GetVar("cId"));
  if(obj)
  {
    if( obj.IsTypeOf( OT_CHANNEL ) )
    {
      sLastTime = obj.LastDPActionTime();
      iSeconds = obj.LastDPActionTimeSeconds();
    }
    if( obj.IsTypeOf( OT_DP ) )
    {
      sLastTime = obj.Timestamp();
      iSeconds = obj.TimestampSeconds();
    }
    if( obj.IsTypeOf( OT_PROGRAM ) )
    {
      sLastTime = obj.ProgramLastExecuteTime();
      iSeconds = obj.ProgramLastExecuteTimeSeconds();
    }
    if( iSeconds == 0 )
    {
      sLastTime = "";
    }
    else
    {
      sLastTime = sLastTime.Format("%d.%m.%Y %H:%M:%S");
    }
  }
}

MichaelN
Beiträge: 9608
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1612 Mal

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

Beitrag von MichaelN » 12.07.2022, 20:27

Baxxy hat geschrieben:
12.07.2022, 20:22
Kann es sein das nur nicht "aktualisiert wird"? Hast du mal refreshed oder reloaded?
Ein Browser-Refresh ändert nichts dran. Und die CCU neu starten wollte ich nicht, gerade um zu sehen welche Effekte das im laufenden Betrieb hat.
Da ein Austausch der Datei aber sofort die neue Anzeige zum Vorschein bringt, vermute ich mal das es kein Reload Problem ist.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Baxxy
Beiträge: 10710
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2190 Mal

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

Beitrag von Baxxy » 12.07.2022, 20:32

Und wenn du das Original von Jens nimmst?
FROLL/BROLL haben für den Statuskanal: "SHUTTER_TRANSMITTER" und für die 3 anderen "SHUTTER_VIRTUAL_RECEIVER".
Sollten also m.E. völlig unberührt bleiben.

MichaelN
Beiträge: 9608
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1612 Mal

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

Beitrag von MichaelN » 12.07.2022, 20:36

Ich glaube ich habe es. DU hast

Code: Alles auswählen

if((iSeconds == 0) && (dpSeconds == 0)) {
geändert zu:

Code: Alles auswählen

if(dpSeconds == 0) {
DIESE Änderung überblicke ich nicht. Aber wenn ich die Codezeile von Jens wieder einsetze, dann bekomme ich die "alten" Daten angezeigt.

D.h. ich habe jetzt:

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((iSeconds == 0) && (dpSeconds == 0))  {
              string cType = chn.HssType();
			  if(cType == "SWITCH_TRANSMITTER") {
                Write('<span style="background-color: #FFFF00;">STATUS&nbsp;PENDING</span>');
              }
            } else {
              Write(sLastTime);
            }
Und das Ergebnis:
Unbenannt.JPG
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Baxxy
Beiträge: 10710
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2190 Mal

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

Beitrag von Baxxy » 12.07.2022, 20:41

Das ist diese "ungewohnte Logik"... https://wiki.selfhtml.org/wiki/JavaScri ... llt%20ist.

Ich teste das mal. :)

MichaelN
Beiträge: 9608
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1612 Mal

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

Beitrag von MichaelN » 12.07.2022, 20:44

Und ich vermute das ganze wird dauerhaft nur mit einer Positiv-Liste funktionieren.

Beim Durchschauen bemerkt: Mein Statusdisplay HmIP-WRCD, das mehrmals täglich aktualisiert wird, zeigt keinen Zeitstempel.
Im SDV kontrolliert: Kanal 3 (ACOUSTIC_DISPLAY_RECEIVER) zeigt LastDPActionTimeSeconds = 0 an
Die anderen Kanäle zeigen "vernünftige" Werte an, die sind aber idR ausgeblendet.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Baxxy
Beiträge: 10710
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2190 Mal

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

Beitrag von Baxxy » 17.07.2022, 23:21

Durch die Homematic(IP) Local - Integration, die auch ein bisschen Testkaninchen war :wink: , hat sich nun gezeigt das das Thema komplexer ist als es schien.
Meine Aussage das die Zeitstempel aller Datenpunkte "0" sind war nicht korrekt, das gilt (soweit ich das überblicke) wohl nur für IP.

Nach intensiver Recherche meinerseits, und dem Feedback bei Homematic(IP) Local, hat sich gezeigt das die problematischeren Geräte die guten alten HM-Teile sind.

Diese senden teilweise keine Events und aktualisieren damit ihren Zeitstempel nicht (speziell die 0er Kanäle die aber hier eher unrelevant sind) wenn nicht ReportValueUsage() aktiviert wurde.
Als Beispiel sei hier mal mein HM-Sen-MDIR-WM55 mit "MOTION" genannt der 24h nicht bewegendes zu melden hatte und damit die ganze Zeit "unknown" bzw. im "STATUS PENDING" war.
Mit IP Geräten hatte ich jetzt keine Probleme, habe aber auch nicht jede Kategorie zum testen hier.
Kann auch sein das bei manchen IP-Geräten (Micha's WRCD) erstmal ReportValueUsage() aktiviert werden müsste damit die Events bei der Zentrale ankommen, aber da bin ich kein Freund von daher würde ich solche "unwichtigen" Sachen auf die Negativliste setzen.

Wenn man das also umsetzen möchte dann muss das m.E. selektiv erfolgen.
Als wichtig erachte ich primär den Status von Schaltaktoren und Fensterkontakten. Danach dann die analogen Sachen wie Temperaturen usw, obwohl man bei denen ja sieht das da was nicht stimmen kann.

Antworten

Zurück zu „RaspberryMatic“