Hallo,
ist es möglich, für die Temperaturangabe in der Wochen-TempList für den HzgThermostaten (HM-CC-RT-DN) an einer individuellen Stelle der Liste eine Variable einzusetzen?
Hintergrund, anbei ein Eintrag aus der TempList für einen Heizkörper in einem Zimmer.
R_2_tempListMon 06:00 18.0 09:00 18.0 15:30 19.0 22:00 20.0 24:00 18.0
Der Thermostat HM-CC-RT-DN ist über ein Peering mit einem HM-TC-IT-WM-W-EU verbunden, mit dem verändere ich per Hand (bei Bedarf) die voreingestellte Temperatur.
Problem, wenn ich z. Bsp. vor 15:30h die Soll-Temp auf 22grd stelle, wird sie um 15:30h auf 20grd per TempList reduziert.
Lösungsansatz: in ein Dummy wird bei Änderung am HM-TC-IT-WM-W-EU die geänderte Soll-Temp eingetragen, dann wird geschaut was ist der nächste timeslot in der TempList.
In den wird dann der Vorgabewert durch den Dummy-Wert ersetzt, Vorher wird der betroffene Wert aus der TempList zwischengespeichert und um 00:00h zurückgeschrieben.
Idee ist, über ein DOIF dann das jeweilige Register [z. Bsp. R_2_tempListMon] von <Thermostat>_Clima zu beschreiben. Geht das?
Mir ist klar, dass man neben der Uhrzeit, den Wochentag, .... und andere Dinge prüfen muss.
Mir geht es erstmal darum, ist der Ansatz valide oder gibt es einen einfacheren (besseren) Weg zur Lösung?
Joachim
M.E. sollte man nicht für kurzfristige Änderungen irgendwelche (langen und credit-intensiven) (Tages-) Temperaturlisten versenden...
Vorausgesetzt, du kannst überhaupt auf der FHEM-Seite eine manuelle Änderung detektieren (!), gäbe es m.E. zwei Ansatzpunkte:
1. Umstellen auf manual, und dann eben zum von FHEM vorgegebenen Zeitpunkt x wieder zurück auf auto => temp-Liste auf dem Thermostat greift nicht;
2. Urlaubsmodus einstellen => es ist keine weitere Aktion von FHEM aus erforderlich, der Thermostat geht nach Ablauf des Urlaubsmodus automatisch wieder zurück auf auto.
3. den schaltpkt 15:30 aus dem wochenplan grundsätzlich entfernen. statt dessen zu dieser zeit prüfen, ob bereits eine manuell geänderte temp eingestellt wurde.
falls nicht, dann die 15:30 temp über fhem setzen, sonst nicht.
@Beta-User,
die Möglichkeit hatte ich gar nicht im Fokus. Verstehe ich das richtig,
1) Änderung am HM-TC-IT-WM-W-EU ändert die Soll-Temp an dem gepeerten HM-CC-RT-DN (in Realität 3 Stk) und die Aktion schaltet dann den HM-CC-RT-DN in den Urlaubsmodus?
2) über "at" (oder DOIF?) wird dann in den auto-Modus zurück geschaltet?
3) reagiert der HM-CC-RT-DN auch im Urlaubsmodus auf Änderungen der Soll-Temp über den "Fern-Regler"?
Hintergrund, es könnte ja sein, dass die erste Änderung nicht ausreichend ist und nachgeregelt werden muss.
@frank,
das würde ich dann über ein "at" lösen und Abfrage/Befehlssequenz in Perl ausführen?
Joachim
Also: Wenn das WT "in Urlaub geschickt" wird, macht es weiter die Steuerung der RT's. Du brauchst dich also in der Konstellation nur um das WT zu kümmern und deine Kommandos dementsprechend auch nur dahin zu senden (ich habe nur in der Regel keinen WT, sondern virtuelle Kanäle für die Ist-Temperatur, daher der evtl. verkürzte Begriff "Thermostat").
Der Urlaubsmodus beendet sich automatisch, man kann das Ende aber natürlich auch durch entsprechende Kommandos von FHEM aus erzwingen.
Habe mich damit schon länger nicht mehr intensiver beschäftigt, aber in https://forum.fhem.de/index.php/topic,97430.msg906576.html#msg906576 (https://forum.fhem.de/index.php/topic,97430.msg906576.html#msg906576) findest du ein paar Hilfstools für CUL_HM, und insbesondere auch eine Funktion, mit der man WT's und RT's in Urlaub schicken kann:
{easy_HM_TC_Holiday(<Thermostat>,"16" [,<startsec>,<Dauer in Sec>])}
Ansonsten solltest du manches einfach selbst ausprobieren, was wie geht und zusammenhängt ;) .
EDIT: Ggf. kannst du statt des "at" auch einen WeekdayTimer verwenden und das ganze via weekprofile steuern...
=> Topic wechseln und das Haus reagiert insgesamt anders.
@Beta-User, danke, das hilft mir weiter.
Ja klar, ich will schon ausprobieren und versuchen selbst zu lösen.
Wollte nur am Anfang nicht auf die Felskante zu laufen und 1/2 Meter vorher feststellen, dass die andere Richtung geschickter ist ;-)
Joachim
:) Kein Ding. Das mit den kompletten Temperaturlisten ist m.E. "Felskante", daher auch der Hinweis.
Beim Rest: das ist immer die Frage, wie man das insgesamt haben will und wie es am zuverlässigsten und zur Zufriedenheit aller Beteiligten läuft, und wenn mehrere (teilautonome) Steuerungselemente zusammenwirken und unterschiedliche "input-Methoden" (-Vorlieben) zusammenkommen, ist es eben nicht so einfach.
Diese Dinge entwickeln sich auch, ich muss z.B. in letzter Zeit wieder vermehrt flexibel reagieren können und aber andererseits darauf aufpassen, dass mir die Mitbewohner nicht unnötig zum Fenster rausheizen, nachdem sie rausgefunden haben, was man mit der "Urlaubsregelung" so alles anstellen kann... (Bevormunden (Tastensperre) ist aber auch keine gute Idee!)
Hmm, mein erster Versuch bremst mich schon aus.
1) 99_myUtils_Homematic.pm nach opt/fhem/FHEM kopiert
2) reload 99_myUtils_Homematic.pm ausgeführt
3) in die cmd-Zeile vom fhemWeb
{easy_HM_TC_Holiday(10_EG_Wohnzimmer_Temp_Regler_Climate,"16"[,now,360])}
eingegeben
Fehlermeldung:
syntax error at (eval 4294728) line 1, near "10_EG_Wohnzimmer_Temp_Regler_Climate"
Ich bin mir jetzt nicht sicher irgendwo Hochkommas zu wenig oder zu viel? Oder anderer Fehler?
Anbei das List vom device;
list 10_EG_Wohnzimmer_Temp_Regler
Internals:
CFGFN ./FHEM/include/fhem_erdgeschoss.cfg
DEF 6344ED
FUUID 5c587ad1-f33f-8c2a-ef61-6a5882c55ef78876
IODev myHmUART
LASTInputDev RM_HmUART_DG
MSGCNT 48646
NAME 10_EG_Wohnzimmer_Temp_Regler
NOTIFYDEV global
NR 652
NTFY_ORDER 50-10_EG_Wohnzimmer_Temp_Regler
RM_HmUART_DG_MSGCNT 16396
RM_HmUART_DG_RAWMSG 05000050C184106344ED0000000BA0B88800
RM_HmUART_DG_RSSI -80
RM_HmUART_DG_TIME 2021-01-15 15:30:42
RM_HmUART_UG_MSGCNT 14779
RM_HmUART_UG_RAWMSG 050000580084706344ED00000080B828
RM_HmUART_UG_RSSI -88
RM_HmUART_UG_TIME 2021-01-15 13:57:07
STATE CMDs_done
TYPE CUL_HM
channel_01 10_EG_Wohnzimmer_Temp_Regler_Weather
channel_02 10_EG_Wohnzimmer_Temp_Regler_Climate
channel_03 10_EG_Wohnzimmer_Temp_Regler_WindowRec
channel_06 10_EG_Wohnzimmer_Temp_Regler_remote
channel_07 10_EG_Wohnzimmer_Temp_Regler_SwitchTr
lastMsg No:C1 - t:10 s:6344ED d:000000 0BA0B88800
myHmUART_MSGCNT 17471
myHmUART_RAWMSG 0500003AC184106344ED0000000BA0B88800
myHmUART_RSSI -58
myHmUART_TIME 2021-01-15 15:30:42
protLastRcv 2021-01-15 15:30:42
protRcv 17614 last_at:2021-01-15 15:30:42
protRcvB 42 last_at:2021-01-14 18:57:20
protSnd 86 last_at:2021-01-13 16:44:29
protSndB 43 last_at:2021-01-13 16:44:28
protState CMDs_done
rssi_at_RM_HmUART_DG cnt:16396 min:-88 max:-70 avg:-78.04 lst:-80
rssi_at_RM_HmUART_UG cnt:14779 min:-90 max:-79 avg:-83.7 lst:-88
rssi_at_myHmUART cnt:17471 min:-67 max:-57 avg:-58.08 lst:-58
rssi_myHmUART cnt:43 min:-52 max:-50 avg:-51 lst:-51
READINGS:
2021-01-01 15:12:35 Activity alive
2021-01-15 15:30:42 Batt_timestamp_Wohnzimmer_Temp_Regler 2021-01-15 15:30:42
2021-01-13 16:44:29 CommandAccepted yes
2018-04-21 22:15:42 D-firmware 1.3
2018-04-21 22:15:42 D-serialNr OEQ1676392
2020-09-08 23:09:07 PairedTo 0x4C3DF4
2018-04-21 22:16:36 R-burstRx on
2018-04-21 22:16:36 R-cyclicInfoMsg on
2018-04-21 22:16:36 R-cyclicInfoMsgDis 0
2018-04-21 22:16:36 R-pairCentral 0x4C3DF4
2020-09-08 23:09:07 RegL_00. 00:00 01:01 02:01 09:01 0A:4C 0B:3D 0C:F4 0F:00 11:00 12:16 16:01 18:00 19:00 1A:00
2020-09-09 12:40:49 RegL_07.
2021-01-15 15:30:42 battery low
2021-01-15 15:30:42 batteryLevel 2.3
2020-12-10 22:44:02 cfgState ok
2021-01-13 16:44:29 commState CMDs_done
2021-01-15 15:30:42 desired-temp 20.0
2021-01-15 15:30:42 measured-temp 18.4
2018-11-17 14:47:45 powerOn 2018-11-17 14:47:45
2018-11-17 14:47:45 recentStateType info
2018-05-19 22:13:03 sabotageAttack_ErrIoAttack cnt 4
2021-01-13 16:44:29 state CMDs_done
2018-11-17 14:47:48 time-request -
helper:
HM_CMDNR 193
PONtest 1
cSnd 114C3DF46344ED86022C,114C3DF46344ED86022C
mId 00AD
peerFriend
peerOpt -:thermostat
regLst 0
rxType 6
supp_Pair_Rep 0
ack:
cmds:
TmplKey :no:1609509765.2938
TmplTs 1609509765.2938
cmdKey 0:1:0::10_EG_Wohnzimmer_Temp_Regler:00AD:01:
cmdLst:
assignHmKey noArg
clear [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
deviceRename -newName-
fwUpdate -filename- [-bootTime-]
getConfig noArg
getDevInfo noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
inhibit [(on|{off})]
raw -data- [...]
regBulk -list-.-peerChn- -addr1:data1- -addr2:data2-...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
reset noArg
sysTime noArg
tplDel -tplDel-
tplSet_0 -tplChan-
unpair noArg
lst:
condition slider,0,1,255
peer
peerOpt
tplChan
tplDel
tplPeer
rtrvLst:
cmdList [({short}|long)]
deviceInfo [({short}|long)]
param -param-
reg -addr- -list- [-peerChn-]
regList noArg
regTable noArg
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo noArg
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +6344ED,00,00,00
nextSend 1610721042.61838
rxt 0
vccu VCCU
p:
6344ED
00
00
00
prefIO:
myHmUART
mRssi:
mNo C1
io:
RM_HmUART_DG:
-80
-80
RM_HmUART_UG:
myHmUART:
-52
-52
prt:
awake 0
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
dev 1
prs 1
rssi:
at_RM_HmUART_DG:
avg -78.0492193217857
cnt 16396
lst -80
max -70
min -88
at_RM_HmUART_UG:
avg -83.7026862439953
cnt 14779
lst -88
max -79
min -90
at_myHmUART:
avg -58.0873447427167
cnt 17471
lst -58
max -57
min -67
myHmUART:
avg -51
cnt 43
lst -51
max -50
min -52
shRegW:
07 02
shadowReg:
tmpl:
Attributes:
IODev myHmUART
IOgrp VCCU:myHmUART
actCycle 001:00
actStatus alive
autoReadReg 4_reqStatus
expert defReg,rawReg
firmware 1.3
group Thermostate
icon temp_control
model HM-TC-IT-WM-W-EU
msgRepeat 1
room 10_Erdgeschoss->Wohnzimmer
serialNr OEQ1676392
subType thermostat
userReadings Batt_timestamp_Wohnzimmer_Temp_Regler {ReadingsTimestamp("10_EG_Wohnzimmer_Temp_Regler","batteryLevel","")}
webCmd getConfig:clear msgEvents
Was in eckigen Klammern steht, ist typischerweise optional, und "Worte" sind immer in Quotes anzugeben:
{easy_HM_TC_Holiday("10_EG_Wohnzimmer_Temp_Regler_Climate","16","now",360)}
(ist vermutlich gleichbedeutend mit dem effizienteren:
{easy_HM_TC_Holiday('10_EG_Wohnzimmer_Temp_Regler_Climate',16,,360)}
)
@Beta-User, danke für den Support
Leider bin ich nur einen kleinen Schritt weiter gekommen.
{easy_HM_TC_Holiday("10_EG_Wohnzimmer_Temp_Regler","16","now",360)}, schickt den Regler in den Urlaubsmodus (_Climate wird automatisch angehängt)
Das hat geklappt, Koffer-Symbol wird angezeigt, leider bleibt die vorherige Soll-Temp in der Anzeige (Modul wechselt nicht auf 16grd) sowie auto-Mode und Zeit etwas kryptisch (siehe Anhang), das device kehrt nach 5 Min auch nicht in den auto-Modus zurück.
Anbei noch List vom Climate-Kanal
Internals:
CFGFN ./FHEM/include/fhem_erdgeschoss.cfg
DEF 6344ED02
FUUID 5c587ad1-f33f-8c2a-d805-2c75b34538ca260b
NAME 10_EG_Wohnzimmer_Temp_Regler_Climate
NOTIFYDEV global
NR 658
NTFY_ORDER 50-10_EG_Wohnzimmer_Temp_Regler_Climate
STATE T: 22.3 desired: 20.0
TYPE CUL_HM
chanNo 02
device 10_EG_Wohnzimmer_Temp_Regler
peerList 10_EG_Wohnzimmer_HzgThermostat_Erker_Nord_Climate,10_EG_Wohnzimmer_HzgThermostat_Westen_Climate,10_EG_Wohnzimmer_HzgThermostat_Erker_Sued_Climate,
READINGS:
2021-01-15 16:09:29 CommandAccepted yes
2020-03-01 11:46:17 R-dayTemp 21 C
2020-03-01 11:46:17 R-daylightSaveTime on
2020-03-01 11:46:17 R-heatCool heating
2020-03-01 11:46:17 R-modePrioManu all
2020-03-01 11:46:17 R-modePrioParty all
2020-03-01 11:46:17 R-nightTemp 17 C
2020-03-01 11:46:17 R-noMinMax4Manu off
2020-03-01 11:46:17 R-sendWeatherData on
2020-03-01 11:46:17 R-showHumidity tempHum
2020-03-01 11:46:17 R-showInfo time
2020-03-01 11:46:17 R-showSetTemp setTemp
2018-04-21 22:17:45 R-sign off
2020-03-01 11:46:17 R-tempOffset 0.0K
2020-03-01 11:46:17 R-weekPrgSel prog1
2020-03-01 11:46:17 R-winOpnBoost off
2021-01-15 16:04:42 R_P1_0_tempListSat 06:00 18.0 16:00 19.0 22:00 20.0 24:00 18.0
2021-01-15 16:04:42 R_P1_1_tempListSun 06:00 18.0 16:00 19.0 22:00 20.5 24:00 18.0
2021-01-15 16:04:42 R_P1_2_tempListMon 06:00 18.0 09:00 18.0 15:30 19.0 22:00 20.0 24:00 18.0
2021-01-15 16:04:42 R_P1_3_tempListTue 06:00 18.0 09:00 18.0 15:30 19.0 22:00 20.0 24:00 18.0
2021-01-15 16:04:42 R_P1_4_tempListWed 06:00 18.0 09:00 18.0 15:30 19.0 22:00 20.0 24:00 18.0
2021-01-15 16:04:42 R_P1_5_tempListThu 06:00 18.0 09:00 18.0 15:30 19.0 22:00 20.0 24:00 18.0
2021-01-15 16:04:42 R_P1_6_tempListFri 06:00 18.0 09:00 18.0 15:30 19.0 22:00 20.0 24:00 18.0
2021-01-15 16:04:42 R_P1_tempList_State verified
2020-09-08 23:09:16 R_P2_0_tempListSat 24:00 17.0
2020-09-08 23:09:16 R_P2_1_tempListSun 24:00 17.0
2020-09-08 23:09:16 R_P2_2_tempListMon 24:00 17.0
2020-09-08 23:09:16 R_P2_3_tempListTue 24:00 17.0
2020-09-08 23:09:16 R_P2_4_tempListWed 24:00 17.0
2020-09-08 23:09:16 R_P2_5_tempListThu 24:00 17.0
2020-09-08 23:09:16 R_P2_6_tempListFri 24:00 17.0
2020-09-08 23:09:16 R_P2_tempList_State verified
2020-09-08 23:09:20 R_P3_0_tempListSat 24:00 17.0
2020-09-08 23:09:20 R_P3_1_tempListSun 24:00 17.0
2020-09-08 23:09:20 R_P3_2_tempListMon 24:00 17.0
2020-09-08 23:09:20 R_P3_3_tempListTue 24:00 17.0
2020-09-08 23:09:20 R_P3_4_tempListWed 24:00 17.0
2020-09-08 23:09:20 R_P3_5_tempListThu 24:00 17.0
2020-09-08 23:09:20 R_P3_6_tempListFri 24:00 17.0
2020-09-08 23:09:20 R_P3_tempList_State verified
2021-01-15 16:04:38 RegL_01. 00:00 08:00
2021-01-15 16:04:42 RegL_07. 00:00 01:2A 02:22 03:09 04:3D 05:00 06:00 07:00 08:00 09:E7 0A:30 0B:00 0C:00 0D:00 0E:01 0F:04 10:00 11:00 12:09 13:00 14:48 15:48 16:4C 17:C0 18:51 19:08 1A:49 1B:20 1C:45 1D:20 1E:45 1F:20 20:45 21:20 22:45 23:20 24:45 25:20 26:45 27:20 28:45 29:20 2A:45 2B:20 2C:45 2D:20 2E:48 2F:48 30:4C 31:C0 32:53 33:08 34:49 35:20 36:45 37:20 38:45 39:20 3A:45 3B:20 3C:45 3D:20 3E:45 3F:20 40:45 41:20 42:45 43:20 44:45 45:20 46:45 47:20 48:48 49:48 4A:48 4B:6C 4C:4C 4D:BA 4E:51 4F:08 50:49 51:20 52:45 53:20 54:45 55:20 56:45 57:20 58:45 59:20 5A:45 5B:20 5C:45 5D:20 5E:45 5F:20 60:45 61:20 62:48 63:48 64:48 65:6C 66:4C 67:BA 68:51 69:08 6A:49 6B:20 6C:45 6D:20 6E:45 6F:20 70:45 71:20 72:45 73:20 74:45 75:20 76:45 77:20 78:45 79:20 7A:45 7B:20 7C:48 7D:48 7E:48 7F:6C 80:4C 81:BA 82:51 83:08 84:49 85:20 86:45 87:20 88:45 89:20 8A:45 8B:20 8C:45 8D:20 8E:45 8F:20 90:45 91:20 92:45 93:20 94:45 95:20 96:48 97:48 98:48 99:6C 9A:4C 9B:BA 9C:51 9D:08 9E:49 9F:20 A0:45 A1:20 A2:45 A3:20 A4:45 A5:20 A6:45 A7:20 A8:45 A9:20 AA:45 AB:20 AC:45 AD:20 AE:45 AF:20 B0:48 B1:48 B2:48 B3:6C B4:4C B5:BA B6:51 B7:08 B8:49 B9:20 BA:45 BB:20 BC:45 BD:20 BE:45 BF:20 C0:45 C1:20 C2:45 C3:20 C4:45 C5:20 C6:45 C7:20 C8:45 C9:20 CA:00 CB:00 CC:00 CD:00 CE:00 CF:00
2021-01-15 16:17:10 boostTime -
2021-01-15 16:05:12 cfgState RegMiss,Team
2021-01-15 16:17:10 commReporting off
2021-01-15 16:17:10 controlMode auto
2021-01-15 16:17:10 desired-temp 20.0
2021-01-15 16:17:00 humidity 40
2021-01-15 16:17:10 measured-temp 22.3
2021-01-15 16:09:29 partyEnd 70-1-1 1:00
2021-01-15 16:09:29 partyStart 70-1-1 1:00
2021-01-15 16:09:29 partyTemp 16
2021-01-15 16:04:38 peerList 10_EG_Wohnzimmer_HzgThermostat_Erker_Nord_Climate,10_EG_Wohnzimmer_HzgThermostat_Westen_Climate,10_EG_Wohnzimmer_HzgThermostat_Erker_Sued_Climate,
2021-01-15 16:09:29 recentStateType ack
2021-01-15 16:17:10 state T: 22.3 desired: 20.0
2021-01-15 16:17:10 winOpenReporting off
RegL_08.:
VAL
helper:
peerFriend peerRtTc
peerIDsRaw ,63A95002,63A93C02,63A94602,00000000
peerOpt p:thermostat
regLst 1,7,8,9
cfgChk:
idPz07 team:10_EG_Wohnzimmer_HzgThermostat_Westen_Clima tempListTmpl differ -- / 10_EG_Wohnzimmer_HzgThermostat_Westen_Clima
idRc01 RegL_08.,RegL_09.
cmds:
TmplKey 10_EG_Wohnzimmer_HzgThermostat_Erker_Nord_Climate,10_EG_Wohnzimmer_HzgThermostat_Westen_Climate,10_EG_Wohnzimmer_HzgThermostat_Erker_Sued_Climate,:no:1609509765.57568
TmplTs 1609509765.57568
cmdKey 1:0:0::10_EG_Wohnzimmer_Temp_Regler:00AD:02:10_EG_Wohnzimmer_HzgThermostat_Erker_Nord_Climate,10_EG_Wohnzimmer_HzgThermostat_Westen_Climate,10_EG_Wohnzimmer_HzgThermostat_Erker_Sued_Climate,
cmdLst:
clear [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
controlManu (on|off|5.0..30.0;0.5)
controlMode (auto|manual|boost|day|night)
controlParty -temp- -startDate- -startTime- -endDate- -endTime-
desired-temp (on|off|5.0..30.0;0.5)
getConfig noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
inhibit [(on|{off})]
peerBulk -peer1,peer2,...- [({set}|unset)]
peerChan -btnNumber- -actChn- [({single})] [({set}|unset)] [(actor|remote|{both})]
peerSmart -peerOpt-
regBulk -list-.-peerChn- -addr1:data1- -addr2:data2-...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
sign [(on|{off})]
tempListFri [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListMon [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListSat [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListSun [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListThu [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListTmpl [({verify}|restore)] [[-file-:]-templateName-]
tempListTue [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListWed [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempTmplSet -tempTmpl-
tplDel -tplDel-
tplSet_0 -tplChan-
tplSet_10_EG_Wohnzimmer_HzgThermostat_Erker_Nord_Climate -tplPeer-
tplSet_10_EG_Wohnzimmer_HzgThermostat_Erker_Sued_Climate -tplPeer-
tplSet_10_EG_Wohnzimmer_HzgThermostat_Westen_Climate -tplPeer-
lst:
condition slider,0,1,255
peer 10_EG_Wohnzimmer_HzgThermostat_Erker_Nord_Climate,10_EG_Wohnzimmer_HzgThermostat_Erker_Sued_Climate,10_EG_Wohnzimmer_HzgThermostat_Westen_Climate
peerOpt remove_10_EG_Wohnzimmer_HzgThermostat_Erker_Nord_Climate,remove_10_EG_Wohnzimmer_HzgThermostat_Erker_Sued_Climate,remove_10_EG_Wohnzimmer_HzgThermostat_Westen_Climate,10_EG_Esszimmer_HzgThermostat_Climate,10_EG_Esszimmer_Wand_HzgThermostat_Climate,10_EG_Flur_HzgThermostat_Climate,10_EG_Kueche_HzgThermostat_Climate,10_EG_Toilette_HzgThermostat_Climate,10_EG_Vorratsraum_HzgThermostat_Climate,20_DG_AZ_Dad_HzgThermostat_Erker_Climate,20_DG_AZ_Dad_HzgThermostat_Westen_Climate,20_DG_AZ_Mam_HzgThermostat_Climate,20_DG_Badezimmer_Handtuch_HzgThermostat_Climate,20_DG_Badezimmer_HzgThermostat_Climate,20_DG_Balkonzimmer_HzgThermostat_Climate
tplChan
tplDel
tplPeer
rtrvLst:
cmdList [({short}|long)]
deviceInfo [({short}|long)]
param -param-
reg -addr- -list- [-peerChn-]
regList noArg
regTable noArg
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo noArg
expert:
def 1
det 0
raw 1
tpl 0
regCollect:
RegL_08.:
01 00
02 00
03 00
04 00
05 00
06 00
07 00
08 00
09 00
0A 00
0B 00
0C 00
0D 00
0E 00
0F 00
10 00
11 00
12 00
13 00
14 45
15 20
16 45
17 20
18 45
19 20
1A 45
1B 20
1C 45
1D 20
1E 45
1F 20
20 45
21 20
22 45
23 20
24 45
25 20
26 45
27 20
28 45
29 20
2A 45
2B 20
2C 45
2D 20
2E 45
2F 20
30 45
31 20
32 45
33 20
34 45
35 20
36 45
37 20
38 45
39 20
3A 45
3B 20
3C 45
3D 20
3E 45
3F 20
40 45
41 20
42 45
43 20
44 45
45 20
46 45
47 20
48 45
49 20
4A 45
4B 20
4C 45
4D 20
4E 45
4F 20
50 45
51 20
52 45
53 20
54 45
55 20
56 45
57 20
58 45
59 20
5A 45
5B 20
5C 45
5D 20
5E 45
5F 20
60 45
61 20
62 45
63 20
64 45
65 20
66 45
67 20
68 45
69 20
6A 45
6B 20
6C 45
6D 20
6E 45
6F 20
70 45
71 20
72 45
73 20
74 45
75 20
76 45
77 20
78 45
79 20
7A 45
7B 20
7C 45
7D 20
7E 45
7F 20
80 45
81 20
82 45
83 20
84 45
85 20
86 45
87 20
88 45
89 20
8A 45
8B 20
8C 45
8D 20
8E 45
8F 20
90 45
91 20
92 45
93 20
94 45
95 20
96 45
97 20
98 45
99 20
9A 45
9B 20
9C 45
9D 20
9E 45
9F 20
A0 45
A1 20
A2 45
A3 20
A4 45
A5 20
A6 45
A7 20
A8 45
A9 20
AA 45
AB 20
AC 45
AD 20
AE 45
AF 20
B0 45
B1 20
B2 45
B3 20
B4 45
B5 20
B6 45
B7 20
B8 45
B9 20
BA 45
BB 20
BC 45
BD 20
BE 45
BF 20
C0 45
C1 20
C2 45
C3 20
C4 45
C5 20
C6 45
C7 20
C8 45
C9 20
CA 00
CB 00
CC 00
CD 00
CE 00
CF 00
role:
chn 1
shRegR:
07 00
shadowReg:
tmpl:
Attributes:
group EG-Heizung
icon temp_control
model HM-TC-IT-WM-W-EU
peerIDs 00000000,63A93C02,63A94602,63A95002,
room 10_Erdgeschoss->Wohnzimmer
webCmd controlMode:desired-temp
Mach mal länger, evtl. sind 360 (viel) zu kurz - es gab da mal ein Problem, dass CUL_HM gemeckert hat, wenn man 5-Minutenweise gerundet hat. Daher habe ich die Rundung wieder auf 30 Min gesetzt, was aber ggf. noch nicht in diesem Teil des Codes berücksichtigt ist...
Also eher mit 3600 oder mehr ins Rennen gehen, weil für den sofortigen Beginn auch die letzte abgelaufene halbe Stunde ermittelt werden muss.
Die Zeit war auch nur als Test gedacht (ohne Hintergrundwissen und um nicht zulange warten zu müssen), ich probier es morgen mal mit 1 Std, heute Abend brauche ich das Wohnzimmer "warm" ;)
Na ja, zur Not kann man "Knöppe drücken"...
@Beta-User,
ich habe jetzt nochmal einen Versuch gestartet, anderer Raum aber ähnliche Konstellation (1xWT, 2xRT, gepeered)
Folgendes habe ich um 22:30h über cmd-Zeile abgeschickt;
{easy_HM_TC_Holiday("20_DG_AZ_Dad_Temp_Regler","20.5","now",7200)}, keine Fehlermeldung an der Oberfläche
Dazugehörige Temp-List vom WT
R_P1_6_tempListFri 08:00 19.0 12:00 20.5 18:00 22.0 21:30 21.0 24:00 19.0
Register von 20_DG_AZ_Dad_Temp_Regler
partyEnd 70-1-1 3:00 2021-01-15 22:30:02
partyStart 70-1-1 3:00 2021-01-15 22:30:02
partyTemp 20.5
Anzeige im WT und den RT's gleich
Koffer-Symbol start, keine Änderung der angezeigten Solltemperatur, Anzeige verbleibt auf 19grd (wie temp-Liste), siehe auch Anhang im vorherigen Post
Auszug aus dem fhem System-Logfile
2021.01.15 22:30:00 1: PERL WARNING: Argument "now" isn't numeric in addition (+) at ./FHEM/99_myUtils_Homematic.pm line 171.
2021.01.15 22:30:00 3: eval: {easy_HM_TC_Holiday("20_DG_AZ_Dad_Temp_Regler","20.5","now",7200)}
2021.01.15 22:30:00 1: stacktrace:
2021.01.15 22:30:00 1: main::__ANON__ called by ./FHEM/99_myUtils_Homematic.pm (171)
2021.01.15 22:30:00 1: main::easy_HM_TC_Holiday called by (eval 4407739) (1)
2021.01.15 22:30:00 1: (eval) called by fhem.pl (1142)
2021.01.15 22:30:00 1: main::AnalyzePerlCommand called by fhem.pl (1171)
2021.01.15 22:30:00 1: main::AnalyzeCommand called by fhem.pl (1098)
2021.01.15 22:30:00 1: main::AnalyzeCommandChain called by ./FHEM/01_FHEMWEB.pm (2717)
2021.01.15 22:30:00 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (987)
2021.01.15 22:30:00 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (592)
2021.01.15 22:30:00 1: main::FW_Read called by fhem.pl (3810)
2021.01.15 22:30:00 1: main::CallFn called by fhem.pl (755)
2021.01.15 22:30:00 3: CUL_HM set 20_DG_AZ_Dad_Temp_Regler_Climate controlParty 20.5 1.01.70 03:00 1.01.70 03:00
Dass die Soll-Temp-Anzeige im Display nicht geändert wird finde ich nicht optimal, bei händischen Änderungen am RT sicher kein Problem.
Was ich mir wünschen würde ist, eine Anzeige, dass für die gesetzte Zeit der party-mode aktiv ist aber vielleicht leistet HM das ja auch nicht.
Was bleibt ist morgen zu schauen, ob um 00:30h wieder auf 19grd umgeschaltet wurde.
Gut's Nächtle
...Mist, ein Blick in den Code wäre von meiner Seite gut gewesen...
Also:
Die Beschreibung ist schlicht falsch rum, da hatte ich die Logik irgendwann geändert. Jetzt habe ich dazu das hier geschrieben:
Use this to set one RT or WT device in party mode (or end it) without doing much calculation in advance<br>
Parameters: Device, Temperature. Optional: duration and/or starttime (in seconds or as days:hours). Starttime may also be "now" (default, when no argument is given), keyword "stop" ends holiday mode immedately.<br>
NOTE: rounding is applied as described at HM_TC_Holiday.<br>
Examples:
<ul>
<code>{easy_HM_TC_Holiday("Thermostat_Esszimmer_Gang","16")}</code><br>
<code>{easy_HM_TC_Holiday("Thermostat_Esszimmer_Gang","16","now")}</code><br>
<code>{easy_HM_TC_Holiday("Thermostat_Esszimmer_Gang","16","stop")}</code><br>
<code>{easy_HM_TC_Holiday("Thermostat_Esszimmer_Gang","16","9000","now")}</code><br>
<code>{easy_HM_TC_Holiday("Thermostat_Esszimmer_Gang","21.5","3600","9000")}</code><br>
<code>{easy_HM_TC_Holiday("Thermostat_Esszimmer_Gang","21.5","1:5","32:14")}</code><br>
</ul>
Zum Testen am besten mit "Thermostat" und "Soll-Temperatur" beginnen. Dann mal "Thermostat" und "Soll-Temperatur" und "stop" testen (es sollte wieder auf "auto" gehen) und zuletzt dann die "verzögerte Variante...
Dann sollte auch die Anzeige jeweils passen und die Daten einem vernünftigen Format entsprechen.
Sorry for inconvenience :( .
Super, das war's, ich habe es mit
{easy_HM_TC_Holiday("20_DG_AZ_Dad_Temp_Regler","22.5","7200","now")}
ausprobiert.
Hat funktioniert wie erwartet, jetzt habe ich die gewünschten Daten verwertbar im Logfile, in den Registern und in der Anzeige.
Die anderen Modi werde ich im Laufe meiner Versuche mal ausprobieren.
Dann beginn ich mal an mein Vorhaben umzusetzen...
Danke für die Rückmeldung. Das "now" war bei mir dann effektiv der "Standard-Fall"; das war der Grund, warum das Argument nach hinten gewandert war (und in der Regel dann einfach entfällt/nicht mit angegeben wird...).
Der guten Ordnung wegen auch noch der Hinweis, dass man das ggf. auch über einen (virtuellen) Tasterkanal lösen könnte:
https://forum.fhem.de/index.php/topic,117798.msg1122218.html#msg1122218