[98_Fronius.pm] Fronius API Modul

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

Vorheriges Thema - Nächstes Thema

Betonklotz

Hallo zusammne,

argh, erledigt. Manchmal sieht man den Wald vor lauter Bäumen nicht...
Da waren jeweils für die userreadings und stateformat am Zeilenende die \ zu viel. Also entfernt und nun läuft es wie gewünscht.

Syon

Kann mir jemand mal seine .cfg für den Gen24 posten? Ich hänge da gerade und bekomme nix geplottet.

hugomckinley

Sehe ich das richtig, dass das keepalive = 0 in der aktuellen Version, das Problem mit den nicht mehr aktualisierten Werten lösen soll?
Bei mir ist noch immer ein modify nötig, dass der Wechselrichter am Morgen wieder Daten liefert.
Kann das jemand bestätigen?
----------------------------------------------------
FHEM in TrueNAS-Jail
HMLGW + HM-Komponenten, alexa-fhem, Modbus/TCP, Modbus/RS485, LG-WebOS, Firmata, 1wire, ESP-RGBWW, DaikinAC per WLAN, Shellys, Denon AVR, Fronius WR, Helios Wohnraumlüftung, ...

Betonklotz

Zitat von: Syon am 12 August 2022, 12:45:46
Kann mir jemand mal seine .cfg für den Gen24 posten? Ich hänge da gerade und bekomme nix geplottet.

Hast du schon mal hier geschaut, da hatte ich ein komplettes list, bzw. raw Definition gepostet. Und es läuft ;-)
https://forum.fhem.de/index.php/topic,113850.msg1230673.html#msg1230673
Einzige Änderung die du machen solltest: im userreadings und stateformat jeweils die "\" entfernen und natürlich anstatt meiner Adresse (wr.iot) entweder deine IP, oder aber Namen eintragen. Das list solltest du auch einfach per c&p einfügen können.
Da du sagst er plottet nichts: das ganze sammelt erst einmal nur Daten, speichert die aber nicht ab. Dazu z.B. via Filelog die daten in eine Datei speichern (oder DBlog (oder was auch immer))...

Internals:
   DEF        ./log/wechselrichter_data-%Y-%m.log PV_Wechselrichter:Akku_Entladen:.*|PV_Wechselrichter:Akku_Laden:.*|PV_Wechselrichter:Bezug:.*|PV_Wechselrichter:Einspeisung:.*|PV_Wechselrichter:PowerFlow_Site_P_Akku:.*|PV_Wechselrichter:PowerFlow_Site_P_Grid:.*|PV_Wechselrichter:PowerFlow_Site_P_Load:.*|PV_Wechselrichter:PowerFlow_Site_P_PV:.*|PV_Wechselrichter:PowerFlow_Site_rel_Autonomy:.*|PV_Wechselrichter:PowerFlow_Site_rel_SelfConsumption:.*|PV_Wechselrichter:Storage_0_Controller_StateOfCharge_Relative:.*
   FD         28
   FUUID      62efbb9f-f33f-a38a-5494-e16917b17645cf82
   NAME       FileLog_Wechselrichter_Daten
   NOTIFYDEV  PV_Wechselrichter
   NR         161
   NTFY_ORDER 50-FileLog_Wechselrichter_Daten
   REGEXP     PV_Wechselrichter:Akku_Entladen:.*|PV_Wechselrichter:Akku_Laden:.*|PV_Wechselrichter:Bezug:.*|PV_Wechselrichter:Einspeisung:.*|PV_Wechselrichter:PowerFlow_Site_P_Akku:.*|PV_Wechselrichter:PowerFlow_Site_P_Grid:.*|PV_Wechselrichter:PowerFlow_Site_P_Load:.*|PV_Wechselrichter:PowerFlow_Site_P_PV:.*|PV_Wechselrichter:PowerFlow_Site_rel_Autonomy:.*|PV_Wechselrichter:PowerFlow_Site_rel_SelfConsumption:.*|PV_Wechselrichter:Storage_0_Controller_StateOfCharge_Relative:.*
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/wechselrichter_data-2022-08.log
   logfile    ./log/wechselrichter_data-%Y-%m.log
   READINGS:
     2022-08-15 19:17:45   linesInTheFile  271929
Attributes:
   room       PV

Und aus den Werten kannst du dir dann ein paar Graphen basteln...

Wo klemmt es denn bei dir? Also bekommst du die aktuellen Werte als readings?

Betonklotz

Dann auch mal Fragen in die Runde: wie komme ich an Tageswerte der PV Anlage?
Also aktuell habe ich die Inhalte aus pv-tag und pv-werte udn sieht auch ganz schön aus. Würde nur gerne auch Tagesgesamtansichten erzeugen, also so etwas wie z.B. Tageswerte Soll 1...3.
Nur woher kommen die Werte/Infos überhaupt?

SOLL_1
Was habe ich vom Netz am Tag bezogen? --> Zählerwert "Bezug" zw. Mitternacht des Vortages und aktuell Mitternacht vergleichen?
Was habe ich zur Eigenversorgung genutzt? --> woher die Info?
Wie viel habe ich eingespeist? --> Zählerwert "Einspeisung" zw. Mitternacht-Mitternacht vergleichen?

SOLL_2
Was habe ich vom Netz bezogen? (vgl. SOLL_1) --> Zählerwert "Bezug" zw. Mitternacht-Mitternacht vergleichen?
Was wurde über den Akku bereitgestellt? --> woher die Info?
Was habe ich zur Eigenversorgung genutzt? (vgl. SOLL_1) --> woher die Info?

SOLL_3
Wie viel habe ich eingespeist (vgl. SOLL_1)? --> Zählerwert "Einspeisung" zw. Mitternacht-Mitternacht vergleichen?
Was wurde in den Akku geladen? --> woher die Info?
Was habe ich zur Eigenversorgung genutzt? (vgl. SOLL_1) --> woher die Info?

JaS

Hallo zusammen,

vielen Dank für das Modul und die Erläuterungen.

Ich habe das Modul ins entsprechende FHEM Verzeichnis kopiert und habe von eurofinder (Seite 7) die config übernommen. Beim Speichern der config erhalte ich allerdings die folgende Fehlermeldung:

"PV_Wechselrichter: unknown attribute DbLogInclude. Type 'attr PV_Wechselrichter ?' for a detailed list"

Der Verbindungsstatus zum Wechselrichter ist "connected", es werden allerdings keine Werte für PV-aktuell, PV Eigenverbrauch etc. angezeigt.

Vorab vielen Dank für eure Hilfe.

Grüße
Jan

Betonklotz

Hallo Jan,

benutzt du denn überhaupt eine Datenbank zum Loggen? Aonst schau mal in meinen letzten Postings.
Was für ein WR hast du? Bekommst du überhaupt von dem die Daten wenn du sie per Hand via Browser abfragst? Also zumindest PV aktuell kommt ja direkt vom WR und sollte dir in den readings zur Verfügung stehen.
Der Rest geht tw. nur via Modbus, d.h. hier die API brauchst du streng genommen gar nicht und kannst (besser: musst) dir die Werte per Modbus abholen um die Modulanzahl zu reduzieren (das kann man aber machen wie man möchte). Für die Verbräuche wirst du rein mit der API scheitern, denn du musst ja wissen was
a) aus dem Akku entnommen, bzw. geladen wird (sofern du einen hast -> nur per Modbus)
b) via Smartmeter aus dem Netz kommt und/oder eingespeist wird
c) was deine PV Module liefern, ggf. auf die Strings aufgeteilt bei Interesse
--> kommst du via API nicht ran, hatte unten ja auch schon "doof" gefragt und mich gewundert was ich falsch mache ;-)

Aber erst einmal die basics, du solltest in den readings die aktuellen Werte sehen.

JaS

Hallo,

danke für deine rasche Antwort. Wir haben einen Symo GEN24 10.0 Plus ohne Akku. Die Solar API ist deaktiviert. Ich habe aktuell noch keine Zugangsdaten für den Wechselrichter um lokal über den Wifi AP am WR die Einstellungen zu ändern. Der Solateur weigert sich noch mir die Zugangsdaten zu übermitteln...

Ich lese mich nochmal durch die letzten Beiträge zum Thema Modbus...

Grüße
Jan

Mario67

Hallo Jan,

nahe liegender, ggf. trivialer Tipp: In der Diskussion um Zugänge zum WR sollte man
1. die Eigentumsverhältnisse am Wechselrichter (Dein Eigentum) klarmachen
2. auf die Verantwortung als Betreiber der PV-Anlage, u.a. gegenüber dem Netzbetreiber (das bist Du) hinweisen.

Gruß,
Mario
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

Mexx13

#159
Zitat von: Betonklotz am 15 August 2022, 19:27:49
Dann auch mal Fragen in die Runde: wie komme ich an Tageswerte der PV Anlage?
Also aktuell habe ich die Inhalte aus pv-tag und pv-werte udn sieht auch ganz schön aus. Würde nur gerne auch Tagesgesamtansichten erzeugen, also so etwas wie z.B. Tageswerte Soll 1...3.
Nur woher kommen die Werte/Infos überhaupt?

