[98_Fronius.pm] Fronius API Modul

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

Vorheriges Thema - Nächstes Thema

thanatos

Ich habe jetzt mal selbst etwas gesucht und teste das aktuell.

Zu meinen Punkten:

Zitat von: thanatos am 20 Juni 2023, 19:42:281) Die Ausgabe "/solar_api/v1/GetPowerFlowRealtimeData.fcgi" ist bei "P_Load" vorzeichenbehaftet. Das Vorzeichen ist in der API auch dokumentiert (+: Hausnetz erzeugt, -: Hausnetz verbraucht) Könntest du bitte mal schauen, ob du das Vorzeichen entsprechend mit übernimmst? Mir scheint es, als würde es immer ein positives Vorzeichen haben.

Hier habe ich jetzt mal testweise den Abschnitt:
                if ($reading eq "PowerFlow_Site_P_Load") {
                    if ( $value + 0 eq $value) {
                        if ($value < 0) {$value = $value * -1}
                    }               
                }
auskommentiert und werde morgen mal prüfen, ob das Vorzeichen des Fronius WR bzgl. dem Hausverbrauch nun korrekt übernommen wird. Gibt es einen Grund, warum du diese Betragsbildung eingeführt hast?

Zitat von: thanatos am 20 Juni 2023, 19:42:282) Ich hattes es bisher zwei Mal, dass das Modul / FHEM unvermittelt die Konfiguration meiner Anlage vergessen hat. Somit wurden dann z.B. die Datensätze vom Smartmeter o.ä. nicht mehr abgefragt. Hier konnte ich mir nur helfen, den WR in FHEM zu löschen und neu einzurichten. Gibt es hier eine Möglichkeit, dass man die Konfiguration nochmal erneut abrufen kann (z.B. solar_api/v1/GetActiveDeviceInfo.cgi)? Das wäre in solch einem Fall sehr hilfreich.

Hier hatte ich nach dem Neustart von FHEM heute wieder das Problem, dass die Verbindung zum WR scheinbar nicht hergestellt werden konnte. Jedenfalls blieb die Verbinung auf disconnected. Hier hat mir der Tipp von Vorhand weitergeholfen:

Zitat von: Vorhand am 14 November 2021, 17:04:21Hallo Michael,
hab seit einigen Tagen den Effekt, dass die Aufzeichnung morgens - ab und zu - nicht mehr startet. Der Status steht auf "connected", aber es kommen keine Werte mehr vom Fronius. Das Gleiche hatte ich auch schon mal bei einem Fhem-Neustart, dann allerdings mit "disconnected".
Wenn ich dann auf DEF gehe und die IP des Umrichters erscheint, genügt ein click auf "Modify..." und schon geht alles wieder, als wäre nichts gewesen.
Ich nutze die aktuelle Version.
Danke.

Grüße,
Marcus

fichtennadel

Erstmal Danke für das Modul, funktioniert bis auf eine Kleinigkeit super.

Gestern hat das Modul die Verbindung zum Wechselrichter verloren, danach aber wieder hergestellt. Ursache war, dass der Wechselrichter wegen eines Firmwareupdates eine Zeitlang nicht erreichbar war.
So weit so gut.

Im Log sah das so aus:

[...]
2023.08.24 23:14:44 3: [wechselrichter] [fronius_Parse] [GetArchiveData] ERROR=10.0.0.30: Connection refused (111)
2023.08.24 23:14:49 3: [wechselrichter] [fronius_Parse] [GetMeterRealtimeData] ERROR=10.0.0.30: Connection refused (111)
2023.08.24 23:14:50 3: [wechselrichter] [fronius_Parse] [GetInverterRealtimeData_System] ERROR=10.0.0.30: Connection refused (111)
2023.08.24 23:14:50 3: [wechselrichter] [fronius_Parse] [GetInverterRealtimeData_3P] ERROR=10.0.0.30: Connection refused (111)
2023.08.24 23:14:50 3: [wechselrichter] [fronius_Parse] [GetInverterRealtimeData_Common] ERROR=10.0.0.30: Connection refused (111)
2023.08.24 23:14:50 3: [wechselrichter] [fronius_Parse] [GetInverterRealtimeData_Cumulation] ERROR=10.0.0.30: Connection refused (111)
2023.08.24 23:15:03 3: [wechselrichter] [fronius_setState] to connected

Aber ab diesem Zeitpunkt wurden keine Aufrufe mehr von GetInverterRealtimeData und GetMeterRealtimeData gemacht.
Ein Neustart von fhem (shutdown restart) hat nicht geholfen.

Mit verbose 4 waren zwar noch Aufrufe von GetPowerFlowRealtimeData und GetArchiveData im Log, aber keine anderen mehr.

Was dann geholfen hat, war das Device löschen und neu anlegen.

Mein Verdacht geht in Richtung der InternalTimer, vielleicht werden die nach einem Problem nicht mehr neu gesetzt.

RasPi 2 B | JeeLink Classic [4x 30.3144it, 2x 30.3147it] | CUL 433 a-culfw V 1.04.01 [ IT-1500, ITM-100, Somfy Telis 1 RTS, BelFox ] | TCM ESP3 [ FSB61, FSB61NP, FT55, FMH4S, AP221 ] | Fronius | Modbus/TCP (Stiebel Eltron WP)

fichtennadel

#257
Zitat von: fichtennadel am 25 August 2023, 15:01:21Ein Neustart von fhem (shutdown restart) hat nicht geholfen.

Jetzt hatte ich das Problem mit den fehlenden GetInverterRealtimeData und GetMeterRealtimeData Aufrufen direkt nach einem shutdown restart, ohne Verbindungsproblem davor.

Ich habe mir die Timer in %intAt angesehen, und tatsächlich: die beiden für GetInverterRealtimeData und GetMeterRealtimeData fehlen.
Ich vermute, das liegt an der Anlage der InternalTimer in fronius_Define(), die evtl. noch vor $init_done angelegt werden.

Ich habe jetzt eine Version bei mir laufen, die die Timer erst im fronius_Notify() anlegt. Bis jetzt sieht das gut aus.
Wenn die Version stabil ist, stelle ich sie hier bei Interesse gerne zur Verfügung.
RasPi 2 B | JeeLink Classic [4x 30.3144it, 2x 30.3147it] | CUL 433 a-culfw V 1.04.01 [ IT-1500, ITM-100, Somfy Telis 1 RTS, BelFox ] | TCM ESP3 [ FSB61, FSB61NP, FT55, FMH4S, AP221 ] | Fronius | Modbus/TCP (Stiebel Eltron WP)

Jackie

Hallo,

hat jemand eine Idee warum bei mir seit dem 28.8.2023 zahlreiche Werte (Inverter_*) nicht mehr aktualisiert werden? Die meisten Daten kommen, aber folgende werden nicht mehr aktualisiert, in den Logs sind keine neuen Einträge dazu:

Inverter_3P_IAC_L1_Unit

A

2023-08-28 12:58:30
Inverter_3P_IAC_L1_Value

5.35

2023-08-28 12:58:30
Inverter_3P_IAC_L2_Unit

A

2023-08-28 12:58:30
Inverter_3P_IAC_L2_Value

5.56

2023-08-28 12:58:30
Inverter_3P_IAC_L3_Unit

A

2023-08-28 12:58:30
Inverter_3P_IAC_L3_Value

5.52

2023-08-28 12:58:30
Inverter_3P_UAC_L1_Unit

V

2023-08-28 12:58:30
Inverter_3P_UAC_L1_Value

235.6

2023-08-28 12:58:30
Inverter_3P_UAC_L2_Unit

V

2023-08-28 12:58:30
Inverter_3P_UAC_L2_Value

237.4

2023-08-28 12:58:30
Inverter_3P_UAC_L3_Unit

V

2023-08-28 12:58:30
Inverter_3P_UAC_L3_Value

Woran könnte das liegen?
   
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

octek0815

Zitat von: Jackie am 05 September 2023, 07:16:55Hallo,

hat jemand eine Idee warum bei mir seit dem 28.8.2023 zahlreiche Werte (Inverter_*) nicht mehr aktualisiert werden? Die meisten Daten kommen, aber folgende werden nicht mehr aktualisiert, in den Logs sind keine neuen Einträge dazu:

Inverter_3P_IAC_L1_Unit

Moin,

du hast bestimmt dein FHEM neugestartet?
Ich habe das Problem auch. Bisher leider unbeantwortet.
Es hilft nur einmal auf DEF klicken und dann wieder speichern, dann kommen die Werte wieder.

