Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. iobroker stellt keine Systemvariablen dar

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    iobroker stellt keine Systemvariablen dar

    This topic has been deleted. Only users with topic management privileges can see it.
    • foxriver76
      foxriver76 Developer last edited by

      Das Problem ist folgendes.. es wird mittels dom.GetObject(40).Value() die Anzahl an Servicemeldungen der CCU als Variable ins JSON geschrieben. Irgendwie klappt das bei dir nicht, der Wert bleibt leer und somit ist es keine valide JSON Struktur mehr.

      Du kannst mal Write(dom.GetObject(40).Value()) via Skript testen auf der CCU ausführen und schauen was da bei rum kommt.

      T 1 Reply Last reply Reply Quote 0
      • T
        Thomas06308 @foxriver76 last edited by

        @foxriver76 sagte in iobroker stellt keine Systemvariablen dar:

        Write(dom.GetObject(40).Value())

        Hab ich getestet, Ausgabe:0

        foxriver76 1 Reply Last reply Reply Quote 0
        • foxriver76
          foxriver76 Developer @Thomas06308 last edited by

          @Thomas06308 Passt eigentlich.

          Führe mal das kompeltte Skript aus und poste mal die Ausgabe

          !# variablesInv.fn 0.1
          !#
          !# Dieses Script gibt die Systemvariablen (inklusive unsichtbarer) als JSON String aus
          !#
          !# 7'2019 foxriver76 https://github.com/foxriver76 [basierend auf variables.fn (hobbyquaker)]
          !#
          
          object oSysVar;
          string sSysVarId;
          string sValueType;
          string sValue;
          boolean bFirst = true;
          
          Write('{');
          
          !# due to the fact that service messages can be automatically acknowledged, we have to loop over all and check
          var servs = dom.GetObject(ID_SERVICES);
          string id;
          integer serviceMessages = 0;
          
          foreach(id, servs.EnumIDs())
          {
            var service = dom.GetObject(id);
            if(service)
            {
              if(service.IsTypeOf(OT_ALARMDP) && (service.Used() == true) && (service.Enabled() == true) && (service.AlState() == asOncoming))
              {
                serviceMessages = serviceMessages + 1;
              }
            }
          }
          
          WriteLine('"40":{"Name":"Alarmmeldungen","TypeName":"VARDP","DPInfo":"Anzahl%20Alarmmeldungen","Value":' # dom.GetObject(40).Value() # ',"ValueMin":0,"ValueMax":65000,"ValueUnit":"","ValueType":16,"ValueSubType":0,"ValueList":""},');
          Write('"41":{"Name":"Servicemeldungen","TypeName":"VARDP","DPInfo":"Anzahl%20Servicemeldungen","Value":' # serviceMessages # ',"ValueMin":0,"ValueMax":65000,"ValueUnit":"","ValueType":16,"ValueSubType":0,"ValueList":""}');
          
          foreach (sSysVarId, dom.GetObject(ID_SYSTEM_VARIABLES).EnumIDs()) {
          
            WriteLine(',');
          
          
            oSysVar     = dom.GetObject(sSysVarId);
            sValueType  = oSysVar.ValueType();
          
            Write('"' # sSysVarId # '":{"Name":"');
            WriteURL(oSysVar.Name());
            Write('","TypeName":"' # oSysVar.TypeName());
            Write('","DPInfo":"');
            WriteURL(oSysVar.DPInfo());
          
            Write('","Value":');
            if (sValueType == 20) {
              Write('"');
            	WriteURL(oSysVar.Value());
              Write('"');
            } else {
              sValue = oSysVar.Value();
              if (sValueType == 2) {
                  if (sValue) {
                      Write("true");
                  } else {
                      Write("false");
                  }
              } else {
                 if (sValue == "") {
                      Write("0");
                 } else {
                      Write(sValue);
                 }
              }
            }
            string sValueMin = oSysVar.ValueMin();
          
            if (sValueMin == '') {
                sValueMin = 'null';
            }
          
            string sValueMax = oSysVar.ValueMax();
          
            if (sValueMax == '') {
                sValueMax = 'null';
            }
          
            Write(',"Timestamp":"' # oSysVar.Timestamp());
            Write('","ValueMin":' # sValueMin # ',"ValueMax":' # sValueMax # ',"ValueUnit":"');
            WriteURL(oSysVar.ValueUnit());
            Write('","ValueType":' # sValueType # ',"ValueSubType":' # oSysVar.ValueSubType());
          
            if (sValueType == 2) {
              Write(',"ValueList":"');
              WriteURL(oSysVar.ValueName0() # ';' # oSysVar.ValueName1());
            } else {
              Write(',"ValueList":"');
              WriteURL(oSysVar.ValueList());
            }
          
            Write('"}');
          
          }
          
          Write('}');
          
          T 1 Reply Last reply Reply Quote 0
          • T
            Thomas06308 @foxriver76 last edited by

            @foxriver76 Im Script Executor kommt Invalid JSON, wie von Dir vermutet.
            Direkt auf der CCU kommt die Ausgabe lt. Anlage. Beides allerdings schon wieder mit der Produktivkonfiguration. Von der resetteten CCU kann ich es aber auch liefern wenn benötigt.Scriptausgabe1.txt

            foxriver76 2 Replies Last reply Reply Quote 0
            • foxriver76
              foxriver76 Developer @Thomas06308 last edited by

              @Thomas06308 sagte in iobroker stellt keine Systemvariablen dar:
              Scriptausgabe1.txt

              Also das ist die Ausgabe wenn das Skript auf der CCU ausgeführt wird? Das passt und ist valide. Genau dieses Skript führt der Rega Adapter auf der CCU aus - merkwürdig die Ergebnisse dürften sich nicht unterscheiden. Und rega Adapter ist auf 2.5.2?

              T 1 Reply Last reply Reply Quote 0
              • T
                Thomas06308 @foxriver76 last edited by

                @foxriver76 Genau, der Rega-Adapter ist auf 2.5.2 und die Script-Ausgabe stammt aus "Skript ausführen" direkt auf der CCU.

                1 Reply Last reply Reply Quote 0
                • foxriver76
                  foxriver76 Developer @Thomas06308 last edited by

                  @Thomas06308 Sau merkwürdig..

                  Wir können mal noch folgendes probieren - importiere das angehängte Javascript Skript in ioBroker mit und poste davon mal die Ausgabe.

                  debug.json

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    Thomas06308 @foxriver76 last edited by

                    @foxriver76 ja, sau merkwürdig. Ich hoffe, ich habe es richtig gemacht: unter Scripte importiert.
                    Scriptausgabe2.txt

                    foxriver76 1 Reply Last reply Reply Quote 0
                    • foxriver76
                      foxriver76 Developer @Thomas06308 last edited by foxriver76

                      @Thomas06308 Jop, passt so und da ist auch alles da. Puh also sau komisch.. wir können mal noch die Datei anschauen die bei dir lokal liegt. Und mach einmal sicherheitshalber iob u hm-rega auf der Konsole und starte mal neu.

                      Falls das nicht hilft, (du sagst ja es läuft auf keinem deiner Systeme) cat /opt/iobroker/node_modules/iobroker.hm-rega/regascripts/variablesInv.fn im Terminal ausführen.

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        Thomas06308 @foxriver76 last edited by

                        @foxriver76 sagte in iobroker stellt keine Systemvariablen dar:

                        cat /opt/iobroker/node_modules/iobroker.hm-rega/regascripts/variablesInv.fn

                        Irgendwas mache ich falsch: bei cat /opt/iobroker/node_modules/iobroker.hm-rega/regascripts/variablesInv.fn wird mir Dein Script angezeigt.
                        Zwischenzeitlich habe ich mal meine alte CCU1 rausgekramt - dort werden die Variablen angezeigt!!
                        Vielen Dank für Deine engagierte Unterstützung!!!

                        foxriver76 1 Reply Last reply Reply Quote 0
                        • foxriver76
                          foxriver76 Developer @Thomas06308 last edited by

                          @Thomas06308 sagte in iobroker stellt keine Systemvariablen dar:

                          @foxriver76 sagte in iobroker stellt keine Systemvariablen dar:

                          cat /opt/iobroker/node_modules/iobroker.hm-rega/regascripts/variablesInv.fn

                          Irgendwas mache ich falsch: bei cat /opt/iobroker/node_modules/iobroker.hm-rega/regascripts/variablesInv.fn wird mir Dein Script angezeigt.

                          Ne, das passt. Wollte wissen ob es 1 zu 1 übereinstimmt. Kannst es ja mal hier rein kopieren. Allerdings scheint das Verhalten ja eher durch die CCU2 verursacht zu werden. Ist die Firmware da die aktuellste?

                          T 3 Replies Last reply Reply Quote 0
                          • T
                            Thomas06308 @foxriver76 last edited by

                            @foxriver76 Anbei die Ausgabe der Kommandozeile.
                            Auf meiner CCU2 ist nicht die aktuellste Firmware, aber die vorletzte Version, die bei mir sehr stabil läuft. Aufgefallen ist mir das Problem nur, weil ich meine iobroker-Installation auf einem anderen System neu aufgesetzt und nur die Visualisierungen importiert habe. Möglicherweise besteht es tatsächlich schon länger und ist nur nicht aufgefallen, weil ich keine neuen Variablen angelegt habe. Eigenartigerweise funktioniert auch die Visualisierung von Datenpunkten, die auf Variablen basieren, nur werden sie im iobroker eben nicht angezeigt und können damit auch nicht in sql übernommen werden.
                            Sehr mysteriös !
                            Ich werde mal auf die aktuellste CCU-Firmware aktualisieren und melde mich in den nächsten Tagen nochmal.
                            Vielen Dank für´s erste !!! 🙂

                            1 Reply Last reply Reply Quote 0
                            • T
                              Thomas06308 @foxriver76 last edited by

                              @foxriver76 Scriptausgabe3.txt

                              1 Reply Last reply Reply Quote 0
                              • T
                                Thomas06308 @foxriver76 last edited by

                                @foxriver76 : So, habe nun doch gleich die CCU auf die aktuellste Firmware 2.49.18 aktualisiert, RPC und hm-rega neu einlesen lassen, erfolglos 😞 Keine Variablen da.
                                Dein Script wirft als Ergebnis weiterhin Invalid JSON aus.
                                Hmmm, sehr eigenartig.

                                1 Reply Last reply Reply Quote 0
                                • Blackmike
                                  Blackmike last edited by

                                  hab ihr mal .State() anstatt von .Value () probiert ?in dem Script ?

                                  foxriver76 1 Reply Last reply Reply Quote 0
                                  • foxriver76
                                    foxriver76 Developer @Blackmike last edited by

                                    @Blackmike kann man mal probieren, sollte in diesem Szenario kein Unterschied machen.

                                    T 2 Replies Last reply Reply Quote 0
                                    • T
                                      Thomas06308 @foxriver76 last edited by

                                      @foxriver76 Probiere ich heute Abend mal aus, bin gerade unterwegs.

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        Thomas06308 @foxriver76 last edited by

                                        @foxriver76 Hallo Ihr beiden,

                                        ich habe wieder getestet. Das Script Value() statt .State() brachte keine Änderung - immer noch Invalid JSON und keine Variablenanzeige im iobroker, obwohl vorhandene Variablenwerte weiterhin aktualisiert werden.
                                        Hab dann die CCU-Logigschicht von Modus Standard auf Kompatibilitätsmodus ungestellt und erneut getestet - absolut keine Änderung 😞
                                        Im HM Script Executor kommt INVALID JSON, direkt auf der CCU Script ausführen bringt Scriptausgabe4.txt
                                        Was immer Euch hilft das Problem herauszufinden, ich teste es!

                                        foxriver76 1 Reply Last reply Reply Quote 0
                                        • foxriver76
                                          foxriver76 Developer @Thomas06308 last edited by foxriver76

                                          @Thomas06308 Ja, anscheinend wirft nur das initiale Skript den Fehler, das polling Skript scheint dann zu funktionieren, weshalb die States korrekt aktualisiert werden, nur das Objekt dazu fehlt, da er aus dem ersten Skript die Objekte in iob anlegen würde.

                                          Tritt dieser Fehler: Cannot parse answer for functions ... eigentlich auch noch auf?

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            Thomas06308 @foxriver76 last edited by

                                            @foxriver76 Ja, nach Neustart des rega-adapters tritt es auf
                                            hm-rega.0-log.txt

                                            foxriver76 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            571
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            hm-rega variablen
                                            6
                                            51
                                            2657
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo