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. Aktuelle Werte aus influxdb lesen funktioniert nicht

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    918

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Aktuelle Werte aus influxdb lesen funktioniert nicht

Geplant Angeheftet Gesperrt Verschoben JavaScript
1 Beiträge 1 Kommentatoren 155 Aufrufe 1 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.
  • Elmar MerschE Offline
    Elmar MerschE Offline
    Elmar Mersch
    schrieb am zuletzt editiert von
    #1

    Hallo Community,

    ich habe mal eine Frage zum nachfolgenden Script.
    Damit wird von einem Hoymiles Wechselrichter der Tageswert ermittelt (da die OpenDTU Abends ohne Sonne den Tagesertrag auf 0 Watt stellt).
    Es wird also mit einem anderen Script regelmäßig in die influxdb geschrieben und untenstehendes Script liest dann für den laufenden Tag die Werte und speichert die in einem Datenpunkt für die VIS.
    Das läuft den ganzen Tag perfekt.
    Nur am Folgetag werden die Daten des Vortages gelesen (anstatt vom aktuellen Tag) und in der Viso dargestellt. Ich habe also früh morgens bei Sonnenaufgang den Ertrag des Vortages und darauf wird dann summiert.
    Stoppe / Starte ich das Script passt es sofort und er holt sich die Werte des aktuellen Tages.
    Der Trigger ist übrigens, wenn die openDTU den Gesamtertrag aktualisiert.

    Ich habe mal bei der Instanz für javascript.0 einen nächtlichen Neustart eingestellt (um 0.02 Uhr), dann passt es auch - aber dafür verhalten sich dann andere Scripte merkwürdig (z.B. funktioniert der Nachlauf der Rolläden nicht sofort). Also auch keine Lösung.

    Hier mal das Ergebnis aus der influxdb, Measurement = "mqtt.0.1164a00982dd.0.yieldday".
    Von gestern Abend bis zur Abschaltung (0) und weiter heute morgen.
    Also alles da wie es soll, wie ich finde.

    1722968266507000000 true system.adapter.mqtt.0 0 8430
    1722968271505000000 true system.adapter.mqtt.0 0 8431
    1722968816513000000 true system.adapter.mqtt.0 0 8440
    1722968821509000000 true system.adapter.mqtt.0 0 8441
    1722969636516000000 true system.adapter.mqtt.0 0 8450
    1722969641518000000 true system.adapter.mqtt.0 0 8451
    1722972361587000000 true system.adapter.mqtt.0 0 8456
    1722972397824000000 true system.adapter.mqtt.0 0 0
    1723004701279000000 true system.adapter.mqtt.0 0 9
    1723004706308000000 true system.adapter.mqtt.0 0 10
    1723005571282000000 true system.adapter.mqtt.0 0 19
    1723005576283000000 true system.adapter.mqtt.0 0 20
    1723006056281000000 true system.adapter.mqtt.0 0 28
    1723006061337000000 true system.adapter.mqtt.0 0 30

    var result;
    var tagesertragmin = 0;
    var tagesertragmax = 0;
    
    //schedule("* * * * *", async () => {
    on({ id: 'mqtt.0.1164a00982dd.0.yieldtotal' /* BKW01/1164a00982dd/0/yieldtotal */, change: 'ne' }, async (obj) => {
      let value = obj.state.val;
      let oldValue = obj.oldState.val;
    
      getHistory('influxdb.0', {
        id: 'mqtt.0.1164a00982dd.0.yieldday',
        start: /* start of day */ (() => { const d = new Date(); d.setHours(2, 5, 0, 0); return d.getTime(); })(),
        end: /* end of day */ (() => { const d = new Date(); d.setHours(23, 59, 00, 0); return d.getTime(); })(),
        aggregate: 'max',
        removeBorderValues: true
      },
       async (err, result) => {
    
          
                for (var i = 0; i < result.length; i++) {
                 let tagesertragmax = parseFloat(result[i].val);            
                
                  if (tagesertragmax > tagesertragmin) {   
                    tagesertragmin = tagesertragmax;
                    tagesertragwert = tagesertragmax;
                    //console.log(tagesertragmax);                    
                  }                                                                   
                }
                  if (tagesertragwert > 0) {
                    setState("0_userdata.0.BKW01.BKW01_Ertrag_aktueller_Tag",tagesertragwert);
                    console.log(tagesertragwert); 
                  }
        
      });
    });
    
    

    Hat dazu jemand eine Idee?
    Danke für eure Unterstützung,
    Elmar

    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

    615

    Online

    32.6k

    Benutzer

    82.2k

    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