Grüße
Olli



Jackie

Danke Olli, Def klicken hat tatsächlich geholfen, seltsam...
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

octek0815

Zitat von: Jackie am 05 September 2023, 07:50:11Danke Olli, Def klicken hat tatsächlich geholfen, seltsam...

Das finde ich auch.
Hoffentlich liest "michael.winkler" mit, und hat eine Idee dazu...

fichtennadel

Zitat von: octek0815 am 05 September 2023, 07:26:34du hast bestimmt dein FHEM neugestartet?
Ich habe das Problem auch. Bisher leider unbeantwortet.
Es hilft nur einmal auf DEF klicken und dann wieder speichern, dann kommen die Werte wieder.

Das Problem kenne ich, den Trick mit der DEF bisher nicht.

Zitat von: fichtennadel am 26 August 2023, 00:25:54Jetzt hatte ich das Problem mit den fehlenden GetInverterRealtimeData und GetMeterRealtimeData Aufrufen direkt nach einem shutdown restart, ohne Verbindungsproblem davor.
[...]
Ich vermute, das liegt an der Anlage der InternalTimer in fronius_Define(), die evtl. noch vor $init_done angelegt werden.

Ich habe jetzt eine Version bei mir laufen, die die Timer erst im fronius_Notify() anlegt. Bis jetzt sieht das gut aus.

@michael.winkler: wenn es für Dich ok ist, kann ich meine angepasste Version hier gerne hochladen oder Dir direkt senden
RasPi 2 B | JeeLink Classic [4x 30.3144it, 2x 30.3147it] | CUL 433 a-culfw V 1.04.01 [ IT-1500, ITM-100, Somfy Telis 1 RTS, BelFox ] | TCM ESP3 [ FSB61, FSB61NP, FT55, FMH4S, AP221 ] | Fronius | Modbus/TCP (Stiebel Eltron WP)

octek0815

Ich habe zwei Fronius Wechselricher einen Gen24 und einen Symo.

Beim Symo werden die Inverter_Cumulation_* Werte und beim GEN24 dei Storage_* Werte nicht aktualisiert nach einem Neustart von FHEM.

Grüße
Olli

stefanru

#264
Ich habe auch ein Problem mit 2 Fronius Wechselrichtern und der Berechnung der Gesamt Werte für PV, Akku, Grid und Load.
Siehe hier: https://forum.fhem.de/index.php?topic=117864.msg1287453#msg1287453

Es wäre toll wenn jemand eine Lösung wüsste.

Wäre es möglich beim 2ten WR die Abfrage zu triggern. So dass es im selben Takt abgefragt wird wie der erste?
Also 1. WR macht Abfrage und triggert Abfrage zum 2. WR.
Das wäre Ideal.

Danke und viele Grüße,
Stefan

fichtennadel

Zitat von: stefanru am 22 September 2023, 15:30:43Es wäre toll wenn jemand eine Lösung wüsste.

Ich habe das Modul erweitert und hole mir über die GetArchiveData Methode im API des Fronius die Werte für EnergyReal_WAC_Sum_Produced, EnergyReal_WAC_Minus_Absolute und EnergyReal_WAC_Plus_Absolute in fixen 5 Minuten Intervallen.
Die Werte sind halbwegs konsistent. Ich habe zwar mit der Lastberechnung trotzdem manchmal noch unplausibel geringe Werte, aber zumindest sind sie nicht negativ wie mit den zeitversetzen Realtime Daten ...
RasPi 2 B | JeeLink Classic [4x 30.3144it, 2x 30.3147it] | CUL 433 a-culfw V 1.04.01 [ IT-1500, ITM-100, Somfy Telis 1 RTS, BelFox ] | TCM ESP3 [ FSB61, FSB61NP, FT55, FMH4S, AP221 ] | Fronius | Modbus/TCP (Stiebel Eltron WP)

stefanru

Hmm, leider kann ich die WAC Werte nicht benutzen da ich für das Forecast Modul auch nur die PV Erzeugung brauche, eben ohne die Erzeugung aus der Batterie.
Soweit ich weiß bleibt mir da nur das Reading PowerFlow_Site_P_PV.
Es wäre super wenn man an dem Fronius API eine methode get data hätte. Dann könnte ich den ersten WR den 2ten triggern lassen.
Eventuell könnte das vom Author eingebaut werden?

