Fronius PV Anlage auslesen

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

ronnybe
Beiträge: 15
Registriert: 25.04.2020, 12:11
Hat sich bedankt: 1 Mal

Re: Fronius PV Anlage auslesen

Beitrag von ronnybe » 11.10.2022, 13:57

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!

tommyson
Beiträge: 3
Registriert: 26.09.2022, 17:55
System: CCU

Re: Fronius PV Anlage auslesen

Beitrag von tommyson » 11.10.2022, 21:59

1) Anmeldung als Customer:


2) Linke Seite Auswahl von SOLAR API


3) Kommunikation über Solar API aktivieren
Dateianhänge
Bild1.png
Bild1.png (16.03 KiB) 1955 mal betrachtet
Bild2.png
Bild2.png (13.4 KiB) 1955 mal betrachtet
Bild3.png

ronnybe
Beiträge: 15
Registriert: 25.04.2020, 12:11
Hat sich bedankt: 1 Mal

Re: Fronius PV Anlage auslesen

Beitrag von ronnybe » 12.10.2022, 09:52

Vielen Dank @tommyson für die idiotensichere Anleitung!
Leider hat der "Idiot" :D 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...
Fronius-App.png
Fronius WebGUI.png

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!

tommyson
Beiträge: 3
Registriert: 26.09.2022, 17:55
System: CCU

Re: Fronius PV Anlage auslesen

Beitrag von tommyson » 06.11.2022, 19:59

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.

TobiasH
Beiträge: 16
Registriert: 13.06.2016, 19:44
System: CCU

Re: Fronius PV Anlage auslesen

Beitrag von TobiasH » 12.05.2023, 19:10

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

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"
   }
}
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

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"
   }
}

MichaelN
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

Beitrag von MichaelN » 12.05.2023, 20:03

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 +++

TobiasH
Beiträge: 16
Registriert: 13.06.2016, 19:44
System: CCU

Re: Fronius PV Anlage auslesen

Beitrag von TobiasH » 13.05.2023, 17:55

Thx @MichaelN

Dein Skript ist leider wirlkich etwas zuviel Kanone auf Spatzen :D
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);
In der Abfrage kommte dann später der gleiche Bezeichner nochmal vor und den Wert benötige ich in einer zweiter SV

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"
   }
}

MichaelN
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

Beitrag von MichaelN » 13.05.2023, 18:08

Dann kürze den string nach dem auslesen des ersten Wertes und suche im Rest nochmal.
Bei der Abfrage habe ich 20-30 Werte, benötige aber nur zwei Werte.
Das ist ja prinzipiell kein Problem. Lege nur 2 Systemvariable an und der Rest wird weggeworfen.
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 +++

TobiasH
Beiträge: 16
Registriert: 13.06.2016, 19:44
System: CCU

Re: Fronius PV Anlage auslesen

Beitrag von TobiasH » 15.05.2023, 17:09

Thx, habs mit deinem skript hinbekommen
und auch der thread mit den undokumentierten TCL Befehlen war hilfreich

Wasu
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

Beitrag von Wasu » 06.07.2023, 21:51

MichaelN hat geschrieben:
03.04.2022, 20:04
Ersetze

Code: Alles auswählen

.Variable
durch

Code: Alles auswählen

.State
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.
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.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“