[GELÖST] Variable in der Temp-Liste verwenden

Begonnen von CottonIJo, 14 Januar 2021, 14:30:28

Vorheriges Thema - Nächstes Thema

CottonIJo

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

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

frank

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.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

CottonIJo

@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

Beta-User

#4
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 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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CottonIJo

@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

Beta-User

 :) 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!)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CottonIJo

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


Beta-User

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)})
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CottonIJo

@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


Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CottonIJo

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"  ;)

Beta-User

Na ja, zur Not kann man "Knöppe drücken"...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CottonIJo

@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

Beta-User

...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 :( .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors