76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

Begonnen von DS_Starter, 11 Februar 2024, 14:11:00

Vorheriges Thema - Nächstes Thema

DS_Starter

Moin,

@Wzut, ich habe über deinen Vorschlag nochmal nachgedacht. Im Modul haben wir den Bewölkungsgrad von 0..100. Wenn wir hier mit pahcolor ansetzen und eine dynamische Farbkurve für den Tag von z.B. von Grau über Orange bis Sonnen-Gelb implementieren und für die Nacht z.B. von Grau bis hellerem Blau (also Blautöne für die Nacht), dann gäbe es im Gesamtbild wahrscheinlich für den Betrachter eine recht gute visuelle Beziehung zwischen Tag/Nacht und Bewölkung. Stelle ich mir zumindest so vor.
Das Setup im Modul wäre dann auch gut machbar. Die Attr graphicWeatherColor und graphicWeatherColorNight könnte ich in graphicControl als einen Schlüssel überführen, in dem man dann feste Farben für Tag/Nacht oder eben die dynamischen Farben wie beschrieben festlegen kann.

Kleiner Wermutstropfen ... die jetzt verfügbare Farbauswahl über den colorpicker geht dann nicht mehr weil man den Farbwert dann eingeben muß.

Was denkst du?

LG,
Heiko     
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wzut

Das müsste man mal live sehen :) Keine Ahnung wie "bunt" das wird.
(BTW : wo "versteckt" sich der  Bewölkungsgrad ? )

Das mit dem Colorpicker würde mich persönlich nicht stören, wenn ein Hex Farbwert benötigt wird gibt es genug andere Colorpicker um sich den passenden Wert zu besorgen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

ZitatBTW : wo "versteckt" sich der  Bewölkungsgrad ?
Du kannst dir den Bewölkungsgrad "wcc" jederzeit aus der pvHistory (Daten vor aktueller Zeit) und nextHours (ab aktueller Zeit) holen.
Beispiele findest du in den angegebenen Subroutinen:

$hfcg->{0}{wcc}     = HistoryVal ($hash, $hfcg->{0}{day_str}, $hfcg->{0}{time_str}, 'wcc', '-');  # sub _beamGraphicFirstHour
$hfcg->{$i}{wcc}    = NexthoursVal ($name, 'NextHour'.$nh, 'wcc', '-');                           # _beamGraphicRemainingHours

Ja hast Recht, wie das in der Realität wirkt, können wir tatsächlich erst am Beispiel beurteilen.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

MarvinLu

Hallo zusammen,

ich habe leider ein Problem mit dem Solarcast-Modul und finde den Fehler nicht...

