Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Result-Funktion von InfluxDB-Adapter richtig nutzen

NEWS

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

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

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

Result-Funktion von InfluxDB-Adapter richtig nutzen

Geplant Angeheftet Gesperrt Verschoben JavaScript
15 Beiträge 3 Kommentatoren 969 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    MCU
    schrieb am zuletzt editiert von
    #6

    @etzeste13 Wie hast du das Script verändert, zeig mal.

    NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
    Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

    E 1 Antwort Letzte Antwort
    0
    • M MCU

      @etzeste13 Wie hast du das Script verändert, zeig mal.

      E Offline
      E Offline
      etzeste13
      schrieb am zuletzt editiert von etzeste13
      #7

      @mcu

      Hi, sry für die späte Antwort, ich kam leider nicht eher dazu hier weiterzumachen...
      Hier das geänderte Script.

      //Die Ost-Süd-West- Leistungen von der letzen Stunde zusammenrechnen und abspeichern
      
      schedule("*/60 * * * *", function () {
      
          // die Werte von Osten abfragen und abspeichern.
          
          let end = new Date().getTime();     // definiert aktuellen Zeitpunkt.
          //console.log(end);
          let Stundenertrag = 0;
          let Time_to_next_value_in_ms = 0;   
          let x_s = 0;
          sendTo('influxdb.0', 'getHistory', {          // ist der Aufruf der Datenbank-Fuktion get History vom Influx.DB Adapter 0
              id: '0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-OST',   // Datenpunkt der ausgelesen wird
              options: {                                  // die optionen anhand deren ausgelesen werden soll  
                  start:      end - 3600000,                 // Startpunkt ist aktuelle Zeitpunkt - 1Stunde in ms
                  end:        end,                        // auslesen bis jetzt in ms
                  count:      180,                       //bis zu 180 Werte auslesen, da generell alle 30sek geschrieben wird
                  aggregate: 'none' // or 'none' to get raw values    // aggregate: none definiert die eigentlichen Werte ausgegeben werden sollen 
              }
          }, function (result) {
              for (var i = 0; i < result.result.length; i++) {
                  //console.log(result.result[i].ts)        //timestamp des Ergebnisses der Nr[i] ausgeben
                  if (i == 0) {                           // im ersten Durchlauf muss mann die 30sec manuell angeben, da sonst bei der berechnung [i-1] ein Fehler auftritt 
                      Time_to_next_value_in_ms = 30000;
                  } else {
                      Time_to_next_value_in_ms = result.result[i].ts - result.result[i-1].ts;
                  }
                  //console.log(Time_to_next_value_in_ms);
                  Stundenertrag = Stundenertrag + result.result[i].val / (3600000 / Time_to_next_value_in_ms);   //die 3.600.000ms / die MS zum Vorgängerwert addiert, ergeben die W/h
                  x_s = x_s + 1;                                      // x_s nur zur Kontrolle, damit ich sehe wie viele Werte addiert wurden
              }
              Stundenertrag = Math.round(Stundenertrag);                 //Ergebnis auf ganze Zahl runden
              console.log('Stundenertrag_OST: ' + Stundenertrag + ', gelesene Einträge: ' + x_s);                    // PV-Ertrag der letzten Stunde + die Anzahl der Datenpunkte ins LOG schreiben
              setState("0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-OST_letzte_Stunde", Stundenertrag, true);     //PV-Ertrag der letzten Stunde in Datenpunkt schreiben
          });
      
      
      // die Werte von Süden abfragen und abspeichern.
          
          end = new Date().getTime();     // definiert aktuellen Zeitpunkt.
          //console.log(end);
          Stundenertrag = 0;
          Time_to_next_value_in_ms = 0;   
          x_s = 0;
          sendTo('influxdb.0', 'getHistory', {          // ist der Aufruf der Datenbank-Fuktion get History vom Influx.DB Adapter 0
              id: '0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-SÜD',   // Datenpunkt der ausgelesen wird
              options: {                                  // die optionen anhand deren ausgelesen werden soll  
                  start:      end - 3600000,                 // Startpunkt ist aktuelle Zeitpunkt - 1Stunde in ms
                  end:        end,                        // auslesen bis jetzt in ms
                  count:      180,                       //bis zu 180 Werte auslesen, da generell alle 30sek geschrieben wird
                  aggregate: 'none' // or 'none' to get raw values    // aggregate: none definiert die eigentlichen Werte ausgegeben werden sollen 
              }
          }, function (result) {
              for (var i = 0; i < result.result.length; i++) {
                  //console.log(result.result[i].ts)        //timestamp des Ergebnisses der Nr[i] ausgeben
                  if (i == 0) {                           // im ersten Durchlauf muss mann die 30sec manuell angeben, da sonst bei der berechnung [i-1] ein Fehler auftritt 
                      Time_to_next_value_in_ms = 30000;
                  } else {
                      Time_to_next_value_in_ms = result.result[i].ts - result.result[i-1].ts;
                  }
                  //console.log(Time_to_next_value_in_ms);
                  Stundenertrag = Stundenertrag + result.result[i].val / (3600000 / Time_to_next_value_in_ms);   //die 3.600.000ms / die MS zum Vorgängerwert addiert, ergeben die W/h
                  x_s = x_s + 1;                                      // x_s nur zur Kontrolle, damit ich sehe wie viele Werte addiert wurden
              }
              Stundenertrag = Math.round(Stundenertrag);                 //Ergebnis auf ganze Zahl runden
              console.log('Stundenertrag_SUED: ' + Stundenertrag + ', gelesene Einträge: ' + x_s);                    // PV-Ertrag der letzten Stunde + die Anzahl der Datenpunkte ins LOG schreiben
              setState("0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-SÜD_letzte_Stunde", Stundenertrag, true);     //PV-Ertrag der letzten Stunde in Datenpunkt schreiben
          });    
      
      // die Werte von WEST abfragen und abspeichern.
          
          end = new Date().getTime();     // definiert aktuellen Zeitpunkt.
          //console.log(end);
          Stundenertrag = 0;
          Time_to_next_value_in_ms = 0;   
          x_s = 0;
          sendTo('influxdb.0', 'getHistory', {          // ist der Aufruf der Datenbank-Fuktion get History vom Influx.DB Adapter 0
              id: '0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-WEST',   // Datenpunkt der ausgelesen wird
              options: {                                  // die optionen anhand deren ausgelesen werden soll  
                  start:      end - 3600000,                 // Startpunkt ist aktuelle Zeitpunkt - 1Stunde in ms
                  end:        end,                        // auslesen bis jetzt in ms
                  count:      180,                       //bis zu 180 Werte auslesen, da generell alle 30sek geschrieben wird
                  aggregate: 'none' // or 'none' to get raw values    // aggregate: none definiert die eigentlichen Werte ausgegeben werden sollen 
              }
          }, function (result) {
              for (var i = 0; i < result.result.length; i++) {
                  //console.log(result.result[i].ts)        //timestamp des Ergebnisses der Nr[i] ausgeben
                  if (i == 0) {                           // im ersten Durchlauf muss mann die 30sec manuell angeben, da sonst bei der berechnung [i-1] ein Fehler auftritt 
                      Time_to_next_value_in_ms = 30000;
                  } else {
                      Time_to_next_value_in_ms = result.result[i].ts - result.result[i-1].ts;
                  }
                  //console.log(Time_to_next_value_in_ms);
                  Stundenertrag = Stundenertrag + result.result[i].val / (3600000 / Time_to_next_value_in_ms);   //die 3.600.000ms / die MS zum Vorgängerwert addiert, ergeben die W/h
                  x_s = x_s + 1;                                      // x_s nur zur Kontrolle, damit ich sehe wie viele Werte addiert wurden
              }
              Stundenertrag = Math.round(Stundenertrag);                 //Ergebnis auf ganze Zahl runden
              console.log('Stundenertrag_WEST: ' + Stundenertrag + ', gelesene Einträge: ' + x_s);                   // PV-Ertrag der letzten Stunde + die Anzahl der Datenpunkte ins LOG schreiben
              setState("0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-WEST_letzte_Stunde", Stundenertrag, true);     //PV-Ertrag der letzten Stunde in Datenpunkt schreiben
          });
      
      });
      
      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        MCU
        schrieb am zuletzt editiert von
        #8

        @etzeste13 Ich würde die sendTo ineinander verschachteln.

        /Die Ost-Süd-West- Leistungen von der letzen Stunde zusammenrechnen und abspeichern
         
        schedule("*/60 * * * *", function () {
         
            // die Werte von Osten abfragen und abspeichern.
            
            let end = new Date().getTime();     // definiert aktuellen Zeitpunkt.
            //console.log(end);
            let Stundenertrag = 0;
            let Time_to_next_value_in_ms = 0;   
            let x_s = 0;
            sendTo('influxdb.0', 'getHistory', {          // ist der Aufruf der Datenbank-Fuktion get History vom Influx.DB Adapter 0
                id: '0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-OST',   // Datenpunkt der ausgelesen wird
                options: {                                  // die optionen anhand deren ausgelesen werden soll  
                    start:      end - 3600000,                 // Startpunkt ist aktuelle Zeitpunkt - 1Stunde in ms
                    end:        end,                        // auslesen bis jetzt in ms
                    count:      180,                       //bis zu 180 Werte auslesen, da generell alle 30sek geschrieben wird
                    aggregate: 'none' // or 'none' to get raw values    // aggregate: none definiert die eigentlichen Werte ausgegeben werden sollen 
                }
            }, function (result) {
                for (var i = 0; i < result.result.length; i++) {
                    //console.log(result.result[i].ts)        //timestamp des Ergebnisses der Nr[i] ausgeben
                    if (i == 0) {                           // im ersten Durchlauf muss mann die 30sec manuell angeben, da sonst bei der berechnung [i-1] ein Fehler auftritt 
                        Time_to_next_value_in_ms = 30000;
                    } else {
                        Time_to_next_value_in_ms = result.result[i].ts - result.result[i-1].ts;
                    }
                    //console.log(Time_to_next_value_in_ms);
                    Stundenertrag = Stundenertrag + result.result[i].val / (3600000 / Time_to_next_value_in_ms);   //die 3.600.000ms / die MS zum Vorgängerwert addiert, ergeben die W/h
                    x_s = x_s + 1;                                      // x_s nur zur Kontrolle, damit ich sehe wie viele Werte addiert wurden
                }
                Stundenertrag = Math.round(Stundenertrag);                 //Ergebnis auf ganze Zahl runden
                console.log('Stundenertrag_OST: ' + Stundenertrag + ', gelesene Einträge: ' + x_s);                    // PV-Ertrag der letzten Stunde + die Anzahl der Datenpunkte ins LOG schreiben
                setState("0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-OST_letzte_Stunde", Stundenertrag, true);     //PV-Ertrag der letzten Stunde in Datenpunkt schreiben
        // die Werte von Süden abfragen und abspeichern.
            
            end = new Date().getTime();     // definiert aktuellen Zeitpunkt.
            //console.log(end);
            Stundenertrag = 0;
            Time_to_next_value_in_ms = 0;   
            x_s = 0;
            sendTo('influxdb.0', 'getHistory', {          // ist der Aufruf der Datenbank-Fuktion get History vom Influx.DB Adapter 0
                id: '0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-SÜD',   // Datenpunkt der ausgelesen wird
                options: {                                  // die optionen anhand deren ausgelesen werden soll  
                    start:      end - 3600000,                 // Startpunkt ist aktuelle Zeitpunkt - 1Stunde in ms
                    end:        end,                        // auslesen bis jetzt in ms
                    count:      180,                       //bis zu 180 Werte auslesen, da generell alle 30sek geschrieben wird
                    aggregate: 'none' // or 'none' to get raw values    // aggregate: none definiert die eigentlichen Werte ausgegeben werden sollen 
                }
            }, function (result) {
                for (var i = 0; i < result.result.length; i++) {
                    //console.log(result.result[i].ts)        //timestamp des Ergebnisses der Nr[i] ausgeben
                    if (i == 0) {                           // im ersten Durchlauf muss mann die 30sec manuell angeben, da sonst bei der berechnung [i-1] ein Fehler auftritt 
                        Time_to_next_value_in_ms = 30000;
                    } else {
                        Time_to_next_value_in_ms = result.result[i].ts - result.result[i-1].ts;
                    }
                    //console.log(Time_to_next_value_in_ms);
                    Stundenertrag = Stundenertrag + result.result[i].val / (3600000 / Time_to_next_value_in_ms);   //die 3.600.000ms / die MS zum Vorgängerwert addiert, ergeben die W/h
                    x_s = x_s + 1;                                      // x_s nur zur Kontrolle, damit ich sehe wie viele Werte addiert wurden
                }
                Stundenertrag = Math.round(Stundenertrag);                 //Ergebnis auf ganze Zahl runden
                console.log('Stundenertrag_SUED: ' + Stundenertrag + ', gelesene Einträge: ' + x_s);                    // PV-Ertrag der letzten Stunde + die Anzahl der Datenpunkte ins LOG schreiben
                setState("0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-SÜD_letzte_Stunde", Stundenertrag, true);     //PV-Ertrag der letzten Stunde in Datenpunkt schreiben
        // die Werte von WEST abfragen und abspeichern.
            
            end = new Date().getTime();     // definiert aktuellen Zeitpunkt.
            //console.log(end);
            Stundenertrag = 0;
            Time_to_next_value_in_ms = 0;   
            x_s = 0;
            sendTo('influxdb.0', 'getHistory', {          // ist der Aufruf der Datenbank-Fuktion get History vom Influx.DB Adapter 0
                id: '0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-WEST',   // Datenpunkt der ausgelesen wird
                options: {                                  // die optionen anhand deren ausgelesen werden soll  
                    start:      end - 3600000,                 // Startpunkt ist aktuelle Zeitpunkt - 1Stunde in ms
                    end:        end,                        // auslesen bis jetzt in ms
                    count:      180,                       //bis zu 180 Werte auslesen, da generell alle 30sek geschrieben wird
                    aggregate: 'none' // or 'none' to get raw values    // aggregate: none definiert die eigentlichen Werte ausgegeben werden sollen 
                }
            }, function (result) {
                for (var i = 0; i < result.result.length; i++) {
                    //console.log(result.result[i].ts)        //timestamp des Ergebnisses der Nr[i] ausgeben
                    if (i == 0) {                           // im ersten Durchlauf muss mann die 30sec manuell angeben, da sonst bei der berechnung [i-1] ein Fehler auftritt 
                        Time_to_next_value_in_ms = 30000;
                    } else {
                        Time_to_next_value_in_ms = result.result[i].ts - result.result[i-1].ts;
                    }
                    //console.log(Time_to_next_value_in_ms);
                    Stundenertrag = Stundenertrag + result.result[i].val / (3600000 / Time_to_next_value_in_ms);   //die 3.600.000ms / die MS zum Vorgängerwert addiert, ergeben die W/h
                    x_s = x_s + 1;                                      // x_s nur zur Kontrolle, damit ich sehe wie viele Werte addiert wurden
                }
                Stundenertrag = Math.round(Stundenertrag);                 //Ergebnis auf ganze Zahl runden
                console.log('Stundenertrag_WEST: ' + Stundenertrag + ', gelesene Einträge: ' + x_s);                   // PV-Ertrag der letzten Stunde + die Anzahl der Datenpunkte ins LOG schreiben
                setState("0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-WEST_letzte_Stunde", Stundenertrag, true);     //PV-Ertrag der letzten Stunde in Datenpunkt schreiben
            });
        
            });    
        
            });
         
        });
        
        

        NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
        Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

        E 1 Antwort Letzte Antwort
        0
        • M MCU

          @etzeste13 Ich würde die sendTo ineinander verschachteln.

          /Die Ost-Süd-West- Leistungen von der letzen Stunde zusammenrechnen und abspeichern
           
          schedule("*/60 * * * *", function () {
           
              // die Werte von Osten abfragen und abspeichern.
              
              let end = new Date().getTime();     // definiert aktuellen Zeitpunkt.
              //console.log(end);
              let Stundenertrag = 0;
              let Time_to_next_value_in_ms = 0;   
              let x_s = 0;
              sendTo('influxdb.0', 'getHistory', {          // ist der Aufruf der Datenbank-Fuktion get History vom Influx.DB Adapter 0
                  id: '0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-OST',   // Datenpunkt der ausgelesen wird
                  options: {                                  // die optionen anhand deren ausgelesen werden soll  
                      start:      end - 3600000,                 // Startpunkt ist aktuelle Zeitpunkt - 1Stunde in ms
                      end:        end,                        // auslesen bis jetzt in ms
                      count:      180,                       //bis zu 180 Werte auslesen, da generell alle 30sek geschrieben wird
                      aggregate: 'none' // or 'none' to get raw values    // aggregate: none definiert die eigentlichen Werte ausgegeben werden sollen 
                  }
              }, function (result) {
                  for (var i = 0; i < result.result.length; i++) {
                      //console.log(result.result[i].ts)        //timestamp des Ergebnisses der Nr[i] ausgeben
                      if (i == 0) {                           // im ersten Durchlauf muss mann die 30sec manuell angeben, da sonst bei der berechnung [i-1] ein Fehler auftritt 
                          Time_to_next_value_in_ms = 30000;
                      } else {
                          Time_to_next_value_in_ms = result.result[i].ts - result.result[i-1].ts;
                      }
                      //console.log(Time_to_next_value_in_ms);
                      Stundenertrag = Stundenertrag + result.result[i].val / (3600000 / Time_to_next_value_in_ms);   //die 3.600.000ms / die MS zum Vorgängerwert addiert, ergeben die W/h
                      x_s = x_s + 1;                                      // x_s nur zur Kontrolle, damit ich sehe wie viele Werte addiert wurden
                  }
                  Stundenertrag = Math.round(Stundenertrag);                 //Ergebnis auf ganze Zahl runden
                  console.log('Stundenertrag_OST: ' + Stundenertrag + ', gelesene Einträge: ' + x_s);                    // PV-Ertrag der letzten Stunde + die Anzahl der Datenpunkte ins LOG schreiben
                  setState("0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-OST_letzte_Stunde", Stundenertrag, true);     //PV-Ertrag der letzten Stunde in Datenpunkt schreiben
          // die Werte von Süden abfragen und abspeichern.
              
              end = new Date().getTime();     // definiert aktuellen Zeitpunkt.
              //console.log(end);
              Stundenertrag = 0;
              Time_to_next_value_in_ms = 0;   
              x_s = 0;
              sendTo('influxdb.0', 'getHistory', {          // ist der Aufruf der Datenbank-Fuktion get History vom Influx.DB Adapter 0
                  id: '0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-SÜD',   // Datenpunkt der ausgelesen wird
                  options: {                                  // die optionen anhand deren ausgelesen werden soll  
                      start:      end - 3600000,                 // Startpunkt ist aktuelle Zeitpunkt - 1Stunde in ms
                      end:        end,                        // auslesen bis jetzt in ms
                      count:      180,                       //bis zu 180 Werte auslesen, da generell alle 30sek geschrieben wird
                      aggregate: 'none' // or 'none' to get raw values    // aggregate: none definiert die eigentlichen Werte ausgegeben werden sollen 
                  }
              }, function (result) {
                  for (var i = 0; i < result.result.length; i++) {
                      //console.log(result.result[i].ts)        //timestamp des Ergebnisses der Nr[i] ausgeben
                      if (i == 0) {                           // im ersten Durchlauf muss mann die 30sec manuell angeben, da sonst bei der berechnung [i-1] ein Fehler auftritt 
                          Time_to_next_value_in_ms = 30000;
                      } else {
                          Time_to_next_value_in_ms = result.result[i].ts - result.result[i-1].ts;
                      }
                      //console.log(Time_to_next_value_in_ms);
                      Stundenertrag = Stundenertrag + result.result[i].val / (3600000 / Time_to_next_value_in_ms);   //die 3.600.000ms / die MS zum Vorgängerwert addiert, ergeben die W/h
                      x_s = x_s + 1;                                      // x_s nur zur Kontrolle, damit ich sehe wie viele Werte addiert wurden
                  }
                  Stundenertrag = Math.round(Stundenertrag);                 //Ergebnis auf ganze Zahl runden
                  console.log('Stundenertrag_SUED: ' + Stundenertrag + ', gelesene Einträge: ' + x_s);                    // PV-Ertrag der letzten Stunde + die Anzahl der Datenpunkte ins LOG schreiben
                  setState("0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-SÜD_letzte_Stunde", Stundenertrag, true);     //PV-Ertrag der letzten Stunde in Datenpunkt schreiben
          // die Werte von WEST abfragen und abspeichern.
              
              end = new Date().getTime();     // definiert aktuellen Zeitpunkt.
              //console.log(end);
              Stundenertrag = 0;
              Time_to_next_value_in_ms = 0;   
              x_s = 0;
              sendTo('influxdb.0', 'getHistory', {          // ist der Aufruf der Datenbank-Fuktion get History vom Influx.DB Adapter 0
                  id: '0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-WEST',   // Datenpunkt der ausgelesen wird
                  options: {                                  // die optionen anhand deren ausgelesen werden soll  
                      start:      end - 3600000,                 // Startpunkt ist aktuelle Zeitpunkt - 1Stunde in ms
                      end:        end,                        // auslesen bis jetzt in ms
                      count:      180,                       //bis zu 180 Werte auslesen, da generell alle 30sek geschrieben wird
                      aggregate: 'none' // or 'none' to get raw values    // aggregate: none definiert die eigentlichen Werte ausgegeben werden sollen 
                  }
              }, function (result) {
                  for (var i = 0; i < result.result.length; i++) {
                      //console.log(result.result[i].ts)        //timestamp des Ergebnisses der Nr[i] ausgeben
                      if (i == 0) {                           // im ersten Durchlauf muss mann die 30sec manuell angeben, da sonst bei der berechnung [i-1] ein Fehler auftritt 
                          Time_to_next_value_in_ms = 30000;
                      } else {
                          Time_to_next_value_in_ms = result.result[i].ts - result.result[i-1].ts;
                      }
                      //console.log(Time_to_next_value_in_ms);
                      Stundenertrag = Stundenertrag + result.result[i].val / (3600000 / Time_to_next_value_in_ms);   //die 3.600.000ms / die MS zum Vorgängerwert addiert, ergeben die W/h
                      x_s = x_s + 1;                                      // x_s nur zur Kontrolle, damit ich sehe wie viele Werte addiert wurden
                  }
                  Stundenertrag = Math.round(Stundenertrag);                 //Ergebnis auf ganze Zahl runden
                  console.log('Stundenertrag_WEST: ' + Stundenertrag + ', gelesene Einträge: ' + x_s);                   // PV-Ertrag der letzten Stunde + die Anzahl der Datenpunkte ins LOG schreiben
                  setState("0_userdata.0.PV_Anlagen.MTBG-38_1.Leistung-WEST_letzte_Stunde", Stundenertrag, true);     //PV-Ertrag der letzten Stunde in Datenpunkt schreiben
              });
          
              });    
          
              });
           
          });
          
          
          E Offline
          E Offline
          etzeste13
          schrieb am zuletzt editiert von
          #9

          @mcu
          wie soll ich das machen? ich muss ja die einzelnen Datenpunkte einzeln aus der influxDB holen... oder nicht ?

          M 1 Antwort Letzte Antwort
          0
          • E etzeste13

            @mcu
            wie soll ich das machen? ich muss ja die einzelnen Datenpunkte einzeln aus der influxDB holen... oder nicht ?

            M Offline
            M Offline
            MCU
            schrieb am zuletzt editiert von MCU
            #10

            @etzeste13 Ich habe es doch schon gemacht.
            Damit wird der nächste sendTo-Befehl erst ausgelöst, wenn die Daten vom 1. da sind, usw..

            NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
            Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

            E 1 Antwort Letzte Antwort
            0
            • M MCU

              @etzeste13 Ich habe es doch schon gemacht.
              Damit wird der nächste sendTo-Befehl erst ausgelöst, wenn die Daten vom 1. da sind, usw..

              E Offline
              E Offline
              etzeste13
              schrieb am zuletzt editiert von etzeste13
              #11

              @MCU bitte entschuldige die vlt. blöde Frage, aber ich finde den Unterschied im Code einfach nicht.... kannst du mir kurz schreiben was du geändert hast.... Scheint als ob ich den Wald vor lauter Bäumen nicht finde...

              M 1 Antwort Letzte Antwort
              0
              • E etzeste13

                @MCU bitte entschuldige die vlt. blöde Frage, aber ich finde den Unterschied im Code einfach nicht.... kannst du mir kurz schreiben was du geändert hast.... Scheint als ob ich den Wald vor lauter Bäumen nicht finde...

                M Offline
                M Offline
                MCU
                schrieb am zuletzt editiert von MCU
                #12

                @etzeste13
                Also es sind 3 sendTo

                Vorher:

                sendTo{
                }
                sendTo{
                }
                sendTo{
                }
                

                Nachher:

                sendTo{
                      sendTo{
                          sendTo{
                          }
                     }
                }
                

                NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                E 1 Antwort Letzte Antwort
                0
                • M MCU

                  @etzeste13
                  Also es sind 3 sendTo

                  Vorher:

                  sendTo{
                  }
                  sendTo{
                  }
                  sendTo{
                  }
                  

                  Nachher:

                  sendTo{
                        sendTo{
                            sendTo{
                            }
                       }
                  }
                  
                  E Offline
                  E Offline
                  etzeste13
                  schrieb am zuletzt editiert von
                  #13

                  @mcu
                  Alles klar, jetzt hab ichs... danke dir. Ich werde es morgen testen, wenn wieder die Sonne scheint.... bzw. es hell wird, von Sonne aktuell keine Spur... :-(

                  E 1 Antwort Letzte Antwort
                  0
                  • E etzeste13

                    @mcu
                    Alles klar, jetzt hab ichs... danke dir. Ich werde es morgen testen, wenn wieder die Sonne scheint.... bzw. es hell wird, von Sonne aktuell keine Spur... :-(

                    E Offline
                    E Offline
                    etzeste13
                    schrieb am zuletzt editiert von
                    #14

                    @MCU

                    vielen Dank für deinen Input... jetzt funktioniert es wie es gedacht war.
                    Kannst du mir vielleicht noch den Grund erklären warum das jetzt funktioniert?

                    vG Etze

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      MCU
                      schrieb am zuletzt editiert von
                      #15

                      @etzeste13
                      Vorher wurden die sendTo Funktionen direkt nacheinander ausgelöst. Es wurde nicht darauf gewartet, bis die Daten verarbeitet wurden.

                      Nachher wurden die Funktionen immer erst dann aufgerufen, wenn die Daten aus der vorherigen Funktion, auch wirklich verarbeitet gewesen sind.

                      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      545

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe