[98_Fronius.pm] Fronius API Modul

Begonnen von michael.winkler, 26 August 2020, 20:10:45

Vorheriges Thema - Nächstes Thema

grappa24

#285
bei mir kommt da leider gar nix an. Über die Webseite ist der WR erreichbar, die IP Adresse kenne ich.

Ich häng mal meine Definition mit an.

define SymGen24 fronius 192.168.178.xxx
attr SymGen24 room Fronius
#   CFGFN     
#   DEF        192.168.178.xxx
#   FUUID      653d74b4-f33f-b5ae-692a-a2ea8792e0645e70
#   NAME       SymGen24
#   NOTIFYDEV  global
#   NR         4731
#   NTFY_ORDER 50-SymGen24
#   STATE      connected
#   TYPE       fronius
#   eventCount 7
#   READINGS:
#     2023-10-29 06:08:06   API_data        nodata
#     2023-10-29 06:08:06   state           connected
#   helper:
#     RUNNING_REQUEST 0
#     CMD_QUEUE:
#     VARS:
#       FroniusBaseURL nA
#       FroniusIP  192.168.178.xxx
#       Smart_Inverter nA
#       Smart_Meter nA
#       Smart_OhmPilot nA
#       Smart_SensorCard nA
#       Smart_Storage nA
#       Smart_StringControl nA
#
setstate SymGen24 connected
setstate SymGen24 2023-10-29 06:08:06 API_data nodata
setstate SymGen24 2023-10-29 06:08:06 state connected


Im Log erscheint lediglich 2023.10.29 06:08:06 3: [SymGen24] [fronius_setState] to initialize
2023.10.29 06:08:06 3: [SymGen24] [fronius_setState] to connected
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

stefanru

#286
Hi grappa24,
das ist aber sehr seltsam.

Das sieht so aus als ob er keine Daten bekommt.
Soweit ich mich erinnere ging das bei mir auf Anhieb und es war nichts am WR einzustellen.

Hast du FHEM auf einem anderen Rechner oder Raspi laufen?
Kann der auch auf die IP zugreifen?

Da ist ja eigentlich keine Magie dabei.
Das Modul fragt einfach die API des WR ab.

Mach das doch mal manuell:
Hier die URL für die RealtimeDaten:
http://[DeineWRIP]/solar_api/v1/GetPowerFlowRealtimeData.fcgi

Als Rückgabe solltest du die Daten der RealtimeSchnittstelle des WR bekommen.

Habe auch gerade mal auf meinen WR geschaut dort gibt es unter
Kommunikation den Punkt Solar-API.
Dieser muss aktiviert sein um die JSON Daten abzugreifen mit dem obigen Link und somit auch für das Modul.
Hier der direkte Aufruf zur Einstellung für Solar-API:
http://[DeineWRIP]/#/solar-api

Gruß,
Stefan

grappa24

Zitat von: stefanru am 30 Oktober 2023, 00:02:23Habe auch gerade mal auf meinen WR geschaut dort gibt es unter
Kommunikation den Punkt Solar-API.
Dieser muss aktiviert sein um die JSON Daten abzugreifen mit dem obigen Link und somit auch für das Modul.
Hier der direkte Aufruf zur Einstellung für Solar-API:
http://[DeineWRIP]/#/solar-api
Danke Stefan, das wars, meine API war nicht freigeschaltet. Da hast du mir jetzt sehr geholfen, Danke!
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

stefanru

Super, freut mich dass es geklappt hat.
Dachte das wäre bei mir an gewesen, aber vielleicht hatte ich es auch eingeschaltet.
Dann hast du ja jetzt was zum spielen ;D

Wenn du dich etwas mit den Werten auseinandergesetzt hast kann ich dir als nächste spielerei das hier empfehlen:
https://wiki.fhem.de/wiki/SolarForecast_-_Solare_Prognose_(PV_Erzeugung)_und_Verbrauchersteuerung

Viele Grüße,
Stefan

grappa24

Das SolarForecast Modul ist ja gigantisch, da wurde gerade ein riesen Tor aufgestoßen  ;D

Ich hab mal begonnen, das bei mir zu definieren, klappt soweit.

Frage: Bei den Meter-Daten bin ich mir nicht ganz sicher, welche Readings des Fronius Inverters für gcon, contotal, gfeedin und feedtotal benötigt werden, ein kleiner "Schubs" würde mir helfen.

Für currentMeterDevice werden benötigt:
gcon         Reading welches die aktuell aus dem Netz bezogene Leistung liefert
contotal Reading welches die Summe der aus dem Netz bezogenen Energie liefert (ein sich stetig erhöhender Zähler)
gfeedin Reading welches die aktuell in das Netz eingespeiste Leistung liefert
feedtotal Reading welches die Summe der in das Netz eingespeisten Energie liefert (ein sich stetig erhöhender Zähler)
Das sind die Meter-Readings des Fronius:
#     2023-10-31 08:21:23   Meter_0_Current_AC_Phase_1 0.599
#     2023-10-31 08:21:23   Meter_0_Current_AC_Phase_2 0.867
#     2023-10-31 08:21:23   Meter_0_Current_AC_Phase_3 0.691
#     2023-10-31 08:21:23   Meter_0_Current_AC_Sum 2.157
#     2023-10-31 08:21:23   Meter_0_Details_Manufacturer Fronius
#     2023-10-31 08:21:23   Meter_0_Details_Model Smart Meter TS 65A-3
#     2023-10-31 08:21:23   Meter_0_Details_Serial 1546454445
#     2023-10-31 08:21:23   Meter_0_Enable  1
#     2023-10-31 08:21:23   Meter_0_EnergyReactive_VArAC_Sum_Consumed 1771
#     2023-10-31 08:21:23   Meter_0_EnergyReactive_VArAC_Sum_Produced 29200
#     2023-10-31 08:21:23   Meter_0_EnergyReal_WAC_Minus_Absolute 409
#     2023-10-31 08:21:23   Meter_0_EnergyReal_WAC_Plus_Absolute 40315
#     2023-10-31 08:21:23   Meter_0_EnergyReal_WAC_Sum_Consumed 40315
#     2023-10-31 08:21:23   Meter_0_EnergyReal_WAC_Sum_Produced 409
#     2023-10-31 08:21:23   Meter_0_Frequency_Phase_Average 50
#     2023-10-31 08:21:23   Meter_0_Meter_Location_Current 0
#     2023-10-31 08:21:23   Meter_0_PowerApparent_S_Phase_1 63.9
#     2023-10-31 08:21:23   Meter_0_PowerApparent_S_Phase_2 117.7
#     2023-10-31 08:21:23   Meter_0_PowerApparent_S_Phase_3 133.6
#     2023-10-31 08:21:23   Meter_0_PowerApparent_S_Sum 315.3
#     2023-10-31 08:21:23   Meter_0_PowerFactor_Phase_1 0.227
#     2023-10-31 08:21:23   Meter_0_PowerFactor_Phase_2 0.505
#     2023-10-31 08:21:23   Meter_0_PowerFactor_Phase_3 0.457
#     2023-10-31 08:21:23   Meter_0_PowerFactor_Sum 0.624
#     2023-10-31 08:21:23   Meter_0_PowerReactive_Q_Phase_1 -55.5
#     2023-10-31 08:21:23   Meter_0_PowerReactive_Q_Phase_2 -76.5
#     2023-10-31 08:21:23   Meter_0_PowerReactive_Q_Phase_3 -113.8
#     2023-10-31 08:21:23   Meter_0_PowerReactive_Q_Sum -246
#     2023-10-31 08:21:23   Meter_0_PowerReal_P_Phase_1 31.4
#     2023-10-31 08:21:23   Meter_0_PowerReal_P_Phase_2 91.5
#     2023-10-31 08:21:23   Meter_0_PowerReal_P_Phase_3 76.4
#     2023-10-31 08:21:23   Meter_0_PowerReal_P_Sum 191
#     2023-10-31 08:21:23   Meter_0_TimeStamp 1698736882
#     2023-10-31 08:21:23   Meter_0_Visible 1
#     2023-10-31 08:21:23   Meter_0_Voltage_AC_PhaseToPhase_12 401.7
#     2023-10-31 08:21:23   Meter_0_Voltage_AC_PhaseToPhase_23 404.7
#     2023-10-31 08:21:23   Meter_0_Voltage_AC_PhaseToPhase_31 402.2
#     2023-10-31 08:21:23   Meter_0_Voltage_AC_Phase_1 232.9
#     2023-10-31 08:21:23   Meter_0_Voltage_AC_Phase_2 231
#     2023-10-31 08:21:23   Meter_0_Voltage_AC_Phase_3 234
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