Es gibt Zeiten, da wird die Übergabeleistung ans Haus negativ, dies wird mir natürlich direkt im Log mit einem Fehler quittiert:
2025.06.25 05:59:53 3: SolarForecast - WARNING - The calculated Energy consumption of the house is negative. This appears to be an error and is not saved. Check Readings _PVreal, _GridFeedIn, _GridConsumption, _BatIn_XX, _BatOut_XX of hour >06<
Mein Modul ist wie folgt aufgebaut:
define SolarForecast SolarForecast
attr SolarForecast ctrlLanguage DE
attr SolarForecast event-on-change-reading .*
attr SolarForecast room KG->PV-Anlage,Wetter
attr SolarForecast setupBatteryDev01 NR_Batterie pin=PIn:W pout=POut:W cap=30000 intotal=PIn_Gesamt:kWh outtotal=POut_Gesamt:kWh charge=SOC asynchron=1 show=1:top icon=measure_battery_50@#262626:@yellow:measure_battery_100@red
attr SolarForecast setupInverterDev01 NR_Fronius pvOut=PVOut:W etotal=PVOutTotal:kWh capacity=10000 icon=inverter@red:solar strings=Dach1,Dach2 asynchron=1
attr SolarForecast setupInverterDev02 NR_Victron_gesamt pvOut=PVOut:W etotal=PVOutTotal:kWh capacity=15000 icon=inverter@blue:solar strings=Mauer1, Mauer2, Mauer3, Mauer4, Mauer5, Mauer6, Carport1, Carport2, Carport3, Carport4, Carport5, Carport6 asynchron=1
attr SolarForecast setupInverterStrings Dach1,Dach2,Mauer1,Mauer2,Mauer3,Mauer4,Mauer5,Mauer6,Carport1,Carport2,Carport3,Carport4,Carport5,Carport6
attr SolarForecast setupMeterDev NR_Smartmeter gcon=GridLoadPos:W contotal=GridLoadTotal_bought gfeedin=GridLoadNeg:W feedtotal=GridLoadTotal_sold conprice=35.90:ct/kWh feedprice=0.083:ct/kWh asynchron=1
attr SolarForecast setupRadiationAPI OpenMeteoDWD_D2-API
attr SolarForecast setupStringAzimuth Dach1=48 Dach2=48 Mauer1=48 Mauer2=48 Mauer3=48 Mauer4=48 Mauer5=48 Mauer6=48 Carport1=-40 Carport2=-40 Carport3=-40 Carport4=-40 Carport5=-40 Carport6=-40
attr SolarForecast setupStringDeclination Dach1=40 Dach2=40 Mauer1=90 Mauer2=90 Mauer3=90 Mauer4=90 Mauer5=90 Mauer6=90 Carport1=0 Carport2=0 Carport3=0 Carport4=0 Carport5=0 Carport6=0
attr SolarForecast setupStringPeak Dach1=3.735 Dach2=3.735 Mauer1=1.245 Mauer2=1.245 Mauer3=1.245 Mauer4=1.245 Mauer5=1.245 Mauer6=1.660 Carport1=1.245 Carport2=1.660 Carport3=1.660 Carport4=1.660 Carport5=1.660 Carport6=1.660
attr SolarForecast setupWeatherDev1 OpenMeteoDWD_D2-API
#   FUUID      6855a29f-f33f-1b3f-f383-35aed6f06580e796
#   FVERSION   76_SolarForecast.pm:v1.52.18-s30065/2025-06-23
#   LCACHEFILE last write time: 13:23:19 whole Operating Memory
#   MODE       Automatic / Event-controlled - next planned Cycletime: 13:26:40
#   MODEL      OpenMeteoDWDD2API
#   NAME       SolarForecast
#   NOTIFYDEV  NR_Smartmeter,NR_Batterie,NR_Fronius,NR_Victron_gesamt
#   NR         869
#   NTFY_ORDER 50-SolarForecast
#   STATE      updated
#   TYPE       SolarForecast
#   WEATHERMODEL OpenMeteoDWDD2API
#   eventCount 36520
#   HELPER:
#     FW         WEB
#     PACKAGE    FHEM::SolarForecast
#     S10DONE    1
#     SPGDETAIL 
#     SPGDEV     SolarForecast
#     SPGROOM   
#     VERSION    1.52.18
#     VERSION_API unused
#     VERSION_CTZ 1.0.0
#     VERSION_ErrCodes 1.3.9
#     VERSION_SMUtils 1.28.3
#     GMFRUNNING:
#       abortFn    FHEM::SolarForecast::_abortGetMessageFile
#       bc_pid     5917
#       finishFn   FHEM::SolarForecast::_processMessageFile
#       fn         FHEM::SolarForecast::_retrieveMessageFile
#       loglevel   3
#       pid        DEAD:2070847
#       telnet     telnetPort_127.0.0.1_37134
#       terminated 1
#       timeout    30
#       abortArg:
#       arg:
#         block      1
#         name       SolarForecast
#         tsnext     1751027697.94142
#   OLDREADINGS:
#   READINGS:
#     2025-06-27 13:25:55   Battery_ChargeRecommended_01 1
#     2025-06-27 13:25:55   Current_AutarkyRate 100 %
#     2025-06-27 13:25:55   Current_BatCharge_01 95 %
#     2025-06-27 13:25:55   Current_Consumption 277 W
#     2025-06-27 13:25:55   Current_GridConsumption 0 W
#     2025-06-27 13:25:55   Current_GridFeedIn 1275 W
#     2025-06-27 13:25:55   Current_PV      1520 W
#     2025-06-27 13:25:55   Current_PowerBatIn_01 0 W
#     2025-06-27 13:25:55   Current_PowerBatOut_01 32 W
#     2025-06-27 13:25:55   Current_SelfConsumption 245 W
#     2025-06-27 13:25:55   Current_SelfConsumptionRate 16 %
#     2025-06-27 13:25:55   Current_Surplus 1243 W
#     2025-06-27 13:00:00   LastHourGridconsumptionReal 0 Wh
#     2025-06-27 13:00:00   LastHourPVforecast 3238 Wh
#     2025-06-27 13:00:00   LastHourPVreal  3400 Wh
#     2025-06-27 13:25:55   NextHours_Sum01_PVforecast 2589 Wh
#     2025-06-27 13:25:55   NextHours_Sum02_PVforecast 4571 Wh
#     2025-06-27 13:25:55   NextHours_Sum03_PVforecast 6173 Wh
#     2025-06-27 13:25:55   NextHours_Sum04_ConsumptionForecast 22785 Wh
#     2025-06-27 13:25:55   NextHours_Sum04_PVforecast 9676 Wh
#     2025-06-27 13:25:55   RestOfDayConsumptionForecast 30844 Wh
#     2025-06-27 13:25:55   RestOfDayPVforecast 19330 Wh
#     2025-06-27 00:59:58   Today_Hour01_BatIn_01 200 Wh
#     2025-06-27 00:59:58   Today_Hour01_BatOut_01 0 Wh
#     2025-06-27 00:59:58   Today_Hour01_GridConsumption 0 Wh
#     2025-06-27 00:59:58   Today_Hour01_GridFeedIn 0 Wh
#     2025-06-27 00:59:58   Today_Hour01_PVreal 0 Wh
#     2025-06-27 01:59:58   Today_Hour02_BatIn_01 100 Wh
#     2025-06-27 01:59:58   Today_Hour02_BatOut_01 0 Wh
#     2025-06-27 01:59:58   Today_Hour02_GridConsumption 0 Wh
#     2025-06-27 01:59:58   Today_Hour02_GridFeedIn 0 Wh
#     2025-06-27 01:59:58   Today_Hour02_PVreal 0 Wh
#     2025-06-27 02:59:57   Today_Hour03_BatIn_01 300 Wh
#     2025-06-27 02:59:57   Today_Hour03_BatOut_01 0 Wh
#     2025-06-27 02:59:57   Today_Hour03_GridConsumption 0 Wh
#     2025-06-27 02:59:57   Today_Hour03_GridFeedIn 0 Wh
#     2025-06-27 02:59:57   Today_Hour03_PVreal 0 Wh
#     2025-06-27 03:59:58   Today_Hour04_BatIn_01 200 Wh
#     2025-06-27 03:59:58   Today_Hour04_BatOut_01 0 Wh
#     2025-06-27 03:59:58   Today_Hour04_GridConsumption 0 Wh
#     2025-06-27 03:59:58   Today_Hour04_GridFeedIn 0 Wh
#     2025-06-27 03:59:58   Today_Hour04_PVreal 0 Wh
#     2025-06-27 04:59:56   Today_Hour05_BatIn_01 200 Wh
#     2025-06-27 04:59:56   Today_Hour05_BatOut_01 0 Wh
#     2025-06-27 04:59:56   Today_Hour05_GridConsumption 0 Wh
#     2025-06-27 04:59:56   Today_Hour05_GridFeedIn 0 Wh
#     2025-06-27 04:59:56   Today_Hour05_PVreal 0 Wh
#     2025-06-27 05:59:59   Today_Hour06_BatIn_01 800 Wh
#     2025-06-27 05:59:59   Today_Hour06_BatOut_01 0 Wh
#     2025-06-27 05:59:59   Today_Hour06_GridConsumption 0 Wh
#     2025-06-27 05:59:59   Today_Hour06_GridFeedIn 0 Wh
#     2025-06-27 05:59:59   Today_Hour06_PVforecast 30 Wh
#     2025-06-27 05:59:59   Today_Hour06_PVreal 50 Wh
#     2025-06-27 06:59:57   Today_Hour07_BatIn_01 0 Wh
#     2025-06-27 06:59:57   Today_Hour07_BatOut_01 200 Wh
#     2025-06-27 06:59:57   Today_Hour07_GridConsumption 0 Wh
#     2025-06-27 06:59:57   Today_Hour07_GridFeedIn 0 Wh
#     2025-06-27 06:59:57   Today_Hour07_PVforecast 552 Wh
#     2025-06-27 06:59:57   Today_Hour07_PVreal 750 Wh
#     2025-06-27 07:59:59   Today_Hour08_BatIn_01 0 Wh
#     2025-06-27 07:59:59   Today_Hour08_BatOut_01 500 Wh
#     2025-06-27 07:59:59   Today_Hour08_GridConsumption 0 Wh
#     2025-06-27 07:59:59   Today_Hour08_GridFeedIn 0 Wh
#     2025-06-27 07:59:59   Today_Hour08_PVforecast 1660 Wh
#     2025-06-27 07:59:59   Today_Hour08_PVreal 1700 Wh
#     2025-06-27 08:59:57   Today_Hour09_BatIn_01 0 Wh
#     2025-06-27 08:59:57   Today_Hour09_BatOut_01 500 Wh
#     2025-06-27 08:59:57   Today_Hour09_GridConsumption 0 Wh
#     2025-06-27 08:59:57   Today_Hour09_GridFeedIn 0 Wh
#     2025-06-27 08:59:57   Today_Hour09_PVforecast 540 Wh
#     2025-06-27 08:59:57   Today_Hour09_PVreal 1689 Wh
#     2025-06-27 09:59:59   Today_Hour10_BatIn_01 0 Wh
#     2025-06-27 09:59:59   Today_Hour10_BatOut_01 700 Wh
#     2025-06-27 09:59:59   Today_Hour10_GridConsumption 0 Wh
#     2025-06-27 09:59:59   Today_Hour10_GridFeedIn 0 Wh
#     2025-06-27 09:59:59   Today_Hour10_PVforecast 1090 Wh
#     2025-06-27 09:59:59   Today_Hour10_PVreal 1710 Wh
#     2025-06-27 10:59:59   Today_Hour11_BatIn_01 100 Wh
#     2025-06-27 10:59:59   Today_Hour11_BatOut_01 900 Wh
#     2025-06-27 10:59:59   Today_Hour11_GridConsumption 0 Wh
#     2025-06-27 10:59:59   Today_Hour11_GridFeedIn 3 Wh
#     2025-06-27 10:59:59   Today_Hour11_PVforecast 1373 Wh
#     2025-06-27 10:59:59   Today_Hour11_PVreal 5129 Wh
#     2025-06-27 11:59:58   Today_Hour12_BatIn_01 200 Wh
#     2025-06-27 11:59:58   Today_Hour12_BatOut_01 200 Wh
#     2025-06-27 11:59:58   Today_Hour12_GridConsumption 0 Wh
#     2025-06-27 11:59:58   Today_Hour12_GridFeedIn 8 Wh
#     2025-06-27 11:59:58   Today_Hour12_PVforecast 3117 Wh
#     2025-06-27 11:59:58   Today_Hour12_PVreal 9240 Wh
#     2025-06-27 12:59:56   Today_Hour13_BatIn_01 0 Wh
#     2025-06-27 12:59:56   Today_Hour13_BatOut_01 0 Wh
#     2025-06-27 12:59:56   Today_Hour13_GridConsumption 0 Wh
#     2025-06-27 12:59:56   Today_Hour13_GridFeedIn 3 Wh
#     2025-06-27 12:59:56   Today_Hour13_PVforecast 3238 Wh
#     2025-06-27 12:59:56   Today_Hour13_PVreal 3400 Wh
#     2025-06-27 13:25:55   Today_Hour14_BatIn_01 0 Wh
#     2025-06-27 13:25:55   Today_Hour14_BatOut_01 0 Wh
#     2025-06-27 13:25:55   Today_Hour14_GridConsumption 0 Wh
#     2025-06-27 13:25:55   Today_Hour14_GridFeedIn 1 Wh
#     2025-06-27 13:25:55   Today_Hour14_PVforecast 2301 Wh
#     2025-06-27 13:25:55   Today_Hour14_PVreal 1169 Wh
#     2025-06-27 13:25:55   Today_Hour15_PVforecast 2966 Wh
#     2025-06-27 13:25:55   Today_Hour16_PVforecast 695 Wh
#     2025-06-27 13:25:55   Today_Hour17_PVforecast 2788 Wh
#     2025-06-27 13:25:55   Today_Hour18_PVforecast 4438 Wh
#     2025-06-27 13:25:55   Today_Hour19_PVforecast 4886 Wh
#     2025-06-27 13:25:55   Today_Hour20_PVforecast 1530 Wh
#     2025-06-27 13:25:55   Today_Hour21_PVforecast 620 Wh
#     2025-06-27 13:25:55   Today_Hour22_PVforecast 104 Wh
#     2025-06-27 13:25:55   Today_MaxPVforecast 4886 Wh
#     2025-06-27 13:25:55   Today_MaxPVforecastTime 2025-06-27 18:00:00
#     2025-06-27 13:25:55   Today_PVforecast 31928 Wh
#     2025-06-27 13:25:55   Today_PVreal    24837 Wh
#     2025-06-27 13:25:55   Today_SunRise   05:13
#     2025-06-27 13:25:55   Today_SunSet    21:46
#     2025-06-27 13:25:55   Tomorrow_ConsumptionForecast 67823 Wh
#     2025-06-27 13:25:55   Tomorrow_PVforecast 56035 Wh
#     2025-06-27 13:25:55   Tomorrow_SunRise 05:13
#     2025-06-27 13:25:55   Tomorrow_SunSet 21:46
#     2025-06-27 13:25:30   nextCycletime   13:26:40
#     2025-06-27 13:19:43   nextRadiationAPICall nach 27.06.2025 13:34:43
#     2025-06-27 06:00:04   pvCorrectionFactor_06 1.15 (automatic - old factor: 0.45, Sun Alt range: 0, Cloud range: 100, Days in range: 2)
#     2025-06-27 07:00:00   pvCorrectionFactor_07 1.25 (automatic - old factor: 1.10, Sun Alt range: 10, Cloud range: 100, Days in range: 2)
#     2025-06-27 08:00:02   pvCorrectionFactor_08 1.32 (automatic - old factor: 1.57, AI result used, Sun Alt range: 20, Cloud range: 100, Days in range: 2)
#     2025-06-27 09:00:03   pvCorrectionFactor_09 1.75 (automatic - old factor: 1.00, Sun Alt range: 25, Cloud range: 100, Days in range: 1)
#     2025-06-27 10:00:04   pvCorrectionFactor_10 1.57 (automatic - old factor: 1.00, Sun Alt range: 35, Cloud range: 100, Days in range: 1)
#     2025-06-27 11:00:01   pvCorrectionFactor_11 1.75 (automatic - old factor: 1.00, Sun Alt range: 45, Cloud range: 100, Days in range: 1)
#     2025-06-27 12:00:01   pvCorrectionFactor_12 1.75 (automatic - old factor: 1.00, Sun Alt range: 55, Cloud range: 95, Days in range: 1)
#     2025-06-27 13:00:00   pvCorrectionFactor_13 1.05 (automatic - old factor: 1.00, Sun Alt range: 60, Cloud range: 95, Days in range: 1)
#     2025-06-27 13:25:55   pvCorrectionFactor_Auto on_complex_ai
#     2025-06-27 13:25:56   state           updated

