Betriebszeit Rauchwarnmelder HmIP-SWSD

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

Moderatoren: jmaus, Co-Administratoren

Antworten
Benutzeravatar
ElixGer
Beiträge: 8
Registriert: 20.10.2022, 20:34
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal

Betriebszeit Rauchwarnmelder HmIP-SWSD

Beitrag von ElixGer » 20.10.2022, 20:54

Hallo,

ich habe gestern und heute insgesamt drei Rauchmelder HmIP-SWSD an meiner RaspberryMatic in Betrieb genommen. Soweit scheint alles ok zu sein, lediglich die Betriebszeit eines Melders ist mir ins Auge gesprungen. Da der Melder original verpackt war, erscheint mir die angezeigte Betriebszeit von 128 Tagen unwahrscheinlich. Wenn ich mir die Raw-Werte im installierten ccuJack anschaue, finde ich dort für Channel 0, TIME_OF_OPERATION einen Wert von 86400. Da alle anderen Zeitstempel Unix Zeitstempel sind, gehe ich davon aus, dass 86400 ebenso ein Unix Zeitstempel ist bzw. einen Zeitabschnitt darstellt, nämlich genau einen Tag. Da der Melder wie oben bereits erwähnt gestern in Betrieb genommen wurde, ist die Wahrscheinlichkeit eines Rechenfehlers in RaspberryMatic recht hoch. Zum Einsatz kommt die aktuelle Version 3.65.11.20221005 auf einem Raspberry Pi 3. Kann das jemand verifizieren?

TOO_HmIPSWSD.JPG


Danke und Gruß,
Elix

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

Re: Betriebszeit Rauchwarnmelder HmIP-SWSD

Beitrag von Baxxy » 20.10.2022, 22:22

ElixGer hat geschrieben:
20.10.2022, 20:54
Kann das jemand verifizieren?
Das die angezeigte Betriebszeit falsch ist?
Ja, mein SWSD dürfte jetzt ins dritte Jahr gehen und zeigt auch nur 128 Tage.
Genau das Gleiche sagt auch "TIME_OF_OPERATION":
SWSD_ToO.JPG
Vor Ewigkeiten gab es mal eine Diskussion zu dem Thema, finde es aber nicht und weiß auch nicht mehr was das Fazit war.
Gemerkt hatte ich mir nur das kein SWSD seine reale Betriebszeit anzeigt.

Benutzeravatar
ElixGer
Beiträge: 8
Registriert: 20.10.2022, 20:34
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal

Re: Betriebszeit Rauchwarnmelder HmIP-SWSD

Beitrag von ElixGer » 21.10.2022, 16:59

Hi,

danke für deine Antwort, auch wenn sie die gegebenen Details nicht berücksichtigt. Wenn wie bei dir ein Raw-Wert von 128 ausgegeben wird und in RaspberryMatic ein Wert von 128 Tagen ausgegeben wird, bringe ich das in Zusammenhang. Bei mir wurde allerdings ein Wert von 86400 ausgegeben, weshalb die angezeigten 128 Tage nun mal gar keinen Sinn machen. Somit sind deine und meine Situation schon mal nicht identisch.

Zur Sache: Der Melder den ich vor zwei Tagen in Betrieb genommen habe, gibt heute einen Wert von 172800 aus. Die beiden weiteren Melder, gestern in Betrieb genommen und gestern noch mit dem Wert 0 versehen, geben heute 86400 aus. Ich wage deiner Behauptung, es gäbe keine Melder die die Betriebszeit korrekt ausspucken zu widersprechen. Die von meinen Meldern ausgegebenen Werte sind plausibel und nachvollziehbar. Natürlich mag es Melder geben, die falsche Werte liefern, dennoch sollte doch in RaspberryMatic für Melder mit plausiblen Werten auch eine korrekte Anzeige erfolgen.


TOO_HmIPSWSD2.JPG


Gruß,
Elix

onliner
Beiträge: 224
Registriert: 18.03.2014, 10:06
Danksagung erhalten: 19 Mal

Re: Betriebszeit Rauchwarnmelder HmIP-SWSD

Beitrag von onliner » 21.10.2022, 17:37

