Fronius PV Anlage auslesen
Moderator: Co-Administratoren
Re: Fronius PV Anlage auslesen
Hallo,
wo finde ich die Einstellungsmöglichkeit im Browser o. alternativ in der App? Finde kein Menü o. Reiter "Kommunikation" ...
Test mit
http://<ip>/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData
sagt mir, keine API freigegeben...
Deshalb läuft auch mein Script nicht bzw. bleiben die Variablen leer.
Danke für den entscheidenden Tipp!
wo finde ich die Einstellungsmöglichkeit im Browser o. alternativ in der App? Finde kein Menü o. Reiter "Kommunikation" ...
Test mit
http://<ip>/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData
sagt mir, keine API freigegeben...
Deshalb läuft auch mein Script nicht bzw. bleiben die Variablen leer.
Danke für den entscheidenden Tipp!
Re: Fronius PV Anlage auslesen
1) Anmeldung als Customer:
2) Linke Seite Auswahl von SOLAR API
3) Kommunikation über Solar API aktivieren
2) Linke Seite Auswahl von SOLAR API
3) Kommunikation über Solar API aktivieren
Re: Fronius PV Anlage auslesen
Vielen Dank @tommyson für die idiotensichere Anleitung!
Leider hat der "Idiot" schon gar nicht die Eingangsmaske mit der Benutzerabfrage, weder bei der WebGUI von solar.web noch in der Fronius-App.
Welchen Link nutzt man, um diese Anmeldemaske zu erhalten?
Bitte entschuldigt, wenn ich mich trottelig anstelle - ist mir fast schon peinlich...
Kann es u.U. sein, dass es bei relativ neuen PV-Anlagen (WR-Inbetriebnahme bei mir am 01.09.) nur noch die gemäß Fronius-Webseite den Unternehmen vorbehaltene API-Freischaltung gibt? Ich weiß, ist etwas of topic - da es aber unmittelbar mit der HM-Nutzung/ Script zusammenhängt dann doch hier legitim. Danke!
Update: Mit der solar.start-App und nach Rücksprache mit dem Installateur für das PW hinbekommen - SysVar werden gefüllt. Danke für den Support!
Leider hat der "Idiot" schon gar nicht die Eingangsmaske mit der Benutzerabfrage, weder bei der WebGUI von solar.web noch in der Fronius-App.
Welchen Link nutzt man, um diese Anmeldemaske zu erhalten?
Bitte entschuldigt, wenn ich mich trottelig anstelle - ist mir fast schon peinlich...
Kann es u.U. sein, dass es bei relativ neuen PV-Anlagen (WR-Inbetriebnahme bei mir am 01.09.) nur noch die gemäß Fronius-Webseite den Unternehmen vorbehaltene API-Freischaltung gibt? Ich weiß, ist etwas of topic - da es aber unmittelbar mit der HM-Nutzung/ Script zusammenhängt dann doch hier legitim. Danke!
Update: Mit der solar.start-App und nach Rücksprache mit dem Installateur für das PW hinbekommen - SysVar werden gefüllt. Danke für den Support!
Re: Fronius PV Anlage auslesen
Hi,
Ich habe von meinem PV-Anlagen Aufbauer einen eingeschränkten User bekommen, mit welchem ich mich direkt auf den Wechselrichter einloggen kann.
Also einfach die IP in den Browser eingeben und dann einloggen.
Gruß und gutes gelingen.
Ich habe von meinem PV-Anlagen Aufbauer einen eingeschränkten User bekommen, mit welchem ich mich direkt auf den Wechselrichter einloggen kann.
Also einfach die IP in den Browser eingeben und dann einloggen.
Gruß und gutes gelingen.
Re: Fronius PV Anlage auslesen
Habe das script seit 2018 erfolgreich im Einsatz und sogar erweitert um einen 2ten WR auszulesen.
Jetzt komme ich aber an meine Grenzen, das script zu erweitern.
Habe einen zweiten SmartMeter verbaut um den Verbrauch einer Wärmepumpe zu erfassen.
Per http/json komme ich auch an den Wert, weiß aber nicht wie ich ihn in dem script extrahiere um ihn dann in eine Variable (WP-akt_elLesitung) zu schreiben
Option 1 http://192.168.xx.xx/solar_api/v1/GetPo ... eData.fcgi
Das ist es "P" unter "SecondaryMeters" mit dem Wert -15
Option 2 http://192.168.xx.xx/solar_api/v1/GetMe ... ope=System
Das ist es der zweite "PowerReal_P_Sum" mit dem Wert -14,7
Jetzt komme ich aber an meine Grenzen, das script zu erweitern.
Habe einen zweiten SmartMeter verbaut um den Verbrauch einer Wärmepumpe zu erfassen.
Per http/json komme ich auch an den Wert, weiß aber nicht wie ich ihn in dem script extrahiere um ihn dann in eine Variable (WP-akt_elLesitung) zu schreiben
Option 1 http://192.168.xx.xx/solar_api/v1/GetPo ... eData.fcgi
Das ist es "P" unter "SecondaryMeters" mit dem Wert -15
Code: Alles auswählen
{
"Body" : {
"Data" : {
"Inverters" : {
"1" : {
"DT" : 123,
"E_Day" : 16000,
"E_Total" : 55254300,
"E_Year" : 3234722.75,
"P" : 896
},
"2" : {
"DT" : 122,
"E_Day" : 9567,
"E_Total" : 21574800,
"E_Year" : 1797190.875,
"P" : 516
}
},
"SecondaryMeters" : {
"16711681" : {
"Category" : "METER_CAT_HEATPUMP",
"Label" : "WLW196.2-11 ODU",
"MLoc" : 256,
"P" : -15
}
},
"Site" : {
"E_Day" : 25567,
"E_Total" : 76829100,
"E_Year" : 5031913.625,
"Meter_Location" : "grid",
"Mode" : "meter",
"P_Akku" : null,
"P_Grid" : 1270.1099999999999,
"P_Load" : -2682.1099999999997,
"P_PV" : 1412,
"rel_Autonomy" : 52.64511895485272,
"rel_SelfConsumption" : 100
},
"Version" : "12"
}
},
"Head" : {
"RequestArguments" : {},
"Status" : {
"Code" : 0,
"Reason" : "",
"UserMessage" : ""
},
"Timestamp" : "2023-05-12T18:34:39+02:00"
}
}
Das ist es der zweite "PowerReal_P_Sum" mit dem Wert -14,7
Code: Alles auswählen
{
"Body" : {
"Data" : {
"0" : {
"Current_AC_Phase_1" : 2.1160000000000001,
"Current_AC_Phase_2" : 2.431,
"Current_AC_Phase_3" : 2.1680000000000001,
"Details" : {
"Manufacturer" : "Fronius",
"Model" : "Smart Meter 63A",
"Serial" : "17420973"
},
"Enable" : 1,
"EnergyReactive_VArAC_Sum_Consumed" : 31631490,
"EnergyReactive_VArAC_Sum_Produced" : 156083880,
"EnergyReal_WAC_Minus_Absolute" : 58965509,
"EnergyReal_WAC_Plus_Absolute" : 15314402,
"EnergyReal_WAC_Sum_Consumed" : 15314402,
"EnergyReal_WAC_Sum_Produced" : 58965509,
"Frequency_Phase_Average" : 50,
"Meter_Location_Current" : 0,
"PowerApparent_S_Phase_1" : 501.70359999999999,
"PowerApparent_S_Phase_2" : 575.17459999999994,
"PowerApparent_S_Phase_3" : 512.51520000000005,
"PowerApparent_S_Sum" : 1374,
"PowerFactor_Phase_1" : -0.68000000000000005,
"PowerFactor_Phase_2" : -0.57999999999999996,
"PowerFactor_Phase_3" : -0.60999999999999999,
"PowerFactor_Sum" : -0.62,
"PowerReactive_Q_Phase_1" : -313.54000000000002,
"PowerReactive_Q_Phase_2" : -415.19,
"PowerReactive_Q_Phase_3" : -342.80000000000001,
"PowerReactive_Q_Sum" : -1071.53,
"PowerReal_P_Phase_1" : -292.83999999999997,
"PowerReal_P_Phase_2" : -297.32999999999998,
"PowerReal_P_Phase_3" : -270.37,
"PowerReal_P_Sum" : -860.53999999999996,
"TimeStamp" : 1683910786,
"Visible" : 1,
"Voltage_AC_PhaseToPhase_12" : 410.19999999999999,
"Voltage_AC_PhaseToPhase_23" : 409.60000000000002,
"Voltage_AC_PhaseToPhase_31" : 410.10000000000002,
"Voltage_AC_Phase_1" : 237.09999999999999,
"Voltage_AC_Phase_2" : 236.59999999999999,
"Voltage_AC_Phase_3" : 236.40000000000001
},
"1" : {
"Current_AC_Phase_1" : 0.83999999999999997,
"Current_AC_Phase_2" : 0.79200000000000004,
"Current_AC_Phase_3" : 0.79500000000000004,
"Current_AC_Sum" : 2.427,
"Details" : {
"Manufacturer" : "Fronius",
"Model" : "Smart Meter TS 65A-3",
"Serial" : "207881642"
},
"Enable" : 1,
"EnergyReactive_VArAC_Sum_Consumed" : 1488.9999999999998,
"EnergyReactive_VArAC_Sum_Produced" : 655881,
"EnergyReal_WAC_Minus_Absolute" : 1274219,
"EnergyReal_WAC_Plus_Absolute" : 0,
"EnergyReal_WAC_Sum_Consumed" : 1274219,
"EnergyReal_WAC_Sum_Produced" : 0,
"Frequency_Phase_Average" : 50,
"Meter_Location_Current" : 256,
"PowerApparent_S_Phase_1" : 169.69999999999999,
"PowerApparent_S_Phase_2" : 159.09999999999999,
"PowerApparent_S_Phase_3" : 159.90000000000001,
"PowerApparent_S_Sum" : 488.69999999999999,
"PowerFactor_Phase_1" : 0.040000000000000001,
"PowerFactor_Phase_2" : 0.023,
"PowerFactor_Phase_3" : 0.027,
"PowerFactor_Sum" : 0.029999999999999999,
"PowerReactive_Q_Phase_1" : -169.59999999999999,
"PowerReactive_Q_Phase_2" : -159.09999999999999,
"PowerReactive_Q_Phase_3" : -159.80000000000001,
"PowerReactive_Q_Sum" : -488.5,
"PowerReal_P_Phase_1" : -6.7999999999999998,
"PowerReal_P_Phase_2" : -3.6000000000000001,
"PowerReal_P_Phase_3" : -4.2999999999999998,
"PowerReal_P_Sum" : -14.699999999999999,
"TimeStamp" : 1683910786,
"Visible" : 1,
"Voltage_AC_PhaseToPhase_12" : 410.19999999999999,
"Voltage_AC_PhaseToPhase_23" : 411.10000000000002,
"Voltage_AC_PhaseToPhase_31" : 407.80000000000001,
"Voltage_AC_Phase_1" : 237.30000000000001,
"Voltage_AC_Phase_2" : 236.40000000000001,
"Voltage_AC_Phase_3" : 236
}
}
},
"Head" : {
"RequestArguments" : {
"DeviceClass" : "Meter",
"Scope" : "System"
},
"Status" : {
"Code" : 0,
"Reason" : "",
"UserMessage" : ""
},
"Timestamp" : "2023-05-12T18:59:47+02:00"
}
}
-
- Beiträge: 9654
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: Fronius PV Anlage auslesen
Theoretisch kannst du mein JSON Skript nehmen, das wird den Wert (am besten bei Variante 2) wohl schon raus Fischen. Siehe Signatur. Ist aber vielleicht etwas Overkill für nur einen Wert. Du kannst auch ganz primitiv nach dem Wort suchen und dann das X. Bis y. Zeichen ausschneiden. Das fällt dann auf die Nase, wenn sich an der API was ändert.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Re: Fronius PV Anlage auslesen
Thx @MichaelN
Dein Skript ist leider wirlkich etwas zuviel Kanone auf Spatzen
Bei der Abfrage habe ich 20-30 Werte, benötige aber nur zwei Werte.
Mein Problem, der Bezeichner ist für beide Werte identisch.
Ich weiß nicht wie ich den zweiten Wert / Bezeichner rausfischen kann.
So wird der erste Wert im aktuellen Skript gefunden: PowerReal_P_Sum (http://192.168.xx.xx/solar_api/v1/GetMe ... ope=System)
In der Abfrage kommte dann später der gleiche Bezeichner nochmal vor und den Wert benötige ich in einer zweiter SV
Dein Skript ist leider wirlkich etwas zuviel Kanone auf Spatzen
Bei der Abfrage habe ich 20-30 Werte, benötige aber nur zwei Werte.
Mein Problem, der Bezeichner ist für beide Werte identisch.
Ich weiß nicht wie ich den zweiten Wert / Bezeichner rausfischen kann.
So wird der erste Wert im aktuellen Skript gefunden: PowerReal_P_Sum (http://192.168.xx.xx/solar_api/v1/GetMe ... ope=System)
Code: Alles auswählen
dom.GetObject(CUxD_Device + ".CMD_SETS").State("wget -q -O - " + url + verbrauchParam);
dom.GetObject(CUxD_Device + ".CMD_QUERY_RET").State(1);
stdout = dom.GetObject(CUxD_Device + ".CMD_RETS").State();
pos1 = "\"PowerReal_P_Sum\" :";
wert_pos = stdout.Find(pos1) + pos1.Length();
wertVerbrauch = stdout.Substr(wert_pos,20).StrValueByIndex(pos2,0);
dom.GetObject(variable_verbrauch).State(wertVerbrauch.ToInteger() * -1);
Code: Alles auswählen
{
"Body" : {
"Data" : {
"0" : {
"Current_AC_Phase_1" : 0.95699999999999996,
"Current_AC_Phase_2" : 2.6320000000000001,
"Current_AC_Phase_3" : 2.2389999999999999,
"Details" : {
"Manufacturer" : "Fronius",
"Model" : "Smart Meter 63A",
"Serial" : "17420973"
},
"Enable" : 1,
"EnergyReactive_VArAC_Sum_Consumed" : 31631590,
"EnergyReactive_VArAC_Sum_Produced" : 156286690,
"EnergyReal_WAC_Minus_Absolute" : 58976371,
"EnergyReal_WAC_Plus_Absolute" : 15328705,
"EnergyReal_WAC_Sum_Consumed" : 15328705,
"EnergyReal_WAC_Sum_Produced" : 58976371,
"Frequency_Phase_Average" : 49.899999999999999,
"Meter_Location_Current" : 0,
"PowerApparent_S_Phase_1" : 226.90469999999999,
"PowerApparent_S_Phase_2" : 622.99440000000004,
"PowerApparent_S_Phase_3" : 529.74739999999997,
"PowerApparent_S_Sum" : 1107,
"PowerFactor_Phase_1" : -0.28999999999999998,
"PowerFactor_Phase_2" : -0.73999999999999999,
"PowerFactor_Phase_3" : -0.39000000000000001,
"PowerFactor_Sum" : -0.56999999999999995,
"PowerReactive_Q_Phase_1" : -133.34999999999999,
"PowerReactive_Q_Phase_2" : -392.37,
"PowerReactive_Q_Phase_3" : -377.94999999999999,
"PowerReactive_Q_Sum" : -903.66999999999996,
"PowerReal_P_Phase_1" : -40.399999999999999,
"PowerReal_P_Phase_2" : -438.55000000000001,
"PowerReal_P_Phase_3" : -161.44999999999999,
"PowerReal_P_Sum" : -640.39999999999998,
"TimeStamp" : 1683993100,
"Visible" : 1,
"Voltage_AC_PhaseToPhase_12" : 410.30000000000001,
"Voltage_AC_PhaseToPhase_23" : 409.89999999999998,
"Voltage_AC_PhaseToPhase_31" : 410.19999999999999,
"Voltage_AC_Phase_1" : 237.09999999999999,
"Voltage_AC_Phase_2" : 236.69999999999999,
"Voltage_AC_Phase_3" : 236.59999999999999
},
"1" : {
"Current_AC_Phase_1" : 0.82899999999999996,
"Current_AC_Phase_2" : 0.78100000000000003,
"Current_AC_Phase_3" : 0.78200000000000003,
"Current_AC_Sum" : 2.3919999999999999,
"Details" : {
"Manufacturer" : "Fronius",
"Model" : "Smart Meter TS 65A-3",
"Serial" : "207881642"
},
"Enable" : 1,
"EnergyReactive_VArAC_Sum_Consumed" : 1488.9999999999998,
"EnergyReactive_VArAC_Sum_Produced" : 665501,
"EnergyReal_WAC_Minus_Absolute" : 1284208,
"EnergyReal_WAC_Plus_Absolute" : 0,
"EnergyReal_WAC_Sum_Consumed" : 1284208,
"EnergyReal_WAC_Sum_Produced" : 0,
"Frequency_Phase_Average" : 49.899999999999999,
"Meter_Location_Current" : 256,
"PowerApparent_S_Phase_1" : 169.5,
"PowerApparent_S_Phase_2" : 159.19999999999999,
"PowerApparent_S_Phase_3" : 160.09999999999999,
"PowerApparent_S_Sum" : 489,
"PowerFactor_Phase_1" : 0.040000000000000001,
"PowerFactor_Phase_2" : 0.021999999999999999,
"PowerFactor_Phase_3" : 0.027,
"PowerFactor_Sum" : 0.029999999999999999,
"PowerReactive_Q_Phase_1" : -169.30000000000001,
"PowerReactive_Q_Phase_2" : -159.19999999999999,
"PowerReactive_Q_Phase_3" : -160.09999999999999,
"PowerReactive_Q_Sum" : -488.69999999999999,
"PowerReal_P_Phase_1" : -6.7999999999999998,
"PowerReal_P_Phase_2" : -3.3999999999999999,
"PowerReal_P_Phase_3" : -4.2999999999999998,
"PowerReal_P_Sum" : -14.5,
"TimeStamp" : 1683993099,
"Visible" : 1,
"Voltage_AC_PhaseToPhase_12" : 410.19999999999999,
"Voltage_AC_PhaseToPhase_23" : 409.80000000000001,
"Voltage_AC_PhaseToPhase_31" : 410,
"Voltage_AC_Phase_1" : 237,
"Voltage_AC_Phase_2" : 236.69999999999999,
"Voltage_AC_Phase_3" : 236.5
}
}
},
"Head" : {
"RequestArguments" : {
"DeviceClass" : "Meter",
"Scope" : "System"
},
"Status" : {
"Code" : 0,
"Reason" : "",
"UserMessage" : ""
},
"Timestamp" : "2023-05-13T17:51:40+02:00"
}
}
-
- Beiträge: 9654
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: Fronius PV Anlage auslesen
Dann kürze den string nach dem auslesen des ersten Wertes und suche im Rest nochmal.
Und wenn Du später mal doch noch andere Werte benötigst, musst Du nur die entsprechende Systemvariable anlegen.
Name der benötigten SV und der übermittelte Wert aus deinem Beispiel:
Das ist ja prinzipiell kein Problem. Lege nur 2 Systemvariable an und der Rest wird weggeworfen.Bei der Abfrage habe ich 20-30 Werte, benötige aber nur zwei Werte.
Und wenn Du später mal doch noch andere Werte benötigst, musst Du nur die entsprechende Systemvariable anlegen.
Name der benötigten SV und der übermittelte Wert aus deinem Beispiel:
Code: Alles auswählen
JSON_Body_Data_0_PowerReal-P-Sum = '-640.39999999999998'
JSON_Body_Data_1_PowerReal-P-Sum = '-14.5'
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Re: Fronius PV Anlage auslesen
Thx, habs mit deinem skript hinbekommen
und auch der thread mit den undokumentierten TCL Befehlen war hilfreich
und auch der thread mit den undokumentierten TCL Befehlen war hilfreich
-
- Beiträge: 50
- Registriert: 12.02.2021, 10:57
- System: CCU und Access Point
- Hat sich bedankt: 59 Mal
- Danksagung erhalten: 2 Mal
Re: Fronius PV Anlage auslesen
Hatte auch das Problem, dass der Netzbezug nicht aktualisiert wurde (Fronius GEN24), habe dann wie von Dir vorgeschlagen variable durch state ersetzt, was auch funktioniert.MichaelN hat geschrieben: ↑03.04.2022, 20:04ErsetzedurchCode: Alles auswählen
.Variable
Code: Alles auswählen
.State
Ich kann mir aber nicht erklären warum der Netzbezug jetzt aktualisiert wird und funktioniert aber unter "Systemvariablen" die Spalte "letzte Änderung" nicht aktualisiert wird.
Gibt es dafür eine Erklärung, ich dachte ja bisher, dass die durch Aktualisierung der Variable zwingend auch das Datum/Zeitpunkt der letzten Änderung aktualisiert wird.