stefanru

Hi Grappa24,
ich glaube das sollten wir im Forecast Device Thread besprechen.
https://forum.fhem.de/index.php?topic=117864

Ich suche dir die Werte trotzdem raus, weitere Fragen bitte dort.
Ich habe das wie beschrieben über Dummys gelöst.
Das macht Sinn solltest du mal mehrer Inverter usw haben.
Beim Meter ist es aber eigentlich egal.

Im Dummy habe ich:
EnergyMeterDummy gcon=Bezug_Wirkleistung:W contotal=Bezug_Wirkleistung_Zaehler:kWh gfeedin=Einspeisung_Wirkleistung:W feedtotal=Einspeisung_Wirkleistung_Zaehler:kWh

Die Werte werden in einem Notify geholt und in den Dummy geschrieben.
Hier habe ich für die Werte:
fhem "setreading EnergyMeterDummy Bezug_Wirkleistung ".ReadingsNum("PV_Runge","User_Power_Import",0);;
fhem "setreading EnergyMeterDummy Einspeisung_Wirkleistung ".ReadingsNum("PV_Runge","User_Power_Feedin",0);;
fhem "setreading EnergyMeterDummy Bezug_Wirkleistung_Zaehler ".ReadingsNum("PV_Runge","User_Energy_Import",0);;
fhem "setreading EnergyMeterDummy Einspeisung_Wirkleistung_Zaehler ".ReadingsNum("PV_Runge","User_Energy_Feedin",0);;

Also aufgelöst habe ich:
gcon         User_Power_Import
contotal     User_Energy_Import
gfeedin      User_Power_Feedin
feedtotal    User_Energy_Feedin

Die user readings erzeuge ich mir am Inverter Device, also dem Fronius Device:
userReadings
User_Power_Feedin:PowerFlow_Site_P_Grid.* {ReadingsVal("$name","PowerFlow_Site_P_Grid","")<0?ReadingsVal("$name","PowerFlow_Site_P_Grid","")*-1:0},
User_Power_Import:PowerFlow_Site_P_Grid.* {ReadingsVal("$name","PowerFlow_Site_P_Grid","")>0?ReadingsVal("$name","PowerFlow_Site_P_Grid",""):0},
User_Energy_Feedin:Meter_0_EnergyReal_WAC_Minus_Absolute.* {ReadingsVal("$name","Meter_0_EnergyReal_WAC_Minus_Absolute","0")/1000},
User_Energy_Import:Meter_0_EnergyReal_WAC_Plus_Absolute.* {ReadingsVal("$name","Meter_0_EnergyReal_WAC_Plus_Absolute","0")/1000},

Ich hoffe das hilft dir erstmal weiter.
Alles andere gerne im Forecast Thread.

Gruß,
Stefan

grappa24

