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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

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

        850
        Online

        31.9k
        Users

        80.1k
        Topics

        1.3m
        Posts

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