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

Das Steuerungsverhalten resultiert aus den Verhältnissen der Batteriekapazitäten zueinander und den daraus resultierenden Aufteilungen der beteiligten Kennzahlen.

Bat 01 relLoad 18 11 -> 0 (currsoc: 73.982 %, SoCfc: 74.0 %, soc: 6880 Wh, pvfc: 4883, confc: 767, Surp Day: 346652 Wh, Curr PV: 9814 W, Curr Consumption: 5110 W, Limit: 15190 W)
Bat 02 relLoad 18 11 -> 1 (currsoc: 91 %, SoCfc: 100.0 %, soc: 7500 Wh, pvfc: 3938, confc: 618, Surp Day: 0 Wh, Curr PV: 9814 W, Curr Consumption: 5110 W, Limit: 15190 W)
Bat 03 relLoad 18 11 -> 1 (currsoc: 68 %, SoCfc: 100.0 %, soc: 5500 Wh, pvfc: 2888, confc: 454, Surp Day: 0 Wh, Curr PV: 9814 W, Curr Consumption: 5110 W, Limit: 15190 W)

Die Kennzahl Surp Day ist bei den Bat2/3 = 0, was automatisch eine Ladefreigabe der Bat bedeutet. Allerdings ist mir Surp Day = 0 noch schleierhaft. Möglicherweise muß ich das Debug noch erweitern um dahinter zu kommen.


 
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

peterboeckmann

Hallo Heiko,

Zitat von: DS_Starter am 18 März 2025, 18:09:46ich sehe zumindest einen sehr hohen Verbrauchswert von 638 kWh der in deiner History aufgezeichnet wurde:

mit dem heutigen Tag scheint das tatsächlich erledigt zu sein. Die Verbrauchsprognose ist für den Tag und die einzelnen Stunden realistisch:
Du darfst diesen Dateianhang nicht ansehen.

Ich habe auch nicht herausgefunden, woher dieser viel zu hohe Verbrauch kam.

Viele Grüße,
Peter

andi11

ich habe gestern die aktuelle Version eingespielt, seither funktioniert die Anzeige des SOC meiner Batterie nicht mehr, stattdessen wird 0% angezeigt.
Nach dem Update habe ich gemerkt, dass ich erst das Attribut setupBattery... anlegen muss.

Was mach ich falsch? Solcast Device:
define solcast SolarForecast
attr solcast DbLogExclude .*
attr solcast DbLogInclude Current_.*
attr solcast comment "wget -qO ./FHEM/76_SolarForecast.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/76_SolarForecast.pm"
attr solcast consumer01 Stromverbrauch_Zaehler2 type=heater power=2100 icon=sani_floor_heating pcurr=P_act_tot-get:kW etotal=total-get:kWh
attr solcast consumer02 Shelly_Waschmaschine type=washingmachine power=3000 mintime=60 pcurr=power:W etotal=energykwh:kWh icon=scene_washing_machine
attr solcast consumer03 Shelly_Trockner type=dryer power=3000 mintime=60 pcurr=power:W etotal=energykwh:kWh icon=scene_laundry_room
attr solcast consumer04 HTTPMOD_Wallbox type=charger power=0 pcurr=devices_01_power_w:W etotal=devices_01_total_energy:kWh icon=car_in
attr solcast consumerLegend icon_bottom
attr solcast ctrlNextDayForecastReadings 12,13
attr solcast event-on-change-reading .*
attr solcast flowGraphicControl size=600 animate=1
attr solcast graphicBeam1Color 38DE4D
attr solcast graphicBeam1Content pvForecast
attr solcast graphicBeam1FontColor 000000
attr solcast graphicBeam2Color FF8E2B
attr solcast graphicBeam2Content pvReal
attr solcast graphicBeam2FontColor 000000
attr solcast graphicHourCount 30
attr solcast graphicLayoutType double
attr solcast graphicWeatherColor FFC933
attr solcast room Technik_PV
attr solcast setupBatteryDev01 BatterieWR pin=BatteryPowerBMS2:kW pout=-pin intotal=BatteryChargeTotal:kWh outtotal=BatteryDischargeTotal:kWh cap=10:kWh charge=BatteryCapacity
attr solcast setupInverterDev01 Stromverbrauch_Zaehler11 pv=P_act-get:kW etotal=total-get:kWh
attr solcast setupInverterStrings Hausdach,Hausdach2,GartenhausSued,GartenhausNord
attr solcast setupMeterDev Stromverbrauch_Zaehler1_EHZ gcon=aktuellerverbrauch-get:kW contotal=total-get:kWh gfeedin=-gcon feedtotal=ueberschuss-total-get:kWh conprice=0.3:€ feedprice =0.08:€
attr solcast setupRadiationAPI DWD_Forecast
attr solcast setupStringPeak Hausdach=4.86 Hausdach2=2.49 GartenhausSued=0.6 GartenhausNord=0.6
attr solcast setupWeatherDev1 DWD_Forecast
#   FUUID      62487147-f33f-ae17-74c6-e655d31e5ac447b7
#   FVERSION   76_SolarForecast.pm:v1.48.0-s29752/2025-03-14
#   LCACHEFILE last write time: 07:51:12 File: ./FHEM/FhemUtils/PVCfg_SolarForecast_solcast
#   MODE       Automatic / Event-controlled - next planned Cycletime: 07:56:10
#   MODEL      DWD
#   NAME       solcast
#   NOTIFYDEV  Stromverbrauch_Zaehler1_EHZ,Stromverbrauch_Zaehler2,Shelly_Waschmaschine,Shelly_Trockner,HTTPMOD_Wallbox,BatterieWR,Stromverbrauch_Zaehler11
#   NR         393
#   NTFY_ORDER 50-solcast
#   STATE      updated
#   TYPE       SolarForecast
#   WEATHERMODEL DWD
#   eventCount 1460
#   HELPER:
#     01M15DONE  1
#     01M45DONE  1
#     02M15DONE  1
#     02M45DONE  1
#     03M15DONE  1
#     03M45DONE  1
#     04M15DONE  1
#     04M45DONE  1
#     FW         WEB
#     PACKAGE    FHEM::SolarForecast
#     S10DONE    1
#     SPGDETAIL 
#     SPGDEV     solcast
#     SPGROOM   
#     VERSION    1.48.0
#     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     237
#       finishFn   FHEM::SolarForecast::_processMessageFile
#       fn         FHEM::SolarForecast::_retrieveMessageFile
#       loglevel   3
#       pid        DEAD:1397083
#       telnet     telnetPort_127.0.0.1_43844
#       terminated 1
#       timeout    30
#       abortArg:
#       arg:
#         block      1
#         name       solcast
#         tsnext     1742370872.46547
#   Helper:
#     DBLOG:
#       Current_AutarkyRate:
#         logdb:
#           TIME       1742367230.04523
#           VALUE      100
#       Current_BatCharge_01:
#         logdb:
#           TIME       1742367230.04523
#           VALUE      21
#       Current_Consumption:
#         logdb:
#           TIME       1742367300.0476
#           VALUE      402
#       Current_GridConsumption:
#         logdb:
#           TIME       1742367230.04523
#           VALUE      0
#       Current_GridFeedIn:
#         logdb:
#           TIME       1742367300.0476
#           VALUE      12
#       Current_PV:
#         logdb:
#           TIME       1742367300.0476
#           VALUE      1644
#       Current_PowerBatIn_01:
#         logdb:
#           TIME       1742367300.0476
#           VALUE      1230
#       Current_SelfConsumption:
#         logdb:
#           TIME       1742367300.0476
#           VALUE      402
#       Current_SelfConsumptionRate:
#         logdb:
#           TIME       1742367300.0476
#           VALUE      24
#       Current_Surplus:
#         logdb:
#           TIME       1742367300.0476
#           VALUE      1242
#   OLDREADINGS:
#   READINGS:
#     2025-03-19 07:55:00   Current_AutarkyRate 100 %
#     2025-03-18 19:57:24   Current_BatCharge 71 %
#     2025-03-19 07:55:00   Current_BatCharge_01 21 %
#     2025-03-19 07:55:00   Current_Consumption 402 W
#     2025-03-19 07:55:00   Current_GridConsumption 0 W
#     2025-03-19 07:55:00   Current_GridFeedIn 12 W
#     2025-03-19 07:55:00   Current_PV      1644 W
#     2025-03-18 19:57:24   Current_PowerBatIn 0 W
#     2025-03-19 07:55:00   Current_PowerBatIn_01 1230 W
#     2025-03-18 19:57:24   Current_PowerBatOut 314 W
#     2025-03-19 07:55:00   Current_PowerBatOut_01 0 W
#     2025-03-19 07:55:00   Current_SelfConsumption 402 W
#     2025-03-19 07:55:00   Current_SelfConsumptionRate 24 %
#     2025-03-19 07:55:00   Current_Surplus 1242 W
#     2025-03-19 07:00:00   LastHourGridconsumptionReal 500 Wh
#     2025-03-19 07:00:00   LastHourPVforecast 96 Wh
#     2025-03-19 07:00:00   LastHourPVreal  0 Wh
#     2025-03-19 07:55:00   NextHours_Sum01_PVforecast 2175 Wh
#     2025-03-19 07:55:00   NextHours_Sum02_PVforecast 5056 Wh
#     2025-03-19 07:55:00   NextHours_Sum03_PVforecast 9927 Wh
#     2025-03-19 07:55:00   NextHours_Sum04_ConsumptionForecast 2865 Wh
#     2025-03-19 07:55:00   NextHours_Sum04_PVforecast 11857 Wh
#     2025-03-19 07:55:00   RestOfDayConsumptionForecast 11053 Wh
#     2025-03-19 07:55:00   RestOfDayPVforecast 31946 Wh
#     2025-03-19 00:59:49   Today_Hour01_GridConsumption 0 Wh
#     2025-03-19 00:59:49   Today_Hour01_GridFeedIn 0 Wh
#     2025-03-19 00:59:49   Today_Hour01_PVreal 0 Wh
#     2025-03-19 01:59:49   Today_Hour02_GridConsumption 0 Wh
#     2025-03-19 01:59:49   Today_Hour02_GridFeedIn 0 Wh
#     2025-03-19 01:59:49   Today_Hour02_PVreal 0 Wh
#     2025-03-19 02:59:49   Today_Hour03_GridConsumption 500 Wh
#     2025-03-19 02:59:49   Today_Hour03_GridFeedIn 0 Wh
#     2025-03-19 02:59:49   Today_Hour03_PVreal 0 Wh
#     2025-03-19 03:59:49   Today_Hour04_GridConsumption 500 Wh
#     2025-03-19 03:59:49   Today_Hour04_GridFeedIn 0 Wh
#     2025-03-19 03:59:49   Today_Hour04_PVreal 0 Wh
#     2025-03-19 04:59:49   Today_Hour05_GridConsumption 0 Wh
#     2025-03-19 04:59:49   Today_Hour05_GridFeedIn 0 Wh
#     2025-03-19 04:59:49   Today_Hour05_PVreal 0 Wh
#     2025-03-19 05:59:49   Today_Hour06_GridConsumption 500 Wh
#     2025-03-19 05:59:49   Today_Hour06_GridFeedIn 0 Wh
#     2025-03-19 05:59:49   Today_Hour06_PVreal 0 Wh
#     2025-03-19 06:59:49   Today_Hour07_GridConsumption 500 Wh
#     2025-03-19 06:59:49   Today_Hour07_GridFeedIn 0 Wh
#     2025-03-19 06:59:49   Today_Hour07_PVforecast 96 Wh
#     2025-03-19 06:59:49   Today_Hour07_PVreal 0 Wh
#     2025-03-19 07:55:00   Today_Hour08_BatIn_01 100 Wh
#     2025-03-19 07:55:00   Today_Hour08_BatOut_01 0 Wh
#     2025-03-19 07:55:00   Today_Hour08_GridConsumption 0 Wh
#     2025-03-19 07:55:00   Today_Hour08_GridFeedIn 0 Wh
#     2025-03-19 07:55:00   Today_Hour08_PVforecast 876 Wh
#     2025-03-19 07:55:00   Today_Hour08_PVreal 270 Wh
#     2025-03-19 07:55:00   Today_Hour09_PVforecast 2268 Wh
#     2025-03-19 07:55:00   Today_Hour10_PVforecast 2925 Wh
#     2025-03-19 07:55:00   Today_Hour11_PVforecast 5010 Wh
#     2025-03-19 07:55:00   Today_Hour12_PVforecast 1710 Wh
#     2025-03-19 07:55:00   Today_Hour13_PVforecast 3965 Wh
#     2025-03-19 07:55:00   Today_Hour14_PVforecast 5844 Wh
#     2025-03-19 07:55:00   Today_Hour15_PVforecast 4294 Wh
#     2025-03-19 07:55:00   Today_Hour16_PVforecast 3224 Wh
#     2025-03-19 07:55:00   Today_Hour17_PVforecast 2019 Wh
#     2025-03-19 07:55:00   Today_Hour18_PVforecast 616 Wh
#     2025-03-19 07:55:00   Today_Hour19_PVforecast 13 Wh
#     2025-03-19 07:55:00   Today_MaxPVforecast 5844 Wh
#     2025-03-19 07:55:00   Today_MaxPVforecastTime 2025-03-19 13:00:00
#     2025-03-19 07:55:00   Today_PVforecast 32860 Wh
#     2025-03-19 07:55:00   Today_PVreal    270 Wh
#     2025-03-19 07:55:00   Today_SunRise   06:20
#     2025-03-19 07:55:00   Today_SunSet    18:25
#     2025-03-19 07:55:00   Tomorrow_ConsumptionForecast 17750 Wh
#     2025-03-19 07:55:00   Tomorrow_Hour12_PVforecast 5943 Wh
#     2025-03-19 07:55:00   Tomorrow_Hour13_PVforecast 6550 Wh
#     2025-03-19 07:55:00   Tomorrow_PVforecast 38247 Wh
#     2025-03-19 07:55:00   Tomorrow_SunRise 06:18
#     2025-03-19 07:55:00   Tomorrow_SunSet 18:27
#     2025-03-19 07:55:00   consumer01      name='Stromverbrauch_Zaehler2' state='unknown' mode='can' planningstate='planned'
#     2025-03-19 07:55:00   consumer01_currentPower 11 W
#     2025-03-19 07:55:00   consumer01_planned_start 19.03.2025 08:00:00
#     2025-03-19 07:55:00   consumer01_planned_stop 19.03.2025 12:00:00
#     2025-03-19 07:55:00   consumer02      name='Shelly_Waschmaschine' state='on' mode='can' planningstate='planned'
#     2025-03-19 07:55:00   consumer02_currentPower 0 W
#     2025-03-19 07:55:00   consumer02_planned_start 19.03.2025 07:45:41
#     2025-03-19 07:55:00   consumer02_planned_stop 19.03.2025 08:45:41
#     2025-03-19 07:55:00   consumer03      name='Shelly_Trockner' state='on' mode='can' planningstate='planned'
#     2025-03-19 07:55:00   consumer03_currentPower 0 W
#     2025-03-19 07:55:00   consumer03_planned_start 19.03.2025 07:45:41
#     2025-03-19 07:55:00   consumer03_planned_stop 19.03.2025 08:45:41
#     2025-03-19 07:55:00   consumer04      name='HTTPMOD_Wallbox' state='unknown' mode='can' planningstate='planned'
#     2025-03-19 07:55:00   consumer04_currentPower 1 W
#     2025-03-19 07:55:00   consumer04_planned_start 19.03.2025 07:45:41
#     2025-03-19 07:55:00   consumer04_planned_stop 19.03.2025 09:45:41
#     2023-09-16 07:21:23   currentBatteryDev BatterieWR pin=BatteryPowerBMS2:kW pout=-pin intotal=BatteryChargeTotal:kWh outtotal=BatteryDischargeTotal:kWh charge=BatteryCapacity
#     2022-04-03 18:59:44   currentInverterDev Stromverbrauch_Zaehler11 pv=P_act-get:kW etotal=total-get:kWh
#     2024-03-17 09:24:04   currentMeterDev Stromverbrauch_Zaehler1_EHZ gcon=aktuellerverbrauch-get:kW contotal=total-get:kWh gfeedin=-gcon feedtotal=ueberschuss-total-get:kWh conprice=0.3:€ feedprice =0.08:€
#     2023-11-21 21:30:01   currentRadiationAPI DWD_Forecast
#     2023-07-20 21:35:59   inverterStrings Hausdach,Hausdach2,GartenhausSued,GartenhausNord
#     2023-07-20 21:36:24   modulePeakString Hausdach=4.86 Hausdach2=2.49 GartenhausSued=0.6 GartenhausNord=0.6
#     2025-03-19 07:55:00   nextCycletime   07:56:10
#     2023-03-30 17:11:04   nextPolltime    17:12:14
#     2025-03-19 07:55:00   pvCorrectionFactor_Auto on_complex_ai
#     2024-08-21 08:39:30   setupStringAzimuth Hausdach=S Hausdach2=S GartenhausSued=S GartenhausNord=N
#     2024-08-21 08:39:30   setupStringDeclination Hausdach=20 Hausdach2=20 GartenhausSued=10 GartenhausNord=10
#     2025-03-19 07:55:01   state           updated
#
setstate solcast updated
setstate solcast 2025-03-19 07:51:11 .associatedWith Stromverbrauch_Zaehler1_EHZ Stromverbrauch_Zaehler2 Shelly_Waschmaschine Shelly_Trockner HTTPMOD_Wallbox BatterieWR Stromverbrauch_Zaehler11 DWD_Forecast
setstate solcast 2025-03-19 07:55:00 .lastupdateForecastValues 1742367300
setstate solcast 2025-03-19 07:55:00 .pvCorrectionFactor_Auto_Soll on_complex_ai
setstate solcast 2025-03-19 01:00:05 .signaldone_01 done
setstate solcast 2025-03-19 02:00:04 .signaldone_02 done
setstate solcast 2025-03-19 03:00:04 .signaldone_03 done
setstate solcast 2025-03-19 04:00:04 .signaldone_04 done
setstate solcast 2025-03-19 05:00:00 .signaldone_05 done
setstate solcast 2025-03-19 06:00:05 .signaldone_06 done
setstate solcast 2025-03-19 07:00:05 .signaldone_07 done
setstate solcast 2025-03-19 00:00:04 .signaldone_24 done
setstate solcast 2025-03-19 07:55:00 Current_AutarkyRate 100 %
setstate solcast 2025-03-18 19:57:24 Current_BatCharge 71 %
setstate solcast 2025-03-19 07:55:00 Current_BatCharge_01 21 %
setstate solcast 2025-03-19 07:55:00 Current_Consumption 402 W
setstate solcast 2025-03-19 07:55:00 Current_GridConsumption 0 W
setstate solcast 2025-03-19 07:55:00 Current_GridFeedIn 12 W
setstate solcast 2025-03-19 07:55:00 Current_PV 1644 W
setstate solcast 2025-03-18 19:57:24 Current_PowerBatIn 0 W
setstate solcast 2025-03-19 07:55:00 Current_PowerBatIn_01 1230 W
setstate solcast 2025-03-18 19:57:24 Current_PowerBatOut 314 W
setstate solcast 2025-03-19 07:55:00 Current_PowerBatOut_01 0 W
setstate solcast 2025-03-19 07:55:00 Current_SelfConsumption 402 W
setstate solcast 2025-03-19 07:55:00 Current_SelfConsumptionRate 24 %
setstate solcast 2025-03-19 07:55:00 Current_Surplus 1242 W
setstate solcast 2025-03-19 07:00:00 LastHourGridconsumptionReal 500 Wh
setstate solcast 2025-03-19 07:00:00 LastHourPVforecast 96 Wh
setstate solcast 2025-03-19 07:00:00 LastHourPVreal 0 Wh
setstate solcast 2025-03-19 07:55:00 NextHours_Sum01_PVforecast 2175 Wh
setstate solcast 2025-03-19 07:55:00 NextHours_Sum02_PVforecast 5056 Wh
setstate solcast 2025-03-19 07:55:00 NextHours_Sum03_PVforecast 9927 Wh
setstate solcast 2025-03-19 07:55:00 NextHours_Sum04_ConsumptionForecast 2865 Wh
setstate solcast 2025-03-19 07:55:00 NextHours_Sum04_PVforecast 11857 Wh
setstate solcast 2025-03-19 07:55:00 RestOfDayConsumptionForecast 11053 Wh
setstate solcast 2025-03-19 07:55:00 RestOfDayPVforecast 31946 Wh
setstate solcast 2025-03-19 00:59:49 Today_Hour01_GridConsumption 0 Wh
setstate solcast 2025-03-19 00:59:49 Today_Hour01_GridFeedIn 0 Wh
setstate solcast 2025-03-19 00:59:49 Today_Hour01_PVreal 0 Wh
setstate solcast 2025-03-19 01:59:49 Today_Hour02_GridConsumption 0 Wh
setstate solcast 2025-03-19 01:59:49 Today_Hour02_GridFeedIn 0 Wh
setstate solcast 2025-03-19 01:59:49 Today_Hour02_PVreal 0 Wh
setstate solcast 2025-03-19 02:59:49 Today_Hour03_GridConsumption 500 Wh
setstate solcast 2025-03-19 02:59:49 Today_Hour03_GridFeedIn 0 Wh
setstate solcast 2025-03-19 02:59:49 Today_Hour03_PVreal 0 Wh
setstate solcast 2025-03-19 03:59:49 Today_Hour04_GridConsumption 500 Wh
setstate solcast 2025-03-19 03:59:49 Today_Hour04_GridFeedIn 0 Wh
setstate solcast 2025-03-19 03:59:49 Today_Hour04_PVreal 0 Wh
setstate solcast 2025-03-19 04:59:49 Today_Hour05_GridConsumption 0 Wh
setstate solcast 2025-03-19 04:59:49 Today_Hour05_GridFeedIn 0 Wh
setstate solcast 2025-03-19 04:59:49 Today_Hour05_PVreal 0 Wh
setstate solcast 2025-03-19 05:59:49 Today_Hour06_GridConsumption 500 Wh
setstate solcast 2025-03-19 05:59:49 Today_Hour06_GridFeedIn 0 Wh
setstate solcast 2025-03-19 05:59:49 Today_Hour06_PVreal 0 Wh
setstate solcast 2025-03-19 06:59:49 Today_Hour07_GridConsumption 500 Wh
setstate solcast 2025-03-19 06:59:49 Today_Hour07_GridFeedIn 0 Wh
setstate solcast 2025-03-19 06:59:49 Today_Hour07_PVforecast 96 Wh
setstate solcast 2025-03-19 06:59:49 Today_Hour07_PVreal 0 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour08_BatIn_01 100 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour08_BatOut_01 0 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour08_GridConsumption 0 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour08_GridFeedIn 0 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour08_PVforecast 876 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour08_PVreal 270 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour09_PVforecast 2268 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour10_PVforecast 2925 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour11_PVforecast 5010 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour12_PVforecast 1710 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour13_PVforecast 3965 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour14_PVforecast 5844 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour15_PVforecast 4294 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour16_PVforecast 3224 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour17_PVforecast 2019 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour18_PVforecast 616 Wh
setstate solcast 2025-03-19 07:55:00 Today_Hour19_PVforecast 13 Wh
setstate solcast 2025-03-19 07:55:00 Today_MaxPVforecast 5844 Wh
setstate solcast 2025-03-19 07:55:00 Today_MaxPVforecastTime 2025-03-19 13:00:00
setstate solcast 2025-03-19 07:55:00 Today_PVforecast 32860 Wh
setstate solcast 2025-03-19 07:55:00 Today_PVreal 270 Wh
setstate solcast 2025-03-19 07:55:00 Today_SunRise 06:20
setstate solcast 2025-03-19 07:55:00 Today_SunSet 18:25
setstate solcast 2025-03-19 07:55:00 Tomorrow_ConsumptionForecast 17750 Wh
setstate solcast 2025-03-19 07:55:00 Tomorrow_Hour12_PVforecast 5943 Wh
setstate solcast 2025-03-19 07:55:00 Tomorrow_Hour13_PVforecast 6550 Wh
setstate solcast 2025-03-19 07:55:00 Tomorrow_PVforecast 38247 Wh
setstate solcast 2025-03-19 07:55:00 Tomorrow_SunRise 06:18
setstate solcast 2025-03-19 07:55:00 Tomorrow_SunSet 18:27
setstate solcast 2025-03-19 07:55:00 consumer01 name='Stromverbrauch_Zaehler2' state='unknown' mode='can' planningstate='planned'
setstate solcast 2025-03-19 07:55:00 consumer01_currentPower 11 W
setstate solcast 2025-03-19 07:55:00 consumer01_planned_start 19.03.2025 08:00:00
setstate solcast 2025-03-19 07:55:00 consumer01_planned_stop 19.03.2025 12:00:00
setstate solcast 2025-03-19 07:55:00 consumer02 name='Shelly_Waschmaschine' state='on' mode='can' planningstate='planned'
setstate solcast 2025-03-19 07:55:00 consumer02_currentPower 0 W
setstate solcast 2025-03-19 07:55:00 consumer02_planned_start 19.03.2025 07:45:41
setstate solcast 2025-03-19 07:55:00 consumer02_planned_stop 19.03.2025 08:45:41
setstate solcast 2025-03-19 07:55:00 consumer03 name='Shelly_Trockner' state='on' mode='can' planningstate='planned'
setstate solcast 2025-03-19 07:55:00 consumer03_currentPower 0 W
setstate solcast 2025-03-19 07:55:00 consumer03_planned_start 19.03.2025 07:45:41
setstate solcast 2025-03-19 07:55:00 consumer03_planned_stop 19.03.2025 08:45:41
setstate solcast 2025-03-19 07:55:00 consumer04 name='HTTPMOD_Wallbox' state='unknown' mode='can' planningstate='planned'
setstate solcast 2025-03-19 07:55:00 consumer04_currentPower 1 W
setstate solcast 2025-03-19 07:55:00 consumer04_planned_start 19.03.2025 07:45:41
setstate solcast 2025-03-19 07:55:00 consumer04_planned_stop 19.03.2025 09:45:41
setstate solcast 2023-09-16 07:21:23 currentBatteryDev BatterieWR pin=BatteryPowerBMS2:kW pout=-pin intotal=BatteryChargeTotal:kWh outtotal=BatteryDischargeTotal:kWh charge=BatteryCapacity
setstate solcast 2022-04-03 18:59:44 currentInverterDev Stromverbrauch_Zaehler11 pv=P_act-get:kW etotal=total-get:kWh
setstate solcast 2024-03-17 09:24:04 currentMeterDev Stromverbrauch_Zaehler1_EHZ gcon=aktuellerverbrauch-get:kW contotal=total-get:kWh gfeedin=-gcon feedtotal=ueberschuss-total-get:kWh conprice=0.3:€ feedprice =0.08:€
setstate solcast 2023-11-21 21:30:01 currentRadiationAPI DWD_Forecast
setstate solcast 2023-07-20 21:35:59 inverterStrings Hausdach,Hausdach2,GartenhausSued,GartenhausNord
setstate solcast 2023-07-20 21:36:24 modulePeakString Hausdach=4.86 Hausdach2=2.49 GartenhausSued=0.6 GartenhausNord=0.6
setstate solcast 2025-03-19 07:55:00 nextCycletime 07:56:10
setstate solcast 2023-03-30 17:11:04 nextPolltime 17:12:14
setstate solcast 2025-03-19 07:55:00 pvCorrectionFactor_Auto on_complex_ai
setstate solcast 2024-08-21 08:39:30 setupStringAzimuth Hausdach=S Hausdach2=S GartenhausSued=S GartenhausNord=N
setstate solcast 2024-08-21 08:39:30 setupStringDeclination Hausdach=20 Hausdach2=20 GartenhausSued=10 GartenhausNord=10
setstate solcast 2025-03-19 07:55:01 state updated


Batterie (ich habe ein paar vermutlich unwichtige Zeilen entfernt, sonst ist der Beitrag zu lang zum abschicken):
define BatterieWR ModbusAttr 1 60 172.16.1.41:4196
attr BatterieWR DbLogExclude .*
attr BatterieWR DbLogInclude (ActivePower|DCPower|BatteryPowerBMS|stat.*|ErzeugungLastMonth|InverterTemperature|BatteryCapacity|InverterGenerationTotal|BatteryVoltageBMS.*)
attr BatterieWR comment 33149 BatteryPower kann nicht gelesen werden, also wird es aus Spannung, Strom und Richtung berechnet.\
Es wird öfter umständlich das Vorzeichen berechnet, da es nicht bei allen Parametern mitgeliefert wird\
verbose ist auf 2, da momentan der Logstick ebenfalls als Master am Bus hängt, und das mag FHEM zu Recht nicht
attr BatterieWR dev-i-defPoll 1
attr BatterieWR dev-i-defShowGet 1
attr BatterieWR dev-timing-commDelay 0.4
attr BatterieWR enableControlSet 1
attr BatterieWR group Wechselrichter
attr BatterieWR obj-i33029-len 2
attr BatterieWR obj-i33029-poll 1
attr BatterieWR obj-i33029-reading InverterGenerationTotalIn
attr BatterieWR obj-i33029-unpack N
attr BatterieWR obj-i33035-expr $val*0.1
attr BatterieWR obj-i33035-format %.1f
attr BatterieWR obj-i33035-len 1
attr BatterieWR obj-i33035-poll 1
attr BatterieWR obj-i33035-reading InverterGenerationToday
attr BatterieWR obj-i33057-expr $val/1000
attr BatterieWR obj-i33057-len 2
attr BatterieWR obj-i33057-poll 1
attr BatterieWR obj-i33057-reading DCPower
attr BatterieWR obj-i33057-unpack N
attr BatterieWR obj-i33079-expr $val*0.001
attr BatterieWR obj-i33079-len 2
attr BatterieWR obj-i33079-reading ActivePower
attr BatterieWR obj-i33079-unpack l>
attr BatterieWR obj-i33093-expr $val*0.1
attr BatterieWR obj-i33093-len 1
attr BatterieWR obj-i33093-reading InverterTemperature
attr BatterieWR obj-i33095-len 1
attr BatterieWR obj-i33095-map 0:Waiting,1:OpenRun,2:Softrun,3:Generating,4100:OffGrid,8210:BMS Com Fail,8213:BMS Alarm
attr BatterieWR obj-i33095-poll 1
attr BatterieWR obj-i33095-reading Status
attr BatterieWR obj-i33133-expr $val*0.1
attr BatterieWR obj-i33133-len 1
attr BatterieWR obj-i33133-reading BatteryVoltage
attr BatterieWR obj-i33134-expr $val*0.1
attr BatterieWR obj-i33134-len 1
attr BatterieWR obj-i33134-reading BatteryCurrent
attr BatterieWR obj-i33135-len 1
attr BatterieWR obj-i33135-poll 1
attr BatterieWR obj-i33135-reading BatteryCurrentDirection
attr BatterieWR obj-i33135-showGet 1
attr BatterieWR obj-i33139-len 1
attr BatterieWR obj-i33139-poll 1
attr BatterieWR obj-i33139-reading BatteryCapacity
attr BatterieWR obj-i33141-expr $val*0.01
attr BatterieWR obj-i33141-len 1
attr BatterieWR obj-i33141-poll 1
attr BatterieWR obj-i33141-reading BatteryVoltageBMS
attr BatterieWR obj-i33141-unpack n
attr BatterieWR obj-i33142-expr $val*0.1
attr BatterieWR obj-i33142-len 1
attr BatterieWR obj-i33142-poll 1
attr BatterieWR obj-i33142-reading BatteryCurrentBMS
attr BatterieWR obj-i33142-unpack s>
attr BatterieWR obj-i33161-len 2
attr BatterieWR obj-i33161-poll 1
attr BatterieWR obj-i33161-reading BatteryChargeTotalIn
attr BatterieWR obj-i33161-unpack N
attr BatterieWR obj-i33163-expr $val*0.1
attr BatterieWR obj-i33163-len 1
attr BatterieWR obj-i33163-poll 1
attr BatterieWR obj-i33163-reading BatteryChargeToday
attr BatterieWR obj-i33165-len 2
attr BatterieWR obj-i33165-poll 1
attr BatterieWR obj-i33165-reading BatteryDischargeTotalIn
attr BatterieWR obj-i33165-unpack N
attr BatterieWR obj-i33167-expr $val*0.1
attr BatterieWR obj-i33167-len 1
attr BatterieWR obj-i33167-poll 1
attr BatterieWR obj-i33167-reading BatteryDischargeToday
attr BatterieWR obj-i33251-expr $val*0.1
attr BatterieWR obj-i33251-len 1
attr BatterieWR obj-i33251-reading MeterVoltageA
attr BatterieWR obj-i33252-expr $val*0.01
attr BatterieWR obj-i33252-len 1
attr BatterieWR obj-i33252-reading MeterCurrentAin
attr BatterieWR obj-i33253-expr $val*0.1
attr BatterieWR obj-i33253-len 1
attr BatterieWR obj-i33253-reading MeterVoltageB
attr BatterieWR obj-i33254-expr $val*0.01
attr BatterieWR obj-i33254-len 1
attr BatterieWR obj-i33254-reading MeterCurrentBin
attr BatterieWR obj-i33255-expr $val*0.1
attr BatterieWR obj-i33255-len 1
attr BatterieWR obj-i33255-reading MeterVoltageC
attr BatterieWR obj-i33256-expr $val*0.01
attr BatterieWR obj-i33256-len 1
attr BatterieWR obj-i33256-reading MeterCurrentCin
attr BatterieWR obj-i33257-expr $val*0.001
attr BatterieWR obj-i33257-len 2
attr BatterieWR obj-i33257-reading MeterActivePowerA
attr BatterieWR obj-i33257-unpack l>
attr BatterieWR obj-i33259-expr $val*0.001
attr BatterieWR obj-i33259-len 2
attr BatterieWR obj-i33259-reading MeterActivePowerB
attr BatterieWR obj-i33259-unpack l>
attr BatterieWR obj-i33261-expr $val*0.001
attr BatterieWR obj-i33261-len 2
attr BatterieWR obj-i33261-reading MeterActivePowerC
attr BatterieWR obj-i33261-unpack l>
attr BatterieWR room Technik_PV
attr BatterieWR skipGarbage 1
attr BatterieWR stateFormat DCPower kW Erzeugung InverterGenerationToday kWh heute BatteryCapacity% Batterie BatteryPower BatteryPowerBMS kW Batterieleistung Status
attr BatterieWR userReadings ForecastAktMonth:statInverterGenerationTotal.* {calcmonthusageSplit($name,"statInverterGenerationTotal",5)},\
BatteryPower:BatteryCurrentDirection.* {sprintf("%.3f",ReadingsNum($name,"BatteryVoltage",0)*ReadingsNum($name,"BatteryCurrent",0)*(ReadingsNum($name,"BatteryCurrentDirection",0)<=0?1:-1)/1000)},\
BatteryPowerBMS:BatteryCurrentBMS.* {sprintf("%.3f",ReadingsNum($name,"BatteryVoltageBMS",0)*ReadingsNum($name,"BatteryCurrentBMS",0)*(ReadingsNum($name,"BatteryCurrentDirection",0)<=0?1:-1)/1000)},\
BatteryPowerBMS2:BatteryPowerBMS.* {ReadingsNum($name,"BatteryPowerBMS",0)>=0?ReadingsNum($name,"BatteryPowerBMS",0):sprintf("%.3f",(ReadingsNum($name,"BatteryPowerBMS",0)*(1-0.1259))+0.06)},\
\
InverterGenerationTotal:InverterGenerationToday.*  {\
my $var=ReadingsNum("BatterieWR","InverterGenerationTotalHelp",0)+ReadingsNum("BatterieWR","InverterGenerationToday",0);;;;\
return ( $var>=ReadingsNum("BatterieWR","InverterGenerationTotal",0)?$var:ReadingsNum("BatterieWR","InverterGenerationTotal",0))\
},\
BatteryChargeTotal:BatteryChargeToday.*  {my $vara=ReadingsNum($name,"BatteryChargeTotalHelp",0)+ReadingsNum($name,"BatteryChargeToday",0);;;;  $vara>=ReadingsNum($name,"BatteryChargeTotal",0)?$vara:ReadingsNum($name,"BatteryChargeTotal",0)},\
BatteryDischargeTotal:BatteryDischargeToday.*  {my $varb=ReadingsNum($name,"BatteryDischargeTotalHelp",0)+ReadingsNum($name,"BatteryDischargeToday",0);;;;  $varb>=ReadingsNum($name,"BatteryDischargeTotal",0)?$varb:ReadingsNum($name,"BatteryDischargeTotal",0)},\
MeterCurrentA:MeterActivePowerA.* {sprintf("%.3f",(ReadingsNum($name,"MeterActivePowerA",0)*1000)/ReadingsNum($name,"MeterVoltageA",0))},\
MeterCurrentB:MeterActivePowerB.* {sprintf("%.3f",(ReadingsNum($name,"MeterActivePowerB",0)*1000)/ReadingsNum($name,"MeterVoltageB",0))},\
MeterCurrentC:MeterActivePowerC.* {sprintf("%.3f",(ReadingsNum($name,"MeterActivePowerC",0)*1000)/ReadingsNum($name,"MeterVoltageC",0))},\
BatteryCapacitykwh:BatteryCapacity.* {sprintf("%.1f",(ReadingsNum($name,"BatteryCapacity",0)*13.2)/100)},\
BatteryCapacitymissing:BatteryCapacitykwh.* {sprintf("%.1f",13.2-ReadingsNum($name,"BatteryCapacitykwh",0))},\
BatteryChargetime:BatteryCapacitykwh.* {\
  my $var=ReadingsNum($name,"BatteryPowerBMS",0);;\
  if ($var>0) {\
    $var=sprintf("%.1f",(ReadingsNum($name,"BatteryCapacitymissing",0))/$var);;\
   }else{\
    $var=0;;  \
  }\
  return $var;;\
},\
\
MeterVoltageB\
\

attr BatterieWR verbose 2
#   DEF        1 60 172.16.1.41:4196
#   DeviceName 172.16.1.41:4196
#   EXPECT     response
#   FD         4
#   FUUID      6287ae83-f33f-ae17-6df4-762760f54d114cca
#   IODev      BatterieWR
#   Interval   60
#   LASTOPEN   1742324319.81887
#   MODBUSID   1
#   MODE       master
#   MODULEVERSION Modbus 4.5.6 - 7.11.2023
#   NAME       BatterieWR
#   NOTIFYDEV  global
#   NR         394
#   NTFY_ORDER 50-BatterieWR
#   PARTIAL   
#   PROTOCOL   RTU
#   STATE      1.262 kW Erzeugung 0.3 kWh heute 21% Batterie 1.441 1.270 kW Batterieleistung Generating
#   TCPConn    1
#   TYPE       ModbusAttr
#   devioLoglevel 3
#   devioNoSTATE 1
#   eventCount 17811
#   nextOpenDelay 60
#   nextQueueRun 1742367355.03148
#   nextTimeout 1742367356.02969

#   FRAME:
#   Helper:
#   READ:
#     BUFFER     
#   READINGS:
#     2025-03-19 07:55:46   ActivePower     -0.09
#     2025-03-19 07:55:49   BatteryCapacity 21
#     2025-03-19 07:55:49   BatteryCapacitykwh 2.8
#     2025-03-19 07:55:49   BatteryCapacitymissing 10.4
#     2025-03-19 07:55:51   BatteryChargeToday 0.3
#     2025-03-19 07:55:51   BatteryChargeTotal 6135.3
#     2025-03-19 01:15:00   BatteryChargeTotalHelp 6135
#     2025-03-19 07:55:51   BatteryChargeTotalIn 6135
#     2025-03-19 07:55:49   BatteryChargetime 8.5
#     2025-03-19 07:55:48   BatteryCurrent  28.7
#     2025-03-19 07:55:50   BatteryCurrentBMS 25.7
#     2025-03-19 07:55:49   BatteryCurrentDirection 0
#     2025-03-19 07:55:52   BatteryDischargeToday 3.9
#     2025-03-19 07:55:52   BatteryDischargeTotal 7040.9
#     2025-03-19 01:15:00   BatteryDischargeTotalHelp 7037
#     2025-03-19 07:55:52   BatteryDischargeTotalIn 7040
#     2025-03-19 07:55:49   BatteryPower    1.441
#     2025-03-19 07:55:50   BatteryPowerBMS 1.270
#     2025-03-19 07:55:50   BatteryPowerBMS2 1.270
#     2025-03-19 07:55:48   BatteryVoltage  50.2
#     2025-03-19 07:55:50   BatteryVoltageBMS 49.43
#     2025-03-19 07:55:46   DCPower         1.262
#     2025-03-19 07:55:53   ForecastAktMonth 488
#     2025-03-18 19:58:39   IODev           ModbusLine
#     2025-03-19 07:55:45   InverterGenerationToday 0.3
#     2025-03-19 07:55:45   InverterGenerationTotal 13894.3
#     2025-03-19 01:15:00   InverterGenerationTotalHelp 13894
#     2025-03-19 07:55:45   InverterGenerationTotalIn 13895
#     2025-03-19 07:55:47   InverterTemperature 33.2
#     2025-03-19 07:54:57   MeterActivePowerA -0.158
#     2025-03-19 07:54:58   MeterActivePowerB -0.155
#     2025-03-19 07:54:58   MeterActivePowerC 0.355
#     2025-03-19 07:54:57   MeterCurrentA   -0.656
#     2025-03-19 07:55:53   MeterCurrentAin 0.88
#     2025-03-19 07:54:58   MeterCurrentB   -0.641
#     2025-03-19 07:54:54   MeterCurrentBin 3.09
#     2025-03-19 07:54:58   MeterCurrentC   1.467
#     2025-03-19 07:54:57   MeterCurrentCin 1.48
#     2025-03-19 07:55:53   MeterVoltageA   240.7
#     2025-03-19 07:54:54   MeterVoltageB   241.7
#     2025-03-19 07:53:56   MeterVoltageC   242
#     2025-03-19 07:55:47   Status          Generating
#     2025-03-19 07:55:53   statBatteryChargeTotal Hour: 0.1 Day: 0.1 Month: 151.1 Year: 469.4
#     2025-03-19 06:59:55   statBatteryChargeTotalLast Hour: 0.0 Day: 9.1 Month: 170.5 Year: 2689.0
#     2025-03-19 07:55:53   statBatteryDischargeTotal Hour: 0.2 Day: 4.7 Month: 156.9 Year: 554.8
#     2025-03-19 06:59:55   statBatteryDischargeTotalLast Hour: 0.2 Day: 7.0 Month: 197.7 Year: 2824.6
#     2025-03-19 07:55:53   statInverterGenerationTotal Hour: 0.2 Day: 0.2 Month: 303.5 Year: 704.0
#     2025-03-19 06:59:55   statInverterGenerationTotalLast Hour: 0.0 Day: 26.9 Month: 239.4 Year: 4637.0
#     2025-03-18 19:58:40   state           opened
#   REMEMBER:
#     lid        1
#     lname      BatterieWR
#     lrecv      1742367353.62857
#     lsend      1742367354.03134



peterboeckmann

Moin Andy,

Ändere mal den Wert cap=10:kWh  in cap=10000 ohne Einheit.

Das sollte helfen,

Gruß,
Peter

andi11


DS_Starter

Moin zusammen,

ZitatDie Kennzahl Surp Day ist bei den Bat2/3 = 0, was automatisch eine Ladefreigabe der Bat bedeutet. Allerdings ist mir Surp Day = 0 noch schleierhaft. Möglicherweise muß ich das Debug noch erweitern um dahinter zu kommen.

Ich habe einen Bug gefunden ... war wieder mit Kopfschmerz verbunden.  ;)

Hier ein Debug Auszug wie es sich ab dem nächsten Release darstellen wird. Beachtet die Angabe von SurpDay bei beiden Batterien:

...
2025.03.19 09:21:14.128 1: SolCast6 DEBUG> Bat 01 relLoad 19 09 -> 1 (SoCfc: 83.5 %, soc: 4173 Wh, pvfc: 2094, rodpvfc: 11087, confcss: 1120, SurpDay: 9967 Wh, CurrSoc: 50.47 %, CurrPV: 3716 W, CurrCons: 940 W, Limit: 3500 W)
2025.03.19 09:21:14.130 1: SolCast6 DEBUG> Bat 01 relLoad 19 10 -> 0 (SoCfc: 83.5 %, soc: 4173 Wh, pvfc: 2168, rodpvfc: 3376, confcss: 295, SurpDay: 3081 Wh)
2025.03.19 09:21:14.133 1: SolCast6 DEBUG> Bat 01 relLoad 19 11 -> 1 (SoCfc: 100.0 %, soc: 5000 Wh, pvfc: 1949, rodpvfc: 2610, confcss: 0, SurpDay: 0 Wh)
...
2025.03.19 09:21:14.210 1: SolCast6 DEBUG> Bat 02 relLoad 19 09 -> 1 (SoCfc: 83.5 %, soc: 4173 Wh, pvfc: 2094, rodpvfc: 11087, confcss: 1120, SurpDay: 9967 Wh, CurrSoc: 50.47 %, CurrPV: 3716 W, CurrCons: 940 W, Limit: 3500 W)
2025.03.19 09:21:14.212 1: SolCast6 DEBUG> Bat 02 relLoad 19 10 -> 0 (SoCfc: 83.5 %, soc: 4173 Wh, pvfc: 2168, rodpvfc: 3376, confcss: 295, SurpDay: 3081 Wh)
2025.03.19 09:21:14.214 1: SolCast6 DEBUG> Bat 02 relLoad 19 11 -> 1 (SoCfc: 100.0 %, soc: 5000 Wh, pvfc: 1949, rodpvfc: 2610, confcss: 0, SurpDay: 0 Wh)
...

Beide (gleichen) Batterien bekommen "19 10 -> 0" als Vorgabe. Es ist eine Testinstallation bei der ich mit Dummies arbeite (habe nur eine reale Batterie).

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

300P

Hallo Heiko,

find ich gut das du einen Ansatz dazu gefunden hast.

Ich werde es dann morgen testen / beobachten, soweit heute bei mir der Strom wieder hergestellt werden wird.


Heute wird mein Producer01 (Brennstoffzelle) in den Ruhestand verabschiedet und parallel eine Wärmepumpe als neuer Großverbraucher installiert.

Solange schalte ich alles elektronisches ,,Gedöns" - wie meine immer Frau sagt - sicherheitshalber aus. 👨�💻💡🔌🔋🪫⚡️

Gruß und Danke für's finden des Bug's
300P
FHEM 6.4|RaspberryPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|QNAP|
JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_edge|ESP32CAM

DS_Starter

ZitatIch werde es dann morgen testen / beobachten, soweit heute bei mir der Strom wieder hergestellt werden wird.
Soll ich die neue Version schon ins contrib stellen?
In der Version gibt es noch eine Baustelle bzgl. OpenMeteo + KI. Wenn du diese Kombi bei dir nicht nutzt, könntest du testen.
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

DS_Starter

Ich habe die Vorabversion von V 1.49.0 in mein contrib geladen. Hier sind schon einige Dinge weiterentwickelt.
Speziell die Batteriesteuerung mit mehreren Batterien ist gefixt.

