Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. rudiradi

    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

    R
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 5
    • Best 0
    • Groups 1

    rudiradi

    @rudiradi

    Starter

    0
    Reputation
    6
    Profile views
    5
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    rudiradi Follow
    Starter

    Latest posts made by rudiradi

    • RE: JSON parse Warnung beim auslesen vom Fronius Symo Gen24

      @paul53
      Daqnke,Danke das wars!

      Der Fehler lag in meinen Objekten:
      Zeile 5 und 12

      {
        "common": {
          "name": "Leistung Haus",
          "desc": "Leistung Haus",
          "type": "number",
          "role": "value",
          "unit": "W"
        },
        "native": {
          "name": "Leistung Haus",
          "desc": "Leistung Haus",
          "type": "number",
          "role": "value",
          "unit": "W"
        },
        "type": "state",
        "_id": "javascript.0.Fronius_Symo_Hybrid.P_Load",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        },
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1637005033310
      }
      
      posted in Skripten / Logik
      R
      rudiradi
    • RE: JSON parse Warnung beim auslesen vom Fronius Symo Gen24

      @paul53
      Hallo,
      Ich habe den vereinfachten script ausprobiert. Liest alle Werte aus mit Warnungen bei den gleichen 2 Werten (s.o.)
      Geht wirklich einfacher 🙂 Habe den Script selbst hier aus dem Forum:
      https://forum.iobroker.net/topic/2294/fronius-symo-hybrid-über-javaskript-auslesen-json/6

      Hier die Protokolle dazu: (damit kann ich nichts anfangen)

      javascript.0
      	2021-11-15 19:16:01.483	warn	at processTicksAndRejections (internal/process/task_queues.js:84:21)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at endReadableNT (_stream_readable.js:1241:12)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at IncomingMessage.EventEmitter.emit (domain.js:483:12)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at IncomingMessage.emit (events.js:326:22)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at Object.onceWrapper (events.js:420:28)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1076:12)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at Request.EventEmitter.emit (domain.js:483:12)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at Request.emit (events.js:314:20)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1154:10)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at Request.EventEmitter.emit (domain.js:483:12)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at Request.emit (events.js:314:20)
      javascript.0
      	2021-11-15 19:16:01.483	warn	at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)
      javascript.0
      	2021-11-15 19:16:01.482	warn	at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:27:17)
      javascript.0
      	2021-11-15 19:16:01.482	warn	at script.js.common.fronius_auslesen_2:64:13
      javascript.0
      	2021-11-15 19:16:01.482	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1439:20)
      javascript.0
      	2021-11-15 19:16:01.482	warn	You are assigning a number to the state "javascript.0.Fronius_Symo_Hybrid.P_PV" which expects a Energie total. Please fix your code to use a Energie total or change the state type to number. This warning might become an error in future versions.
      javascript.0
      	2021-11-15 19:16:01.482	warn	at processTicksAndRejections (internal/process/task_queues.js:84:21)
      javascript.0
      	2021-11-15 19:16:01.482	warn	at endReadableNT (_stream_readable.js:1241:12)
      javascript.0
      	2021-11-15 19:16:01.482	warn	at IncomingMessage.EventEmitter.emit (domain.js:483:12)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at IncomingMessage.emit (events.js:326:22)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at Object.onceWrapper (events.js:420:28)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1076:12)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at Request.EventEmitter.emit (domain.js:483:12)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at Request.emit (events.js:314:20)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1154:10)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at Request.EventEmitter.emit (domain.js:483:12)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at Request.emit (events.js:314:20)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:27:17)
      javascript.0
      	2021-11-15 19:16:01.481	warn	at script.js.common.fronius_auslesen_2:63:13
      javascript.0
      	2021-11-15 19:16:01.481	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1439:20)
      javascript.0
      	2021-11-15 19:16:01.480	warn	You are assigning a number to the state "javascript.0.Fronius_Symo_Hybrid.P_Load" which expects a Energie Jahr. Please fix your code to use a Energie Jahr or change the state type to number. This warning might become an error in future versions.
      

      Vielen Dank für Hilfe Gruß Rudi

      posted in Skripten / Logik
      R
      rudiradi
    • RE: JSON parse Warnung beim auslesen vom Fronius Symo Gen24

      @paul53
      Vielen Dank für die schnelle Antwort. Bin ein paar Tage im Urlaub und werde es dann testen und mich melden. Gruß Rudi

      posted in Skripten / Logik
      R
      rudiradi
    • RE: JSON parse Warnung beim auslesen vom Fronius Symo Gen24

      @rudiradi
      Sorry bin neu hier.
      Das sind die Daten per browser aus dem Fronius ausgelesen:

      {
         "Body" : {
            "Data" : {
               "Inverters" : {
                  "1" : {
                     "DT" : 1,
                     "P" : 0
                  }
               },
               "Site" : {
                  "BatteryStandby" : false,
                  "E_Day" : null,
                  "E_Total" : null,
                  "E_Year" : null,
                  "Meter_Location" : "grid",
                  "Mode" : "meter",
                  "P_Akku" : null,
                  "P_Grid" : 1053.3,
                  "P_Load" : -1053.3,
                  "P_PV" : 0.0,
                  "rel_Autonomy" : 0.0,
                  "rel_SelfConsumption" : null
               },
               "Version" : "12"
            }
         },
         "Head" : {
            "RequestArguments" : {},
            "Status" : {
               "Code" : 0,
               "Reason" : "",
               "UserMessage" : ""
            },
            "Timestamp" : "2021-11-08T16:25:08+00:00"
         }
      }
      

      Das ist mein modifizierter Script zum auslesen der JSON Daten:

      var request = require("request");
      
      var myJson = {};
      
      var pfad = "Fronius_Symo_Hybrid.";
      
      var idP_Akku    = pfad + "P_Akku";
      var idP_Grid    = pfad + "P_Grid";
      var idP_Load    = pfad + "P_Load";
      var idP_PV      = pfad + "P_PV";
      
      
      createState(idP_Akku, 0, {
          name: 'Leistung Akku',
          desc: 'Leistung Akku',
          type: 'number',
          role: 'value',
          unit: 'W'
      });
      
      createState(idP_Grid, 0, {
          name: 'Leistung Netz',
          desc: 'Leistung Netz',
          type: 'number',
          role: 'value',
          unit: 'W'
      });
      
      createState(idP_Load, 0, {
          name: 'Leistung Haus',
          desc: 'Leistung Haus',
          type: 'number',
          role: 'value',
          unit: 'W'
      });
      
      createState(idP_PV, 0, {
          name: 'Leistung PV',
          desc: 'Leistung PV',
          type: 'number',
          role: 'value',
          unit: 'W'
      });
      
      
      
      
      function parseJson(text) {
          var json ;
             if (text === "") return {};
          try {
              json = JSON.parse(text);
          } catch (ex) {
              json = {};
          }
          if(!json) json = {};
          return json;
      }
      
      function readJson(url, callback) {
          request(url, function (err, state, body){
              if (body) {
                  var json = parseJson(body);
                  callback(null, json);
              } else {
                  var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                  log(error, "warn"); 
                  callback(error, null);
              }
          });
      }
      
      
      var url = 'http://192.168.2.211/solar_api/v1/GetPowerFlowRealtimeData.fcgi';
      
      function main() {
          readJson(url, function(err,json) {
              if(!err) {
                  myJson = json;
                  //console.log(myJson.Body.Data.Site.P_Load);            
                  //setState(idP_Akku   ,myJson.Body.Data.Site.P_Akku);
                  setState(idP_Grid   ,myJson.Body.Data.Site.P_Grid);
                  //setState(idP_Load   ,myJson.Body.Data.Site.P_Load);
                  //setState(idP_PV     ,myJson.Body.Data.Site.P_PV);
              } else {
                  log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                  myJson = {};
              }
          });
      }
      
      //schedule("*/10 * * * *", function () { // alle 10 Minuten die Werte abfragen
      //    main();
      //});
      
      //alle 10 sec abfragen
      setInterval(main, 10000);
      // Beim Skriptstart die Werte abfragen
      setTimeout(main,500);
      
      
      

      P_Load und P_PV sind auskommentiret da dort Warnungen kommen !?
      Gruß Rudi

      posted in Skripten / Logik
      R
      rudiradi
    • JSON parse Warnung beim auslesen vom Fronius Symo Gen24

      Hallo,

      Ich bitte um Hilfe !
      Ich lese die aktuellen Daten eines Fronius nach der Anleitung in der Doku vom iobroker aus. (Werte sind angepasst an Ip und Daten des GEN24).
      Allerdings erhalte ich Warnmeldungen bei 2 Werten (Siehe Bild unten)
      Die Rohdaten per Browser sehen so aus:
      Ausgabe von : http://192.168.2.xxx/solar_api/v1/GetPowerFlowRealtimeData.fcgi

      {
         "Body" : {
            "Data" : {
               "Inverters" : {
                  "1" : {
                     "DT" : 1,
                     "P" : 0
                  }
               },
               "Site" : {
                  "BatteryStandby" : false,
                  "E_Day" : null,
                  "E_Total" : null,
                  "E_Year" : null,
                  "Meter_Location" : "grid",
                  "Mode" : "meter",
                  "P_Akku" : null,
                  "P_Grid" : 1053.3,
                  "P_Load" : -1053.3,
                  "P_PV" : 0.0,
                  "rel_Autonomy" : 0.0,
                  "rel_SelfConsumption" : null
               },
               "Version" : "12"
            }
         },
         "Head" : {
            "RequestArguments" : {},
            "Status" : {
               "Code" : 0,
               "Reason" : "",
               "UserMessage" : ""
            },
            "Timestamp" : "2021-11-08T16:25:08+00:00"
         }
      }
      
      
      
      Das dazugehörige Script:
      var request = require("request");
      
      var myJson = {};
      
      var pfad = "Fronius_Symo_Hybrid.";
      
      var idP_Akku    = pfad + "P_Akku";
      var idP_Grid    = pfad + "P_Grid";
      var idP_Load    = pfad + "P_Load";
      var idP_PV      = pfad + "P_PV";
      
      
      createState(idP_Akku, 0, {
          name: 'Leistung Akku',
          desc: 'Leistung Akku',
          type: 'number',
          role: 'value',
          unit: 'W'
      });
      
      createState(idP_Grid, 0, {
          name: 'Leistung Netz',
          desc: 'Leistung Netz',
          type: 'number',
          role: 'value',
          unit: 'W'
      });
      
      createState(idP_Load, 0, {
          name: 'Leistung Haus',
          desc: 'Leistung Haus',
          type: 'number',
          role: 'value',
          unit: 'W'
      });
      
      createState(idP_PV, 0, {
          name: 'Leistung PV',
          desc: 'Leistung PV',
          type: 'number',
          role: 'value',
          unit: 'W'
      });
      
      
      
      
      function parseJson(text) {
          var json ;
             if (text === "") return {};
          try {
              json = JSON.parse(text);
          } catch (ex) {
              json = {};
          }
          if(!json) json = {};
          return json;
      }
      
      function readJson(url, callback) {
          request(url, function (err, state, body){
              if (body) {
                  var json = parseJson(body);
                  callback(null, json);
              } else {
                  var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                  log(error, "warn"); 
                  callback(error, null);
              }
          });
      }
      
      
      var url = 'http://192.168.2.211/solar_api/v1/GetPowerFlowRealtimeData.fcgi';
      
      function main() {
          readJson(url, function(err,json) {
              if(!err) {
                  myJson = json;
                  //console.log(myJson.Body.Data.Site.P_Load);            
                  //setState(idP_Akku   ,myJson.Body.Data.Site.P_Akku);
                  setState(idP_Grid   ,myJson.Body.Data.Site.P_Grid);
                  //setState(idP_Load   ,myJson.Body.Data.Site.P_Load);
                  //setState(idP_PV     ,myJson.Body.Data.Site.P_PV);
              } else {
                  log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                  myJson = {};
              }
          });
      }
      
      //schedule("*/10 * * * *", function () { // alle 10 Minuten die Werte abfragen
      //    main();
      //});
      
      //alle 10 sec abfragen
      setInterval(main, 10000);
      // Beim Skriptstart die Werte abfragen
      setTimeout(main,500);
      

      MOD-Edit: Code in code-tags gesetzt!

      Bei jedem Auslesen von P_Load und P_PV erhalte ich eine Warnung. Die Werte selbst werden korrekt eingetragen.

      image_2021-11-03_05-48-22.png

      Vielen Dank für Hilfe Gruss Rudi

      posted in Skripten / Logik
      R
      rudiradi
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo