[98_Fronius.pm] Fronius API Modul

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

Vorheriges Thema - Nächstes Thema

Leeloo_Dallas

#120
Zitat von: Leeloo_Dallas am 20 Mai 2022, 14:50:40
Ne, ich sag nichts.

Und in den Readings Deines Watchdogs stehen wirklich Werte drin.
Bei mir steht da ausser State nichts.

Mit:
define watchdog_Frohny_SAM watchdog Frohny_SAM:PowerFlow_0_TimeStamp:.* 00:02 SAME setreading Frohny_SAM restart 1 ;; modify Frohny_SAM 192.168.1.17

gibts folgende List:
Internals:
   CFGFN     
   CMD        setreading Frohny_SAM restart 1 ; modify Frohny_SAM 192.168.1.17
   DEF        Frohny_SAM:PowerFlow_0_TimeStamp:.* 00:02 SAME setreading Frohny_SAM restart 1 ; modify Frohny_SAM 192.168.1.17
   FUUID      62876a4f-f33f-b5a5-9c22-99be71e5f60a3b9b
   NAME       watchdog_Frohny_SAM
   NOTIFYDEV  watchdog_Frohny_SAM,Frohny_SAM
   NR         37592
   NTFY_ORDER 50-watchdog_Frohny_SAM
   RE1        Frohny_SAM:PowerFlow_0_TimeStamp:.*
   RE2        Frohny_SAM:PowerFlow_0_TimeStamp:.*
   STATE      defined
   TO         120
   TYPE       watchdog
   READINGS:
     2022-05-20 14:48:03   state           defined
   hmccu:
Attributes:
   DbLogExclude .*
   autoRestart 1
   group      System_Watchdogs
   icon       dog_silhouette
   room       SYSTEM,TOOLBOX



Mir fehlen da so Einträge wie z.B.:
  READINGS:
     2022-05-20 11:13:44   Activated       activated
     2022-05-20 11:15:31   Reset           reset
     2022-05-20 11:15:31   Triggered       triggered
     2022-05-20 11:13:44   triggeredByDev  d_SAM
     2022-05-20 11:13:44   triggeredByEvent unscharf
Greatz Leeloo

Mad-at

#121
Probier mal bitte folgendes:

define watchdog_Frohny_SAM watchdog Frohny_SAM:PowerFlow_0_TimeStamp:.* 00:02 SAME { fhem("modify Frohny_SAM 192.168.1.17");; fhem("setreading Frohny_SAM restart 1");; fhem("trigger watchdog_Frohny_SAM .");;}


Hier ist mein List

Internals:
   CMD        { fhem("modify Gen24 192.168.x.xxx"); fhem("trigger Gen24down .");}
   DEF        Gen24:PowerFlow_Site_P_Grid:.* 00:02 SAME { fhem("modify Gen24 192.168.x.xxx"); fhem("trigger Gen24down .");}
   NAME       Gen24down
   NOTIFYDEV  Gen24,Gen24down
   NR         1280
   NTFY_ORDER 50-Gen24down
   RE1        Gen24:PowerFlow_Site_P_Grid:.*
   RE2        Gen24:PowerFlow_Site_P_Grid:.*
   STATE      Next: 15:27:52
   TO         120
   TYPE       watchdog
   READINGS:
     2022-05-20 15:25:52   Activated       activated
     2022-05-20 06:44:46   Reset           reset
     2022-05-20 06:44:46   Triggered       triggered
     2022-05-19 20:59:26   state           defined
     2022-05-20 15:25:52   triggeredByDev  Gen24
     2022-05-20 15:25:52   triggeredByEvent PowerFlow_Site_P_Grid: -5164.2


Und ein Beweisbild im Anhang ;)

Leeloo_Dallas

Solange ich auf PowerFlow_Site_P_Grid gehe und nicht auf PowerFlow_0_TimeStamp läuft der Watchdog.  ;D

Meine Verständnis- Frage zur Funktionsweise. Sind folgende Annahmen richtig?
a) die von Dir zitierte Lösung mit dem AT-Befehl prüft alle X-Sekunden ob sich der ReadingAge-Value geändert hat und startet nur im Differenzfall von z.B.: 65sec. den Fronius-Reading-Prozess neu.
b) die Lösung über den Watchdog startet den Fronius-Reading-Prozess immer neu wenn nicht alle X-Sekunden ein weiterer Reading-Value empfangen wird. Diese "WatchDog-Dauerschleife" läuft aber nur dann an, wenn auch tatsächlich das definierte Event sich ereignet bzw. einmal eingetreten ist.




Greatz Leeloo

Mad-at


Leeloo_Dallas

 8) dann hab ich es wohl geschnallt.

Bei mir läuft die Überwachung jetzt wie folgt:

define Frohny_SAM__Logging_Ueberwachung at +*00:00:10 {\
my $PvsAge    = ReadingsAge("Frohny_SAM","PowerFlow_Site_P_Load",0);;\
my $AkkuAge   = ReadingsAge("Frohny_SAM","Storage_0_Controller_Temperature_Cell",0);;\
# Log3 "Frohny_SAM__Logging_Ueberwachung",3,"Frohny_SAM__Logging_Ueberwachung: Running";;\
\
# Check Frohny_SAM\
if    ($PvsAge >= 65 || $AkkuAge >= 65) {\
if (ReadingsVal("Frohny_SAM", "restart", "0") ne "1") {\
fhem "setreading Frohny_SAM restart 1";;\
Log3 "Frohny_SAM__Logging_Ueberwachung",3,"Frohny_SAM__Logging_Ueberwachung: Restart | Grund Toleranzabweichung Werte >= 65 | ReadingAge_1=$PvsAge ReadingAge_2=$AkkuAge";;\
fhem "modify Frohny_SAM 192.168.1.17";;\
}\
else {\
fhem "setreading Frohny_SAM restart 0";;\
}\
}\
}\

attr Frohny_SAM__Logging_Ueberwachung DbLogExclude .*
attr Frohny_SAM__Logging_Ueberwachung alias alle 10min zur Sicherheit Prüfen ob das Frohny_SAM_Logging funktioniert und bei Bedarf Prozess neu starten
attr Frohny_SAM__Logging_Ueberwachung group System_Events
attr Frohny_SAM__Logging_Ueberwachung icon time_timer
attr Frohny_SAM__Logging_Ueberwachung room SYSTEM,TOOLBOX


@Mad-at: Dir nochmals vielen Dank für die Unterstützung.

LG Leeloo
Greatz Leeloo

PhyTHZ

#125
Hallo,

seitdem ich folgende Änderungen im Modul vorgenommen habe, hat mein ,,Watchdog" nicht mehr angesprochen – sprich alle Reading sind aktuell und auch deren Namen werden nicht mehr falsch zusammengesetzt (Gen24 WR). Ich muss allerdings sagen, dass ich keine Ahnung von Modulprogrammierung (oder Perl) habe – aber vielleicht mag es ja jemand probieren  :)

In sub fronius_HandleCmdQueue($) keepalive von 1 auf 0 setzen:

keepalive       => 0, #GRA 1->0

in sub fronius_Parse($$$) eine Verzögerung in die Queue einbauen:

#fronius_HandleCmdQueue($hash); #Hier wird wieder die sub fronius_HandleCmdQueue aufgerufen; falls die Queue nicht leer ist, wird sie weiter abgearbeitet
InternalTimer(gettimeofday() + 5, "fronius_HandleCmdQueue", $hash, 0); #Hier wird wieder die sub fronius_HandleCmdQueue aufgerufen, aber mit einem festen Delay von 5 s


Ich vermute, dass ,,keepalive" ist das Entscheidende, habe dies aber nicht getestet.



Sebuz

#126
Hallo Leute,
ich habe ein ähnliches Problem bei mir beobachtet.
Seit einem Monat läuft das System und plötzlich kommen keine Werte mehr für meine Kurve. Ich verwende das Reading "Inverter_Common_PAC_Value", mit einem event-min-interval 60 und einer event-on-change-reading-Schwelle von 10.
Das Reading "PowerFlow_Site_P_PV" kommt trotzdem weiterhin.
Kann es sein, daß durch Updates seitens Fronius sich die Variablennamen ändern?

Edit:
habe soeben mit der selben IP modifiziert, sofort funktioniert es wieder!
FHEM seit 3/2019 auf Rasbberry Pi3B+ -Signalduino433/FS1000A/RXB6
- diverse IT Geräte, Funksteckdosen, Sonoffs, -Gas/Wasser/Stromzähler über Logo und FHEM
- Siemens 1x LOGO!8-RCE12/24 0BA8  / 1x LOGO!8-RCT
- PV-Anlage mit Fronius SymoGen24 /- 3-Stufige Heizstabsteuerung für PV-Überschuss

fred_feuerstein

#127
Seit der Änderung am Modul (einen Beitrag über deinem) werden bei mir auch alle relevanten Einträge wieder aktualisiert.

Aber was anderes:
Gibt es irgendwo eine Übersicht, was die ganzen unzähligen Readings bedeuten? Ein paar Dinge kann man sich ja zusammenreimen, aber es gibt sicherlich noch interessante Infos dabei, nur wenn ich nicht weiss was der Wert bedeutet, nutzt mir das nichts.

In der API Doku die ich gefunden haben, sind auch ein paar Werte erwähnt und so in etwa was sie bedeuten. Aber so eine komplett Liste gibt es denke ich nicht, oder?

Bei mir ein Symo GEN 24 10.0

Gruß, Fred

FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art

slawekking

Hallo,

bei der Darstellung meiner OpenWB ist mir aufgefallen, dass ich in unterschiedlichen Abständen Leistungsabbrueche beim PWR habe.
Um eine Analyse durchzuführen würde ich gerne die DC Spannung und Ströme aufnehmen um danach den Fronius Support zu kontaktieren.

Leider werden diese seit einem Monat nicht mehr angezeigt, siehe Anhang.

Kann mir da einer helfen, das Modul habe ich inzwischen auf 0.6 upgedatet.

Bitte um Unterstützung.

Danke

PhyTHZ

Zitat von: slawekking am 22 Juni 2022, 10:47:51
Kann mir da einer helfen, das Modul habe ich inzwischen auf 0.6 upgedatet.

Vielleicht eine blöde Frage: Hast Du nach dem Update das Modul neu geladen und sind die Readings trotzdem nicht da?

Hast Du ein at device zur Überwachung eingebaut (s. ein paar Beiträge vor Deinem)?
Alternativ (oder zusätzlich)  könntest du die von mir vorgeschlagene Änderung am Modul vornehmen (ebenfalls auf dieser Seite) und das Modul neu laden.


dobiwan

Hallo zusammen, ich nutze dieses Modul um meinen Symo Hybrid auszulesen. Leider kommt es immer wieder dazu, dass die Werte nicht aktualisiert werden. Wenn ich dann die IP bearbeite, werden die Werte wieder sauber erkannt. Das passiert manchmal mehrmals am Tag, manchmal aber auch Wochenlang nicht.
Hat jemand eine Idee, woran es liegen kann. Steuere mit dem Akku Zustand mein BHKW an

slawekking


Zitat von: PhyTHZ am 22 Juni 2022, 22:55:20
Vielleicht eine blöde Frage: Hast Du nach dem Update das Modul neu geladen und sind die Readings trotzdem nicht da?

Hast Du ein at device zur Überwachung eingebaut (s. ein paar Beiträge vor Deinem)?
Alternativ (oder zusätzlich)  könntest du die von mir vorgeschlagene Änderung am Modul vornehmen (ebenfalls auf dieser Seite) und das Modul neu laden.


Danke fuer die Rueckmeldung.

Das Modul habe ich natürlich neu gestartet.

Den Watchdog habe ich erzeugt, siehe Anhang kein Erfolg.

Wenn ich den Code Anpasse funktioniert das Modul gar nicht (keine Readings).

Gruß

Christoph

PhyTHZ

Zitat von: slawekking am 24 Juni 2022, 08:39:47
Den Watchdog habe ich erzeugt, siehe Anhang kein Erfolg.


Hallo Christoph,
ich habe als ,,watchdog" wie die anderen hier ein at device verwendet. Ich meine, in Deinem watchdog müsste noch das Attribut autoRestart gesetzt werden.
Spricht der Watchdog denn an und macht ein modify des Fronius devices, wenn das Reading veraltet ist? Funktioniert denn nach einem normalen modify das Modul wieder?

Mir kommt das Reading im Regex merkwürdig vor:
,,PowerFlow_0_Timestamp" gibt es bei mir nicht (nur PowerFlow_Timestamp). Wird es denn wenn das Modul läuft regelmäßg aktualisiert?
Welches JSON bekommst Du denn, wenn Du http://192.168.1.250/solar_api/v1/GetPowerFlowRealtimeData.fcgi abfragst?

Zitat von: slawekking am 24 Juni 2022, 08:39:47
Wenn ich den Code Anpasse funktioniert das Modul gar nicht (keine Readings).
Komisch, die zwei Änderungen greifen ja nicht tief ein. Vielleicht mal nur das keepalive auf 0 setzen? Was steht im log -evtl. Verbose erhöhen?

Grüße,
Gunnar

Mad-at

Zitat von: PhyTHZ am 05 Juni 2022, 18:32:55
seitdem ich folgende Änderungen im Modul vorgenommen habe, hat mein ,,Watchdog" nicht mehr angesprochen[...]

Hallo! Bei mir funktioniert es auch tadellos, konnte sogar mein Poll Intervall von 30 sec auf 60 sec erhöhen. Vielen Dank von meiner Seite!

Jackie

Hallo,

wo finde ich denn das Modul zum Runterladen? Irgedwie fehlt im EIngangsposting der Link, oder bin ich blind?

Danke!
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...