Gemäß Anleitung sind alle übergebenen Werte numerisch und positiv.
Ein Hinweis zu meiner Installation:
Ich betreibe ein Kombinations-System aus Victron und Fronius. Dazu gehören 4 Laderegler und 4 Wechselrichter. Somit müsste ich theoretisch 8 Attribute vergeben. Ich habe das nun auf 2 beschränkt: Victron gesamt (4 Laderegler, 3 Wechselrichter) und Fronius (1 Wechselrichter).

Kann mir jemand sagen, wo der Fehler zu suchen ist?

Vielen Dank für die Unterstützung und euch ein schönes Wochenende!
Marvin

seayak

Hallo Marvin,

ich habe bei mir bei allen datenliefernden Quellen (Inverter, Batt, Meter), wenn technisch verantwortbar, die minimal mögliche Intervallzeiten gesetzt. Im SolarForecast Modul habe ich das Attribut "plantControl", dort dann das "cycleInterval" auf 10 Sekunden gesetzt und schon sah alles besser aus.

Viele Grüße!

Peter

MarvinLu

Hallo Peter,

danke für die Rückmeldung. Habe ich ebenfalls umgesetzt und werde es mal testen.

VG Marvin

300P

Nach meinem Verständnis sollte der Zyklus für das Sammeln (von den datenliefernden FHEM-Modulen) möglichst < oder = vom dem SF-Zyklus Aktualisierungszyklus liegen.

Von Vorteil ist auch das dieses "aktuelle Daten-Sammeln" von einem Wert (EM-Meter am Netzübergabepunkt) angestoßen und dadurch dann erst alle aktuell bekannten Reading-Daten (die maßgeblich SF-relevant sind) dann "abgeholt" werden.

Aber egal wie - leichte Überschneidungen lassen sich auch bei mir nicht ganz ausschließen....
(Mein SF-Invtervall beträgt 15 s ==>>> die meisten anderen Module liefern im gleichen Intervall vom 15 s)
So bin ich bislang von diesen Meldungen "verschont" geblieben.



Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.

ch.eick

Zitat von: Max_Meyer am 26 Juni 2025, 20:56:16Jahresenergiemenge - hab mal so einen BSP-Tag im Winter mit reingehangen - trotz  E-Car-laden dominiert der WP-Bedarf.
Hallo Gerd,
Könntest Du mir bitte mal die Definition für die Jahresenergiemenge aus Grafana als Export per PN schicken, das gefällt mir.
VG Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Petrosilius Zwackelmann

Hallo zusammen,
ich bitte um einen Denkanstoß. Ich möchte meinen Batteriespeicher bei Bedarf zum optimales Strompreis aus dem Netz nachladen. (EVU_Tibber_connect)

Mein erster Gedanke ist den SOC-Forcast im Zeitraum, in welchen Strompreise von Tibber zur Verfügung stehen, mit einem Skript auszuwerten. Unterschreitet der SOC einen Minimalwert (ctrlBatSocManagement01:lowSOC) , wird die fehlende Energie berechnet und daraus eine Ladezeit in h ermittelt.

