Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wie Werte mit Parser auslesen?

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

      @c1olli said in Wie Werte mit Parser auslesen?:

      PGrid

      die werte stehen nicht direkt in der html seite drin sondern
      werden dynamisch abgerufen.

      • öffne bitte die developer tools mit F12 (bei chrome oder edge)
      • dann gehe in den Reiter Network
      • dann drücke F5 (die Seite wird neu abgerufen)
      • dann schaue bei den einzelnen requests, da müsste einer vorkommen der am Ende das folgende enthält (ggfs. den filter verwenden)
      /?topic=GetPerf&
      
      • denn dann anklicken und den text aus einem der rechts erscheinenden reiter "payload" "response" oder preview kopieren
        da müsste das json enthalten, aus welchen man die daten extrahieren kann
      C 1 Reply Last reply Reply Quote 0
      • C
        c1olli @OliverIO last edited by c1olli

        @oliverio sagte in Wie Werte mit Parser auslesen?:

        /?topic=GetPerf&

        Das sieht dann so aus:
        myeserve1.jpg

        Bzw. nach Doppelklick so:
        http://192.168.178.108/?topic=GetPerf&

        {"SoC":80,"PGrid":-717,"PPV":3330,"PBat":-2525,"BMSStatus":0,"SysStatus":2097152,"ComStatus":0,"InternetStatus":0}
        
        OliverIO 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @c1olli last edited by OliverIO

          @c1olli

          dann so als javascript im skript adapter
          du musst nur noch die Datenpunkte anlegen, am besten alle als nummer
          und die komplette URL bei xyz eintragen und prüfen ob es per http oder https abgerufen werden kann.
          aktuell wird kein login berücksichtigt.

          const axios = require("axios");
          var dp_pgrid="0_userdata.0.pgrid";
          var dp_ppv="0_userdata.0.ppv";
          var dp_pbat="0_userdata.0.pbat";
          var dp_soc="0_userdata.0.soc";
          var url = "http://xyz/?topic=GetPerf&"
          axios.get(url).then(({ data })=> {
              setState(dp_pgrid,data.PGrid);
              setState(dp_ppv,data.PPV);
              setState(dp_pbat,data.PBat);
              setState(dp_soc,data.SoC);
          })
          
          C 1 Reply Last reply Reply Quote 0
          • C
            c1olli @OliverIO last edited by

            @oliverio
            Das ist natürlich viel eleganter. Login gibt es nicht, da das Gerät nur lokal verfügbar ist.

            C 1 Reply Last reply Reply Quote 0
            • C
              c1olli @c1olli last edited by c1olli

              @c1olli
              Die Punkte werden gefunden und gelesen, jetzt müsste das ganze nur noch sekündlich ausgelesen werden.

              Wie mache ich das am besten?

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

                @c1olli

                const axios = require("axios");
                var dp_pgrid="0_userdata.0.pgrid";
                var dp_ppv="0_userdata.0.ppv";
                var dp_pbat="0_userdata.0.pbat";
                var dp_soc="0_userdata.0.soc";
                var url = "http://xyz/?topic=GetPerf&"
                function getData()
                  axios.get(url).then(({ data })=> {
                      setState(dp_pgrid,data.PGrid);
                      setState(dp_ppv,data.PPV);
                      setState(dp_pbat,data.PBat);
                      setState(dp_soc,data.SoC);
                  });
                  setTimeout(getData(),1000);
                }
                getData();
                
                C 1 Reply Last reply Reply Quote 0
                • C
                  c1olli @OliverIO last edited by c1olli

                  @OliverIO
                  Die Zeile 8
                  meldet compile faild

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

                    @c1olli

                    meist schreib ich die blind ohne einen editor.
                    2 fehler haben sich eingeschlichen

                    const axios = require("axios");
                    var dp_pgrid="0_userdata.0.pgrid";
                    var dp_ppv="0_userdata.0.ppv";
                    var dp_pbat="0_userdata.0.pbat";
                    var dp_soc="0_userdata.0.soc";
                    var url = "http://xyz/?topic=GetPerf&"
                    function getData() {
                      axios.get(url).then(({ data })=> {
                          setState(dp_pgrid,data.PGrid);
                          setState(dp_ppv,data.PPV);
                          setState(dp_pbat,data.PBat);
                          setState(dp_soc,data.SoC);
                      });
                      setTimeout(getData,1000);
                    }
                    getData();
                    
                    C 1 Reply Last reply Reply Quote 1
                    • C
                      c1olli @OliverIO last edited by

                      @OliverIO

                      Granatenstark -
                      läuft jetzt genau wie geplant.

                      Ich würde das auch gerne so aus dem Ärmel schütteln können.

                      Besten Dank
                      Gruß
                      Olli

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

                        @c1olli
                        immer schön üben.
                        javascript hat so seine kleinen Fallstricke. wenn man die kennt gehts ganz gut.

                        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

                        1.0k
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        2
                        11
                        571
                        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