gelöst: Schwierigkeiten mit DummyDevices, UserReadings, Logiken, Scriptings

Begonnen von seayak, 22 März 2024, 11:24:44

Vorheriges Thema - Nächstes Thema

seayak

Hallo zusammen,

ich konnte schon erfolgreich in zwei meiner FHEM Installationen das super Modul 76_SolarForecast nutzen. Leider beiße ich mir innerhalb der Optimierung an einer Installation aktuell noch die Zähne aus. Ich bin leider kein Experte in Perl oder komplexen Logiken und Definitionen in FHEM. Ich hoffe, hier Hilfe von den Experten zu erhalten und bedanke mich vorab schon einmal dafür.

Folgendes Problem:

Innerhalb der Nutzung des Modules 76_SolarForecast habe ich ein Problem mit der korrekten Definition des currentBatteryDev. Ich erhalte leider keine expliziten, separaten Readings von der PV Anlage (Sungrow SHT08 + BYD) für pin und pout. Der Wechselrichter liefert mir nur immer einen positiven Betrag im Reading "03_Battery_Power", egal ob die Batterie geladen oder entladen wird. Das currentBatteryDev benötigt aber zwei Readings, oder ein Vorzeichen vor dem Reading. Ich habe mir alle verfügbaren Readings der PV-Anlage angesehen und nichts gefunden, ich benötige wahrscheinlich eine Logik und ein DummDevice mit UserReadings, um das Thema zu lösen.

Eine Lösung könnte wie folgt aussehen:

Die PV Anlage liefert die folgenden, hier nutzbaren Readings: 01_Total_DC_Power, 02_Load_Power, und 03_Battery_Power. Die folgende Logik könnte mir helfen: if  02_Load_Power > 01_Total_DC_Power then setze "neues UserReading für Battery_Power" und überführe es in einen negativen Wert von 03_Battery_Power und speichere diesen neuen Wert in "neues UserReading für Battery_Power". Zu beachten wäre auch, dass der Wert von 03_Battery_Power auch "0" sein kann und dann macht es keinen Sinn, diese "0" mit einem negativen Vorzeichen im neuen UserReading zu versehen.

Dann müssten die neuen UserReadings alle in ein DummyDevice überführt werden, welches dann als Quelle für die Definition des currentBatteryDev für das Modul 76_SolarForecast dienen kann.

Vielleicht geht das auch alles noch einfacher, aber ich bin leider kein Programmierexperte und hoffe, Ihr könnt mir weiterhelfen.

Viele Grüße aus Leipzig!

Peter

Otto123

Hallo Peter,

zum einen wäre die Frage besser hier aufgehoben FHEM Forum► FHEM - Energiemanagement und Energieerzeugung► Solaranlagen
zum anderen brauchst Du keinen Dummy für dein userReadings, das ist sicher sogar kontraproduktiv.

Erzeuge das userReading doch einfach dort wo die Ausgangswerte dafür entstehen. Zeig doch mal ein list von der "PV Anlage" (siehe)
Die Codetags findest Du jetzt hier, der verlinkte Artikel beschreibt noch die Situation in der alten Forensoftware. ;)
Du darfst diesen Dateianhang nicht ansehen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

seayak

Hallo Otto,

vielen Dank für Deine Antwort und auch toll, dass Du auch aus Leipzig bist! Da es mir primär nicht um die PV Technik ging, hatte ich die Frage hier gepostet.

Vielleicht habe ich auch noch einen anderen Weg entdeckt. Das FHEM Modul "23_BYDBox" liefert das korrekte Reading. Ich werde am Wochenende versuchen, die BYD Box per LAN und statischer Route im Router an FHEM zu bekommen.

Viele Grüße!

Peter

Otto123

naja da ist ja schon ein Monster userReadings dran :)

das musst Du um sowas ergänzen (mit Komma getrennt), ich übersetze mal deine Textaufgabe:
Battery_Power:02_Load_Power:.* {
if (ReadingsNum($NAME,'02_Load_Power',0) > ReadingsNum($NAME,'01_Total_DC_Power',0))
   then {-ReadingsNum($NAME,'03_Battery_Power',0) if ( ReadingsNum($NAME,'03_Battery_Power',0) > 0 ) }
   else {ReadingsNum($NAME,'03_Battery_Power',0)}
}

Wie Du das jetzt in SolarForecast bekommst weiß ich nicht, aber der Modulautor ist leidenschaftlicher Teilnehmer an unserem Leipziger Stammtisch ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

seayak

Hallo zusammen, hallo Otto,

ich konnte heute erfolgreich das FHEM Modul "23_BYDBox" in Betrieb nehmen. Dieses liefert mir das korrekt Vorzeichen behaftete Reading für die Batterie Ladung und Entladung der PV Anlage. Das FHEM Modul "76_SolarForecast" konnte damit korrekt parametrisiert werden. Mit den Logiken und Perl Skripten muss ich mich jetzt selber noch einmal lernend beschäftigen. Aber das ist mein ToDo und hat Zeit... Bisher konnte ich alle Anwendungsfälle in FHEM Dank Wiki, Commandref und Forum lösen und damit im Familien und Freundeskreis einige Systeme etablieren und Werbung dafür machen. Meine eigene FHEM Installation läuft ja auch schon seit 2016 extrem stabil und ohne Ausfälle und das ist bemerkenswert, Dank an alle Entwickler und User dafür.

Viele Grüße!

Peter