Zitat von: stefanru am 31 Oktober 2023, 22:41:19Die Werte werden in einem Notify geholt und in den Dummy geschrieben.
Hier habe ich für die Werte:
fhem "setreading EnergyMeterDummy Bezug_Wirkleistung ".ReadingsNum("PV_Runge","User_Power_Import",0);;
fhem "setreading EnergyMeterDummy Einspeisung_Wirkleistung ".ReadingsNum("PV_Runge","User_Power_Feedin",0);;
fhem "setreading EnergyMeterDummy Bezug_Wirkleistung_Zaehler ".ReadingsNum("PV_Runge","User_Energy_Import",0);;
fhem "setreading EnergyMeterDummy Einspeisung_Wirkleistung_Zaehler ".ReadingsNum("PV_Runge","User_Energy_Feedin",0);;
Danke Stefan!  ... soweit alles umgesetzt, nur die Syntax des Notify verstehe ich nicht.
- mit ReadingsNum die Werte holen: klar
- mit setreading in den Dummy schreiben: klar
- aber das ganze Konstrukt verstehe ich nicht  :(

Für alles weitere dann gerne im Forecast Device Thread
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

grappa24

sagt mal, kann man in der API die Leistung der unterschiedlichen strings sehen? ... bei mir S/W bzw. N/O Seite
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

stefanru

Hi,

ich hab nur einen String am GEN24,
aber wenn ich mir die Werte so ansehe sollten es diese sein:
MPPT1_DC_W
MPPT2_DC_W

Gruß,
Stefan

grappa24

leider nicht, die beiden MPPT-Readings liefern beide konstant 0  :(
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

stefanru

Hi Dieter,

ja hast recht. Ist bei mir auch so.
Das Modul benutzt dazu die ArchiveData und die hat der GEN24 nicht.
http://[DeineWRIP]/solar_api/v1/GetArchiveData.cgi
Das gibt eine 404 Not found.

Hab mir die Doku zur API von Fronius nochmal angeschaut.
Leider steht da für die String Realtime Daten und die Archiev Daten:

GetStringRealtimeData request
String Control does not exist for GEN24/Tauro

Archive Requests
GEN24/Tauro does not provide access to history data

Also geht mit dem G3n24/Tauro nicht.

Gruß,
Stefan

flobeewan

Hallo Stefan,
wo hast du da nachgeschaut. Ich verwende einen Symo und der liefert leider auch keine Stringwerte.
Ich würde mich gerne vergewissern, dass das auch nicht unterstützt wird und es nicht an mir liegt.
Danke!
Gruß
Florian

octek0815

Moin zusammmen,

die Stringwerte bekommt ihr für eine GEN24 so...
Müsst nur xx.xx.xx.xx an eure IP des WR anpassen.

LG
Olli

defmod GEN24_MPPT HTTPMOD http://xx.xx.xx.xx/components/cache/readable 15
attr GEN24_MPPT alignTime 00:00
attr GEN24_MPPT devStateIcon { my $wr1mppt1 = ReadingsVal($name,"MPPT1_DC_W",0);; my $wr1mppt2 = ReadingsVal($name,"MPPT2_DC_W",0);; "<div>MPPT1: $wr1mppt1 W | MPPT2: $wr1mppt2</div>"}
attr GEN24_MPPT event-on-update-reading .*
attr GEN24_MPPT icon inverter
attr GEN24_MPPT reading1Name MPPT1_DC_W
attr GEN24_MPPT reading1OExpr {sprintf("%.0f", $val)}
attr GEN24_MPPT reading1OMap null:0
attr GEN24_MPPT reading1Regex "PV_POWERACTIVE_MEAN_01_F32"[ : \t]+([-+]?[a-z\d\.]+)
attr GEN24_MPPT reading2Name MPPT2_DC_W
attr GEN24_MPPT reading2OExpr {sprintf("%.0f", $val)}
attr GEN24_MPPT reading2OMap null:0
attr GEN24_MPPT reading2Regex "PV_POWERACTIVE_MEAN_02_F32"[ : \t]+([-+]?[a-z\d\.]+)
attr GEN24_MPPT reading3Name MPPT1_DC_A
attr GEN24_MPPT reading3OExpr {sprintf("%.3f", $val)}
attr GEN24_MPPT reading3OMap null:0
attr GEN24_MPPT reading3Regex "PV_CURRENT_MEAN_01_F32"[ : \t]+([-+]?[a-z\d\.]+)
attr GEN24_MPPT reading4Name MPPT1_DC_V
attr GEN24_MPPT reading4OExpr {sprintf("%.3f", $val)}
attr GEN24_MPPT reading4OMap null:0
attr GEN24_MPPT reading4Regex "PV_VOLTAGE_MEAN_01_F32"[ : \t]+([-+]?[a-z\d\.]+)
attr GEN24_MPPT reading5Name MPPT2_DC_A
attr GEN24_MPPT reading5OExpr {sprintf("%.3f", $val)}
attr GEN24_MPPT reading5OMap null:0
attr GEN24_MPPT reading5Regex "PV_CURRENT_MEAN_02_F32"[ : \t]+([-+]?[a-z\d\.]+)
attr GEN24_MPPT reading6Name MPPT2_DC_V
attr GEN24_MPPT reading6OExpr {sprintf("%.3f", $val)}
attr GEN24_MPPT reading6OMap null:0
attr GEN24_MPPT reading6Regex "PV_VOLTAGE_MEAN_02_F32"[ : \t]+([-+]?[a-z\d\.]+)
attr GEN24_MPPT showError 1


grappa24

@Olli: Super, Werte werden bei mir geliefert, leider isses schon dunkel, aber man sieht die Spannungs- und Stromwerte der beiden Strings ;D

Tolle Arbeit, jetzt kann ich sehen, ob sich die Belegung meiner N/O Seite gelohnt hat  ;)
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...