76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

Parallix

#7200
Zitat von: DS_Starter am 01 November 2026, 23:27:18
ZitatDu nimmst die (externe) Prognose und reduzierst bzw. erhöhst die dort angegebenen Werte gemäß der von SF fortlaufend bestimmten PV Abweichung für den Zeitraum ab dem aktuellen Betrachtungszeitraum bis zum Tagesende anfangs zu 100% und danach linear abnehmend auf 0% am Tagesende.
Eine solche Überlagerung würde nur funktionieren wenn die Verhältnisse der Stunde x stabil/linear mit den Stunden x+1, x+2, x+3, x+4 usw. fortgeschrieben werden könnten. Das ist aber in den seltensten Fällen gegeben.
Nicht zuletzt aus dem von Dir genannten Grund liefern ja auch die APIs zyklisch aktualisierte Daten. In der Konsequenz muss die von mir vorgeschlagene lokale Korrektur natürlich auch immer wieder neu berechnet werden. Wichtig ist, dass die Kurzzeitprognose zyklisch in einem gleitenden Fenster für die nächsten (2-4) Stunden angepasst wird. Wenn das gleitende Fenster groß gewählt wird, kann uns sollte die Korrektur vielleicht besser nicht linear, sondern exponentiell mit der Zeit runtergefahren werden.
FHEM auf Debian/Testing BananaPro in täglich aktualisierter Version - AVM: 7490 (7.62) und 7591 (8.25) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS

DS_Starter

#7201
Moin,

zur weiteren Vorgehensweise...
ich werde die bereits angearbeiteten Themen/Erweiterungen umsetzen und dann die PV Prognose auf AI::FANN umstellen damit eine einheitliche KI-Basis im Modul konsolidiert ist. (siehe Masterplan: https://forum.fhem.de/index.php?topic=137058.msg1365858#msg1365858)

Dann schaue ich mir deinen Vorschlag an. Toll wäre natürlich, wenn du mich unterstützen würdest und in der Zwischenzeit einen ausgearbeiteten und angetesteten Codevorschlag einbringen könntest.
Ein Einstieg dafür könnte die Sub __calcPVestimates ab Zeile 14823 in der v2.10.10 und nachfolgende Korrekturcodes sein. Ein übernehmefähiges Codeartefakt kann man auch schnell mal zum Test einfügen und wieder ausbauen wenn nötig.

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

Gisbert

Hallo Heiko,

heute ist mir aufgefallen, dass der Consumer 1 Panasonic nicht auf an steht und das Symbol grau ist, obwohl das Gerät eingeschaltet ist und die Leistung auch im Diagramm richtig dargestellt wird.
Ein anderer Verbraucher 02 Vaillant wird durchgehend richtig dargestellt.

define mySolarForecast SolarForecast
attr mySolarForecast aiControl aiConActivate=1\
aiConProfile=v1,heatpump\
aiConLearnRate=0.0001\
aiConMomentum=0.9\
aiConBitFailLimit=0.36\
aiConTrainAlgo=RPROP\
aiConHiddenLayers=8-4\
geminiAPIkey=AQ.Ab8RN6KWcf8r-6LEZ4WoZ_h9tlY-NHixyjuhEDXwhe64-fDcpA
attr mySolarForecast alias mySolarForecast
attr mySolarForecast comment aiControl\
aiConActivate=1\
aiConProfile=v1,active,PV,heatpump\
aiConHiddenLayers=64-32\
aiConLearnRate=0.0001\
aiConMomentum=0.5\
aiConBitFailLimit=0.34\
aiConShuffleMode=1\
aiConShufflePeriod=15\
aiConTrainLimit=10000\
aiConSteepness=0.7\
geminiAPIkey=AQ.Ab8RN6KWcf8r-6LEZ4WoZ_h9tlY-NHixyjuhEDXwhe64-fDcpA
attr mySolarForecast consumer01 HeishaMon_s0:Panasonic\
auto=SF_Auto\
swstate=Heatpump_opmode:1:0\
etotal=Watthour_Total:kWh:5\
type=heatpump\
opmode=HeishaMon_main:opmode\
mode=mustNot\
icon=sani_floor_heating_neutral\
pcurr=readingsGroup_power:W:5\
power=4500\
modulation=HeishaMon_s0:modulation
attr mySolarForecast consumer02 VaillantaroSTOR:Vaillant\
power=500\
mode=mustNot\
icon=sani_heating_heatpump_buffer\
type=heater\
pcurr=Power_W:W:8\
etotal=Energy_WH:kWh:8\
swstate=WP_an:1:0\
auto=SF_Auto
attr mySolarForecast consumer03 DaikinPerfera:Daikin\
auto=SF_Auto\
swstate=Compressor:1:0\
type=heatpump\
opmode=DaikinCloud_DaikinAP09627:opmode\
etotal=Energy_WH:kWh:20\
mode=mustNot\
icon=sani_heating_heatpump\
power=1500\
pcurr=Power_W:W:20\
modulation=DaikinPerfera:modulation
attr mySolarForecast consumer04 Fujitsu:Fujitsu\
power=3500\
pcurr=Power_W:W:20\
auto=SF_Auto\
swstate=Compressor:1:0\
type=heatpump\
opmode=Fujitsu:opmode\
etotal=Energy_WH:kWh:20\
mode=mustNot\
icon=sani_heating_heatpump\
modulation=Fujitsu:modulation
attr mySolarForecast consumerControl globalMode=mustNot detailLink=1
attr mySolarForecast ctrlDebug aiProcess
attr mySolarForecast ctrlLanguage DE
attr mySolarForecast ctrlSpecialReadings BatPowerIn_Sum,BatPowerOut_Sum,SunHours_Remain,SunMinutes_Remain,todayBatInSum,todayBatOutSum,todayConForecastTillSunset,todayConsumption,todayConsumptionForecast,todayConsumptionForecastDay,todayGridConsumption,todayGridFeedIn,tomorrowConsumptionForecast
attr mySolarForecast event-on-change-reading special_todayConForecastTillSunset,Current_BatCharge_01,RestOfDayConsumptionForecast,RestOfDayPVforecast,Tomorrow_CONforecast,Tomorrow_PVforecast,Today_PVforecast,ForecastNoonSolar,ForecastAfternoonSolar
attr mySolarForecast flowGraphicControl shiftx=-83\
showconsumer=1\
showconsumerpower=1\
showconsumerdummy=0\
size=400\
inverterNodeIcon=inverter\
showconsumerremaintime=0\
showGenerators=1
attr mySolarForecast graphicBeam1Color 4C9CE0
attr mySolarForecast graphicBeam2Color BEBEBE
attr mySolarForecast graphicBeam3Color 4C9CE0
attr mySolarForecast graphicBeam3Content consumption
attr mySolarForecast graphicBeam4Color BEBEBE
attr mySolarForecast graphicBeam4Content consumptionForecast
attr mySolarForecast graphicControl beamWidth=57\
hourCount=20\
energyUnit=kWh\
spaceSize=10\
headerDetail=all
attr mySolarForecast graphicShowNight 1
attr mySolarForecast graphicShowWeather 0
attr mySolarForecast graphicWeatherColor 62AFCD
attr mySolarForecast plantControl backupFilesKeep=7\
comforttemp=21\
cycleInterval=70\
feedinPowerLimit=15200\
genPVdeviation=daily\
conEnergyHourLimit=10000\
consForecastLastDays=14
attr mySolarForecast room DEYE
attr mySolarForecast setupBatteryDev01 Deye_Inverter\
pinmax=7680\
pin=-pout\
pout=battery_output_power:W\
intotal=total_charge_of_the_battery:kWh\
outtotal=total_discharge_of_the_battery:kWh\
cap=15200\
charge=SOC_jkbms
attr mySolarForecast setupEnvironment outsideTemp=myTemperature:mytemp
attr mySolarForecast setupInverterDev01 Deye_Inverter\
pvIn=pv_total_power:W\
pvOut=pv_ac_power:W\
capacity=13200\
etotal=total_pv_production:kWh\
strings=Sueddach1,Sueddach2
attr mySolarForecast setupInverterDev02 Deye_Inverter\
pvIn=Gen_OutputPower:W\
pvOut=generator_power:W\
capacity=2000\
etotal=total_generator_production:kWh\
strings=Garagendach
attr mySolarForecast setupInverterStrings Sueddach1,Sueddach2,Garagendach
attr mySolarForecast setupMeterDev Deye_Inverter\
gcon=total_grid_power:W\
contotal=total_energy_bought:kWh\
gfeedin=-gcon\
feedtotal=total_energy_sold:kWh
attr mySolarForecast setupRadiationAPI OpenMeteoDWD-API
attr mySolarForecast setupStringAzimuth Sueddach1=0 Sueddach2=0 Garagendach=-90
attr mySolarForecast setupStringDeclination Sueddach1=40 Sueddach2=40 Garagendach=15
attr mySolarForecast setupStringPeak Sueddach1=6.560 Sueddach2=6.150 Garagendach=2.460
attr mySolarForecast setupWeatherDev1 OpenMeteoDWD-API
attr mySolarForecast userReadings ForecastNoonSolar:Today_PVforecast.* {round(\
ReadingsNum($name,'Today_Hour11_PVforecast','0')+\
ReadingsNum($name,'Today_Hour12_PVforecast','0')+\
ReadingsNum($name,'Today_Hour13_PVforecast','0')+\
ReadingsNum($name,'Today_Hour14_PVforecast','0')+\
ReadingsNum($name,'Today_Hour15_PVforecast','0'),0)},\
ForecastAfternoonSolar:Today_PVforecast.* {round(\
ReadingsNum($name,'Today_Hour16_PVforecast','0')+\
ReadingsNum($name,'Today_Hour17_PVforecast','0'),0)}
#   CFGFN      ./FHEM/Photovoltaik.cfg
#   FUUID      695e76dd-f33f-e986-3ea6-13899a631df0554c
#   FVERSION   76_SolarForecast.pm:v2.10.10-s31830/2026-10-23
#   LCACHEFILE last write time: 19:33:08 whole Operating Memory
#   LRU_CACHES PVH_Cache        -> Hits=17044    Misses=417     Evicts=0      HitRate=97.61  Entries= 417/500
#TS_OFFSET_Cache  -> Hits=1926637  Misses=94942   Evicts=90942  HitRate=95.30  Entries=4000/4000
#TSTR_TSMP_Cache  -> Hits=605403   Misses=130     Evicts=0      HitRate=99.98  Entries= 130/2000
#SUNPOS_Cache     -> Hits=67200    Misses=74      Evicts=0      HitRate=99.89  Entries=  74/500
#SUNALTPROB_Cache -> Hits=241200   Misses=264     Evicts=0      HitRate=99.89  Entries= 264/500
#   MINI_CACHES Multi_Cache  -> Hits=957628  Misses=2275    Evicts=1275   HitRate=99.76  Entries=1000/1000
#   MODE       Automatic / Event-controlled - next planned Cycletime: 19:41:27
#   MODEL      OpenMeteoDWDAPI
#   NAME       mySolarForecast
#   NOTIFYDEV  Deye_Inverter,HeishaMon_s0,VaillantaroSTOR,DaikinPerfera,Fujitsu
#   NR         1636
#   NTFY_ORDER 50-mySolarForecast
#   STATE      updated
#   TYPE       SolarForecast
#   WEATHERMODEL OpenMeteoDWDAPI
#   eventCount 1330
#   HELPER:
#     DYNATTRDONE 1
#     FW         WEBtablet
#     PACKAGE    FHEM::SolarForecast
#     S10DONE    1
#     SPGDETAIL 
#     SPGDEV     mySolarForecast
#     SPGROOM   
#     VERSION    2.10.10
#     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     4701
#       finishFn   FHEM::SolarForecast::_processMessageFile
#       fn         FHEM::SolarForecast::_retrieveMessageFile
#       loglevel   3
#       pid        DEAD:76270
#       telnet     telnetForBlockingFn_1793553806.02543_127.0.0.1_54030
#       terminated 1
#       timeout    30
#       abortArg:
#       arg:
#         block      1
#         name       mySolarForecast
#         tsnext     1793649710
#   OLDREADINGS:
#   READINGS:
#     2026-11-02 19:40:17   Battery_ChargeOptTargetPower_01 7680 W
#     2026-11-02 19:40:17   Battery_ChargeUnrestricted_01 1
#     2026-11-02 19:40:17   Battery_TargetAchievable_01 0
#     2026-11-02 19:40:17   Current_AutarkyRate 0 %
#     2026-11-02 19:40:17   Current_BatCharge_01 20 %
#     2026-11-02 19:40:17   Current_Consumption 1682 W
#     2026-11-02 19:40:17   Current_GridConsumption 1676 W
#     2026-11-02 19:40:17   Current_GridFeedIn 0 W
#     2026-11-02 19:40:17   Current_PV      0 W
#     2026-11-02 19:40:17   Current_PowerBatIn_01 0 W
#     2026-11-02 19:40:17   Current_PowerBatOut_01 6 W
#     2026-11-02 19:40:17   Current_SelfConsumption 0 W
#     2026-11-02 19:40:17   Current_SelfConsumptionRate 0 %
#     2026-11-02 19:40:17   Current_Surplus 0 W
#     2026-11-02 14:41:37   ForecastAfternoonSolar 995
#     2026-11-02 14:41:37   ForecastNoonSolar 4746
#     2026-11-02 19:00:00   LastHourGridconsumptionReal 100 Wh
#     2026-11-02 19:00:00   LastHourPVforecast 0 Wh
#     2026-11-02 19:00:00   LastHourPVreal  0 Wh
#     2026-11-02 19:40:17   NextHours_Sum01_PVforecast 0 Wh
#     2026-11-02 19:40:17   NextHours_Sum02_PVforecast 0 Wh
#     2026-11-02 19:40:17   NextHours_Sum03_PVforecast 0 Wh
#     2026-11-02 19:40:17   NextHours_Sum04_ConsumptionForecast 2920 Wh
#     2026-11-02 19:40:17   NextHours_Sum04_PVforecast 0 Wh
#     2026-11-02 19:40:17   RestOfDayConsumptionForecast 3137 Wh
#     2026-11-02 19:40:17   RestOfDayPVforecast 0 Wh
#     2026-11-02 19:40:17   Today_CONdeviation 5.37 %
#     2026-11-02 19:40:17   Today_CONforecast 20467 Wh
#     2026-11-02 19:40:17   Today_CONreal   16700 Wh
#     2026-11-02 00:59:49   Today_Hour01_BatIn_01 0 Wh
#     2026-11-02 00:59:49   Today_Hour01_BatOut_01 0 Wh
#     2026-11-02 00:59:49   Today_Hour01_GridConsumption 300 Wh
#     2026-11-02 00:59:49   Today_Hour01_GridFeedIn 0 Wh
#     2026-11-02 00:59:49   Today_Hour01_PVreal 0 Wh
#     2026-11-02 01:59:49   Today_Hour02_BatIn_01 0 Wh
#     2026-11-02 01:59:49   Today_Hour02_BatOut_01 0 Wh
#     2026-11-02 01:59:49   Today_Hour02_GridConsumption 1000 Wh
#     2026-11-02 01:59:49   Today_Hour02_GridFeedIn 0 Wh
#     2026-11-02 01:59:49   Today_Hour02_PVreal 0 Wh
#     2026-11-02 02:59:49   Today_Hour03_BatIn_01 0 Wh
#     2026-11-02 02:59:49   Today_Hour03_BatOut_01 0 Wh
#     2026-11-02 02:59:49   Today_Hour03_GridConsumption 1100 Wh
#     2026-11-02 02:59:49   Today_Hour03_GridFeedIn 0 Wh
#     2026-11-02 02:59:49   Today_Hour03_PVreal 0 Wh
#     2026-11-02 03:59:56   Today_Hour04_BatIn_01 0 Wh
#     2026-11-02 03:59:56   Today_Hour04_BatOut_01 100 Wh
#     2026-11-02 03:59:56   Today_Hour04_GridConsumption 1100 Wh
#     2026-11-02 03:59:56   Today_Hour04_GridFeedIn 0 Wh
#     2026-11-02 03:59:56   Today_Hour04_PVreal 0 Wh
#     2026-11-02 04:59:49   Today_Hour05_BatIn_01 0 Wh
#     2026-11-02 04:59:49   Today_Hour05_BatOut_01 0 Wh
#     2026-11-02 04:59:49   Today_Hour05_GridConsumption 1100 Wh
#     2026-11-02 04:59:49   Today_Hour05_GridFeedIn 0 Wh
#     2026-11-02 04:59:49   Today_Hour05_PVreal 0 Wh
#     2026-11-02 05:59:49   Today_Hour06_BatIn_01 0 Wh
#     2026-11-02 05:59:49   Today_Hour06_BatOut_01 0 Wh
#     2026-11-02 05:59:49   Today_Hour06_GridConsumption 1000 Wh
#     2026-11-02 05:59:49   Today_Hour06_GridFeedIn 0 Wh
#     2026-11-02 05:59:49   Today_Hour06_PVreal 0 Wh
#     2026-11-02 06:59:49   Today_Hour07_BatIn_01 0 Wh
#     2026-11-02 06:59:49   Today_Hour07_BatOut_01 0 Wh
#     2026-11-02 06:59:49   Today_Hour07_GridConsumption 1000 Wh
#     2026-11-02 06:59:49   Today_Hour07_GridFeedIn 0 Wh
#     2026-11-02 06:59:49   Today_Hour07_PVreal 0 Wh
#     2026-11-02 07:59:49   Today_Hour08_BatIn_01 0 Wh
#     2026-11-02 07:59:49   Today_Hour08_BatOut_01 0 Wh
#     2026-11-02 07:59:49   Today_Hour08_GridConsumption 1300 Wh
#     2026-11-02 07:59:49   Today_Hour08_GridFeedIn 0 Wh
#     2026-11-02 07:59:49   Today_Hour08_PVforecast 35 Wh
#     2026-11-02 07:59:49   Today_Hour08_PVreal 0 Wh
#     2026-11-02 08:59:49   Today_Hour09_BatIn_01 0 Wh
#     2026-11-02 08:59:49   Today_Hour09_BatOut_01 0 Wh
#     2026-11-02 08:59:49   Today_Hour09_GridConsumption 900 Wh
#     2026-11-02 08:59:49   Today_Hour09_GridFeedIn 0 Wh
#     2026-11-02 08:59:49   Today_Hour09_PVforecast 249 Wh
#     2026-11-02 08:59:49   Today_Hour09_PVreal 100 Wh
#     2026-11-02 09:59:49   Today_Hour10_BatIn_01 0 Wh
#     2026-11-02 09:59:49   Today_Hour10_BatOut_01 0 Wh
#     2026-11-02 09:59:49   Today_Hour10_GridConsumption 300 Wh
#     2026-11-02 09:59:49   Today_Hour10_GridFeedIn 0 Wh
#     2026-11-02 09:59:49   Today_Hour10_PVforecast 469 Wh
#     2026-11-02 09:59:49   Today_Hour10_PVreal 400 Wh
#     2026-11-02 10:59:57   Today_Hour11_BatIn_01 100 Wh
#     2026-11-02 10:59:57   Today_Hour11_BatOut_01 0 Wh
#     2026-11-02 10:59:57   Today_Hour11_GridConsumption 200 Wh
#     2026-11-02 10:59:57   Today_Hour11_GridFeedIn 0 Wh
#     2026-11-02 10:59:57   Today_Hour11_PVforecast 770 Wh
#     2026-11-02 10:59:57   Today_Hour11_PVreal 500 Wh
#     2026-11-02 11:59:49   Today_Hour12_BatIn_01 500 Wh
#     2026-11-02 11:59:49   Today_Hour12_BatOut_01 0 Wh
#     2026-11-02 11:59:49   Today_Hour12_GridConsumption 0 Wh
#     2026-11-02 11:59:49   Today_Hour12_GridFeedIn 0 Wh
#     2026-11-02 11:59:49   Today_Hour12_PVforecast 975 Wh
#     2026-11-02 11:59:49   Today_Hour12_PVreal 1200 Wh
#     2026-11-02 12:59:49   Today_Hour13_BatIn_01 800 Wh
#     2026-11-02 12:59:49   Today_Hour13_BatOut_01 0 Wh
#     2026-11-02 12:59:49   Today_Hour13_GridConsumption 100 Wh
#     2026-11-02 12:59:49   Today_Hour13_GridFeedIn 0 Wh
#     2026-11-02 12:59:49   Today_Hour13_PVforecast 1063 Wh
#     2026-11-02 12:59:49   Today_Hour13_PVreal 1600 Wh
#     2026-11-02 13:59:49   Today_Hour14_BatIn_01 700 Wh
#     2026-11-02 13:59:49   Today_Hour14_BatOut_01 0 Wh
#     2026-11-02 13:59:49   Today_Hour14_GridConsumption 200 Wh
#     2026-11-02 13:59:49   Today_Hour14_GridFeedIn 0 Wh
#     2026-11-02 13:59:49   Today_Hour14_PVforecast 990 Wh
#     2026-11-02 13:59:49   Today_Hour14_PVreal 1200 Wh
#     2026-11-02 14:59:49   Today_Hour15_BatIn_01 500 Wh
#     2026-11-02 14:59:49   Today_Hour15_BatOut_01 0 Wh
#     2026-11-02 14:59:49   Today_Hour15_GridConsumption 0 Wh
#     2026-11-02 14:59:49   Today_Hour15_GridFeedIn 0 Wh
#     2026-11-02 14:59:49   Today_Hour15_PVforecast 948 Wh
#     2026-11-02 14:59:49   Today_Hour15_PVreal 1100 Wh
#     2026-11-02 15:59:49   Today_Hour16_BatIn_01 200 Wh
#     2026-11-02 15:59:49   Today_Hour16_BatOut_01 200 Wh
#     2026-11-02 15:59:49   Today_Hour16_GridConsumption 0 Wh
#     2026-11-02 15:59:49   Today_Hour16_GridFeedIn 0 Wh
#     2026-11-02 15:59:49   Today_Hour16_PVforecast 796 Wh
#     2026-11-02 15:59:49   Today_Hour16_PVreal 500 Wh
#     2026-11-02 16:59:49   Today_Hour17_BatIn_01 0 Wh
#     2026-11-02 16:59:49   Today_Hour17_BatOut_01 300 Wh
#     2026-11-02 16:59:49   Today_Hour17_GridConsumption 0 Wh
#     2026-11-02 16:59:49   Today_Hour17_GridFeedIn 0 Wh
#     2026-11-02 16:59:49   Today_Hour17_PVforecast 199 Wh
#     2026-11-02 16:59:49   Today_Hour17_PVreal 200 Wh
#     2026-11-02 17:59:57   Today_Hour18_BatIn_01 0 Wh
#     2026-11-02 17:59:57   Today_Hour18_BatOut_01 800 Wh
#     2026-11-02 17:59:57   Today_Hour18_GridConsumption 0 Wh
#     2026-11-02 17:59:57   Today_Hour18_GridFeedIn 0 Wh
#     2026-11-02 17:59:57   Today_Hour18_PVreal 0 Wh
#     2026-11-02 18:59:49   Today_Hour19_BatIn_01 0 Wh
#     2026-11-02 18:59:49   Today_Hour19_BatOut_01 800 Wh
#     2026-11-02 18:59:49   Today_Hour19_GridConsumption 100 Wh
#     2026-11-02 18:59:49   Today_Hour19_GridFeedIn 0 Wh
#     2026-11-02 18:59:49   Today_Hour19_PVreal 0 Wh
#     2026-11-02 19:40:17   Today_Hour20_BatIn_01 0 Wh
#     2026-11-02 19:40:17   Today_Hour20_BatOut_01 500 Wh
#     2026-11-02 19:40:17   Today_Hour20_GridConsumption 300 Wh
#     2026-11-02 19:40:17   Today_Hour20_GridFeedIn 0 Wh
#     2026-11-02 19:40:17   Today_Hour20_PVreal 0 Wh
#     2026-11-02 19:40:17   Today_MaxPVforecast 1063 Wh
#     2026-11-02 19:40:17   Today_MaxPVforecastTime 2026-11-02 12:00:00
#     2026-11-02 19:40:17   Today_PVdeviation -4.71204188481675 %
#     2026-11-02 19:40:17   Today_PVforecast 6494 Wh
#     2026-11-02 19:40:17   Today_PVreal    6800 Wh
#     2026-11-02 19:40:17   Today_SunRise   07:24
#     2026-11-02 19:40:17   Today_SunSet    17:05
#     2026-11-02 19:40:17   Tomorrow_CONforecast 27909 Wh
#     2026-11-02 19:40:17   Tomorrow_PVforecast 41020 Wh
#     2026-11-02 19:40:17   Tomorrow_SunRise 07:26
#     2026-11-02 19:40:17   Tomorrow_SunSet 17:03
#     2026-11-02 19:40:17   consumer01      name='Panasonic' state='off' mode='mustNot' planningstate='noSchedule'
#     2026-11-02 19:40:17   consumer01_currentPower 876 W
#     2026-11-02 19:40:17   consumer02      name='Vaillant' state='on' mode='mustNot' planningstate='noSchedule' info='von extern umgeschaltet'
#     2026-11-02 19:40:17   consumer02_currentPower 440.5 W
#     2026-11-02 19:40:17   consumer03      name='Daikin' state='off' mode='mustNot' planningstate='noSchedule'
#     2026-11-02 19:40:17   consumer03_currentPower 0.9 W
#     2026-11-02 19:40:17   consumer04      name='Fujitsu' state='off' mode='mustNot' planningstate='noSchedule'
#     2026-11-02 19:40:17   consumer04_currentPower 1.2 W
#     2026-11-02 19:40:17   nextCycletime   19:41:27
#     2026-11-02 19:29:50   nextRadiationAPICall nach 02.11.2026 19:44:50
#     2026-11-02 19:40:17   special_BatPowerIn_Sum 0 W
#     2026-11-02 19:40:17   special_BatPowerOut_Sum 6 W
#     2026-11-02 19:40:17   special_SunHours_Remain 0.00
#     2026-11-02 19:40:17   special_SunMinutes_Remain 0
#     2026-11-02 19:40:17   special_todayBatInSum 2800.0  Wh
#     2026-11-02 19:40:17   special_todayBatOutSum 2700.0  Wh
#     2026-11-02 19:40:17   special_todayConForecastTillSunset 0 Wh
#     2026-11-02 19:40:17   special_todayConsumption 16700 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecastDay 20467 Wh
#     2026-07-11 23:59:49   special_todayConsumptionForecast_00 - Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_01 412 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_02 426 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_03 518 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_04 1144 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_05 1081 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_06 1075 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_07 1006 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_08 955 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_09 1152 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_10 1134 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_11 1161 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_12 1082 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_13 879 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_14 963 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_15 971 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_16 840 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_17 789 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_18 613 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_19 616 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_20 770 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_21 791 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_22 757 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_23 683 Wh
#     2026-11-02 19:40:17   special_todayConsumptionForecast_24 649 Wh
#     2026-11-02 19:40:17   special_todayGridConsumption 10000 Wh
#     2026-11-02 19:40:17   special_todayGridFeedIn 0.0 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_01 695 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_02 1003 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_03 930 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_04 965 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_05 1007 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_06 854 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_07 1037 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_08 1064 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_09 1349 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_10 1595 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_11 2169 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_12 2602 Wh
#     2026-11-02 19:40:17   special_tomorrowConsumptionForecast_1

Viele Grüße Gisbert
Proxmox | UniFi | RHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

DS_Starter

#7203
Hallo Gisbert,

sehr wahrscheinlich liegt es an der Schwellenwerteinstellung. Du hast angegeben:

pcurr=Power_W:W:8\
etotal=Energy_WH:kWh:8\

Auffällig ist Energy_WH, was evtl. nicht zur angegebenen Einheit kWh passen könnte. Darüber hinaus ist der Schwellenwert ( 8 ) in Wh anzugeben.
Du kannst es mit '0' testen.

LG,
Heiko

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

DS_Starter

@all,

in meinem contrib liegt die v2.10.11.
Enthalten ist die mögliche Einbindung eines eigenen Regenmengenmessers.
Beachtet, dass der Wert in mm bzw. l/m2 geliefert werden muß.

Ansonsten hier das bisherige Changelog der Version:

- **Neu:**
  * **Eigener Regenmengenmesser**: Im Attribut `setupEnvironment` kann mit dem neuen Schlüssel `rainAmount=<Device>:<Reading>` ein eigener Regenmesser angegeben werden. Das Reading muss die Regenmenge der aktuellen Stunde in mm (l/m²) liefern.
    - Der Messwert überschreibt für die aktuelle Stunde (NextHour00) den Niederschlagswert `rr1c` der Wetter-API. Er wird damit auch in `nexthours`, `circular` und `pvHistory` übernommen, und damit auch in den AI-Rohdaten.
    - Ist das Device oder Reading nicht vorhanden, nicht numerisch oder negativ, bleibt der API-Wert erhalten.
  * **Header-Anzeige**: `rainAmount` ist als Wert in `graphicControl` → `headerShowEnv` auswählbar.
      Angezeigt wird die Regenmenge der aktuellen Stunde in mm, mit dem Messwert oder ohne eigenen Messer mit dem API-Wert.
  Das Symbol wechselt nach Menge zwischen `rain_light` (< 2,5 mm), `rain` (2,5 bis < 7,6 mm) und `rain_heavy` (≥ 7,6 mm).
  Bei 0 mm wird das Symbol grau dargestellt.
    - Commandref (DE/EN) für `setupEnvironment` und `headerShowEnv` ergänzt.

- **Fix:**
  * Die Hilfsfunktionen _aiFannBevHistArray, _aiFannHpOpmodeHistArray und _aiFannCycleConsumerHistArray haben ihre Ergebnis-Arrays als Referenz sowohl in den
    pvHistCache gelegt als auch an den Aufrufer zurückgegeben. Da aiFannConInfer diese Arrays im Prognosehorizont per push fortschreibt, wurden die gecachten Arrays bei
    jedem Lauf innerhalb derselben Stunde verlängert (Speicherwachstum). Folgeläufe arbeiteten zudem mit verlängerten, nicht mehr zu @flat_targets ausgerichteten
    BEV-/WP-Serien, was die lag1-Features verfälschen konnte. Cache und Rückgabewert verwenden jetzt getrennte Kopien (Cache-Hit und Cache-Insert).
  * getPvHistTargetArray: im Cache-Miss-Fall werden nun ebenfalls Kopien gecacht, sodass der Aufrufer nie dieselben Arrays wie der Cache erhält (konsistent zum Cache-Hit-Pfad).
  * timestringsFromOffset: Cache-Hit und Cache-Insert verwenden eine Kopie des Hashes, damit Änderungen des Aufrufers den Cache nicht verändern können.

- **Change:**
  * Parser __parseAttrEnvironment gehärtet

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

300P


Falschmeldung - sorry


in V2.10.10 wird "rainAmount" nicht als Eintrag akzeptiert nach klick auf "attr": ?!?

headerShowEnv=outsideTemp,presence,windSpeed,gridStatus ->> okay
headerShowEnv=outsideTemp,presence,windSpeed,gridStatus,rainAmount -> Fehlermeldung

Zitatauthor=DS_Starter link=msg=1371116 date=1793651629]* **Header-Anzeige**: `rainAmount` ist als Wert in `graphicControl` → `headerShowEnv` auswählbar.
      Angezeigt wird die Regenmenge der aktuellen Stunde in mm, mit dem Messwert oder ohne eigenen Messer mit dem API-Wert.
      Das Symbol wechselt nach Menge zwischen `rain_light` (< 2,5 mm), `rain` (2,5 bis < 7,6 mm) und `rain_heavy` (≥ 7,6 mm).
      Bei 0 mm wird das Symbol grau dargestellt.
    - Commandref (DE/EN) für `setupEnvironment` und `headerShowEnv` ergänzt.
Gruß
300P

FHEM 6.5|QNAP-Container-bookworm|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|
Buderus-MQTT_EMS|Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|AI_on_the_Edge|ESP32CAM usw.

DS_Starter

#7206
Zitatin V2.10.10 wird "rainAmount" nicht als Eintrag akzeptiert
stimmt, aber in v2.10.11 aus dem contrib ist es implementiert. Restart nicht vergessen.
Proxmox+Debian+MariaDB, PV: SMA, Victron+Pylontech
Maintainer:SSCam,SSChatBot,SSCal,SSFile,DbLog,DbRep,Log2Syslog,SolarForecast,Watches,Dashboard,PylonLowVoltage,MemSaver
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

300P

...boh ey... nicht Neustart - Downloadfehler des Updates nicht bemerkt
😰🤦�♂️Sorry dafür



Chick !!


Da werd ich mal sehen wie ich die aktuellen Stundendaten vom CDCOpenData reinfrimmele...

Mein DWD-Staion liefert zwar gute Sonnenwerte - aber die Regenmenge/Stunde wird nicht geliefert

EDIT:
Bei JoWiemann mal nachgefragt, ob er es in den Code seines CDCOpenData-Moduls einbringen könnte.... 8)
Gruß
300P

FHEM 6.5|QNAP-Container-bookworm|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|
Buderus-MQTT_EMS|Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|AI_on_the_Edge|ESP32CAM usw.

DS_Starter

Kleine Erinnerung ... denkt bitte daran das Reading Battery_OptimumTargetSoC_XX in euren Verwendungen durch das Reading Battery_OptimumBaseSoC_XX zu ersetzen.
Battery_OptimumTargetSoC_XX werde ich in einer der kommenden Versionen entfernen.
Proxmox+Debian+MariaDB, PV: SMA, Victron+Pylontech
Maintainer:SSCam,SSChatBot,SSCal,SSFile,DbLog,DbRep,Log2Syslog,SolarForecast,Watches,Dashboard,PylonLowVoltage,MemSaver
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter