Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Parser

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Parser

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @Homoran last edited by

      @Homoran

      Zeile 178
      https://forum.iobroker.net/post/389135

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @OliverIO last edited by

        @OliverIO Danke!
        Aber....

        Im code ist noch alles da:
        Der log output von:

        log('message' + i+1 + ': ' + date + ' '  + code + ' '  + env + ' '+msgtext);
        

        bringt

        message01: 28 Feb 2020 10:13:51 4159 0002h Code: 4159 Typ: Externe Netzstörung Beschreibung: Erhöhte Netzfrequenz Maßnahme: Installation kontrollieren1
        

        Da ist das Datum.
        Aber msg enthält es nicht.

        var msg = msgs.find(item => item.code==code);
        

        und landet somit mit JSON.stringify nicht im Datenpunkt.

        mit den Zeilen zuvor komme ich nicht klar wie ich es in die Message bekommen könnte, sozusagen als msg.date.
        Ich denke wegen der [n] es handelt sich wohl um ein Array, aber das ist jenseits meiner Skills

        OliverIO 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @Homoran last edited by

          @Homoran dann
          msg.date = date;

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @OliverIO last edited by

            @OliverIO Ehrlich?
            so einfach?
            wird das in das Array geschrieben?

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @Homoran last edited by

              @Homoran ja wird auch in das Array geschrieben.
              Ist aber nicht so schlimm, da das Array sonst nicht anderweitig ausgewertet wird.
              Und beim nächsten mal das Datum ja wieder neu gesetzt wird.

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @OliverIO last edited by

                @OliverIO Nochmals Danke!
                Irgendwann kapier selbst ich es.

                DP:

                {"code":"4159","type":"Externe Netzstörung","description":"Erhöhte Netzfrequenz","action":"Installation kontrollieren1 ","date":"28 Feb 2020 10:13:51"}
                
                1 Reply Last reply Reply Quote 0
                • S
                  steinerma @OliverIO last edited by

                  @OliverIO Hallo Oliver, habe gesehen dass du mit dem Wechselrichter PIKO ganz schön Erfolg gehabt hast. Leider habe ich mein Projekt mit dem Auslesen zurückstellen müssen. Jetzt hätte ich jedoch wieder etwas Zeit. Würden die Erkenntnisse aus dem PIKO etwas für meinen Regler bringen?

                  OliverIO 1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @steinerma last edited by

                    @steinerma
                    Ziel war es die Fehlermeldungen aus dem Gerät auszulesen und in einen lesbaren Text zu übersetzen.
                    Evtl. kann @Homoran sein aktuelles Skript, falls er es nochmal verändert hat, hier bereitstellen.

                    S Homoran 2 Replies Last reply Reply Quote 1
                    • S
                      steinerma @OliverIO last edited by

                      @OliverIO sende hier dennoch mal das Skript, welches ich von dir hatte und noch geringfügig erweitert habe (Aufruf Webseite, und Beschreiben von Modbus-Datenpunkt. Bitte nicht lachen 🙂 - bin blutiger Anfänger

                      var request = require('request');
                      var url = 'http://192.168.0.34/schema.php';
                       
                      
                      function dataRequest(req)
                      {
                      	if (req.readyState == 4)
                      	{
                      		var string = req.responseText.substring(11);
                      		var size = convertAtoH(string,2);
                      		string = string.substring(2);
                      		string = string.substring(8);  // Timestamp uebergehen
                      		var ertrag = 0;
                      		for (var i=0;i < (size/2);i++)
                      		{
                      			var value = convertAtoH(string,4);
                      			string = string.substring(4);
                      			//temps
                      			if(i < 7)
                      			{
                      				if(value > 32768)
                      				{
                      					value -= 65536;
                      				}
                                      setState("modbus.0.holdingRegisters.862_ID175"/*Reserve*/, getState(i).val);   // Datenpunkt von Modbus mit Variable i beschreiben (In i+1 steht dann die Nummer drin) der Temperaturwert rechnet sich dann (value/10).toFixed(1)
                                      
                      						
                      			}
                      		}
                      	}
                      }
                      
                      OliverIO Homoran 2 Replies Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @steinerma last edited by OliverIO

                        @steinerma
                        hast du den eine konkrete Frage?
                        Falls ich irgendwo schon mal was geschrieben habe, dann musst mir das nochmal zeigen, kann micht nicht mehr erinnern.

                        Das Skript scheint auch nicht vollständig zu sein.
                        Da dürfte nicht viel passieren.

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          steinerma @OliverIO last edited by

                          @OliverIO Freundlicherweise hattest du mir das Skript am 28 Feb 2020, 14:32 (siehe in diesem Trade weiter oben) entschlüsselt. Der Regler, auf welchem die auszulesenden Werte enthält, gibt keine Werte aus. Die Werte müssen gemäss deinem Skript aus einer Datenbank abgerufen werden. Ich wäre schon glücklich, wenn ich Werte aus der Datenbank holen könnte.

                          Dein Skript sollte ich noch so erweitern, dass da noch ein/oder mehrere Datenpunkte beschrieben werden können. Das habe ich mal nach bestem Wissen und Gewissen versucht...
                          Leider kommt beim Datenpunkt modbus.0.holdingRegisters.862_ID175 (welchen ich beschreibe) immer nur die Zahl "0" raus.
                          Meine Frage: weisst du, wo ich den Fehler mache? Gemäss deiner Rückmeldung von vorhin gehe ich davon aus, dass ich auch das Auslesen nicht korrekt erstellt habe?

                          OliverIO 1 Reply Last reply Reply Quote 0
                          • OliverIO
                            OliverIO @steinerma last edited by

                            @steinerma
                            ok dann lese nochmal meine Post von oben genau durch und führe alle Schritte durch.
                            Bei Problemen frage konkret was nicht funktioniert.
                            Das Skript 2 Posts hier drüber funktioniert nicht, weil es nicht vollständig ist.

                            1 Reply Last reply Reply Quote 1
                            • Homoran
                              Homoran Global Moderator Administrators @OliverIO last edited by

                              @OliverIO sagte in Parser:

                              Evtl. kann @Homoran sein aktuelles Skript, falls er es nochmal verändert hat, hier bereitstellen.

                              werde ich gerne machen.
                              GHAbe aber noch nichts verändert, weil ich zum Glück noch keinen weiteren Fehler hatte und so die "Funtionsfähigkeit" im Live-Modus nicht testen konnte

                              1 Reply Last reply Reply Quote 1
                              • Homoran
                                Homoran Global Moderator Administrators @steinerma last edited by

                                @steinerma Du arbeitest aber anscheinend über modbus.
                                Das ist ganz was anderes - wir arbeiten über das Webinterface

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  steinerma @Homoran last edited by

                                  @Homoran Den Wert aus dem Webinterface möchte ich gerne über Modbusübertragen. Modbus funktioniert bei mir über den Modbusadapter.
                                  Jedoch erhalte ich keine Werte aus dem Webinterface...

                                  Homoran 1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @steinerma last edited by

                                    @steinerma sagte in Parser:

                                    Den Wert aus dem Webinterface möchte ich gerne über Modbusübertragen.

                                    Das habe ich mir gedacht

                                    @steinerma sagte in Parser:

                                    Modbus funktioniert bei mir über den Modbusadapter.

                                    Dann hast du ja die Fehlermeldungen

                                    @steinerma sagte in Parser:

                                    Jedoch erhalte ich keine Werte aus dem Webinterface...

                                    Welche Version hast du denn da?

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      steinerma last edited by

                                      Danke für deine Antwort. Ursprünglich wollte ich die Werte mit Parser auslesen. OliverIO hat dann herausgefunden, dass die Werte nicht im Sourcecode stehen. Er konnte die Stelle, an der das ganze aus der Datenbank gelesen wird eruieren. Siehe in diese Trade vom 28 Feb 2020, 14:32.
                                      Wenn ich das Ganze jetzt richtig interpretiere, muss ich keinen Parser-Adapter mehr haben sondern ein Skript erstellen. Den Parser-Adapter habe ich noch nicht deinstalliert, er hat Version 1.0.7

                                      Homoran 1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @steinerma last edited by

                                        @steinerma sagte in Parser:

                                        Danke für deine Antwort. Ursprünglich wollte ich die Werte mit Parser auslesen. OliverIO hat dann herausgefunden, dass die Werte nicht im Sourcecode stehen. Er konnte die Stelle, an der das ganze aus der Datenbank gelesen wird eruieren. Siehe in diese Trade vom 28 Feb 2020, 14:32.
                                        Wenn ich das Ganze jetzt richtig interpretiere, muss ich keinen Parser-Adapter mehr haben sondern ein Skript erstellen. Den Parser-Adapter habe ich noch nicht deinstalliert, er hat Version 1.0.7

                                        korrekt.
                                        es kommt aber auf die Firmware-Version des Communication-Boards (und von dem Webinterface) vom Piko an, ob es im Code steht oder nicht.
                                        deswegen hatte ich danach gefragt

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          steinerma @Homoran last edited by

                                          @Homoran Ach so, bitte entschuldige - ich habe bei mir keinen Piko Wechselrichter. Es handelt sich bei mir um einen Sonnenkollektor-Regler der Firma Prozeda. Dieser ist über das Conexio 200 Modul verbunden. Das Conexio 200 Modul enthält einen LAN Anschluss und ist mit einem Webinterface ausgerüstet. Hier ein Beispiel der Messwerte:

                                          9f3e1e07-5abd-4099-8d58-c4c9ef6aade9-image.png

                                          Die Messwerte stehen aber leider nicht im Quelltext und somit lässt es sich nicht so einfach mit Parser auslesen 😞

                                          OliverIO 1 Reply Last reply Reply Quote 0
                                          • OliverIO
                                            OliverIO @steinerma last edited by

                                            @steinerma
                                            Irgendwie fangen wir schon wieder von vorne an, obwohl das doch oben alles schon besprochen wurde. Die Werte sind in der Datei Logging.txt
                                            https://forum.iobroker.net/topic/30628/parser/13
                                            Ein paar Posts weiter hab ich geschrieben was man grob machen müsste.
                                            Du musst es schon versuchen die Anweisungen umzusetzen, wenn du damit Probleme hast stell konkrete Fragen bei warst du Probleme hast.
                                            Wir machen hier Code und Daten Reengineering
                                            Das gehört schon etwas zu den fortgeschrittenen Disziplinen.
                                            Allerdings musst du dich da auch in das ein oder andere versuchen einzulesen.
                                            Wie gesagt, bevor du komplett verzweifelt stelle hier konkrete Fragen

                                            S 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

                                            942
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            parser
                                            3
                                            108
                                            5596
                                            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