Hallo,
vorweg, ich habe die Commandref und das Wiki gelesen, bin aber nicht zum Erfolg gekommen.
Ausgangssituation: ich habe einen Aqara Thermostat E1 (SRTS-A01), der über Zigbee2MQTT an FHEM angebunden ist. Der Thermostat kann zwar Zeitschaltprogramme, aber die Implementierung in Zigbee2MQTT ist nicht funktional. Daher will ich den Thermostat über ein Zeitschaltprogramm in FHEM steuern.
Meinem Verständnis nach dient ein WeekdayTimer-Gerät dazu, die Temperaturen am Thermostat nach einem Zeitplan einzustellen.
Ein weekprofile-Gerät verwaltet Zeitpläne, die von WeekdayTimer-Geräten genutzt werden können.
Ich habe ein Standard-Wochenprofil (Mo-Fr 18-21 20°C, Sa-So 8-21 20°C, sonst 17°C):
define weekprofile.standard weekprofile
attr weekprofile.standard room System
# CFGFN
# CONFIGFILE ./log/weekprofile-weekprofile.standard.cfg
# FUUID 68e2c2e3-f33f-4eef-7444-72db10f325030e5c
# NAME weekprofile.standard
# NR 185
# NTFY_ORDER 50-weekprofile.standard
# STATE created
# TYPE weekprofile
# eventCount 7
# .attraggr:
# .attrminint:
# PROFILES:
# HASH(0x650954174ca8)
# READINGS:
# 2025-10-05 21:16:21 profile_count 1
# 2025-10-05 21:11:31 state created
# SNDDEVLIST:
# HASH(0x650954d79d28)
# HASH(0x650955e99788)
# TEMPMAP:
# TOPICS:
# default
#
setstate weekprofile.standard created
setstate weekprofile.standard 2025-10-05 21:16:21 profile_count 1
setstate weekprofile.standard 2025-10-05 21:11:31 state created
Meine Zeitsteuerung für den Thermostat sieht so aus:
define gs21_2_1_trv_1.weekdaytimer WeekdayTimer zigbee_0x54ef441000a5c7c weekprofile:weekprofile.standard:true
attr gs21_2_1_trv_1.weekdaytimer userattr weekprofile
attr gs21_2_1_trv_1.weekdaytimer commandTemplate set $NAME $EVENT
attr gs21_2_1_trv_1.weekdaytimer room System
# .triggerUsed 1
# CFGFN
# COMMAND
# CONDITION
# DEF zigbee_0x54ef441000a5c7c weekprofile:weekprofile.standard:true
# DEVICE zigbee_0x54ef441000a5c7c
# FUUID 68e2c4b6-f33f-4eef-b10e-b5aab14fd93a3b0f
# GlobalDaylistSpec
# LANGUAGE en
# NAME gs21_2_1_trv_1.weekdaytimer
# NR 186
# Profil 0: Sunday 00:10:00 17.0, 08:00:00 20.0, 21:00:00 17.0,
# Profil 1: Monday 00:10:00 17.0, 18:00:00 20.0, 21:00:00 17.0,
# Profil 2: Tuesday 00:10:00 17.0, 18:00:00 20.0, 21:00:00 17.0,
# Profil 3: Wednesday 00:10:00 17.0, 18:00:00 20.0, 21:00:00 17.0,
# Profil 4: Thursday 00:10:00 17.0, 18:00:00 20.0, 21:00:00 17.0,
# Profil 5: Friday 00:10:00 17.0, 18:00:00 20.0, 21:00:00 17.0,
# Profil 6: Saturday 00:10:00 17.0, 08:00:00 20.0, 21:00:00 17.0,
# Profil 7: weekend 00:10:00 17.0, 08:00:00 20.0, 21:00:00 17.0,
# STATE 20.0
# STILLDONETIME 0
# TYPE WeekdayTimer
# eventCount 15
# .attraggr:
# .attrminint:
# .dayNumber:
# !$we 8
# $we 7
# fr 5
# mo 1
# sa 6
# su 0
# th 4
# tu 2
# we 3
# .longDays:
# de:
# Sonntag
# Montag
# Dienstag
# Mittwoch
# Donnerstag
# Freitag
# Samstag
# Wochenende
# Werktags
# en:
# Sunday
# Monday
# Tuesday
# Wednesday
# Thursday
# Friday
# Saturday
# weekend
# weekdays
# fr:
# Dimanche
# Lundi
# Mardi
# Mercredi
# Jeudi
# Vendredi
# Samedi
# weekend
# jours de la semaine
# nl:
# Zondag
# Maandag
# Dinsdag
# Woensdag
# Donderdag
# Vrijdag
# Zaterdag
# weekend
# werkdagen
# .shortDays:
# de:
# so
# mo
# di
# mi
# do
# fr
# sa
# $we
# !$we
# en:
# su
# mo
# tu
# we
# th
# fr
# sa
# $we
# !$we
# fr:
# di
# lu
# ma
# me
# je
# ve
# sa
# $we
# !$we
# nl:
# zo
# ma
# di
# wo
# do
# vr
# za
# $we
# !$we
# READINGS:
# 2025-10-09 18:00:00 currValue 20.0
# 2025-10-09 18:00:00 nextUpdate 2025-10-09 21:00:00
# 2025-10-09 18:00:00 nextValue 17.0
# 2025-10-09 18:00:00 state 20.0
# 2025-10-06 20:34:09 weekprofiles weekprofile.standard:default:default
# SWITCHINGTIMES:
# 5|00:10|17.0|w
# 5|18:00|20.0|w
# 5|21:00|17.0|w
# 1|00:10|17.0|w
# 1|18:00|20.0|w
# 1|21:00|17.0|w
# 6|00:10|17.0|w
# 6|08:00|20.0|w
# 6|21:00|17.0|w
# 0|00:10|17.0|w
# 7|00:10|17.0
# 0|08:00|20.0|w
# 7|08:00|20.0
# 0|21:00|17.0|w
# 7|21:00|17.0
# 4|00:10|17.0|w
# 4|18:00|20.0|w
# 4|21:00|17.0|w
# 2|00:10|17.0|w
# 2|18:00|20.0|w
# 2|21:00|17.0|w
# 3|00:10|17.0|w
# 3|18:00|20.0|w
# 3|21:00|17.0|w
# TIMER:
# gs21_2_1_trv_1.weekdaytimer_18:
# HASH gs21_2_1_trv_1.weekdaytimer
# MODIFIER 18
# NAME gs21_2_1_trv_1.weekdaytimer_18
# gs21_2_1_trv_1.weekdaytimer_midnight:
# HASH gs21_2_1_trv_1.weekdaytimer
# MODIFIER midnight
# NAME gs21_2_1_trv_1.weekdaytimer_midnight
# SETTIMERATMIDNIGHT 1
# helper:
# daysRegExp (su|mo|tu|we|th|fr|sa|\$we|\!\$we)
# daysRegExpMessage (su|mo|tu|we|th|fr|sa|$we|!$we)
# SWITCHINGTIME:
# 0:
# 00:10:00 17.0
# 08:00:00 20.0
# 21:00:00 17.0
# 1:
# 00:10:00 17.0
# 18:00:00 20.0
# 21:00:00 17.0
# 2:
# 00:10:00 17.0
# 18:00:00 20.0
# 21:00:00 17.0
# 3:
# 00:10:00 17.0
# 18:00:00 20.0
# 21:00:00 17.0
# 4:
# 00:10:00 17.0
# 18:00:00 20.0
# 21:00:00 17.0
# 5:
# 00:10:00 17.0
# 18:00:00 20.0
# 21:00:00 17.0
# 6:
# 00:10:00 17.0
# 08:00:00 20.0
# 21:00:00 17.0
# 7:
# 00:10:00 17.0
# 08:00:00 20.0
# 21:00:00 17.0
# WEDAYS:
# 2 1
# 3 1
# profil:
# 1:
# EPOCH 1759961400
# PARA 17.0
# TIME 00:10
# WE_Override w
# DAYS:
# 5
# 10:
# EPOCH 1759961400
# PARA 17.0
# TIME 00:10
# WE_Override w
# DAYS:
# 0
# 11:
# EPOCH 1759961400
# PARA 17.0
# TIME 00:10
# WE_Override
# DAYS:
# 7
# 12:
# EPOCH 1759989600
# PARA 20.0
# TIME 08:00
# WE_Override w
# DAYS:
# 0
# 13:
# EPOCH 1759989600
# PARA 20.0
# TIME 08:00
# WE_Override
# DAYS:
# 7
# 14:
# EPOCH 1760036400
# PARA 17.0
# TIME 21:00
# WE_Override w
# DAYS:
# 0
# 15:
# EPOCH 1760036400
# PARA 17.0
# TIME 21:00
# WE_Override
# DAYS:
# 7
# 16:
# EPOCH 1759961400
# PARA 17.0
# TIME 00:10
# WE_Override w
# DAYS:
# 4
# 17:
# EPOCH 1760025600
# PARA 20.0
# TIME 18:00
# WE_Override w
# DAYS:
# 4
# 18:
# EPOCH 1760036400
# PARA 17.0
# TIME 21:00
# WE_Override w
# DAYS:
# 4
# 19:
# EPOCH 1759961400
# PARA 17.0
# TIME 00:10
# WE_Override w
# DAYS:
# 2
# 2:
# EPOCH 1760025600
# PARA 20.0
# TIME 18:00
# WE_Override w
# DAYS:
# 5
# 20:
# EPOCH 1760025600
# PARA 20.0
# TIME 18:00
# WE_Override w
# DAYS:
# 2
# 21:
# EPOCH 1760036400
# PARA 17.0
# TIME 21:00
# WE_Override w
# DAYS:
# 2
# 22:
# EPOCH 1759961400
# PARA 17.0
# TIME 00:10
# WE_Override w
# DAYS:
# 3
# 23:
# EPOCH 1760025600
# PARA 20.0
# TIME 18:00
# WE_Override w
# DAYS:
# 3
# 24:
# EPOCH 1760036400
# PARA 17.0
# TIME 21:00
# WE_Override w
# DAYS:
# 3
# 3:
# EPOCH 1760036400
# PARA 17.0
# TIME 21:00
# WE_Override w
# DAYS:
# 5
# 4:
# EPOCH 1759961400
# PARA 17.0
# TIME 00:10
# WE_Override w
# DAYS:
# 1
# 5:
# EPOCH 1760025600
# PARA 20.0
# TIME 18:00
# WE_Override w
# DAYS:
# 1
# 6:
# EPOCH 1760036400
# PARA 17.0
# TIME 21:00
# WE_Override w
# DAYS:
# 1
# 7:
# EPOCH 1759961400
# PARA 17.0
# TIME 00:10
# WE_Override w
# DAYS:
# 6
# 8:
# EPOCH 1759989600
# PARA 20.0
# TIME 08:00
# WE_Override w
# DAYS:
# 6
# 9:
# EPOCH 1760036400
# PARA 17.0
# TIME 21:00
# WE_Override w
# DAYS:
# 6
# profile_IDX:
# 0:
# 00:10:00 11
# 08:00:00 13
# 21:00:00 15
# 1:
# 00:10:00 4
# 18:00:00 5
# 21:00:00 6
# 2:
# 00:10:00 19
# 18:00:00 20
# 21:00:00 21
# 3:
# 00:10:00 22
# 18:00:00 23
# 21:00:00 24
# 4:
# 00:10:00 16
# 18:00:00 17
# 21:00:00 18
# 5:
# 00:10:00 1
# 18:00:00 2
# 21:00:00 3
# 6:
# 00:10:00 11
# 08:00:00 13
# 21:00:00 15
# 7:
# 00:10:00 11
# 08:00:00 13
# 21:00:00 15
# weekprofiles:
# weekprofile.standard:
# PROFILE default:default
# PROFILE_JSON {"Wed":{"time":["18:00","21:00","24:00"],"temp":["17.0","20.0","17.0"]},"Sun":{"temp":["17.0","20.0","17.0"],"time":["08:00","21:00","24:00"]},"Sat":{"temp":["17.0","20.0","17.0"],"time":["08:00","21:00","24:00"]},"Tue":{"temp":["17.0","20.0","17.0"],"time":["18:00","21:00","24:00"]},"Fri":{"time":["18:00","21:00","24:00"],"temp":["17.0","20.0","17.0"]},"Thu":{"time":["18:00","21:00","24:00"],"temp":["17.0","20.0","17.0"]},"Mon":{"temp":["17.0","20.0","17.0"],"time":["18:00","21:00","24:00"]}}
# SunAsWE true
# PROFILE_DATA:
# Fri:
# temp:
# 17.0
# 20.0
# 17.0
# time:
# 18:00
# 21:00
# 24:00
# Mon:
# temp:
# 17.0
# 20.0
# 17.0
# time:
# 18:00
# 21:00
# 24:00
# Sat:
# temp:
# 17.0
# 20.0
# 17.0
# time:
# 08:00
# 21:00
# 24:00
# Sun:
# temp:
# 17.0
# 20.0
# 17.0
# time:
# 08:00
# 21:00
# 24:00
# Thu:
# temp:
# 17.0
# 20.0
# 17.0
# time:
# 18:00
# 21:00
# 24:00
# Tue:
# temp:
# 17.0
# 20.0
# 17.0
# time:
# 18:00
# 21:00
# 24:00
# Wed:
# temp:
# 17.0
# 20.0
# 17.0
# time:
# 18:00
# 21:00
# 24:00
#
setstate gs21_2_1_trv_1.weekdaytimer 20.0
setstate gs21_2_1_trv_1.weekdaytimer 2025-10-09 18:00:00 currValue 20.0
setstate gs21_2_1_trv_1.weekdaytimer 2025-10-09 18:00:00 nextUpdate 2025-10-09 21:00:00
setstate gs21_2_1_trv_1.weekdaytimer 2025-10-09 18:00:00 nextValue 17.0
setstate gs21_2_1_trv_1.weekdaytimer 2025-10-09 18:00:00 state 20.0
setstate gs21_2_1_trv_1.weekdaytimer 2025-10-06 20:34:09 weekprofiles weekprofile.standard:default:default
zigbee_0x54ef441000a5c7c ist dabei der Aqara-Thermostat.
Und da verließen sie ihn...
Ich dachte, dass das WeekdayTimer-Gerät nun zu den Umschaltzeiten jeweils die gewünschte Temperatur an den Thermostat sendet. Dort kommt aber nichts an. Die Temperatur wird in FHEM am Thermostat mit set zigbee_0x54ef441000a5c7c2 desired-temp 20.0 gesetzt und das funktioniert auch. Der Thermostat steht auf manuelle Steuerung.
Wer kann mir bitte auf die Sprünge helfen?