Mein Rauchmelder ist seit dem 17.10.22 in Betrieb und zeigt "TIME_OF_OPERATION": 345600 an.

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

Re: Betriebszeit Rauchwarnmelder HmIP-SWSD

Beitrag von Baxxy » 21.10.2022, 17:54

Hmm, hat eQ-3 den SWSD's vielleicht heimlich ne neue Firmware verpasst die jetzt korrekt zählt?

Meiner hat die 1.0.12.

Ältere Post's dazu:
viewtopic.php?t=57265#p590800
viewtopic.php?f=58&t=62614&hilit=swsd+datenpunkte

Wer die "Laufzeit" seiner SWDS's mal auf die Schnelle abklopfen möchte kann folgendes Scriptchen im "Script testen" ausführen.

Code: Alles auswählen

string dev_type     = "HmIP-SWSD";
string datenpunkt   = "TIME_OF_OPERATION";
integer kanalnr     = 0;
boolean zeige_namen = true; !- Ausgabe mit Klarnamen (true) oder ID (false)
! +++++++++++++++++++
string index; string liste = dom.GetObject(ID_DEVICES).EnumUsedIDs();
foreach (index, liste) {
 string type = dom.GetObject(index).HssType();
  if (type == dev_type) {
      string address = dom.GetObject(index).Address();
      string firmware = (dom.GetObject(index).MetaData ("DEVDESC")).StrValueByIndex(",",6);
      integer wert = dom.GetObject("HmIP-RF."#address#":"#kanalnr#"."#datenpunkt).Value();
      integer DaysOn = wert / 86400;
      if (zeige_namen) {
          WriteLine(dom.GetObject(index).Name()#" / "#firmware#" / "#datenpunkt#": "#wert#" / entspricht: "#DaysOn#" Tage" ); }
            else { WriteLine("ID: "#index#" / "#firmware#" / "#datenpunkt#": "#wert#" / entspricht: "#DaysOn#" Tage" ); }
}}
Output dann gerne zeigen mit Kommentar ob der Wert stimmig ist.

Sieht dann bei meinem einzigen Exemplar so aus und ist nicht stimmig.

Code: Alles auswählen

Rauchmelder Wohnbereich: SWSD / FIRMWARE:"1.0.12" / TIME_OF_OPERATION: 128 / entspricht: 0 Tage

Benutzeravatar
ElixGer
Beiträge: 8
Registriert: 20.10.2022, 20:34
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal

Re: Betriebszeit Rauchwarnmelder HmIP-SWSD

Beitrag von ElixGer » 21.10.2022, 22:37

Hi onliner,

kommt auch bei dir hin, je nachdem um welche Uhrzeit du den Melder erstmalig in Betrieb genommen hast: 345600 / 86400 = 4 Tage. Da die Betriebszeit lediglich einmal innerhalb von 24 Stunden hochgezählt wird, gibt's bei genauer Betrachtung natürlich eine Ungenauigkeit.


Hi Baxxy,

interessanterweise haben meine Melder ebenfalls die FW 1.0.12. Würde eventuell dafür sprechen, dass die korrekte Meldung der Betriebsdauer noch von etwas anderem abhängt, z.B. ob die Melder nur per App in Betrieb genommen wurden oder an einer Zentrale, eventuell auch FW der Zentrale. Oder ganz was anderes! Ich habe gerade dein Script ausgeführt und oh Wunder, dabei kommt folgendes heraus:

Rauchmelder 1 / FIRMWARE:"1.0.12" / TIME_OF_OPERATION: 128 / entspricht: 0 Tage
Rauchmelder 2 / FIRMWARE:"1.0.12" / TIME_OF_OPERATION: 128 / entspricht: 0 Tage
Rauchmelder 3 / FIRMWARE:"1.0.12" / TIME_OF_OPERATION: 0 / entspricht: 0 Tage

Ich lehne mich jetzt noch ein Stück weiter aus dem Fenster und behaupte, dass alle Melder eigentlich schon immer den richtigen Wert geliefert haben, aber seit eh und je Schrott von der Zentrale ausgegeben wird. Die von mir genannten Werte habe ich wie gesagt dem ccuJack entnommen. Unten noch die Infos aus DevConfig. Bei Bedarf lese ich gern die Werte noch auf andere Art und Weise aus.


TOO_HmIPSWSD3.JPG

TOO_HmIPSWSD4.JPG


Gruß,
Elix

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

Re: Betriebszeit Rauchwarnmelder HmIP-SWSD

Beitrag von Baxxy » 21.10.2022, 23:13

Äußerst interessant. :)

Und du hast recht!
Wenn ich den Datenpunkt mittels xmlrpc.GetParamset() auslese bekomme ich einen Wert von 88041600 was 1019 Tagen entspricht (2,8 Jahre).
Das kann hinkommen.

(wusste gar nicht das Mathias mit dem Jack solche Methoden nutzt)

Test-Script für Einzelgerät, keine Iteration:

Code: Alles auswählen

!- Master Parameter über xmlrpc auslesen HmIP - xml Version M.Henke
!- https://homematic-forum.de/forum/viewtopic.php?f=26&t=73356&start=30#p711984

!- modifiziert von Baxxy zum Auslesen von "VALUES"
!- es muss der Kanalname angegeben werden

string kanalname = "Rauchmelder Wohnbereich: SWSD:0";
string ParName = "TIME_OF_OPERATION";

!-----------------------------------------------

object oCh = channels.Get (kanalname);
if (!oCh) { quit; }
WriteLine(oCh);

object oInterface = dom.GetObject(oCh.Interface());
string sDevSerial = oCh.Address();

xml xMasterset;
xml xStruct = xMasterset.Parse(xmlrpc.GetParamset(oInterface, sDevSerial, "VALUES")).GetChildNode("struct");

integer iRun = 0;
while (true) {
    xml xMember = xStruct.GetChildNode("member", iRun);
    if (!xMember) { break; }

    string sName = xMember.GetChildNode("name").GetText();
    if (sName == ParName) {
        var result;

        xml xValue = xMember.GetChildNode("value");

        xml xValTest;
        xValTest = xValue.GetChildNode("i4");
        if (xValTest) { result = xValTest.GetText().ToInteger(); }
        else {
            xValTest = xValue.GetChildNode("double");
            if (xValTest) { result = xValTest.GetText().ToFloat(); }
            else {
                xValTest = xValue.GetChildNode("boolean");
                if (xValTest) { boolean bIn = xValTest.GetText().ToInteger(); result = bIn; }
                else {
                    xValTest = xValue.GetChildNode("string");
                    if (xValTest) { result = xValTest.GetText().ToString(); }
                }
            }
        }
        WriteLine("--->" # sName # " " # result.Type() # " " # result);
    }
    iRun = iRun + 1;
}

Benutzeravatar
ElixGer
Beiträge: 8
Registriert: 20.10.2022, 20:34
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal

Re: Betriebszeit Rauchwarnmelder HmIP-SWSD

Beitrag von ElixGer » 21.10.2022, 23:36

Nice!

Habe noch eine Schleife hinzugefügt um durch alle Melder zu iterieren:


TOO_HmIPSWSD5.JPG


Gruß,
Elix

Benutzeravatar
jmaus
Beiträge: 9862
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1880 Mal
Kontaktdaten:

Re: Betriebszeit Rauchwarnmelder HmIP-SWSD

Beitrag von jmaus » 21.10.2022, 23:38

Baxxy hat geschrieben:
21.10.2022, 23:13
Wenn ich den Datenpunkt mittels xmlrpc.GetParamset() auslese bekomme ich einen Wert von 88041600 was 1019 Tagen entspricht (2,8 Jahre).
Das kann hinkommen.
Das klingt in der Tat interessant und liest sich nach einem Überlauf von Variablen. Sollte man dringend mal irgendwie dauerhaft archivieren via eines GitHub Tickets oder so mit genauer bBeschreibung und Beispielen. Und dann kann ich mir das ggf. mal näher anschauen wo genau (vielleicht in ReGa?) da irgendwas bzgl. Variablentyp überläuft....
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️


Antworten

Zurück zu „RaspberryMatic“