Wichtig: Die Version bitte nicht testen falls ihr eine Kombi aus OpenMeteo + KI nutzt. Die KI würde in dieser Version tendenziell zu niedrige Ergebnisse prognostizieren. Ist noch eine Baustelle in dieser V.
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

Max_Meyer

Zitat von: DS_Starter am 19 März 2025, 12:30:24Wichtig: Die Version bitte nicht testen falls ihr eine Kombi aus OpenMeteo + KI nutzt. Die KI würde in dieser Version tendenziell zu niedrige Ergebnisse prognostizieren. Ist noch eine Baustelle in dieser V.
Hallo Heiko,
Super das du die Ursache gefunden hast - leider kann ich den derzeitigen Stand nicht testen da ich die Kombination OpenMeteo und KI verwende
Gruß Gerd

DS_Starter

#2365
Hallo zusammen,

Punkte die in dem Major Release 1.49.0 enthalten sind:

- eine neue API-Option OpenMeteoDWD_D2-API (setupRadiationAPI) die nur das Modell ICON D2 für Mitteleuropa nutzt mit einer zeitlichen Auflösung von 15 Minuten. Diese Option soll perspektivisch die Satelliten-Unterstützung bekommen und alle Wetterdaten in der 15 minütigen Auflösung abgerufen werden (intern auf 1 h aggregiert)

- Attribut graphicBeamHeightLevel3 ist hinzugefügt

- der Setter "set ... reset aiData"  löscht nicht nur die internen Strukturen, sondern auch das File auf OS-Ebene

- neues Attribut plantControl

- das Attribut affectBatteryPreferredCharge ist obsolet und als Schlüssel batteryPreferredCharge im Attr  plantControl verfügbar
- das Attribut affectConsForecastInPlanning ist obsolet und als Schlüssel consForecastInPlanning im Attr plantControl verfügbar
- das Attribut ctrlShowLink ist obsolet und als Schlüssel showLink im Attr plantControl verfügbar

- Bugfix: die KI-Prognose ist begrenzt auf die Summe der installierten Inverter-Kapazitäten bzw. deren Limits

- Bugfix: die Ladeempfehlung bei mehreren installierten Batterien

- die Kompatibilität zwischen den für die KI gespeicherten Strahlungsdaten von DWD und OpenMeteo ist hergestellt.
  Zukünftig wird auch bei Open-Meteo (wie bei DWD OpenData) die Globalstrahlung und nicht die GTI (Tilted Global Irridiance) im
  KI-Rawdatensatz gespeichert. Die beiden Daten sind nicht kompatibel und müssen ggf. nach dem Update umgesetzt werden (s.u.)

Die Umstellung der Attribute erfolgt wie immer automatisch, ihr braucht an dieser Stelle nichts zu tun.

wichtiger Hinweis für Nutzer von Open-Meteo:
Wie oben geschrieben, werden für die KI ab dieser Version die GHI statt GTI Daten gespeichert. Die bisherigen Datensätze in aiRawData beinhalten die GTI Daten. Deswegen solltet ihr nach dem Update einmalig den neuen Befehl


set ... aiDecTree rawDataGHIreplace
ausführen. Der Befehl läuft etwas länger und überschreibt die GTI mit den von OpenMeteo gelieferten GHI-Daten. Wenn der Befehl ordnungsgemäß durch ist, wird im Log mit verbose 3 die Anzahl der Replacements ausgegeben:

 
2025.03.20 09:34:04.675 3: openMeteo - aiRawData -> number of datasets replaced rad1h: 3460
Danach das AI Learning durchführen oder einfach bis zum nächsten Autolerearning warten:

 
set ... aiDecTree addInstAndTrain
Danach hat die KI die GHI Daten im Bauch.
Es können zunächst immer noch durch KI-gelieferte Abweichungen  gegenüber dem vorherigen Status zu beobachten sein (bedingt durch Differenzen in den gelieferten GHI-Daten), die sich mit fortschreitender Lern- und Trainingszeit wieder ausnivellieren.
Mit dieser Anpassung können wir zukünftig problemlos zwischen Open-Meteo und DWD OpenData switchen bzw. vllt. sogar die interne KI Unterstützung für API's die keine Strahlungsdaten liefern (SolCast, Victron-KI) implementieren da wir jederzeit die histrorischen Strahlungsdaten abrufen können.

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

grappa24

#2366
ich hab das update auf 1.49.0 durchgeführt, mein Open-Meteo auf GHI umgestellt und das KI-Training angestoßen.
Läuft alles soweit und "der PV-Vorhersagewert für die aktuelle Stunde wird von der KI Unterstützung geliefert"  :D
Sehr gut Heiko, danke!

FHEM 6.3, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

TheTrumpeter

Zitat von: DS_Starter am 20 März 2025, 09:42:33- eine neue API-Option OpenMeteoDWD_D2-API (setupRadiationAPI) die nur das Modell ICON D2 für Mitteleuropa nutzt mit einer zeitlichen Auflösung von 15 Minuten. Diese Option soll perspektivisch die Satelliten-Unterstützung bekommen und alle Wetterdaten in der 15 minütigen Auflösung abgerufen werden (intern auf 1 h aggregiert)
Ich nutze aktuell OpenMeteoWorldAPI, die Daten sind bei Umstellung auf DWD vmtl. verloren, oder?
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

DS_Starter

ZitatIch nutze aktuell OpenMeteoWorldAPI, die Daten sind bei Umstellung auf DWD vmtl. verloren, oder?
Nein, Daten gehen bei einem Wechsel zwischen den OpenMeteo Modellen nicht verloren.
Zwischen bestimmten Modellen, zb. DWD OpenData und OpenMeteo, gab es bisher Inkompatibilitäten. Die sind zukünftig aber beseitigt durch diese beschriebene Maßnahme, sodass man danach zwischen DWD OpenData und OpenMeteo wechseln kann.
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

DS_Starter

Hallo zusammen,

ich habe mir Gedanken um die weitere Reduzierung der vielen Attribute gemacht und habe einige Attr identifiert, die man gut in neuen Attributen als Schlüssel clustern kann. Ihr kennt das Verfahren ja schon.
Es werden nur Attr thematisch zusammengefasst, die wenig Eingaben (wie 0,1 etc.) erfordern.

Es wären zwei neue Attr plantControl und consumerControl.

plantControl  - aufnehmen alte Attr  affectBatteryPreferredCharge     -> in Key batteryPreferredCharge
                                     affectConsForecastIdentWeekdays  -> in Key consForecastIdentWeekdays
     affectConsForecastInPlanning     -> in Key consForecastInPlanning
     affectConsForecastLastDays       -> in Key consForecastLastDays
     ctrlBackupFilesKeep              -> in Key backupFilesKeep
     ctrlGenPVdeviation               -> in Key genPVdeviation
     ctrlInterval                     -> in Key interval
     ctrlShowLink                     -> in Key showLink

  - neuen Schlüssel feedinPowerLimit

consumerControl - aufnehmen alte Attr  consumerAdviceIcon             -> in Key consumerAdviceIcon
                                       consumerLink                   -> in Key consumerLink
       consumerLegend                 -> in Key consumerLegend

Weiterhin das Attr affectSolCastPercentile löschen, ist wahrscheinlich unbenutzt?

Und es wird einen neuen Schlüssel in feedinPowerLimit in plantControl geben. Hier würde man ein Limit für die Einspeiseleistung der Anlage angeben können. Dieser Wert geht als Schwellenwert für die Bat-Ladefreigabe mit ein. D.h. ist die Bat-Ladung ausgeschaltet (weil z.B. später noch genug produziert wird), aber die Anlage aktuell soviel produziert dass der Schwellenwert überschritten wird (und demzufolge eine Abregelung erfolgen würde) wird die Bat-Ladung temporär freigegeben um diese Energie aufzunehmen, das Limit einzuhalten und eine Abregelung zu vermeiden.

Habt ihr Anmerkungen/Meinungen zu der Attributgestaltung?

Einen sonnigen Resttag,
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