Navigation

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

    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

    S
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 4
    • Best 0
    • Groups 0

    SolarElch

    @SolarElch

    0
    Reputation
    45
    Profile views
    4
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    SolarElch Follow

    Latest posts made by SolarElch

    • RE: Fronius Symo Hybrid über Javaskript auslesen (Json)

      Guten Abend ruhr70,

      könne nochmal deine Unterstützung brauchen wenn du so nett bist…. 🙂

      habe dein Skript wie folgt umgebaut:

      var request = require("request");
      
      var myJson = {};
      
      var pfad = "Fronius_SmartMeter";
      
      var idEnergyReal_WAC_Sum_Produced      = pfad + "EnergyReal_WAC_Sum_Produced";
      var idEnergyReal_WAC_Sum_Consumed      = pfad + "EnergyReal_WAC_Sum_Consumed";
      var idEnergyReal_WAC_Plus_Absolute     = pfad + "EnergyReal_WAC_Plus_Absolute";
      var idEnergyReal_WAC_Minus_Absolute    = pfad + "EnergyReal_WAC_Minus_Absolute";
      
      createState(idEnergyReal_WAC_Sum_Produced, 0, {
          name: 'Sum Produced',
          desc: 'Sum Produced',
          type: 'number',
          role: 'value',
          unit: 'Wh'
      });
      
      createState(idEnergyReal_WAC_Sum_Consumed, 0, {
          name: 'Sum Consumed',
          desc: 'Sum Consumed',
          type: 'number',
          role: 'value',
          unit: 'Wh'
      });
      
      createState(idEnergyReal_WAC_Plus_Absolute, 0, {
          name: 'WAC Plus',
          desc: 'WAC Plus',
          type: 'number',
          role: 'value',
          unit: 'Wh'
      });
      
      createState(idEnergyReal_WAC_Minus_Absolute, 0, {
          name: 'WAC Minus',
          desc: 'WAC Minus',
          type: 'number',
          role: 'value',
          unit: 'Wh'
      });
      
      function parseJson(text) {
          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://10.0.0.6/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0';
      
      function main() {
          readJson(url, function(err,json) {
              if(!err) {
                  myJson = json;
                  log("EnergyReal_WAC_Sum_Produced: "      + myJson.Body.Data.EnergyReal_WAC_Sum_Produced.Values[1],"info");
                  log("EnergyReal_WAC_Sum_Consumed: "      + myJson.Body.Data.EnergyReal_WAC_Sum_Consumed.Values[1],"info");
                  log("EnergyReal_WAC_Plus_Absolute: "     + myJson.Body.Data.EnergyReal_WAC_Plus_Absolute.Values[1],"info");
                  log("EnergyReal_WAC_Minus_Absolute: "    + myJson.Body.Data.EnergyReal_WAC_Minus_Absolute.Values[1],"info");
                  setState(idEnergyReal_WAC_Sum_Produced   ,myJson.Body.Data.EnergyReal_WAC_Sum_Produced.Values[1]);
                  setState(idEnergyReal_WAC_Sum_Consumed   ,myJson.Body.Data.EnergyReal_WAC_Sum_Consumed.Values[1]);
                  setState(idEnergyReal_WAC_Plus_Absolute  ,myJson.Body.Data.EnergyReal_WAC_Plus_Absolute.Values[1]);
                  setState(idEnergyReal_WAC_Minus_Absolute ,myJson.Body.Data.EnergyReal_WAC_Minus_Absolute.Values[1]);
              } else {
                  log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                  myJson = {};
              }
          });
      }
      
      schedule("*/15 * * * *", function () { // alle 15 Minuten die Werte abfragen
          main();
      });
      
      // Beim Skriptstart die Werte abfragen
      setTimeout(main,500);
      
      damit ich dann diesen String auslesen kann:
      
      {
      	"Head" : {
      		"RequestArguments" : {
      			"DeviceClass" : "Meter",
      			"DeviceId" : "0",
      			"Scope" : "Device"
      		},
      		"Status" : {
      			"Code" : 0,
      			"Reason" : "",
      			"UserMessage" : ""
      		},
      		"Timestamp" : "2016-04-14T22:20:20+02:00"
      	},
      	"Body" : {
      		"Data" : {
      			"Details" : {
      				"Serial" : "15520147",
      				"Model" : "Fronius SmartMeter",
      				"Manufacturer" : "Fronius"
      			},
      			"TimeStamp" : 1460665219,
      			"Enable" : 1,
      			"Visible" : 1,
      			"PowerReal_P_Sum" : 7345.59,
      			"Meter_Location_Current" : 0,
      			"PowerReal_P_Phase_1" : 3272.18,
      			"PowerReal_P_Phase_2" : 2110.06,
      			"PowerReal_P_Phase_3" : 1963.35,
      			"PowerReactive_Q_Sum" : -96.62,
      			"PowerReactive_Q_Phase_1" : -71.61,
      			"PowerReactive_Q_Phase_2" : 38.35,
      			"PowerReactive_Q_Phase_3" : -63.36,
      			"Current_AC_Phase_1" : 14.174,
      			"Current_AC_Phase_2" : 9.031,
      			"Current_AC_Phase_3" : 8.433,
      			"Voltage_AC_Phase_1" : 231.2,
      			"Voltage_AC_Phase_2" : 233.8,
      			"Voltage_AC_Phase_3" : 233,
      			"Voltage_AC_PhaseToPhase_12" : 402.7,
      			"Voltage_AC_PhaseToPhase_23" : 404.3,
      			"Voltage_AC_PhaseToPhase_31" : 402,
      			"Frequency_Phase_Average" : 50,
      			"PowerApparent_S_Sum" : 7346,
      			"PowerFactor_Sum" : 0.99,
      			"PowerFactor_Phase_1" : 0.99,
      			"PowerFactor_Phase_2" : 1,
      			"PowerFactor_Phase_3" : 0.99,
      			"EnergyReal_WAC_Sum_Produced" : 345066,
      			"EnergyReal_WAC_Sum_Consumed" : 1113042,
      			"EnergyReactive_VArAC_Sum_Produced" : 769590,
      			"EnergyReactive_VArAC_Sum_Consumed" : 603290,
      			"EnergyReal_WAC_Plus_Absolute" : 1113042,
      			"EnergyReal_WAC_Minus_Absolute" : 345066
      		}
      	}
      }
      
      im Log steht dann aber:
      
      22:27:40.471	[info]	javascript.0 Start javascript script.js.Fronius.HausStrom.Fronius_SmartMeter
      22:27:40.472	[info]	javascript.0 script.js.Fronius.HausStrom.Fronius_SmartMeter: registered 0 subscriptions and 1 schedule
      22:27:41.597	[error]	TypeError: Cannot read property '1' of undefined at script.js.Fronius.HausStrom.Fronius_SmartMeter:75:107 at Request._callback (script.js.Fronius.HausStrom.Fronius_SmartMeter:59:13) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:199:22) at Request.EventEmitter.emit (events.js:98:17) at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1036:10) at Request.EventEmitter.emit (events.js:117:20) at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:963:12) at IncomingMessage.EventEmitter.emit (events.js:117:20) at _stream_readable.js:920:16 at process._tickCallback (node.js:415:13)
      
      

      Danke!!! dir SolarElch

      posted in Skripten / Logik
      S
      SolarElch
    • RE: Fronius Symo Hybrid über Javaskript auslesen (Json)

      Servus ruhr70,

      konnte es heute gar nicht mehr abwarten von der firma nach hause zu kommen.

      ES FUNKTIONIERT!!!!

      jetzt noch ein diagramm (wegen der optik 😉 und die daten in eine sql db hinein (das werde ich über ein shell skript erledigen 🙂

      kopiere mir dss skript dann noch einmal damit ich auch das smart meter auslesen kann….

      7" display mit rahmen für den raspi ist schon bestellt, darstellung der werte für die frau 😉

      ps.: ist das ok für dich wenn ich diesen beitrag im pv forum verlinke, das werden sicher einige pv anlagen betreiber mit kuss verwenden.

      du hast schon jetzt 186 views... das skript wird sicher der hit!!!!

      Danke die noch einmal!!!!

      lg SolarElch

      posted in Skripten / Logik
      S
      SolarElch
    • RE: Fronius Symo Hybrid über Javaskript auslesen (Json)

      Guten Abend ruhr70!

      so nah war ich meinem Ziel noch nicht!!!!

      es ist zum greifen nahe…

      dachte schon ich muss auf eine andere Plattform ausweichen...!!!

      JS ist so etwas von nicht meine Welt... DANKE, DANKE, DANKE!!!!

      anbei der der Auszug aus dem Log:

      ReferenceError: myJSON is not defined at script.js.Fronius.HausStrom.Skript1:79:35 at Request._callback (script.js.Fronius.HausStrom.Skript1:63:13) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:199:22) at Request.EventEmitter.emit (events.js:98:17) at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1036:10) at Request.EventEmitter.emit (events.js:117:20) at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:963:12) at IncomingMessage.EventEmitter.emit (events.js:117:20) at _stream_readable.js:920:16 at process._tickCallback (node.js:415:13)

      sehe die Werte schon im VIS...

      das ist alles sooooo spannend...

      lg SolarElch

      posted in Skripten / Logik
      S
      SolarElch
    • Fronius Symo Hybrid über Javaskript auslesen (Json)

      Guten Abend,

      zu Ostern habe ich mein scheitern zum Thema Modbus hier im Forum dokumentiert.

      Der WechselRichter hat mit dem SW-Versionsstand eine Macke an der Ecke (lt. Support).

      Anschließend habe ich mehrere Wege verfolgt, jetzt bin ich der Meinung das die Übung mit JavaSkript erledigt werden könnte?

      über folgende URL:

      10.0.0.6/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System

      bekomme ich folgende vier Werte zurück, kann mir der IOBroker diese auslesen, anzeigen und wegspeichern?

      {
      	"Head" : {
      		"RequestArguments" : {
      			"DataCollection" : "",
      			"Scope" : "System"
      		},
      		"Status" : {
      			"Code" : 0,
      			"Reason" : "",
      			"UserMessage" : ""
      		},
      		"Timestamp" : "2016-04-06T19:56:37+02:00"
      	},
      	"Body" : {
      		"Data" : {
      			"PAC" : {
      				"Unit" : "W",
      				"Values" : {
      					"1" : 0
      				}
      			},
      			"DAY_ENERGY" : {
      				"Unit" : "Wh",
      				"Values" : {
      					"1" : 23834
      				}
      			},
      			"YEAR_ENERGY" : {
      				"Unit" : "Wh",
      				"Values" : {
      					"1" : 390751
      				}
      			},
      			"TOTAL_ENERGY" : {
      				"Unit" : "Wh",
      				"Values" : {
      					"1" : 391336
      				}
      			}
      		}
      	}
      }
      
      

      kann mir BITTE jemand helfen!!!

      Danke für Eure Unterstützung!

      lg SolarElch

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