Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Täglicher Durchschnitt aus InfluxDB

    NEWS

    • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    Täglicher Durchschnitt aus InfluxDB

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

      Hi, also ich hab von JS eigentlich kaum Ahnung. Ziel ist den Durschnitt für den aktuellen Tag zu errechnen. Die Historie des DPs liegt in der InfluxDB. Von diesem DP wird der aktuelle Durschnitt benötigt.
      Mithilfe einer Vorlage, ChatGPT und paar Ergänzungen meiner Wenigkeit sieht mein Skript wie folgt aus:

      var now = new Date();
      var startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1, 0, 0, 0).getTime();
      var endOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1, 23, 59, 59).getTime();
      
      
      var end = Date.now();
      sendTo('influxdb.0', 'getHistory', {
          id: '0_userdata.0.AutarkieinProzent',
          options: {
              start: startOfDay,
              end: endOfDay,
              aggregate: 'onchange',
              addId: true
          }
      }, function (result) {
          for (var i = 0; i < result.result.length; i++) {
              console.log(i + ' ' + new Date(result.result[i].ts).toISOString());
          }
      });
      
      
      //        console.log(result.result[i].id + ' ' + new Date(result.result[i].ts).toISOString());
      
      
      

      Die Daten habe ich, aber wie komme ich jetzt an den Durschnittswert? Es gibt ja auch eine average option...aber wie krieg ich das da korrekt rein?
      Und das Ergebnis soll in ein DP geschrieben werden. Aber wie?

      T 1 Reply Last reply Reply Quote 0
      • T
        ticaki @eierfeile last edited by

        @eierfeile

        fritzdect... durch deine ID ersetzen

        sendTo('influxdb.0', 'query', 'SELECT mean("value") as "value" FROM "fritzdect.0.DECT_111111111.power" GROUP BY time(1d)', function (result) {
            if (result.error) {
                console.error(result.error);
            } else {
                // show result
                 for (let a = 0; a < result.result[0].length;a++) {
                    console.log('Mean values: ' + result.result[0][a].value);
                 }
            }
        });
        
        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        1.5k
        Online

        32.3k
        Users

        81.2k
        Topics

        1.3m
        Posts

        2
        2
        229
        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