Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Visualisierung eines JSON Links

    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

    Visualisierung eines JSON Links

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

      @bernd-0 ist das jetzt eine Vorhersage oder Daten aus der Vergangenheit?

      Für deinen Fall bietet sich wohl Material Design Widgets: JSON Chart Widget an um die Daten zu Visualisieren.

      let request = require('request');
      let link = 'https://api.solcast.com.au/rooftop_sites/APIKEY???/estimated_actuals?format=json';
       
      function Solcast() {
          request(link, function(error,response, body) {
              if(error) log('Fehler request: ' + error, 'error');
              else {
                  var result = JSON.parse(body);
                  setState('0_userdata.0.solcast.estimate', result.pv_estimate); 
              }    
          });
      }
       
      schedule('*/5 * * * *', Solcast);  // alle 5 Minuten
      

      So holt er sich alle 5 Minuten das JSON und legt es in dem Datenpunkt ab. Den Datenpunkt "0_userdata.0.solcast.estimate" musst du noch im Objektbaum anlegen.

      Bernd 0 2 Replies Last reply Reply Quote 0
      • Bernd 0
        Bernd 0 @Jey Cee last edited by

        @jey-cee said in Visualisierung eines JSON Links:

        0_userdata.0.solcast.estimate

        Danke für deine Unterstützung Jey-Cee.
        Ich habe das Skript kopiert, die URL ausgetauscht und es gestartet.
        Den Datenpunkt habe ich im Objektbaum angelegt.
        Leider wird kein Wert in den Datenpunkt geschrieben. Muss ich noch etwas tun?

        c0a24c86-5f5d-45f6-aa0a-57b35ec4b697-image.png

        Jey Cee 1 Reply Last reply Reply Quote 0
        • Bernd 0
          Bernd 0 @Jey Cee last edited by

          @jey-cee

          Und um deine Frage zu beantworten: Es handelt sich um eine Vorschau über die nächsten 3 Tage.
          In meinem ersten Post sieht man den graphischen Verlauf. Diesen möchte ich gerne so in meiner VIS visualisieren.

          1 Reply Last reply Reply Quote 0
          • Jey Cee
            Jey Cee Developer @Bernd 0 last edited by

            @bernd-0 da war noch ein Fehler in Zeile 9

            let request = require('request');
            let link = 'https://api.solcast.com.au/rooftop_sites/APIKEY???/estimated_actuals?format=json';
             
            function Solcast() {
                request(link, function(error,response, body) {
                    if(error) log('Fehler request: ' + error, 'error');
                    else {
                        var result = JSON.parse(body);
                        setState('0_userdata.0.solcast.estimate', result.estimated_actuals); 
                    }    
                });
            }
             
            schedule('*/5 * * * *', Solcast);  // alle 5 Minuten
            
            
            1 Reply Last reply Reply Quote 0
            • Bernd 0
              Bernd 0 last edited by

              Hallo Jey-Cee,
              so ganz komme ich nicht mit.
              Der Json Datensatz zeigt die Daten der PV für die nächsten 3 Tage. Für ein Diagramm bräuchte ich doch x und y Wert. Also als x-Achse den Zeitstempel und als Y den Forecastwert.
              Mit dem Script wird doch nur ein Wert abgefragt, oder? Damit kann ich aber kein Diagramm erzeugen?
              Viele Grüße

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

                Könnte mir nochmal jemand einen Tipp geben, wie ich weitermachen kann?

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

                  @bernd-0 sagte in Visualisierung eines JSON Links:

                  Könnte mir nochmal jemand einen Tipp geben, wie ich weitermachen kann?

                  nein!
                  du kannst keine Timestamps für die x-Achse "manipulieren"

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

                    @homoran Aber ich will ja garnichts manipulieren? In dem JSON Datensatz sind ja Zeitwerte vorhanden? z.B. "period_end":"2022-02-06T21:30:00.0000000Z"

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

                      @bernd-0 sagte in Visualisierung eines JSON Links:

                      Aber ich will ja garnichts manipulieren?

                      doch, willst du!
                      für die x-Achse wird immer der Wert des Timestams der Änderung des Werts im Datenpunkt genommen
                      Das lässt sich nicht ändern

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

                        Ok, dann müsste ich nochmal abschließend fragen.
                        Aus dem JSON-Datensatz kann ich mir also nicht wie oben beschrieben die gewünschte Kurve in der VIS anzeigen lassen? Gibt es noch eine andere Möglichkeit, wie ich an die Grafik ran komme? (Ich habe leider nur den Json Datensatz)

                        Homoran Sokomoto 2 Replies Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @Bernd 0 last edited by

                          @bernd-0 sagte in Visualisierung eines JSON Links:

                          Aus dem JSON-Datensatz kann ich mir also nicht wie oben beschrieben die gewünschte Kurve in der VIS anzeigen lassen?

                          zumindest nicht zusammen mit Bestandsdaten aus der History.

                          Jey_Cee hatte dir ein Material-Widget verlinkt, dass das kann:
                          JSON Chart Widget

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

                            @homoran Hmm, ja in dem Topic habe ich mich auch versucht dran zu hängen, aber hat noch niemand meinen Hilferuf aufgenommen. Ich habe mir in der VIS ein JSON Chart rein gezogen, kann aber nicht sehen, wo ich die URL bzw. den JSON String hinterlegen könnte. Ich kann nur einen Datenpunkt aus der Bibliothek auswählen, was mich dazu gebracht hatte zu denken, dass man den JSON String erst irgendwie in IOBroker einlesen muss.

                            a6a2c05c-4941-46fb-837f-54c7418ae96c-image.png

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

                              @bernd-0 sagte in Visualisierung eines JSON Links:

                              Ich kann nur einen Datenpunkt aus der Bibliothek auswählen, was mich dazu gebracht hatte zu denken, dass man den JSON String erst irgendwie in IOBroker einlesen muss.

                              Das ist zumindest üblich.
                              Ob man da ggf auch einen Link einfügen könnte müsste in der Anleitung stehen.
                              Dafür gibt es ja anscheinend einige Klick-Mich

                              Ich würde je nach Genauigkeit und Priotrität ein bis zweimal am Tag das JSON in einen Datenpunkt einlesen und diesen dann visualisieren

                              1 Reply Last reply Reply Quote 0
                              • Sokomoto
                                Sokomoto @Bernd 0 last edited by

                                @bernd-0 sagte in Visualisierung eines JSON Links:

                                Ok, dann müsste ich nochmal abschließend fragen.
                                Aus dem JSON-Datensatz kann ich mir also nicht wie oben beschrieben die gewünschte Kurve in der VIS anzeigen lassen? Gibt es noch eine andere Möglichkeit, wie ich an die Grafik ran komme? (Ich habe leider nur den Json Datensatz)

                                Jooo, zerlege den JSON String und hole dir die Rohdaten.

                                function Datei(dateiname,daten,mode) {
                                
                                    const fs = require('fs');
                                    switch(mode) {
                                        case 'r': return fs.readFileSync(dateiname, 'utf8');
                                        case 'w': return fs.writeFileSync(dateiname, daten);
                                        case 'a': return fs.appendFileSync(dateiname, daten);
                                        default: return 'Parameter mode muss "r", "w" oder "a" sein';
                                    }
                                }
                                var tx=Datei('txJson.txt','','r');
                                var text=JSON.parse(tx);
                                
                                for (let i = 0; i < 120; i++) {
                                    z=text.estimated_actuals[i].pv_estimate
                                    if (z>0) console.log('Anz: '+i+' Daten: '+z);
                                    
                                }
                                
                                

                                Index: 25 Daten: 1.4008
                                Index: 26 Daten: 0.4729
                                Index: 27 Daten: 6.514
                                Index: 28 Daten: 10.9254
                                Index: 30 Daten: 90.027
                                Index: 31 Daten: 154.3809
                                Index: 32 Daten: 127.1417
                                Index: 33 Daten: 83.1959
                                Index: 34 Daten: 44.8731
                                Index: 35 Daten: 27.7721
                                Index: 36 Daten: 17.2074
                                Index: 37 Daten: 43.5787
                                Index: 38 Daten: 26.9755
                                Index: 39 Daten: 17.9567
                                Index: 72 Daten: 0.4276
                                Index: 74 Daten: 10.3171
                                Index: 75 Daten: 30.4262
                                Index: 76 Daten: 79.5529
                                Index: 77 Daten: 119.8128
                                Index: 78 Daten: 139.1246
                                Index: 79 Daten: 103.6505
                                Index: 80 Daten: 179.1546
                                Index: 81 Daten: 218.1764
                                Index: 82 Daten: 216.7437
                                Index: 83 Daten: 198.7162
                                Index: 84 Daten: 178.3124
                                Index: 85 Daten: 153.6235
                                Index: 86 Daten: 95.6675
                                Index: 87 Daten: 57.0985
                                Index: 88 Daten: 34.3495
                                Index: 119 Daten: 1.4177

                                Und jetzt lässt du dir Daten einfach plotten.

                                tschuess

                                Bernd 0 1 Reply Last reply Reply Quote 0
                                • Bernd 0
                                  Bernd 0 @Sokomoto last edited by

                                  @sokomoto Hey Sokomoto, vielen Dank für deine Hilfestellung. Ich habe den JSON ja nicht in einer TXT, sondern als URL vorliegen. Und die extrahierten Daten müssten nicht in eine log der Console, sondern in einen Datenpunkt, damit ich diesen dann vom JSON Widget importieren kann, oder?

                                  Wie müsste ich denn dein Script dann hier verändern?

                                  Sokomoto 1 Reply Last reply Reply Quote 0
                                  • Sokomoto
                                    Sokomoto @Bernd 0 last edited by

                                    @bernd-0 sagte in Visualisierung eines JSON Links:

                                    @sokomoto Hey Sokomoto, vielen Dank für deine Hilfestellung. Ich habe den JSON ja nicht in einer TXT, sondern als URL vorliegen. Und die extrahierten Daten müssten nicht in eine log der Console, sondern in einen Datenpunkt, damit ich diesen dann vom JSON Widget importieren kann, oder?

                                    Wie müsste ich denn dein Script dann hier verändern?

                                    Guckst du :
                                    https://forum.iobroker.net/topic/52231/visualisierung-eines-json-links

                                    Bernd 0 1 Reply Last reply Reply Quote 0
                                    • Bernd 0
                                      Bernd 0 @Sokomoto last edited by

                                      @sokomoto Nachdem der Link auf den Anfang dieses Topics referenziert, meinst du, ich muss das Script von oben und das deine kombinieren? Vielleicht vermutest du schon, dass ich kein Programmierer bin. Wenn ja, dann vermutest du richtig 😉

                                      Sokomoto 1 Reply Last reply Reply Quote 0
                                      • Sokomoto
                                        Sokomoto @Bernd 0 last edited by

                                        @bernd-0 sagte in Visualisierung eines JSON Links:

                                        @sokomoto Nachdem der Link auf den Anfang dieses Topics referenziert, meinst du, ich muss das Script von oben und das deine kombinieren? Vielleicht vermutest du schon, dass ich kein Programmierer bin.

                                        Da haben wir was gemeinsam, bis vor einem viertel Jahr wusste ich auch nicht was ein Javascript ist. Mittels try and error , kann ich mittlerweile einen JSON String zerlegen. 🙂

                                        tschuess

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        817
                                        Online

                                        31.8k
                                        Users

                                        80.0k
                                        Topics

                                        1.3m
                                        Posts

                                        5
                                        25
                                        1388
                                        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