SOLL_1
Was habe ich vom Netz am Tag bezogen? --> Zählerwert "Bezug" zw. Mitternacht des Vortages und aktuell Mitternacht vergleichen?
Was habe ich zur Eigenversorgung genutzt? --> woher die Info?
Wie viel habe ich eingespeist? --> Zählerwert "Einspeisung" zw. Mitternacht-Mitternacht vergleichen?

SOLL_2
Was habe ich vom Netz bezogen? (vgl. SOLL_1) --> Zählerwert "Bezug" zw. Mitternacht-Mitternacht vergleichen?
Was wurde über den Akku bereitgestellt? --> woher die Info?
Was habe ich zur Eigenversorgung genutzt? (vgl. SOLL_1) --> woher die Info?

SOLL_3
Wie viel habe ich eingespeist (vgl. SOLL_1)? --> Zählerwert "Einspeisung" zw. Mitternacht-Mitternacht vergleichen?
Was wurde in den Akku geladen? --> woher die Info?
Was habe ich zur Eigenversorgung genutzt? (vgl. SOLL_1) --> woher die Info?

Hi Betonklotz u. Andere!
Ich kann mit der Api schon auch einige Verbrauchsdaten beim Gen24 Plus abfragen:

Statistics Modul auf Readings:
     PowerFlow_Site_E_Total, Meter_0_EnergyReal_WAC_Sum_Consumed, Meter_0_EnergyReal_WAC_Sum_Produced

userReading:
X_eTotal_Minus_ProducedDay { round (ReadingsVal("$name","stat_PowerFlow_Site_E_TotalDay",0) - ReadingsVal("$name","stat_Meter_0_EnergyReal_WAC_Sum_ProducedDay",0),1)},
X_VerbrauchDay:PowerFlow_Site_P_Load.* { round (ReadingsVal("$name","X_eTotal_Minus_ProducedDay",0) + ReadingsVal("$name","stat_Meter_0_EnergyReal_WAC_Sum_ConsumedDay",0),1)},

jz erhalte ich 5 neue Readings:
stat_PowerFlow_Site_E_TotalDay   = PV produzierte Gesamt Tages Energie
stat_Meter_0_EnergyReal_WAC_Sum_ProducedDay  =   vom Fronius Smartmeter erfasste, eingespeiste Tages Energie
stat_Meter_0_EnergyReal_WAC_Sum_ConsumedDay  =  vom Fronius Smartmeter erfasste, bezogene Tages Energie
X_eTotal_Minus_ProducedDay   =  Direkter Verbrauch von der PV Anlage
X_VerbrauchDay  =  Gesamt Tages Verbrauchte Energie (PV Eigenverbrauch + Bezug)

Alles ist noch durchführbar für: Hour, Month, Year   + (Hour)Last

Sry schon mal für meine schnell zusammengefaste Erkenntnisse und Formulierungen. Das sind mehere Wochen an Beobachtung u. programmieren. Es befinden sich bestimmt noch Fehler darin! Es war sehr kompliziert weil Fronius will auch nicht auf zahlende Solarweb Kunden verzichten, die sich nur dort Tages Verläufe ansehen können.
Fehler z.B. Beim Direkten Verbrauch von der PV - da bekomme ich mancher Stunde schon mal einen Minus Wert!

Ps: Akku besitze ich noch keinen.

Lg Max
Fronius Gen24 8.0 Plus, BYD HVM 11.0, Ochner Europa 333 Genius, USR W630 Modbus RTU to TCP, Fritzbox
Raspberry PI, DB-Log, Open-VPN, Jeelink-LaCrosse, Signalduino-WH1080, Busware SCC, CUL 868MHz -Homematic, ESP8266,...

Betonklotz

#160
Zitat von: JaS am 26 August 2022, 13:07:33
Die Solar API ist deaktiviert. Ich habe aktuell noch keine Zugangsdaten für den Wechselrichter
Customer PW reicht aus um die API zu aktivieren, Technican wird benötigt für den Modbus. Ob du das Technican PW haben darfst, da streiten sich die Geister...

Zitat von: Mexx13 am 26 August 2022, 20:11:21
Ich kann mit der Api schon auch einige Verbrauchsdaten beim Gen24 Plus abfragen:

Statistics Modul auf Readings:
     PowerFlow_Site_E_Total, Meter_0_EnergyReal_WAC_Sum_Consumed, Meter_0_EnergyReal_WAC_Sum_Produced

