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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Gelöst] FoxESS Cloud Javascript Warnmeldungen

NEWS

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

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

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

[Gelöst] FoxESS Cloud Javascript Warnmeldungen

Geplant Angeheftet Gesperrt Verschoben JavaScript
11 Beiträge 4 Kommentatoren 573 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.
  • T Offline
    T Offline
    Torsten G.
    schrieb am zuletzt editiert von Torsten G.
    #1

    Ich habe dieses Javascript im Netz gefunden. Soweit läuft es auch. Jedoch verstehe ich nicht warum es im Log Warnungen gibt. Kann man diese ausstellen bzw. was könnte geändert werden? Ich bin mehr der Copy/Paste User und habe von Java und Code nicht viel Ahnung.

    /*
    Dieses Script ruft alle 2 Minuten die FoxESS Cloud über eine RestAPI auf und speichert die aufgerufenen Informationen
    an die entsprechenden Objekte im IO-Broker.
    */
     
    const https = require("https")
    const crypto = require('crypto')
    const token = "???"; /* Hier muss der API-Key aus der FoxESS Cloud eingefügt werden */
    const sn = "???"; /* Hier muss die Seriennummer vom Inverter aus der FoxESS Cloud eingefügt werden */
     
    schedule("*/2 * * * * ", async function () {
      try {
        const data = JSON.stringify({
            "sn": sn,
            "variables": [
                "pvPower", "generationPower", "SoC", "loadsPower"
            ]
        });
        const path = "/op/v0/device/real/query";
        const milliseconds = new Date().getTime();
        const signature = crypto.createHash('md5').update(path + "\\r\\n" + token + "\\r\\n" + milliseconds).digest("hex");
        
        const options = {
            headers: {
                "Content-Type": "application/json",
                "token": token,
                "timestamp": milliseconds,
                "signature": signature,
                "lang": "en"
            },
            hostname: "www.foxesscloud.com",
            method: "POST",
            path: path,
            port: 443
        }
        const request = https.request(options, response => {
            //console.log('STATUS: ' + response.statusCode);
            response.setEncoding('utf8');
            response.on("data", function (res) {
                //console.log(res);
                const json = JSON.parse(res);
                const pvPower = json.result[0].datas[0].value;
                setState("0_userdata.0.FoxEss.PVPower", pvPower.toFixed(3));
                const soc = json.result[0].datas[2].value;
                setState("0_userdata.0.FoxEss.SOC", soc.toString());
                const load = json.result[0].datas[3].value;
                setState("0_userdata.0.FoxEss.Load", load.toFixed(3));
            });
        });
        request.write(data);
        request.end();
     
      } catch (e) { console.error(e); }
    });
    

    Folgende Warnungen erhalte ich bei jeder Ausführung:

    javascript.0
    2025-05-27 09:34:00.169 info State value to set for "0_userdata.0.FoxEss.PVPower" has to be type "number" but received type "string"
    javascript.0
    2025-05-27 09:34:00.156 warn at TLSSocket.Readable.push (node:internal/streams/readable:392:5)
    javascript.0
    2025-05-27 09:34:00.156 warn at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    javascript.0
    2025-05-27 09:34:00.156 warn at addChunk (node:internal/streams/readable:561:12)
    javascript.0
    2025-05-27 09:34:00.155 warn at TLSSocket.emit (node:domain:489:12)
    javascript.0
    2025-05-27 09:34:00.155 warn at TLSSocket.emit (node:events:524:28)
    javascript.0
    2025-05-27 09:34:00.155 warn at TLSSocket.socketOnData (node:_http_client:544:22)
    javascript.0
    2025-05-27 09:34:00.155 warn at HTTPParser.parserOnBody (node:_http_common:130:24)
    javascript.0
    2025-05-27 09:34:00.155 warn at IncomingMessage.Readable.push (node:internal/streams/readable:392:5)
    javascript.0
    2025-05-27 09:34:00.155 warn at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    javascript.0
    2025-05-27 09:34:00.155 warn at addChunk (node:internal/streams/readable:561:12)
    javascript.0
    2025-05-27 09:34:00.154 warn at IncomingMessage.emit (node:domain:489:12)
    javascript.0
    2025-05-27 09:34:00.154 warn at IncomingMessage.emit (node:events:524:28)
    javascript.0
    2025-05-27 09:34:00.154 warn at IncomingMessage.<anonymous> (script.js.skripte.foxx:44:13)
    javascript.0
    2025-05-27 09:34:00.154 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2090:20)
    javascript.0
    2025-05-27 09:34:00.152 warn You are assigning a string to the state "0_userdata.0.FoxEss.PVPower" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.

    Den Datenpunkt PVPower habe ich bereits auf Nummer, dann auf String aber es kommt immer eine Fehlermeldung. Die Werte stimmen in beiden Versionen.
    Bei PVPower auf String kommt folgende Meldung:
    admin.0
    2025-05-27 09:43:47.084 warn Object 0_userdata.0.FoxEss.PVPower is invalid: Default value has to be type "string" but received type "number" This will throw an error up from js-controller version 7.0.0!

    Vielleicht kann mir wer Licht ans Fahrrad machen :blush: ?

    paul53P 1 Antwort Letzte Antwort
    0
    • AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von Asgothian
      #2

      @torsten-g sagte in FoxESS Cloud Javascript Warnmeldungen:

      State value to set for "0_userdata.0.FoxEss.PVPower" has to be type "number" but received type "string"

      da sollte deinem Fahrrad ein Licht aufgehen:

      der Datenpunkt ist definiert als Zahl (number). Dein Skript schreibt da einen String rein (string).

      Um die Warnung loszuwerden musst du die explizite Konvertierung zum String wegnehmen oder den DP als String deklarieren.

      .
      .
      .
                  setState("0_userdata.0.FoxEss.PVPower", pvPower.toFixed(3));
                  const soc = json.result[0].datas[2].value;
                  setState("0_userdata.0.FoxEss.SOC", soc.toString());
                  const load = json.result[0].datas[3].value;
                  setState("0_userdata.0.FoxEss.Load", load.toFixed(3));
      .
      .
      .
      

      A.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      T 1 Antwort Letzte Antwort
      0
      • T Torsten G.

        Ich habe dieses Javascript im Netz gefunden. Soweit läuft es auch. Jedoch verstehe ich nicht warum es im Log Warnungen gibt. Kann man diese ausstellen bzw. was könnte geändert werden? Ich bin mehr der Copy/Paste User und habe von Java und Code nicht viel Ahnung.

        /*
        Dieses Script ruft alle 2 Minuten die FoxESS Cloud über eine RestAPI auf und speichert die aufgerufenen Informationen
        an die entsprechenden Objekte im IO-Broker.
        */
         
        const https = require("https")
        const crypto = require('crypto')
        const token = "???"; /* Hier muss der API-Key aus der FoxESS Cloud eingefügt werden */
        const sn = "???"; /* Hier muss die Seriennummer vom Inverter aus der FoxESS Cloud eingefügt werden */
         
        schedule("*/2 * * * * ", async function () {
          try {
            const data = JSON.stringify({
                "sn": sn,
                "variables": [
                    "pvPower", "generationPower", "SoC", "loadsPower"
                ]
            });
            const path = "/op/v0/device/real/query";
            const milliseconds = new Date().getTime();
            const signature = crypto.createHash('md5').update(path + "\\r\\n" + token + "\\r\\n" + milliseconds).digest("hex");
            
            const options = {
                headers: {
                    "Content-Type": "application/json",
                    "token": token,
                    "timestamp": milliseconds,
                    "signature": signature,
                    "lang": "en"
                },
                hostname: "www.foxesscloud.com",
                method: "POST",
                path: path,
                port: 443
            }
            const request = https.request(options, response => {
                //console.log('STATUS: ' + response.statusCode);
                response.setEncoding('utf8');
                response.on("data", function (res) {
                    //console.log(res);
                    const json = JSON.parse(res);
                    const pvPower = json.result[0].datas[0].value;
                    setState("0_userdata.0.FoxEss.PVPower", pvPower.toFixed(3));
                    const soc = json.result[0].datas[2].value;
                    setState("0_userdata.0.FoxEss.SOC", soc.toString());
                    const load = json.result[0].datas[3].value;
                    setState("0_userdata.0.FoxEss.Load", load.toFixed(3));
                });
            });
            request.write(data);
            request.end();
         
          } catch (e) { console.error(e); }
        });
        

        Folgende Warnungen erhalte ich bei jeder Ausführung:

        javascript.0
        2025-05-27 09:34:00.169 info State value to set for "0_userdata.0.FoxEss.PVPower" has to be type "number" but received type "string"
        javascript.0
        2025-05-27 09:34:00.156 warn at TLSSocket.Readable.push (node:internal/streams/readable:392:5)
        javascript.0
        2025-05-27 09:34:00.156 warn at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
        javascript.0
        2025-05-27 09:34:00.156 warn at addChunk (node:internal/streams/readable:561:12)
        javascript.0
        2025-05-27 09:34:00.155 warn at TLSSocket.emit (node:domain:489:12)
        javascript.0
        2025-05-27 09:34:00.155 warn at TLSSocket.emit (node:events:524:28)
        javascript.0
        2025-05-27 09:34:00.155 warn at TLSSocket.socketOnData (node:_http_client:544:22)
        javascript.0
        2025-05-27 09:34:00.155 warn at HTTPParser.parserOnBody (node:_http_common:130:24)
        javascript.0
        2025-05-27 09:34:00.155 warn at IncomingMessage.Readable.push (node:internal/streams/readable:392:5)
        javascript.0
        2025-05-27 09:34:00.155 warn at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
        javascript.0
        2025-05-27 09:34:00.155 warn at addChunk (node:internal/streams/readable:561:12)
        javascript.0
        2025-05-27 09:34:00.154 warn at IncomingMessage.emit (node:domain:489:12)
        javascript.0
        2025-05-27 09:34:00.154 warn at IncomingMessage.emit (node:events:524:28)
        javascript.0
        2025-05-27 09:34:00.154 warn at IncomingMessage.<anonymous> (script.js.skripte.foxx:44:13)
        javascript.0
        2025-05-27 09:34:00.154 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2090:20)
        javascript.0
        2025-05-27 09:34:00.152 warn You are assigning a string to the state "0_userdata.0.FoxEss.PVPower" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.

        Den Datenpunkt PVPower habe ich bereits auf Nummer, dann auf String aber es kommt immer eine Fehlermeldung. Die Werte stimmen in beiden Versionen.
        Bei PVPower auf String kommt folgende Meldung:
        admin.0
        2025-05-27 09:43:47.084 warn Object 0_userdata.0.FoxEss.PVPower is invalid: Default value has to be type "string" but received type "number" This will throw an error up from js-controller version 7.0.0!

        Vielleicht kann mir wer Licht ans Fahrrad machen :blush: ?

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

        @torsten-g sagte: Licht ans Fahrrad machen ?

        Da es sich um Zahlenwerte handelt, ändere Zeilen 41 bis 47:

                    const datas = JSON.parse(res).result[0].datas;
                    setState("0_userdata.0.FoxEss.PVPower", Math.round(datas[0].value * 1000) / 1000, true);
                    setState("0_userdata.0.FoxEss.SOC", datas[2].value, true);
                    setState("0_userdata.0.FoxEss.Load", Math.round(datas[3].value * 1000) / 1000, true);
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        T 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @torsten-g sagte: Licht ans Fahrrad machen ?

          Da es sich um Zahlenwerte handelt, ändere Zeilen 41 bis 47:

                      const datas = JSON.parse(res).result[0].datas;
                      setState("0_userdata.0.FoxEss.PVPower", Math.round(datas[0].value * 1000) / 1000, true);
                      setState("0_userdata.0.FoxEss.SOC", datas[2].value, true);
                      setState("0_userdata.0.FoxEss.Load", Math.round(datas[3].value * 1000) / 1000, true);
          
          T Offline
          T Offline
          Torsten G.
          schrieb am zuletzt editiert von
          #4

          @paul53 Das funktioniert leider nicht. Nur Error Meldungen. Trotzdem Danke für deine Mühe

          paul53P 1 Antwort Letzte Antwort
          0
          • AsgothianA Asgothian

            @torsten-g sagte in FoxESS Cloud Javascript Warnmeldungen:

            State value to set for "0_userdata.0.FoxEss.PVPower" has to be type "number" but received type "string"

            da sollte deinem Fahrrad ein Licht aufgehen:

            der Datenpunkt ist definiert als Zahl (number). Dein Skript schreibt da einen String rein (string).

            Um die Warnung loszuwerden musst du die explizite Konvertierung zum String wegnehmen oder den DP als String deklarieren.

            .
            .
            .
                        setState("0_userdata.0.FoxEss.PVPower", pvPower.toFixed(3));
                        const soc = json.result[0].datas[2].value;
                        setState("0_userdata.0.FoxEss.SOC", soc.toString());
                        const load = json.result[0].datas[3].value;
                        setState("0_userdata.0.FoxEss.Load", load.toFixed(3));
            .
            .
            .
            

            A.

            T Offline
            T Offline
            Torsten G.
            schrieb am zuletzt editiert von
            #5

            @asgothian Danke nur jetzt kommt folgende Meldung vom Admin.0

            Object 0_userdata.0.FoxEss.PVPower is invalid: Default value has to be type "string" but received type "number" This will throw an error up from js-controller version 7.0.0!

            1 Antwort Letzte Antwort
            0
            • T Torsten G.

              @paul53 Das funktioniert leider nicht. Nur Error Meldungen. Trotzdem Danke für deine Mühe

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #6

              @torsten-g sagte: Das funktioniert leider nicht.

              Ich hatte die erste Zeile nachträglich korrigiert. Hast du die Korrektur übernommen?

                          const datas = JSON.parse(res).result[0].datas;
              

              Die Datenpunkte müssen vom Typ "number" sein.

              @torsten-g sagte in FoxESS Cloud Javascript Warnmeldungen:

              Object 0_userdata.0.FoxEss.PVPower is invalid: Default value has to be type "string" but received type "number"

              Wenn du Strings verwenden möchtest, musst du auch common.def von 0 (Zahl) in "" (Leerstring) ändern.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              T 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @torsten-g sagte: Das funktioniert leider nicht.

                Ich hatte die erste Zeile nachträglich korrigiert. Hast du die Korrektur übernommen?

                            const datas = JSON.parse(res).result[0].datas;
                

                Die Datenpunkte müssen vom Typ "number" sein.

                @torsten-g sagte in FoxESS Cloud Javascript Warnmeldungen:

                Object 0_userdata.0.FoxEss.PVPower is invalid: Default value has to be type "string" but received type "number"

                Wenn du Strings verwenden möchtest, musst du auch common.def von 0 (Zahl) in "" (Leerstring) ändern.

                T Offline
                T Offline
                Torsten G.
                schrieb am zuletzt editiert von
                #7

                @paul53 Danke funktioniert nun super. Problem gelöst

                paul53P 1 Antwort Letzte Antwort
                0
                • T Torsten G.

                  @paul53 Danke funktioniert nun super. Problem gelöst

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @torsten-g sagte: Problem gelöst

                  Mit Zahlen oder Strings?

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  T 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @torsten-g sagte: Problem gelöst

                    Mit Zahlen oder Strings?

                    T Offline
                    T Offline
                    Torsten G.
                    schrieb am zuletzt editiert von Torsten G.
                    #9

                    @paul53 Dein korrigierter Post mit Zahlen. Die Datenpunkte in IOBroker habe ich auch auf Zahlen gemacht.

                    
                                const datas = JSON.parse(res).result[0].datas;
                                setState("0_userdata.0.FoxEss.PVPower", Math.round(datas[0].value * 1000) / 1000, true);
                                setState("0_userdata.0.FoxEss.SOC", datas[2].value, true);
                                setState("0_userdata.0.FoxEss.Load", Math.round(datas[3].value * 1000) / 1000, true);
                    
                    
                    1 Antwort Letzte Antwort
                    0
                    • MartinPM Online
                      MartinPM Online
                      MartinP
                      schrieb am zuletzt editiert von MartinP
                      #10

                      Ich habe das Script etwas angepasst - ich habe nur einen Micro-Inverter von FoxEss (Balkonkraftwerk, keine Batterie (deshalb SOC unnötig, und auch keine Lastmessung deshalb Load unnötig)

                      Da der kleine Wechselrichter auch die Erzeugung in kW ausgibt, habe ich das Round angepasst - es kommen dadurch "glatte" Wattwerte (nicht kW) ohne Komma in den Datenpunkt

                      14b37deb-eed3-4e1f-abd2-b94db89a25c7-grafik.png

                      /*
                      Dieses Script ruft alle 2 Minuten die FoxESS Cloud über eine RestAPI auf und speichert die aufgerufenen Informationen
                      an die entsprechenden Objekte im IO-Broker.
                      */
                       
                      const https = require("https")
                      const crypto = require('crypto')
                      const token = "...."; /* Hier muss der API-Key aus der FoxESS Cloud eingefügt werden */
                      const sn = "...."; /* Hier muss die Seriennummer vom Inverter aus der FoxESS Cloud eingefügt werden */
                       
                      schedule("*/2 * * * * ", async function () {
                        try {
                          const data = JSON.stringify({
                              "sn": sn,
                              "variables": [
                                  "pvPower" /*, "generationPower", "SoC", "loadsPower" */
                              ]
                          });
                          const path = "/op/v0/device/real/query";
                          const milliseconds = new Date().getTime();
                          const signature = crypto.createHash('md5').update(path + "\\r\\n" + token + "\\r\\n" + milliseconds).digest("hex");
                          
                          const options = {
                              headers: {
                                  "Content-Type": "application/json",
                                  "token": token,
                                  "timestamp": milliseconds,
                                  "signature": signature,
                                  "lang": "en"
                              },
                              hostname: "www.foxesscloud.com",
                              method: "POST",
                              path: path,
                              port: 443
                          }
                          const request = https.request(options, response => {
                              console.log('STATUS: ' + response.statusCode);
                              //response.setEncoding('utf8');
                              response.on("data", function (res) {
                                  // console.log(res);
                                  const datas = JSON.parse(res).result[0].datas;
                                  console.log(datas[0]);
                                  setState("0_userdata.0.FoxEss.PVPower", Math.round(datas[0].value * 1000), true);
                                  //setState("0_userdata.0.FoxEss.SOC", datas[2].value, true);
                                  //setState("0_userdata.0.FoxEss.Load",    Math.round(datas[3].value * 1000) / 1000, true);        
                              });
                          });
                          request.write(data);
                          request.end();
                       
                        } catch (e) { console.error(e); }
                      });
                      

                      Meine Planungen für weitere Ergänzungen am Script:

                      1. Tagesbudget an Queries sparsamer einsetzen
                        a) zwischen Dämmerungsende und Dämmerungsbeginn keine Werte über die API abfragen (da kann es keine Erträge geben).
                        b) bei niedrigen Erträgen ggfs. auch den Leserhythmus abschwächen.
                      2. Ertrag Vortag einmalig am Folgetag abfragen
                      3. Ertrag Vormonat einmalig am ersten Tag des Folgemonats abfragen.

                      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
                      kernel Linux pve 6.8.12-15-pve
                      6 GByte RAM für den Container
                      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                      Remote-Access über Wireguard der Fritzbox

                      MartinPM 1 Antwort Letzte Antwort
                      0
                      • MartinPM MartinP

                        Ich habe das Script etwas angepasst - ich habe nur einen Micro-Inverter von FoxEss (Balkonkraftwerk, keine Batterie (deshalb SOC unnötig, und auch keine Lastmessung deshalb Load unnötig)

                        Da der kleine Wechselrichter auch die Erzeugung in kW ausgibt, habe ich das Round angepasst - es kommen dadurch "glatte" Wattwerte (nicht kW) ohne Komma in den Datenpunkt

                        14b37deb-eed3-4e1f-abd2-b94db89a25c7-grafik.png

                        /*
                        Dieses Script ruft alle 2 Minuten die FoxESS Cloud über eine RestAPI auf und speichert die aufgerufenen Informationen
                        an die entsprechenden Objekte im IO-Broker.
                        */
                         
                        const https = require("https")
                        const crypto = require('crypto')
                        const token = "...."; /* Hier muss der API-Key aus der FoxESS Cloud eingefügt werden */
                        const sn = "...."; /* Hier muss die Seriennummer vom Inverter aus der FoxESS Cloud eingefügt werden */
                         
                        schedule("*/2 * * * * ", async function () {
                          try {
                            const data = JSON.stringify({
                                "sn": sn,
                                "variables": [
                                    "pvPower" /*, "generationPower", "SoC", "loadsPower" */
                                ]
                            });
                            const path = "/op/v0/device/real/query";
                            const milliseconds = new Date().getTime();
                            const signature = crypto.createHash('md5').update(path + "\\r\\n" + token + "\\r\\n" + milliseconds).digest("hex");
                            
                            const options = {
                                headers: {
                                    "Content-Type": "application/json",
                                    "token": token,
                                    "timestamp": milliseconds,
                                    "signature": signature,
                                    "lang": "en"
                                },
                                hostname: "www.foxesscloud.com",
                                method: "POST",
                                path: path,
                                port: 443
                            }
                            const request = https.request(options, response => {
                                console.log('STATUS: ' + response.statusCode);
                                //response.setEncoding('utf8');
                                response.on("data", function (res) {
                                    // console.log(res);
                                    const datas = JSON.parse(res).result[0].datas;
                                    console.log(datas[0]);
                                    setState("0_userdata.0.FoxEss.PVPower", Math.round(datas[0].value * 1000), true);
                                    //setState("0_userdata.0.FoxEss.SOC", datas[2].value, true);
                                    //setState("0_userdata.0.FoxEss.Load",    Math.round(datas[3].value * 1000) / 1000, true);        
                                });
                            });
                            request.write(data);
                            request.end();
                         
                          } catch (e) { console.error(e); }
                        });
                        

                        Meine Planungen für weitere Ergänzungen am Script:

                        1. Tagesbudget an Queries sparsamer einsetzen
                          a) zwischen Dämmerungsende und Dämmerungsbeginn keine Werte über die API abfragen (da kann es keine Erträge geben).
                          b) bei niedrigen Erträgen ggfs. auch den Leserhythmus abschwächen.
                        2. Ertrag Vortag einmalig am Folgetag abfragen
                        3. Ertrag Vormonat einmalig am ersten Tag des Folgemonats abfragen.
                        MartinPM Online
                        MartinPM Online
                        MartinP
                        schrieb zuletzt editiert von
                        #11

                        Ich habe erste Ergänzungen vorgenommen ...

                        Der kumulierte Tagesertrag ("todayYield") ist hinzugekommen...

                        const data = JSON.stringify({
                                "sn": sn,
                                "variables": [
                                    "pvPower",
                                    "todayYield"
                                     /*, "generationPower", "SoC", "loadsPower" */
                                ]
                            });
                        ....
                                    setState("0_userdata.0.FoxEss.todayYield", Math.round(datas[1].value * 1000), true);
                        

                        Daneben ein kurzes Blockly, was kurz vor Mitternacht den "todayYield" in einen user-Datenpunkt "yesterdayYield" verschiebt...

                        c1039540-2c85-495f-a91d-f5eaecd37dee-grafik.png

                        Wenn man sich die weiteren API-Möglichkeiten so anschauen will, gibt es hier eine Übersicht, was man sich alles aus der Cloud besorgen kann (Abhängig davon, was man sich so alles von denen gekauft hat) ...

                        https://www.foxesscloud.com/public/i18n/en/OpenApiDocument.html

                        Dort diesen Abschnitt suchen

                        Variable table:

                        The table presented below offers a comprehensive overview of the variables that can be accessed through the API. It is important to note that the availability of these variables may differ depending on the specific device being utilized. Therefore, the variables listed in the table are subject to change based on the device in use.

                        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                        Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.13)
                        kernel Linux pve 6.8.12-15-pve
                        6 GByte RAM für den Container
                        Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                        Remote-Access über Wireguard der Fritzbox

                        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

                        632

                        Online

                        32.4k

                        Benutzer

                        81.4k

                        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