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.
    • 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

                                      384
                                      Online

                                      31.8k
                                      Users

                                      80.0k
                                      Topics

                                      1.3m
                                      Posts

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