ACHTUNG, Fronius sind Halsabschneider (sorry, muss man so sagen), würde ich nie wieder kaufen. Die API ist längst nicht für alle Modelle gleich, z.B.


/solar_api/v1/GetPowerFlowRealtimeData.fcgi
[...]
Energies are not provided and device types DT are invalid on GEN24

Call is http://<insert hostname or IP here>/solar_api/v1/GetArchiveData.cgi?<your query parameters>
Platform                 Since version
Fronius Hybrid          1.1.2-16
Fronius Non Hybrid    3.3.4-5
Fronius GEN24           NEVER

So komme ich leider bei mir auch an keine Daten via API.
Daher auch mein Rat: erst gar kein Fronius kaufen! Aktuell scheint es dahin zu gehen, dass schön alles online in der cloud bei Fronius laufen soll, d.h. entweder "nur" per Kundendaten zahlen, oder am liebsten gleich noch zusätzlich per Premium Dienst. Von daher kann ich nur sagen: glücklicherweise gibt es (noch?) Modbus, ansonsten hätte ich den WR schon reklamiert (offene Anbindung an Hausautomatisierung steht bei mir im Vertrag). Denn online geht der WR bei mir nie...
Von daher: Modbus freischalten (lassen), aber API ist bei den aktuellen eine Sackgasse

Alternativ: Bogen um Fronius machen und auf Firmen ausweichen die wirklich eine offene Schnittstelle bieten. Denn die SW bei Fronius ist zusätzlich noch Bananenware (habe z.B. immer wieder Aussetzer: pcap zeigt aber klar, dass die Anfragen raus gehen an den WR). Bin da massiv enttäsucht und werde das die nächsten Monate beobachten, sonst darf mein Solartuer nachbessern. Selber Schuld wenn er das anbietet/unterschreibt ;-)

PhyTHZ

#161
Zitat von: Betonklotz am 27 August 2022, 20:45:55
So komme ich leider bei mir auch an keine Daten via API.

Ich gehe mal nur auf das technische ein:

Die von Mexx13 genannten Daten liefert auch der Gen24 (Firmware >=  1.13 vorausgesetzt). Und in deinem List im Beitrag #149 sind die doch auch? Dann userReadings erstellen und darauf ein Statistic device, loggen und z.B. in Grafana darstellen.
Auf weitere Werte kann man mit mit http://<ip>/components/readable zugreifen (siehe Beitrag #142).

Hier mal meine userReadings aus dem Fronius Api Modul (aus der Zeit, als der Gen24 noch kein  PowerFlow_Site_E_Total gab, dafür mit Batterie!)
Energy_Feedin:Meter_0_EnergyReal_WAC_Minus_Absolute.* {sprintf("%.3f", ReadingsVal("Gen24","Meter_0_EnergyReal_WAC_Minus_Absolute","0")/1000)},
Energy_Import:Meter_0_EnergyReal_WAC_Plus_Absolute.* {sprintf("%.3f", ReadingsVal("Gen24","Meter_0_EnergyReal_WAC_Plus_Absolute","0")/1000)},
Energy_Bat_out:PowerFlow_Site_P_Akku.* integral {ReadingsVal("Gen24","PowerFlow_Site_P_Akku","")>0?ReadingsVal("Gen24","PowerFlow_Site_P_Akku","")/3600000:0},
Energy_Bat_in:PowerFlow_Site_P_Akku.* integral {ReadingsVal("Gen24","PowerFlow_Site_P_Akku","")<0?ReadingsVal("Gen24","PowerFlow_Site_P_Akku","")/-3600000:0},
Produced_PV:PowerFlow_Site_P_PV.* integral {ReadingsVal("Gen24","PowerFlow_Site_P_PV","0")/3600000},
Bat_SoC:PowerFlow_Inverters_1_SOC.* {sprintf("%.1f", ReadingsVal("Gen24","PowerFlow_Inverters_1_SOC","0"))},
Power_PV:PowerFlow_Site_P_PV.* {sprintf("%.0f", ReadingsVal("Gen24","PowerFlow_Site_P_PV","0"))},
Power_Load:PowerFlow_Site_P_Load.* {sprintf("%.0f", ReadingsVal("Gen24","PowerFlow_Site_P_Load","0"))},
Power_Feedin:PowerFlow_Site_P_Grid.* {ReadingsVal("Gen24","PowerFlow_Site_P_Grid","")<0?ReadingsVal("Gen24","PowerFlow_Site_P_Grid","")*-1:0},
Power_Import:PowerFlow_Site_P_Grid.* {ReadingsVal("Gen24","PowerFlow_Site_P_Grid","")>0?ReadingsVal("Gen24","PowerFlow_Site_P_Grid",""):0},
Power_Bat:PowerFlow_Site_P_Akku.* {sprintf("%.0f", ReadingsVal("Gen24","PowerFlow_Site_P_Akku","0"))}


Dann statistic device mit
deltareadings Produced_PV,Energy_Bat_in,Energy_Bat_out,Energy_Import,Energy_Feedin,MPPT1_Energy,MPPT2_Energy
singularReadings [i]Fronius_Device[/i]:(Produced_PV|Energie_Bat_in|Energy_Bat_out|Energy_Feedin|Energy_Import):Delta:(Hour|Day|Month|Year)|MPPT:(MPPT1_Energy|MPPT2_Energy):Delta:(Day|Month|Year)


Etwas ganz anderes wird das Solarweb auch nicht machen...

Betonklotz

Hallo zusammen,

hmmm, das eine sind aktuelle Leistungen (in W), das andere Energie (in Wh). Mich interssiert wenig die aktuelle Leistung, ich möchte die Energie ;-)
Ja, man kann näherungsweise die Leistung selber zyklisch erfassen und daraus die Energie ableiten, ABER: das ist höcht ungenau. Zumindest bei mir habe ich dort gravierende Abweichungen. Um das vermutlich genau hinzubekommen, müsste man vermutlich alle 5sec die aktuelle Leistung per API abrufen. Per Modbus kann ich ja die vier MPPT Tracker und zugehörige Zählerstände abfragen, d.h. so komme ich auch genau an die Energie die in den Akku geladen wurde und was entladen wurde (auf MPPT 3 & 4) und muss da nicht "grob schätzen".
Daher hat sich das mit der API (für mich) erledigt, hatte nur einen Klemmer wie ich das überhaupt berechnen soll (also trivialer Fehler...).

PhyTHZ

#163
Zitat von: Betonklotz am 07 September 2022, 08:12:40
Hallo zusammen,

hmmm, das eine sind aktuelle Leistungen (in W), das andere Energie (in Wh). Mich interssiert wenig die aktuelle Leistung, ich möchte die Energie ;-)
Darum werden die Werte in den Userreadings über die Zeit integriert.


ZitatJa, man kann näherungsweise die Leistung selber zyklisch erfassen und daraus die Energie ableiten, ABER: das ist höcht ungenau.

Dann stimmt etwas nicht. Hier mal ein Vergleich der DC Produktion der letzten Tage zwischen Solarweb und dem was die Api liefert (60 s Abfrageintervall):











DatumSolarwebApi/FhemDifferenz
(kWh)(kWh)(%)
01.09.2022  34,134,1-0,1
02.09.2022  38,838,8-0,1
03.09.2022  22,722,7-0,1
04.09.2022  33,933,60,7
05.09.2022  34,634,60,0
06.09.2022  28,728,7-0,1
07.09.2022  31,631,9-0,8
08.09.2022  20,320,20,3

Das finde ich nicht schlecht (schau dir mal an wie groß die Abweichung zwischen Smartmeter und EVU-Zähler sind). Wichtig ist, das man sich immer bewußt ist, welche Energie man gerade betrachtet (und evtl. miteinander verrechnet). E_total in der Api ist z.B. die AC Produktion (jedenfalls nach Beschreibung), also DC Produktion abzgl. der Wandlerverluste. Nimmt man also E_total als Grundlage für die Berechnung  der täglichen PV Produktion, ergibt sich logischerweise ein anderer Wert. Beim Eigenverbrauch im Solarweb, bin ich mir bis heute nicht sicher, ob das wirklich nur verbrauchte AC Energie ist....

Aber klar, Modbus kann man natürlich auch nutzen (mache ich auch, z.B. um die Batterieladeleistung zu setzten). Zum Konsolidieren hatte ich bisher noch keinen Ehrgeiz...
LG

immerdasgleiche

Zitat von: hugomckinley am 15 August 2022, 11:12:51
Sehe ich das richtig, dass das keepalive = 0 in der aktuellen Version, das Problem mit den nicht mehr aktualisierten Werten lösen soll?
Bei mir ist noch immer ein modify nötig, dass der Wechselrichter am Morgen wieder Daten liefert.
Kann das jemand bestätigen?

Wie hast du modify angewendet? Habe das selbe Problem, dass plötzlich die Updates fehlen :/