moin,
ich hab mir für ein at "AlleRollosRunter" drei userreadings angelegt (state1, state2, state3), die via split aus dem original "state" abgeleitet werden.
Das hat auch alles lange Zeit funktioniert, aber seit einigen Wochen aktualisieren sich die userreadings nicht mehr. Gab es denn da in letzter Zeit irgendwelche Veränderungen/Updates oder wo könnte ich ansetzen?
define AlleRollosRunter at *{sunset("REAL",1900,"16:00","23:00")} {\
fhem("set ug_alle_rollos on");;\
}
attr AlleRollosRunter disable 0
attr AlleRollosRunter event-on-change-reading state
attr AlleRollosRunter room Makros,Rollos
attr AlleRollosRunter userReadings state1:state.* {(split(" ", ReadingsVal("AlleRollosRunter","state","")))[0]}, \
state2:state.* {(split(" ", ReadingsVal("AlleRollosRunter","state","")))[1]},\
state3:state2.* {(split(":", ReadingsVal("AlleRollosRunter","state2","")))[0]}
# COMMAND {
# fhem("set ug_alle_rollos on");
#}
# DEF *{sunset("REAL",1900,"16:00","23:00")} {
# fhem("set ug_alle_rollos on");
#}
# FUUID 5c44b2e7-f33f-4e46-3952-35b711981443e691
# NAME AlleRollosRunter
# NR 108
# NTM 19:33:22
# PERIODIC yes
# RELATIVE no
# REP -1
# STATE Next: 19:33:22
# TIMESPEC {sunset("REAL",1900,"16:00","23:00")}
# TRIGGERTIME 1759253602
# TRIGGERTIME_FMT 2025-09-30 19:33:22
# TYPE at
# eventCount 4
# READINGS:
# 2025-09-30 10:39:59 state Next: 19:33:22
# 2025-08-04 21:30:14 state1 disabled
# 2025-06-27 22:04:48 state2 22:04:41
# 2025-08-04 21:30:14 state3 22
#
setstate AlleRollosRunter Next: 19:33:22
setstate AlleRollosRunter 2025-09-30 10:39:59 state Next: 19:33:22
setstate AlleRollosRunter 2025-08-04 21:30:14 state1 disabled
setstate AlleRollosRunter 2025-06-27 22:04:48 state2 22:04:41
setstate AlleRollosRunter 2025-08-04 21:30:14 state3 22
Zitatsetstate AlleRollosRunter 2025-08-04 21:30:14 state1 disabled
????
Erstens: Der Trigger für state3 ist eine Änderung von state2, die aber wegen event-on-change-reading state kein Event generiert (event-on-change-reading state bedeutet, dass nur Events vom Reading state zugelassen werden, Events von anderen Readings werden damit komplett ignoriert).
Zweitens: Die anderen Trigger funktionieren auch nicht. Schau mal in den Event Monitor. Das at generiert das Event nicht vom Reading state ausgehend, sondern nur vom INTERNAL STATE aus. Das Event ist nur at AlleRollosRunter Next: 19:35:23. Deshalb passt eine Regex, die at AlleRollosRunter state: Next: 19:35:23 erwartet, nicht.
Sauber wäre also folgendes:
state1:(Next.*|disabled|inactive) {(split(" ", ReadingsVal("AlleRollosRunter","state","")))[0]},
state2:(Next.*|disabled|inactive) {(split(" ", ReadingsVal("AlleRollosRunter","state","")))[1]},
state3:state2.* {(split(":", ReadingsVal("AlleRollosRunter","state2","")))[0]}
event-on-change-reading würde ich hier komplett weglassen.
Aber was genau machst du mit diesen Werten? Vielleicht gibt es ja eine sinnvollere Lösung als diese userReadings, z.B. über das INTERNAL NTM.
state liefert ja Next: hh:mm:ss
für das UI fhem-App benötige ich
state1 (hier: disabled)
state2 nur hh:mm:ss aus state
state3 holt sich aus state2 nur die Stunde hh
Ich glaube, ich hatte die userreadings zunächst alle ohne trigger, was wohl auch funktioniert hat, aber nicht "sauber" ist. Dann hab ich wohl im August dann state.* als trigger ergänzt.
Ich probier jetzt mal deinen (passibe) Ansatz aus und entferne das event-on-chance reading.
**** Hat funktioniert, danke! *****