Gruß und Danke,
Stefan

stefanru

Hi,

ich habe das Modul hier https://forum.fhem.de/index.php?topic=117864.msg1287529#msg1287529
angepasst, so dass es möglich ist von mehreren Wechselrichter die Realtime Daten gesynct zu holen um korrekte PowerFlow Daten darzustellen und auszuwerten.

@michael.winkler: Es wäre schön wenn solch eine Änderung den Weg ins Fronius Modul finden würde.

Viele Grüße,
Stefan

fichtennadel

Zitat von: stefanru am 22 September 2023, 20:41:12leider kann ich die WAC Werte nicht benutzen da ich für das Forecast Modul auch nur die PV Erzeugung brauche, eben ohne die Erzeugung aus der Batterie.
Soweit ich weiß bleibt mir da nur das Reading PowerFlow_Site_P_PV.

Ah ok, ich hab keine Batterie, ich wusste nicht, dass EnergyReal_WAC_Sum_Produced auch die Einspeisung aus der Batterie enthält.

PowerFlow_Site_P_PV ist der aktuelle Wert, mit all seinen Schwankungen. EnergyReal_WAC_Sum_Produced wäre die Summe über das abgefragte Intervall und passt zumindest bei mir exakt zu den Werten im Fronius solarweb. Aber das hilft Dir wohl nicht, wenn die Batterie da mit reinzählt.
PowerReal_PAC_Sum wäre vielleicht noch eine Möglichkeit für Dich. Leider ist das alles nur sehr spärlich dokumentiert.

Ich habe ja auch schon eine angepasste Version, @michael.winkler: wäre schön, wenn Du Dich hier mal zu Wort melden könntest und die beiden Versionen in Deine integrieren. Macht aus meiner Sicht wenig Sinn, das so auseinanderlaufen zu lassen.
RasPi 2 B | JeeLink Classic [4x 30.3144it, 2x 30.3147it] | CUL 433 a-culfw V 1.04.01 [ IT-1500, ITM-100, Somfy Telis 1 RTS, BelFox ] | TCM ESP3 [ FSB61, FSB61NP, FT55, FMH4S, AP221 ] | Fronius | Modbus/TCP (Stiebel Eltron WP)

kask

#269
Ich habe mir das Problem mit den Readings und Events mal angesehen.
Wie es scheint werden die Timer zu früh gestartet. Wenn diese beim laden gesetzt werden mit einer Verzögerung, dann kommen die Notifies auch wieder durch nach einem "shutdown restart"

Ich hänge mal meine Version an.
In der ist das "Event-Problem" gelöst und zusätzlich kann man die Daten manuel abholen ohne interval, oder wie gewöhnlich mit interval.
Dazu habe ich die Funktionen un und für sich belassen und manipuliere nur die Intervaltimer für die abfragen.

Wenn man manuel die Daten holen muss/möchte dann mit:
Set devicename GetAllData <- holt alle Daten nacheinander wie es im Interval wäre
Set devicename GetAllData Meter Inverter Storage PowerFlow <- holt alle Daten nacheinander wie die Parameter übergeben wurden.Alle nicht übergebenen werden danach mit ausgeführt. Somit kann man sicher stellen das beim ausführen die wichtigsten Daten zuerst abgefragt werden.
Set devicename GetPowerFlowData <- holt nur die Powerflow Daten
Set devicename GetStorageData <- holt nur die Storage Daten
Set devicename GetMeterData <- holt nur die SmartMeter Daten
Set devicename GetInverterData <- holt nur die Inverter Daten
Set devicename RestartInterval <- Reset alle zuständigen Timer für die oben genanneten Aktionen. Wird benötigt wenn man z.B. von 0 Interval auf XXsec. interval stellt um die Timer wieder zu reanimieren!

Zum manuellen laden muss das attr "IntervalRealtimeData" auf <= 0 stehen! Ist der Wert höher als 0 wird im Interval abgefragt, wie gehabt.

Vieleicht kann @michael.winkler das ja einpflegen (zumindest den Event fix). Der Rest ist sicher auch interressant wenn man verschiedene Wechselrichter hat und das oben aufgeführte Problem von @stefanru der Synchronität lösen möchte.