Zitat von: JoWiemann am 09 Juni 2026, 12:39:57warum per CPAN, wenn es ein Debian deb gibt? Mal abgesehen davon, das xml::Simple im Fhem deb dabei ist.
# Source - https://stackoverflow.com/a/26737317
# Posted by Borodin, modified by community. See post 'Timeline' for change history
# Retrieved 2026-06-09, License - CC BY-SA 3.0
$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
Zitat von: Sebastian84 am 09 Juni 2026, 20:28:03Ja zwei vorhandene habe ich da gefunden. Nur weiss ich nicht wie ich da den neuen esp mit der IP 192.168.0.118 mit port 1883 einbinden soll
ZitatIch würde im ESP als MQTT-Broker die IP (oder den Namen) deines FHEM eintragen. Port ist ja wohl 1883. Somit kommen die Infos in FHEM an.Falls FHEM das Device nicht anglegt wird, schau Dir mal das Attribut autocreate [no|simple|complex] an.
Zitat von: fireball am 09 Juni 2026, 21:40:44Dadurch wird aber der Abschaltvorgang für 1 oder 2 Tage unterbrochen und auf 3h reduziert.Verstehe ich nicht. Das Abschalten wird nicht durchgeführt und auf nur 3 Stunden reduziert?
([04:21] and [TTN_Wetterstation_Klima:temperature] > 13 and [Bodenfeuchtesensor_01:soil_moisture] < 80 and [TTN_Wetterstation_Regenmesser:regen_lasttime] < 0.4 and [Regenradar:Prognose] < 0.8 ) (set Gartenbewaesserung_3 on-for-timer 500,setreading $SELF count {([$SELF:count]+1)})Internals:
DEF ([04:45] && ([Wetterstation:rain_yesterday:d] + [Wetterstation:rain_day:d]) > 20) (
set Gartenbewaesserung off-for-timer 172750,
set Meine_TGBot message "Es hat die letzten 24h genug geregnet, ich stelle die Gartenbewässerung für 2 Tage aus."
)
DOELSEIF([04:45] && ([Wetterstation:rain_yesterday:d] + [Wetterstation:rain_day:d]) >= 10) (
set Gartenbewaesserung off,
set Meine_TGBot message "Es hat die letzten 24h genug geregnet, ich stelle die Gartenbewässerung für 1 Tag aus."
)
DOELSEIF([04:45] && [Gartenbewaesserung] eq "off-for-timer" ) (
set Gartenbewaesserung off,
set Meine_TGBot message "Die Gartenbewässerung ist noch für einen Tag deaktiviert."
)
DOELSEIF([04:45] && ([Wetterstation:rain_yesterday:d] + [Wetterstation:rain_day:d]) < 10)
(
set Gartenbewaesserung on
)
DOELSEIF([Wetterstation:israining:d] == 1 && [Gartenbewaesserung:wait_timer] > 0)
(
set Gartenbewaesserung off-for-timer 10800,
set Meine_TGBot message "Es regnet, ich stelle die Bewässerung für 3 Stunden aus."
)
FUUID 64a18203-f33f-0804-0228-9ed30d9ef74133a1
MODEL FHEM
NAME Bewaesserung_Steuerung
NOTIFYDEV Gartenbewaesserung,Wetterstation,global
NR 637
NTFY_ORDER 50-Bewaesserung_Steuerung
STATE initialized
TYPE DOIF
VERSION 30659 2025-12-25 12:37:16
eventCount 56
READINGS:
2026-06-09 17:22:41 Device Gartenbewaesserung
2026-06-09 14:44:01 cmd 0
2026-06-09 17:22:41 e_Gartenbewaesserung_STATE on
2026-06-09 14:44:01 mode enabled
2026-06-09 14:44:01 state initialized
2026-06-09 14:44:01 timer_01_c01 10.06.2026 04:45:00
2026-06-09 14:44:01 timer_02_c02 10.06.2026 04:45:00
2026-06-09 14:44:01 timer_03_c03 10.06.2026 04:45:00
2026-06-09 14:44:01 timer_04_c04 10.06.2026 04:45:00
Regex:
accu:
bar:
barAvg:
collect:
cond:
Gartenbewaesserung:
0:
1:
2:
&STATE ^Gartenbewaesserung$
3:
4:
wait_timer ^Gartenbewaesserung$:^wait_timer:
Wetterstation:
0:
rain_day ^Wetterstation$:^rain_day:
rain_yesterday ^Wetterstation$:^rain_yesterday:
1:
rain_day ^Wetterstation$:^rain_day:
rain_yesterday ^Wetterstation$:^rain_yesterday:
3:
rain_day ^Wetterstation$:^rain_day:
rain_yesterday ^Wetterstation$:^rain_yesterday:
4:
israining ^Wetterstation$:^israining:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::DOIF_time_once($hash,0,$wday) && (::ReadingValDoIf($hash,'Wetterstation','rain_yesterday','','d') + ::ReadingValDoIf($hash,'Wetterstation','rain_day','','d')) > 20
1 ::DOIF_time_once($hash,1,$wday) && (::ReadingValDoIf($hash,'Wetterstation','rain_yesterday','','d') + ::ReadingValDoIf($hash,'Wetterstation','rain_day','','d')) >= 10
2 ::DOIF_time_once($hash,2,$wday) && ::InternalDoIf($hash,'Gartenbewaesserung','STATE') eq "off-for-timer"
3 ::DOIF_time_once($hash,3,$wday) && (::ReadingValDoIf($hash,'Wetterstation','rain_yesterday','','d') + ::ReadingValDoIf($hash,'Wetterstation','rain_day','','d')) < 10
4 ::ReadingValDoIf($hash,'Wetterstation','israining','','d') == 1 && ::ReadingValDoIf($hash,'Gartenbewaesserung','wait_timer') > 0
days:
do:
0:
0 set Gartenbewaesserung off-for-timer 172750, set Meine_TGBot message "Es hat die letzten 24h genug geregnet, ich stelle die Gartenbewässerung für 2 Tage aus."
1:
0 set Gartenbewaesserung off, set Meine_TGBot message "Es hat die letzten 24h genug geregnet, ich stelle die Gartenbewässerung für 1 Tag aus."
2:
0 set Gartenbewaesserung off, set Meine_TGBot message "Die Gartenbewässerung ist noch für einen Tag deaktiviert."
3:
0 set Gartenbewaesserung on
4:
0 set Gartenbewaesserung off-for-timer 10800, set Meine_TGBot message "Es regnet, ich stelle die Bewässerung für 3 Stunden aus."
5:
helper:
NOTIFYDEV Gartenbewaesserung,Wetterstation,global
event on
globalinit 1
last_timer 4
sleeptimer -1
triggerDev Gartenbewaesserung
triggerEvents:
on
triggerEventsState:
state: on
internals:
all Gartenbewaesserung:STATE
intervalfunc:
localtime:
0 1781059500
1 1781059500
2 1781059500
3 1781059500
readings:
all Wetterstation:rain_yesterday Wetterstation:rain_day Wetterstation:israining Gartenbewaesserung:wait_timer
realtime:
0 04:45:00
1 04:45:00
2 04:45:00
3 04:45:00
time:
0 04:45:00
1 04:45:00
2 04:45:00
3 04:45:00
timeCond:
0 0
1 1
2 2
3 3
timer:
0 0
1 0
2 0
3 0
timers:
0 0
1 1
2 2
3 3
trigger:
triggertime:
1781059500:
localtime 1781059500
hash:
uiState:
uiTable:
Attributes:
icon helper_doif
room GARTEN
verbose 0Die richtige Lösung: Prüfen über wait_timer oder next_timer
Wenn du im DOIF einen off-for-timer benutzt, setzt DOIF intern ein Reading:
wait_timer
→ enthält die Restzeit in Sekunden
→ ist > 0, solange der Timer läuft [2026-06-09T20:41:24,053 Europe/Berlin] [INFO] Refresh finished (api) in 3424 ms
[2026-06-09T20:41:24,066 Europe/Berlin] [INFO] Refresh request handled in 3438 ms (saveTarget=44result.json)fhem Log: 2026.06.09 20:41:24.613 3: [AlexaAccount] [echodevice_NPMWaitForCookie] [unbekannt] write new refreshtokenHier irritiert mich nur das ,,unbekannt", ist das gewollt? fhem | 2026.06.09 21:07:24.576 3: at_AlexaCookieExport: Unknown argument exportCookie, choose one of loginUrl:noArgDas liegt am notify: define n_AlexaCookieServiceInit notify global:(INITIALIZED|REREADCFG) {\
my $nr = $defs{"AlexaAccount"}{NR};;\
setKeyValue("alexa_cookie_service_export_name", "${nr}result.json");;\
fhem("define -temporary at_AlexaCookieExport at +00:00:10 get AlexaCookieService exportCookie");;\
fhem(q[define -temporary at_AlexaCookieImport at +00:00:12 { $main::NPMLoginTyp = "NPM Login Refresh external";;;; echodevice_NPMWaitForCookie($defs{"AlexaAccount"});;;; }]);;;;\
}
attr n_AlexaCookieServiceInit room Amazonget AlexaCookieService exportCookieGibt es nicht, was sollte denn da hin?