Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Wert aus Influx 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

    Wert aus Influx auslesen

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

      Hallo zusammen,

      ich würde gerne in einem Blockly Werte aus meiner Influx auslesen, z.B. min,max oder avg Werte. Der Adapter Statistics ist zwar super, für mein Vorhaben aber leider zu unflexibel. Deshlab mein Versuch über Blockly. Beim Influx Adapter gibt es ja die Fuktion get history.

      var end = new Date().getTime();
      sendTo('influxdb.0', 'getHistory', {
          id: 'system.adapter.admin.0.memRss',
          options: {
              start:      end - 3600000,
              end:        end,
              aggregate: 'average' // or 'none' to get raw values
          }
      }, function (result) {
          for (var i = 0; i < result.result.length; i++) {
              console.log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString());
          }
      });
      

      Da ich mich mit Java Script leider gar nicht auskenne, versuche ich gerade das ganze mit dem Blockly Baustein JS Funktion mit ergebnis hinzubekommen. Kann mir jemand sagen wie ich hier weiter vorgehen muss, ich bekomme den obigen Code so gar nicht in den Baustein rein, weil ich das gar nicht speichern kann. Beim Datenpunkt hab ich natürilich einen gewählt der auch existiert. Ansonsten hab ich an dem Code nichts angepasst.

      Die Blockly Variable "result" liefert leider das Ergebnis "undefined". Kann mir hier jemand helfen?

      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @Banis last edited by MCU

        @banis Du musst auch einen Wert zurückgeben, "return" muss drin stehen.
        Funktioniert aber in dem Fall so nicht, da die Daten nicht sofort da sind. Da muss man mit async arbeiten. Aber wie genau, weiß ich leider auch nicht.

        B 1 Reply Last reply Reply Quote 0
        • B
          Banis @MCU last edited by

          @mcu Vielen Dank für die Info. Eine Verzögerung ins Blockly einzubauen würde da wohl auch nichts helfen oder? Kennt sich den jemand mit async aus?

          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @Banis last edited by MCU

            @banis
            3e705191-91c5-4f69-932f-2525fa8794da-image.png

            var end = new Date().getTime();
            var ergebnis ='';
            sendTo('influxdb.0', 'getHistory', {
                id: '0_userdata.0.Power1',
                options: {
                    start:      end - 5*24*60*60*1000,
                    end:        end,
                    aggregate: 'none' // average or 'none' to get raw values
                }
            }, function (result) {
                setTimeout(function(){
                for (var i = 0; i < result.result.length; i++) {
                    console.log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString());
                    //res = result.result.length;
                    //ergebnis = result;
                }
                ergebnis = result;
                },1000);
                
            });
            setTimeout(function(){ res = JSON.stringify(ergebnis); },1500);
            
            

            Ergebnis: {"result":[{"val":15,"ts":1634287471594}],"error":null}

            Der Anzahl der Tage könnte man noch mit an die Funktion übergeben.

            B 1 Reply Last reply Reply Quote 0
            • B
              Banis @MCU last edited by

              @mcu Super vielen Dank das klappt.

              Ist es auch möglich die Anzahl der Tage die ausgewertet werden sollen mit einer Variablen aus Blockly an das script zu übergeben? Falls ja wie müsste ich hier vorgehen?

              B 1 Reply Last reply Reply Quote 0
              • B
                Banis @Banis last edited by

                Hab jetzt erst gesehen, dass Variablen ja ganz einfach über die Einstellungen des Javascript Bausteins eingefügt werden können. Damit bin ich wunschlos glücklich 🙂

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

                Support us

                ioBroker
                Community Adapters
                Donate

                872
                Online

                31.9k
                Users

                80.1k
                Topics

                1.3m
                Posts

                2
                6
                2084
                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