Erstmal scheint es so zu sein, dass der SOC-FC zwar als Grafik angezeigt wird, aber nicht als Reading bereitgestellt wird. Bedeutet für mich ich muss diese nochmals aus den FC-Readings (PV, Verbrauch..) berechnen.

Übersehe ich da eine Funktionalität in diesem Modul? Hat jemand eine ähnliche Funktion bereits implementiert?

Gruß Manuel
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

DS_Starter

Hallo Manuel,

es gibt das Attr ctrlNextHoursSoCForecastReadings. Hier kannst du dir den SOC-Forecast für die nächsten X Stunden als Reading ausgeben lassen. Der FC ist für jede der kommenden Stunden separat aufgeführt. Je nach deinem Bedarf bildest du dir eine Summe über die kommenden X Stunden.

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ch.eick

Zitat von: Petrosilius Zwackelmann am 28 Juni 2025, 12:28:33Hallo zusammen,
ich bitte um einen Denkanstoß. Ich möchte meinen Batteriespeicher bei Bedarf zum optimales Strompreis aus dem Netz nachladen. (EVU_Tibber_connect)
Hallo Manuel,
im EVU_Tibber_connect habe ich auch bereits Trigger readings für max/min Preise und auch die Uhrzeiten für Start und Stop drin.
Das EVU_Tibber gibt Dir noch zusätzlich etwas aufbereitete Info.

Beim Speicher Device habe ich dann im DOIF sowas drin
RAW_WR_1_Speicher_1_ExternControl
################################################################################################################
## 18 SpeicherStromboerse
##
18_SpeicherStromboerse
{if( !([$SELF:state] eq "off")                                           ## DOIF enabled
     and
      ((
           [$SELF:SpeicherStromboerse] eq "Tibber"                       ## Soll Tibber verwendet werden?
       and [EVU_Tibber_connect:fc0_trigger]                              ## Wurde der Trigger geändert

       )
       or [$SELF:ui_command_1] eq "SpeicherStromboerse"                  ## Hier wird das uiTable select ausgewertet
      )
   ) {

    if ([?EVU_Tibber_connect:fc0_trigger] eq "on") {
      set_Reading("SpeicherDcPowerAbs",[?$SELF:SpeicherStromboerseDcPowerAbs]);
      fhem("setreading $SELF SpeicherTriggerLaden An");
    } else {
      fhem("setreading $SELF SpeicherTriggerLaden Aus");
      fhem("setreading $SELF SpeicherDcPowerAbs 0");
    }

   set_Reading("ui_command_1","---");                                    ## Hier wird das uiTable select wieder zurückgesetzt, ansonsten
                                                                         ## kann das Kommando nicht sofort wiederholt werden
   }
}
Die WP, WB und der Wirlpool reagieren entsprechend auch. Beim Wirlpool nutze ich den Trigger, um im Winter bei niedrigem Nachtpreis zusätzlich zu heizen, da der PV-Überschuss am Tag nicht reichen würde.

Die anderen Devices sind auch im contrib abgelegt, um es als Muster zu verwenden. Beschreibungen sind im FHEM Wiki vom Kostal Plenticore zufinden.

VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Hallo zusammen,

ich habe ein Update der V 1.53.0 in mein contrib geladen.
Hinzugekommen ist die Möglichkeit auf eine Abregelung der PV-Anlage zu reagieren. Dazu gibt die Eingabemöglichkeit einer Device:Reading Kombination (bei mir z.B. ein Readingwert des Victron SolarChargers) via plantControl->reductionState.

In der grafischen Oberfläche ist eine Statusanzeige für den aktuellen Abregelungsstatus eingebaut. Hat man das benannte Attribut nicht gesetzt, wird man mit einem Mouse-Over auf dieses Setting aufmerksam gemacht. (Screenshot) Ansonsten die Ampel in grün wenn keine Abregelung, sonst gelb. Kein "rot", denn die Abregelung ist kein Fehler, nur Info.

Kurze Abregelungen, die sich kaum auf das Ergebnis ausgewirkt haben, sind kein Problem. Das Modul vergleicht ständig die Prognose und reale Erzeugung der betrachteten Stunde und validiert den Datensatz wenn am Ende der Stunde der Unterschied hinreichend gering ist (aktueller Ansatz sind <10%). Ansonsten wird der Datensatz der Stunde mit einem invalid-Kennzeichen von der Korrekturfaktorenanpassung sowie KI-Training ausgeschlossen um Verfälschungen über diesen Weg vorzubeugen.

LG,
Heiko

 
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Parallix

#3312
Zitat von: DS_Starter am 28 Juni 2025, 18:20:23Hallo zusammen,

ich habe ein Update der V 1.53.0 in mein contrib geladen.
Hinzugekommen ist die Möglichkeit auf eine Abregelung der PV-Anlage zu reagieren.
...

Damit sind wir für den Teil, für den SF konzipiert ist, schon super vorbereitet! Danke Heiko!

Wenn es jetzt einen geeigneten Prozess innerhalb von FHEM oder ein erschwingliches Gateway "EEBUS nach irgendetwas, mit dem FHEM gut umgehen kann" gäbe, dann sollten wir alle keine Sorge bei Ankündigung einer Steuerbox mehr bekommen.

Andere Sache: Warum steht bei "Abweichung heute" eigentlich immer (wenn ich darauf schaue ein Minuszeichen? Und was überhaupt wird bei "Abweichung gestern" angegeben? Die Abweichung der PV-Prognose vom tatsächlichen Wert? die Abweichung der Verbrauchs-Prognose von vom tatsächlichen Wert? Oder die Bilanzierung von beidem? Im Wiki kann ich leider nichts dazu finden. Ideal wäre es eigentlich, alle drei Werte zu haben.
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.59) und 7591 (8.02) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - BYD: 2 x HVS 5.1 (BMS V3.29-A, BMU V3.23-A) - EnOcean - Z-Wave - FS20/HMS

DS_Starter

#3313
ZitatWarum steht bei "Abweichung heute" eigentlich immer (wenn ich darauf schaue ein Minuszeichen?
Im Standard wird die Tagesabweichung nach Sonnenuntergang berechnet. Bis dahin steht dort ein '-'. Ein Mouse-Over zeigt dir das aber. Du kannst mit plantControl->genPVdeviation die Berechnung umschalten.

ZitatUnd was überhaupt wird bei "Abweichung gestern" angegeben?
Mitternacht wird der für heute berechnete Betrag nach "gestern" verschoben. Wie ein Schieberegister. Für heute gibt es dann wieder den aktuellen Wert wie oben geschrieben.

Und es ist das Verhältnis von PV Prognose zu realer Erzeugung. Aber auch das zeigt ein Mouse-Over.

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Parallix

#3314
Zitat von: DS_Starter am 28 Juni 2025, 21:10:06...
Mouse-Over
...

Jetzt sehe ich es auch :)

Vielleicht wäre es hilfreich den Standard bei "Abweichung heute"  von "nach Sonnenuntergang" in "bis jetzt" zu ändern. Dann würde nach Sonnenuntergang immer noch der gleiche Wert angezeigt, tagsüber sieht man aber auch etwas sinnvolles.
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.59) und 7591 (8.02) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - BYD: 2 x HVS 5.1 (BMS V3.29-A, BMU V3.23-A) - EnOcean - Z-Wave - FS20/HMS