Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Wert aus Influx auslesen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Wert aus Influx auslesen

Scheduled Pinned Locked Moved Blockly
6 Posts 2 Posters 2.2k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    Banis
    wrote on last edited by
    #1

    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
    0
    • B Banis

      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 Online
      M Online
      MCU
      wrote on last edited by MCU
      #2

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

      NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      B 1 Reply Last reply
      0
      • M 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 Offline
        B Offline
        Banis
        wrote on last edited by
        #3

        @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
        0
        • B Banis

          @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 Online
          M Online
          MCU
          wrote on last edited by MCU
          #4

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

          NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

          B 1 Reply Last reply
          0
          • M 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 Offline
            B Offline
            Banis
            wrote on last edited by
            #5

            @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
            0
            • B Banis

              @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 Offline
              B Offline
              Banis
              wrote on last edited by
              #6

              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
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              438

              Online

              32.4k

              Users

              81.4k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe