Neueste Beiträge

#1
Heizungssteuerung/Raumklima / Aw: Vitoconnect - Verbesserte ...
Letzter Beitrag von stefanru - 04 Mai 2026, 23:44:20
Hi Felix,

danke.
D.h. du kannst jetzt auch im set den geladenen Scheduler sehen, abändern und einfach auf set drücken zum Abändern/Speichern, richtig?

Passt das dann so für dich? Oder gäbe es noch etwas zu verbessern?

Ich habe auch das repeaten bei falscher Syntax gefixed.

Wenn es so bei dir jetzt funktioniert werde ich diese Version dann auch ins SVN übernehmen.


Meine Änderungstext ist:
Fix schedule setter: support both API format and reading format, stop retry on VALIDATION_ERROR

Gruß und Danke,
Stefan
#2
FRITZ!Box / Aw: Fritzbox: Fritz_Readout_AP...
Letzter Beitrag von JoWiemann - 04 Mai 2026, 22:57:24
Hallo Dieter,

setz bitte das Attribut verbose auf 3. Ich vermute Du hast global verbose auf 0 oder 1 gesetzt.

Grüße Jörg
#3
Server - Linux / Aw: Offizielles FHEM Docker Ba...
Letzter Beitrag von Sidey - 04 Mai 2026, 22:40:29
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?

Ich habe an dem Problem gearbeitet und ein 5.3.0 Beta veröffentlicht.

Weitere Details dann hier:
https://forum.fhem.de/index.php?topic=144604.0

Ich freue mich über Rückmeldungen aller Art.

Grüße Sidey
#4
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von peterboeckmann - 04 Mai 2026, 22:36:25
Hallo Heiko,

ich habe kürzlich meine Anlage um einen Hybridwechselrichter mit Batterie und PV-Eingang erweitert. Jetzt sehe ich beim entladen beider Batterien gleichzeitig nicht alle Werte in der Flussgrafik.

Hier werden beide Batterien entladen, die neue über den Hybridwechselrichter mit ca. 200W:
Du darfst diesen Dateianhang nicht ansehen.

Hier wird nur die alte Batterie entladen:
Du darfst diesen Dateianhang nicht ansehen.

Im ersten Bild fehlt mir die Animation des Flusses vom Batteriesymbol zum Haussymbol.


Frage 1: Habe ich hier evtl. noch einen Fehler in der Konfiguration?
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}

Bei der Konfiguration hatte mir Denis auf deinen Rat hin geholfen. Er hat aber nur den Hybridwechselrichter, keinen zusätzlichen reinen String-Wechselrichter.
Er hatte mir geraten, den Hybridwechselrichter mit zwei separaten setupInverterDev abzubilden. Einen für die Strings, einen für die Batterie.

Frage 2: Siehst du eine Möglichkeit, diese zu einem setupInverterDev zu vereinigen?

Edit: Denis hat seine Konfiguration hier beschrieben.

Vielen Dank und viele Grüße,
Peter
#5
Sprachsteuerung / Aw: (WIP) FHEMWEB interaktiv (...
Letzter Beitrag von Beta-User - 04 Mai 2026, 21:34:02
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-where
Danke für den Link, leider blicke ich immer noch nicht durch:

Wenn ich die diversen Quellen zu CORS richtig verstanden habe, müßte eigentlich der piper-server per preflight-Anfrage zunächst angepingt werden, da application/json nicht zu den "an sich erlaubten" Content-Type gehört. Aha....?
Vielleicht beschäftige ich mich ein andermal wieder mit https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS#preflighted_requests, für den Moment habe ich erst mal wieder fertig mit rumprobieren...
#6
FHEMWEB / Aw: FHEMWEB Kiosk: nur eine Se...
Letzter Beitrag von Dr. Boris Neubert - 04 Mai 2026, 21:29:10
Kiosk bedeutet bei mir eine stark eingeschränkte Instanz von FHEMWEB, die ich per URL aufrufen kann, mir aber nur eine oder wenige Seiten bietet, und (fast) keine Schaltmöglichkeit.

Anwendungsfall: je eine mit allowed passwortgeschützte Desktop- und eine Mobil-Instanz für die "Erwachsenen" und ein simplifizierter offener Guckkasten für die "Kinder", wobei alle Instanzen ganz normal im internen Netz von jedem Mobilgerät im internen Netz erreicht werden können.

Ich habe entsprechende Anpassungen mit einem Attribut allowedroom schon in FHEMWEB eingebaut. Allerdings muss für den Anwendungszweck auch noch "Everything" bis "Event monitor" in den room-Mechanismus einbezogen werden, was ich heute Abend nicht mehr schaffe.

Ich biete demnächst einen Patch an.
#7
FRITZ!Box / Aw: Fritzbox: Fritz_Readout_AP...
Letzter Beitrag von JoWiemann - 04 Mai 2026, 20:52:29
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.

Hallo Dieter,

das List wird direkt in die Zwischenablage kopiert und kann mit Strg-c dann in einen Post eingefügt werden.

Grüße Jörg
#8
FHEM Development / Aw: EMail-Adresse für SSH-Key?
Letzter Beitrag von Otto123 - 04 Mai 2026, 20:40:24
Hi,

hier https://svn.fhem.de/ steht eine andere Adresse!? Ich meine: svn@fhem.de gab es eventuell noch nie.

Gruß Otto
#9
Frontends / Aw: [FULLY] Support Thread ab ...
Letzter Beitrag von Beta-User - 04 Mai 2026, 20:27:16
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.

Bitte testen, falls ich nichts höre und mir auch selbst nichts weiter auffällt, checke ich das bei Gelegenheit ein, groß zum ausdrücklichen Testen werde ich nicht kommen.
#10
Bastelecke / Aw: unbekannte Bastelei ESP un...
Letzter Beitrag von frober - 04 Mai 2026, 20:06:56
Ich tendiere zu einem WLAN-IR-Sender.

Es ist nur ein USB- und kein Batterie-Anschluss vorhanden.
Die Tasten dürften zur Programmierung dienen.

Über die ser. Schnittstelle lässt sich evtl. die Firmware ermittelt (z.B. Tasmota o.a.).