Zitat von: heigu am 04 April 2026, 18:34:36danke für den Tipp, bei 5.2.5-bookworm kommt auch OK, jedoch bei 5.2.6 kommt ein Fehler:
Zitat von: mistepke am 08 April 2026, 09:23:53Ich sehe das im Image das DateTime.pm fehlt. War das beabsichtigt?
defmod SolarForecast SolarForecast
attr SolarForecast DbLogExclude .*
attr SolarForecast DbLogInclude Current_AutarkyRate:60,AllPVforecastsToEvent,LastHourPVforecast,LastHourPVreal
attr SolarForecast aiControl aiTrainStart=3 aiStorageDuration=18250 aiTreesPV=30 \
aiConActivate=1 \
aiConProfile=v1_common_active \
aiConHiddenLayers=40-20-10 \
aiConShuffleMode=1 \
aiConBitFailLimit=0.34 \
aiConAlpha=0.7
attr SolarForecast alias SolarForecast
attr SolarForecast consumer01 KlimaanlagePwr switchdev=Klimaanlage_Sw type=other power=300 pcurr=power:W etotal=energy:Wh on=on off=off mintime=SunPath:60:-60 notbefore=10:30 swoncond=AlarmZentrale:bitLagerkeller:0 swoffcond=AlarmZentrale:bitLagerkeller:1 icon=Ventilator_fett auto=Automatik interruptable=1 exconfc=1
attr SolarForecast consumer02 MQTT2_Luftentfeuchter type=other power=500 pcurr=switch_apower:W etotal=switch_aenergy_total:Wh on=on off=off icon=light_ceiling auto=Automatik exconfc=1
attr SolarForecast consumer03 MQTT2_Spelunkenentfeuchter type=other power=300 pcurr=switch_apower:W etotal=switch_aenergy_total:Wh on=on off=off mintime=SunPath:60:-60 notbefore=10:30 swoncond=AlarmZentrale:bitSpelunke:0 swoffcond=AlarmZentrale:bitSpelunke:1 icon=Ventilator_fett auto=Automatik interruptable=1 exconfc=1
attr SolarForecast consumer04 MQTT2_ShellyGeschirrspueler type=dishwasher power=1700 pcurr=switch_apower:W etotal=switch_aenergy_total:Wh on=on off=off icon=scene_dishwasher auto=Automatik exconfc=1
attr SolarForecast consumer05 Trockner_Pwr switchdev=Trockner type=dryer power=600 pcurr=power:W:3 etotal=energy:Wh on=on off=off mintime=60 icon=scene_clothes_dryer auto=Automatik exconfc=1
attr SolarForecast consumer06 Waschmaschine_Pwr switchdev=Waschmaschine type=washingmachine power=2100 pcurr=power:W:3 etotal=energy:Wh on=on off=off mintime=60 icon=scene_washing_machine auto=Automatik exconfc=1
attr SolarForecast consumer07 Stromverbrauch_Buero type=other power=300 pcurr=pcurr:W etotal=etotal:Wh icon=scene_office auto=Automatik
attr SolarForecast consumer08 Stromverbrauch_WoZi type=other power=500 pcurr=pcurr:W etotal=etotal:Wh icon=scene_livingroom auto=Automatik
attr SolarForecast consumer09 MQTT2_KlimaODU type=other power=1500 pcurr=params_switch_0_apower:W:15 etotal=params_switch_0_aenergy_total:Wh on=on off=off icon=frost auto=Automatik exconfc=1
attr SolarForecast consumer10 MQTT2_ShellyPlugKuechenKuehlschrank type=other power=65 pcurr=switch_apower:W etotal=params_switch_0_aenergy_total:Wh on=on off=off icon=kuehlschrank_big auto=Automatik
attr SolarForecast consumer11 shelly3em63g3_e4b063e1c96c type=noSchedule power=11000 auto=Automatik icon=scene_baking_oven pcurr=total_act_power:W:10 etotal=total_act:Wh
attr SolarForecast consumer12 MQTT2_ShellyPlugKellerKuehlschrank type=other power=150 pcurr=params_switch_0_apower:W:5 etotal=params_switch_0_aenergy_total:Wh on=on off=off icon=kuehlschrank_small auto=Automatik
attr SolarForecast consumer13 ShellyplugSchuppen type=charger power=100 pcurr=params_switch_0_apower:W etotal=params_switch_0_aenergy_total:Wh on=on off=off icon=building_carport_socket auto=Automatik exconfc=1
attr SolarForecast consumer14 MQTT2_PlugKaffeemaschine type=other power=2500 pcurr=params_switch_0_apower:W:6 etotal=params_switch_0_aenergy_total:Wh on=on off=off icon=scene_cockle_stove auto=Automatik
attr SolarForecast consumer15 WallboxLeistungssumme type=bev power=11040 pcurr=power:W:10 etotal=total:Wh on=on off=off icon=wallbox auto=Automatik exconfc=1 \
evid=evid:KiaNiro \
batCap=64800 \
power=11040\
currSoC=currSocKiaNiro\
targetSoC=targetSocKiaNiro
attr SolarForecast consumer16 HM_56E0D2_Sw_02 type=other power=40 on=on off=off auto=Automatik icon=debian mode=can mintime=SunPath:60:-60 interruptable=1
attr SolarForecast consumerControl dummyIcon=status_comfort@#ff8c00 showLegend=icon_bottom
attr SolarForecast ctrlDebug aiProcess
attr SolarForecast ctrlSpecialReadings runTimeCentralTask,todayBatInSum,todayBatOutSum,todayConsumption,todayGridConsumption,todayGridFeedIn
attr SolarForecast event-aggregator Current_AutarkyRate:150:linear:mean
attr SolarForecast event-min-interval .*:300
attr SolarForecast event-on-change-reading .*
attr SolarForecast flowGraphicControl animate=1 consumerdist=110 showconsumerremaintime=1 h2consumerdist=50 strokewidth=10 homenodedyncol=1 strokeconsumerdyncol=1 showGenerators=1
attr SolarForecast graphicBeam1Content pvReal
attr SolarForecast graphicBeam2Content pvForecast
attr SolarForecast graphicBeam3Content consumption
attr SolarForecast graphicBeam4Content consumptionForecast
attr SolarForecast graphicBeam5Content feedincome
attr SolarForecast graphicBeam6Content energycosts
attr SolarForecast graphicControl showDiff=1:bottom,2:bottom,3:bottom hourStyle=:00 beamWidth=24 beamHeightlevel=1:250,2:250,3:250 headerShowEnv=outsideTemp,presence,windSpeed
attr SolarForecast graphicHeaderOwnspec #Aktuell:\
Ü;berschuss:Current_Surplus\
Einspeisung:Current_GridFeedIn\
Netzbezug:Current_GridConsumption\
Autarkie-Rate:Current_AutarkyRate\
#Heute:\
Erzeugt:Today_PVreal\
Bezogen:special_todayGridConsumption\
Eingespeist:special_todayGridFeedIn\
Verbraucht:special_todayConsumption\
#Heute:\
Bisher ;vorhergesagt:Today_PVforecast_SoFar\
Insgesamt ;vorhergesagt:Today_PVforecast\
;\
;\
#Enphase-Batterie:\
Status:Akkustatus@Enphase\
SoC ;(%):StorageFullPercent@Enphase\
Heute ;geladen:special_todayBatInSum\
Heute ;entladen:special_todayBatOutSum\
#Zendure-Batterie:\
Status:Akkustatus@ha_tjsLMch1\
SoC ;(%):JO2AEP1P0501114_socLevel@ha_tjsLMch1
attr SolarForecast graphicHistoryHour 4
attr SolarForecast graphicSelect swap
attr SolarForecast graphicShowNight 1
attr SolarForecast plantControl consForecastInPlanning=1 \
batteryPreferredCharge=5 \
consForecastIdentWeekdays=1 \
cycleInterval=5 \
genPVdeviation=continuously:reverse \
feedinPowerLimit=99999 \
consForecastLastDays=5 \
conEnergyHourLimit=20000 \
reductionState=SolarForecast:userRdg_Regulated:1 \
showLink=1
attr SolarForecast room Garten->PV-Anlage
attr SolarForecast setupBatteryDev01 Enphase\
pin=StorageFeedIn:W\
pout=StorageConsumption:W\
pinmax=2568\
poutmax=2568\
intotal=StorageWhCharged:Wh\
outtotal=StorageWhDischarged:Wh\
charge=StorageFullPercent\
cap=7000\
show=1:bottom\
asynchron=1
attr SolarForecast setupBatteryDev02 ha_tjsLMch1\
pin=outputPackPower:W\
pout=packInputPower:W\
pinmax=2400\
poutmax=800\
intotal=StorageWhCharged_Wh:Wh\
outtotal=StorageWhDischarged_Wh:Wh\
charge=JO2AEP1P0501114_socLevel\
cap=2400\
show=1:bottom\
asynchron=1
attr SolarForecast setupEnvironment outsideTemp=HMWetterstation:temperature\
presence=JemandZuhause:state:true\
windSpeed=WindSpeed_mps:state
attr SolarForecast setupInverterDev01 Enphase\
strings=Osten,Westen\
etotal=whTodayProduction:Wh\
capacity=10000\
asynchron=1\
pvOut=wNowProduction:W\
pvIn=LeistungStringsGesamt:W\
icon=inverter
attr SolarForecast setupInverterDev02 ha_tjsLMch1 \
ac2dc=gridInputPower:W \
dc2ac=packInputPower:W \
capacity=800\
strings=none
attr SolarForecast setupInverterDev03 ha_tjsLMch1 \
strings=Carport1,Carport2,Carport3,Carport4\
pvOut=solarInputPower:W\
etotal=solarEnergy_Wh:Wh\
capacity=2400\
icon=inverter\
pvIn=solarInputPower:W\
feed=bat
attr SolarForecast setupInverterStrings Osten,Westen,Carport1,Carport2,Carport3,Carport4
attr SolarForecast setupMeterDev MQTT2_SmartMeterReader gcon=Bezug:W contotal=ENERGY_Total:kWh gfeedin=Einspeisung:W feedtotal=ENERGY_Supply:kWh asynchron=1 conprice=24.09:ct feedprice=8.04:ct
attr SolarForecast setupRadiationAPI dwd
attr SolarForecast setupStringAzimuth Osten=-127 Westen=53 Carport1=-31 Carport2=-31 Carport3=-31 Carport4=-31
attr SolarForecast setupStringDeclination Osten=38 Westen=38 Carport1=30 Carport2=30 Carport3=30 Carport4=30
attr SolarForecast setupStringPeak Osten=4 Westen=6.4 Carport1=0.515 Carport2=0.515 Carport3=0.515 Carport4=0.515
attr SolarForecast setupWeatherDev1 dwd
attr SolarForecast userReadings Current_Surplus_Num {my $val = ReadingsVal("SolarForecast", "Current_Surplus", "0 W");; return substr($val, 0, index($val, " "));;},\
Today_PVforecast_Num {my $val2 = ReadingsVal("SolarForecast", "Today_PVforecast", "0 Wh");; return substr($val2, 0, index($val2, " "));;},\
RestOfDayPVforecast_Num {my $val3 = ReadingsVal("SolarForecast", "RestOfDayPVforecast", "0 Wh");; return substr($val3, 0, index($val3, " "));;},\
Today_PVforecast_SoFar {return (ReadingsVal("SolarForecast", "Today_PVforecast_Num", "0")-ReadingsVal("SolarForecast", "RestOfDayPVforecast_Num", "0"))." Wh";;},\
Current_GridFeedIn_Num {my $val4 = ReadingsVal("SolarForecast", "Current_GridFeedIn", "0 W");; return substr($val4, 0, index($val4, " "));;}\
userRdg_Regulated {0}Zitat von: Prof. Dr. Peter Henning am 03 Mai 2026, 03:24:45Hier kann man schon weiterkommen: https://stackoverflow.com/questions/39045421/how-to-enable-cors-sever-javascript-whereDanke für den Link, leider blicke ich immer noch nicht durch:
Zitat von: dieterpau am 04 Mai 2026, 19:35:41Ich habe auch den Button "Copy for forum.fhem.de" betätigt, eine Liste habe ich nicht bekommen.
Zitat von: bertl am 04 Mai 2026, 13:23:05Welche genauen Gedanken du mit "start()"-Routine (timer-basiert) verfolgst, kann ich leider (noch) nicht nachvollziehen.Vielleicht hilft das angehängte diff iVm. mit der Umstellung auf einen timer-basierten Start statt via NotifyFn() aus https://svn.fhem.de/trac/changeset/30999/trunk/fhem/FHEM/89_FULLY.pm.