bei meinen thermostaten (hm-cc-tc) werden immer 2 statusrequest gesendet, wenn sie im wakeup mode arbeiten.
auffällig ist, dass genau 20s nach dem manuellen ausführen des cmd erneut das io präpariert wird.
sniff mit register burstRx=off und attr burstAccess ist gelöscht:
2022.01.11 17:23:50.427 3 : CUL_HM set Thermostat.OZ_Climate statusRequest noArg
2022.01.11 17:23:50.576 0 : HMLAN_Send: hmlan1 I:+20DFE1,02,00,00
2022.01.11 17:24:10.581 0 : HMLAN_Send: hmlan1 I:+20DFE1,02,00,00
2022.01.11 17:25:37.778 4 : CUL_Parse: cul868 A 0C 5B 8670 20DFE1 000000 00C53514 -64
2022.01.11 17:25:37.780 5 : cul868: dispatch A0C5B867020DFE100000000C535::-64:cul868
2022.01.11 17:25:37.784 3 : CUL_HM set Thermostat.OZ_Climate statusRequest noArg
2022.01.11 17:25:37.802 3 : n_iodev return value: HASH(0x7f49150)
2022.01.11 17:25:37.880 0 : HMLAN_Send: hmlan1 S:S49F5949B stat: 00 t:00000000 d:01 r:49F5949B m:5C A001 1ACE1F 20DFE1 020E
2022.01.11 17:25:37.926 0 : HMLAN_Parse: hmlan1 R:E20DFE1 stat:0000 t:56253369 d:FF r:FFCD m:5B 8670 20DFE1 000000 00C535
2022.01.11 17:25:37.965 4 : CUL_Parse: cul868 A 09 5B A112 1ACE1F 20DFE1 37 -46.5
2022.01.11 17:25:37.966 5 : cul868: dispatch A095BA1121ACE1F20DFE1::-46.5:cul868
2022.01.11 17:25:37.971 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 3E msg: 5B 86 70 20DFE1 000000 00C535
2022.01.11 17:25:37.975 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 26 msg: 5B A1 12 1ACE1F 20DFE1
2022.01.11 17:25:38.027 4 : CUL_Parse: cul868 A 0A 5B 8002 20DFE1 1ACE1F 0014 -64
2022.01.11 17:25:38.028 5 : cul868: dispatch A0A5B800220DFE11ACE1F00::-64:cul868
2022.01.11 17:25:38.035 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 3E msg: 5B 80 02 20DFE1 1ACE1F 00
2022.01.11 17:25:38.302 4 : CUL_Parse: cul868 A 0B 5C A001 1ACE1F 20DFE1 020E36 -47
2022.01.11 17:25:38.304 5 : cul868: dispatch A0B5CA0011ACE1F20DFE1020E::-47:cul868
2022.01.11 17:25:38.309 0 : HMLAN_Parse: hmlan1 R:R49F56A8C stat:0081 t:56253468 d:FF r:FFCD m:5B 8002 20DFE1 1ACE1F 00
2022.01.11 17:25:38.313 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 27 msg: 5C A0 01 1ACE1F 20DFE1 020E
2022.01.11 17:25:38.431 4 : CUL_Parse: cul868 A 0E 5C 8002 20DFE1 1ACE1F 01020C003914 -64
2022.01.11 17:25:38.432 5 : cul868: dispatch A0E5C800220DFE11ACE1F01020C0039::-64:cul868
2022.01.11 17:25:38.533 0 : HMLAN_Send: hmlan1 S:S49F59703 stat: 00 t:00000000 d:01 r:49F59703 m:5D A001 1ACE1F 20DFE1 020E
2022.01.11 17:25:38.571 0 : HMLAN_Parse: hmlan1 R:R49F5949B stat:0001 t:562535FC d:FF r:FFCD m:5C 8002 20DFE1 1ACE1F 01020C0039
2022.01.11 17:25:38.576 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 3E msg: 5C 80 02 20DFE1 1ACE1F 01020C0039
2022.01.11 17:25:38.703 4 : CUL_Parse: cul868 A 0B 5D A001 1ACE1F 20DFE1 020E37 -46.5
2022.01.11 17:25:38.705 5 : cul868: dispatch A0B5DA0011ACE1F20DFE1020E::-46.5:cul868
2022.01.11 17:25:38.711 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 26 msg: 5D A0 01 1ACE1F 20DFE1 020E
2022.01.11 17:25:38.833 4 : CUL_Parse: cul868 A 0E 5D 8002 20DFE1 1ACE1F 01020C003814 -64
2022.01.11 17:25:38.835 5 : cul868: dispatch A0E5D800220DFE11ACE1F01020C0038::-64:cul868
2022.01.11 17:25:38.840 0 : HMLAN_Send: hmlan1 I:+20DFE1,00,00,00
2022.01.11 17:25:38.877 0 : HMLAN_Parse: hmlan1 R:R49F59703 stat:0001 t:5625378F d:FF r:FFCD m:5D 8002 20DFE1 1ACE1F 01020C0038
2022.01.11 17:25:38.882 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 3E msg: 5D 80 02 20DFE1 1ACE1F 01020C0038
sniff mit burstRx=on und burstAccess=1_auto wird nur ein request gesendet:
2022.01.11 18:23:52.778 3 : CUL_HM set Thermostat.OZ_Climate statusRequest noArg
2022.01.11 18:23:52.827 0 : HMLAN_Send: hmlan1 I:+20DFE1,02,00,00
2022.01.11 18:23:52.841 3 : n_iodev return value: HASH(0x7f48608)
2022.01.11 18:23:52.855 0 : HMLAN_Send: hmlan1 S:S4A2AE914 stat: 00 t:00000000 d:01 r:4A2AE914 m:73 B112 1ACE1F 20DFE1
2022.01.11 18:23:53.234 4 : CUL_Parse: cul868 A 09 73 B112 1ACE1F 20DFE1 36 -47
2022.01.11 18:23:53.237 5 : cul868: dispatch A0973B1121ACE1F20DFE1::-47:cul868
2022.01.11 18:23:53.247 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 27 msg: 73 B1 12 1ACE1F 20DFE1
2022.01.11 18:23:53.372 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 3F msg: 73 80 02 20DFE1 1ACE1F 00
2022.01.11 18:23:53.414 0 : HMLAN_Parse: hmlan1 R:R4A2AE914 stat:0001 t:565A8BA6 d:FF r:FFCD m:73 8002 20DFE1 1ACE1F 00
2022.01.11 18:23:53.464 3 : n_iodev return value: HASH(0x7d2db48)
2022.01.11 18:23:53.478 0 : HMLAN_Send: hmlan1 S:S4A2AEB83 stat: 00 t:00000000 d:01 r:4A2AEB83 m:74 A001 1ACE1F 20DFE1 020E
2022.01.11 18:23:53.514 4 : CUL_Parse: cul868 A 0A 73 8002 20DFE1 1ACE1F 0013 -64.5
2022.01.11 18:23:53.516 5 : cul868: dispatch A0A73800220DFE11ACE1F00::-64.5:cul868
2022.01.11 18:23:53.635 4 : CUL_Parse: cul868 A 0B 74 A001 1ACE1F 20DFE1 020E36 -47
2022.01.11 18:23:53.636 5 : cul868: dispatch A0B74A0011ACE1F20DFE1020E::-47:cul868
2022.01.11 18:23:53.641 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 27 msg: 74 A0 01 1ACE1F 20DFE1 020E
2022.01.11 18:23:53.765 4 : CUL_Parse: cul868 A 0E 74 8002 20DFE1 1ACE1F 01020C003813 -64.5
2022.01.11 18:23:53.766 5 : cul868: dispatch A0E74800220DFE11ACE1F01020C0038::-64.5:cul868
2022.01.11 18:23:53.771 0 : HMLAN_Send: hmlan1 I:+20DFE1,00,00,00
2022.01.11 18:23:53.895 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 40 msg: 74 80 02 20DFE1 1ACE1F 01020C0038
2022.01.11 18:23:53.899 0 : HMLAN_Parse: hmlan1 R:R4A2AEB83 stat:0001 t:565A8D39 d:FF r:FFCD m:74 8002 20DFE1 1ACE1F 01020C0038
list device nach absetzen von statusrequest:
Internals:
.AttrList .devInfo .mId .stc IODev IOgrp actCycle actStatus aesCommReq:1,0 aesKey:5,4,3,2,1,0 autoReadReg:0_off,1_restart,2_pon-restart,3_onChange,4_reqStatus,5_readMissing,8_stateOnly burstAccess:0_off,1_auto commStInCh:on,off do_not_notify:1,0 dummy:1,0 event-aggregator event-min-interval event-on-change-reading event-on-update-reading expert:multiple,defReg,allReg,rawReg,templ,none firmware hmKey hmKey2 hmKey3 hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger ignore:1,0 model modelForce:ACTIONDETECTOR,ACTIONDETECTOR,ASH550,ASH550I,CCU-FHEM,CMM,DORMA_ATENT,DORMA_BRC-H,DORMA_RC-H,HM-CC-RT-DN,HM-CC-RT-DN-BOM,HM-CC-SCD,HM-CC-TC,HM-CC-VD,HM-DIS-EP-WM55,HM-DIS-TD-T,HM-DIS-WM55,HM-DW-WM,HM-ES-PMSW1-DR,HM-ES-PMSW1-PL,HM-ES-PMSW1-PL-DN-R1,HM-ES-PMSW1-PL-DN-R2,HM-ES-PMSW1-PL-DN-R3,HM-ES-PMSW1-PL-DN-R4,HM-ES-PMSW1-PL-DN-R5,HM-ES-PMSW1-SM,HM-ES-TX-WM,HM-HM-LC-DW-WM,HM-LC-AO-SM,HM-LC-BL1-FM,HM-LC-BL1-FM-2,HM-LC-BL1-PB-FM,HM-LC-BL1-SM,HM-LC-BL1-SM-2,HM-LC-BL1PBU-FM,HM-LC-DDC1-PCB,HM-LC-DIM1L-CV,HM-LC-DIM1L-CV-2,HM-LC-DIM1L-CV-644,HM-LC-DIM1L-PL,HM-LC-DIM1L-PL-2,HM-LC-DIM1L-PL-3,HM-LC-DIM1L-PL-644,HM-LC-DIM1PWM-CV,HM-LC-DIM1PWM-CV-2,HM-LC-DIM1T-CV,HM-LC-DIM1T-CV-2,HM-LC-DIM1T-CV-644,HM-LC-DIM1T-DR,HM-LC-DIM1T-FM,HM-LC-DIM1T-FM-2,HM-LC-DIM1T-FM-644,HM-LC-DIM1T-FM-LF,HM-LC-DIM1T-PL,HM-LC-DIM1T-PL-2,HM-LC-DIM1T-PL-3,HM-LC-DIM1T-PL-644,HM-LC-DIM1TPBU-FM,HM-LC-DIM1TPBU-FM-2,HM-LC-DIM2L-CV,HM-LC-DIM2L-SM,HM-LC-DIM2L-SM-2,HM-LC-DIM2L-SM-644,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM-2,HM-LC-JA1PBU-FM,HM-LC-RGBW-WM,HM-LC-SW1-BA-PCB,HM-LC-SW1-DR,HM-LC-SW1-FM,HM-LC-SW1-FM-2,HM-LC-SW1-PB-FM,HM-LC-SW1-PCB,HM-LC-SW1-PL,HM-LC-SW1-PL-3,HM-LC-SW1-PL-CT-R1,HM-LC-SW1-PL-CT-R2,HM-LC-SW1-PL-CT-R3,HM-LC-SW1-PL-CT-R4,HM-LC-SW1-PL-CT-R5,HM-LC-SW1-PL-DN-R1,HM-LC-SW1-PL-DN-R2,HM-LC-SW1-PL-DN-R3,HM-LC-SW1-PL-DN-R4,HM-LC-SW1-PL-DN-R5,HM-LC-SW1-PL-OM54,HM-LC-SW1-PL2,HM-LC-SW1-SM,HM-LC-SW1-SM-2,HM-LC-SW1-SM-ATMEGA168,HM-LC-SW1PBU-FM,HM-LC-SW2-DR,HM-LC-SW2-DR-2,HM-LC-SW2-FM,HM-LC-SW2-FM-2,HM-LC-SW2-PB-FM,HM-LC-SW2-SM,HM-LC-SW2PBU-FM,HM-LC-SW4-BA-PCB,HM-LC-SW4-DR,HM-LC-SW4-DR-2,HM-LC-SW4-PCB,HM-LC-SW4-PCB-2,HM-LC-SW4-SM,HM-LC-SW4-SM-2,HM-LC-SW4-SM-ATMEGA168,HM-LC-SW4-WM,HM-LC-SW4-WM-2,HM-MOD-EM-8,HM-MOD-EM-8BIT,HM-MOD-RE-8,HM-OU-CF-PL,HM-OU-CFM-PL,HM-OU-CFM-TW,HM-OU-CM-PCB,HM-OU-LED16,HM-PB-2-FM,HM-PB-2-WM,HM-PB-2-WM55,HM-PB-2-WM55-2,HM-PB-4-WM,HM-PB-4DIS-WM,HM-PB-4DIS-WM-2,HM-PB-6-WM55,HM-PBI-4-FM,HM-RC-12,HM-RC-12-B,HM-RC-12-SW,HM-RC-19,HM-RC-19-B,HM-RC-19-SW,HM-RC-2-PBU-FM,HM-RC-2-PBU-FM-2,HM-RC-4,HM-RC-4-2,HM-RC-4-3,HM-RC-4-3-D,HM-RC-4-B,HM-RC-8,HM-RC-DIS-H-X-EU,HM-RC-KEY3,HM-RC-KEY3-B,HM-RC-KEY4-2,HM-RC-KEY4-3,HM-RC-P1,HM-RC-SEC3,HM-RC-SEC3-B,HM-RC-SEC4-2,HM-RC-SEC4-3,HM-SCI-3-FM,HM-SEC-CEN,HM-SEC-KEY,HM-SEC-KEY-O,HM-SEC-KEY-S,HM-SEC-MDIR,HM-SEC-MDIR-2,HM-SEC-MDIR-3,HM-SEC-RHS,HM-SEC-RHS-2,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-SCO,HM-SEC-SD,HM-SEC-SD-2,HM-SEC-SFA-SM,HM-SEC-SIR-WM,HM-SEC-TIS,HM-SEC-WDS,HM-SEC-WDS-2,HM-SEC-WIN,HM-SEN-DB-PCB,HM-SEN-EP,HM-SEN-LI-O,HM-SEN-MDIR-O,HM-SEN-MDIR-O-2,HM-SEN-MDIR-O-3,HM-SEN-MDIR-SM,HM-SEN-MDIR-WM55,HM-SEN-RD-O,HM-SEN-WA-OD,HM-SWI-3-FM,HM-SYS-SRP-PL,HM-TC-IT-WM-W-EU,HM-WDC7000,HM-WDS10-TH-O,HM-WDS100-C6-O,HM-WDS100-C6-O-2,HM-WDS20-TH-O,HM-WDS30-OT2-SM,HM-WDS30-OT2-SM-2,HM-WDS30-T-O,HM-WDS40-TH-I,HM-WDS40-TH-I-2,HM-WS550,HM-WS550LCB,HM-WS550LCW,HM-WS550TECH,IS-WDS-TH-OD-S-R3,KFM-DISPLAY,KFM-SENSOR,KS550,KS550LC,KS550TECH,KS888,OLIGO-SMART-IQ-HM,PS-SWITCH,PS-TH-SENS,ROTO_ZEL-STG-RM-DWT-10,ROTO_ZEL-STG-RM-FDK,ROTO_ZEL-STG-RM-FEP-230V,ROTO_ZEL-STG-RM-FFK,ROTO_ZEL-STG-RM-FSA,ROTO_ZEL-STG-RM-FSS-UP3,ROTO_ZEL-STG-RM-FST-UP4,ROTO_ZEL-STG-RM-FWT,ROTO_ZEL-STG-RM-FZS,ROTO_ZEL-STG-RM-FZS-2,ROTO_ZEL-STG-RM-HS-4,ROTO_ZEL-STG-RM-WT-2,S550IA,SCHUECO_263-130,SCHUECO_263-131,SCHUECO_263-132,SCHUECO_263-133,SCHUECO_263-134,SCHUECO_263-135,SCHUECO_263-144,SCHUECO_263-145,SCHUECO_263-146,SCHUECO_263-147,SCHUECO_263-155,SCHUECO_263-157,SCHUECO_263-158,SCHUECO_263-160,SCHUECO_263-162,SCHUECO_263-167,SCHUECO_263-XXX,SENSOTIMER-ST-6,VIRTUAL,WDF-SOLAR,WS888 msgRepeat oldreadings param readOnly:0,1 readingOnDead:multiple,noChange,state,periodValues,periodString,channels rssiLog:1,0 serialNr showtime:1,0 stateFormat:textField-long subType:AlarmControl,KFM100,THSensor,blindActuator,blindActuatorSol,dimmer,display,keyMatic,motionAndBtn,motionDetector,no,outputUnit,powerMeter,powerSensor,pushButton,remote,repeater,rgb,senBright,sensRain,sensor,singleButton,siren,smokeDetector,swi,switch,thermostat,threeStateSensor,timer,tipTronic,virtual,winMatic timestamp-on-change-reading
.triggerUsed 1
DEF 20DFE1
FUUID 5c4ce2e8-f33f-09c4-04f3-beb05c80b7c6df87
IODev hmlan1
LASTInputDev hmlan1
MSGCNT 2161
NAME Thermostat.OZ
NR 193
NTFY_ORDER 48-Thermostat.OZ
STATE Tsoll:6.0°C, Tist:18.4°C, Hist:57%, Mode:central, Bat:ok, Ventil:actuator
TYPE CUL_HM
channel_01 Thermostat.OZ_Weather
channel_02 Thermostat.OZ_Climate
channel_03 Thermostat.OZ_WindowRec
cul868_MSGCNT 721
cul868_RAWMSG A0C3E867020DFE100000000B839::-65:cul868
cul868_RSSI -65
cul868_TIME 2022-01-12 13:48:05
disableNotifyFn 1
hmlan1_MSGCNT 723
hmlan1_RAWMSG E20DFE1,0000,5A8486FC,FF,FFCE,3E867020DFE100000000B839
hmlan1_RSSI -50
hmlan1_TIME 2022-01-12 13:48:05
hmuart1_MSGCNT 717
hmuart1_RAWMSG 050000403E867020DFE100000000B839
hmuart1_RSSI -64
hmuart1_TIME 2022-01-12 13:48:05
lastMsg No:3E - t:70 s:20DFE1 d:000000 00B839
protCmdPend 1 CMDs_pending
protCondBurst forced_off
protLastRcv 2022-01-12 13:48:05
protRcv 729 last_at:2022-01-12 13:48:05
protSnd 46 last_at:2022-01-12 00:01:50
protSndB 5 last_at:2022-01-11 18:29:04
protState CMDs_pending
rssi_at_cul868 cnt:721 min:-70 max:-60 avg:-63.98 lst:-65
rssi_at_hmlan1 cnt:723 min:-54 max:-49 avg:-51.43 lst:-50
rssi_at_hmuart1 cnt:717 min:-70 max:-60 avg:-62.94 lst:-64
rssi_hmlan1 cnt:10 min:-57 max:-56 avg:-56.2 lst:-56
rssi_hmuart1 cnt:6 min:-72 max:-70 avg:-71.16 lst:-70
.attraggr:
.attreocr:
.*
.attreour:
time-request
.attrminint:
.attrtocr:
.*
.userReadings:
HASH(0x398c058)
CL:
Authenticated 0
BUF
FD 86
FW_ID 20122
LASTACCESS 1641991745
NAME WEB_192.168.1.31_49504
NR 20125
PEER 192.168.1.31
PORT 49504
SNAME WEB
SSL
STATE Connected
TEMPORARY 1
TYPE FHEMWEB
canAsyncOutput 1
.attraggr:
.attrminint:
READINGS:
2022-01-12 13:45:52 state Connected
READINGS:
1900-01-01 00:00:01 .D-devInfo 00FFFF
1900-01-01 00:00:01 .D-stc 58
2022-01-11 12:44:31 .associatedWith Thermostat.OZ,Thermostat.OZ_Climate,Thermostat.OZ_Weather,Thermostat.OZ_WindowRec,Thermostat.OZ
2022-01-12 13:48:05 .protLastRcv 20220112134805
2021-10-31 02:11:52 Activity alive
2021-05-13 16:20:32 CommandAccepted yes
from archivexx D-firmware 2.1
from archivexx D-serialNr KEQ0176062
2022-01-12 00:01:50 IODev hmlan1
2021-05-13 16:20:33 PairedTo 0x1ACE1F
2022-01-11 12:44:32 R-backlOnMode off
2022-01-11 12:44:32 R-backlOnTime 0
2022-01-11 12:44:32 R-btnLock off
2022-01-11 18:31:52 R-burstRx off
2022-01-11 12:44:32 R-pairCentral 0x1ACE1F
2022-01-11 18:31:52 RegL_00. 00:00 01:00 02:01 05:00 0A:1A 0B:CE 0C:1F 0F:00
2021-05-13 16:20:33 battery ok
2022-01-11 18:33:00 cfgState ok
2022-01-12 13:48:54 commState CMDs_pending
2021-11-30 18:48:26 controlMode central
2021-10-01 18:23:20 day-temp 21 C
2021-11-30 18:48:26 decalcDay Sat
2021-05-13 16:20:33 desired-temp 6.0
2021-11-30 18:48:26 displayMode temp-hum
2021-11-30 18:48:28 displayTemp actual
2021-11-30 18:48:26 displayTempUnit celsius
2022-01-12 13:28:31 humidity 57
2022-01-12 13:38:05 humidityAbsolut 9.0
2022-01-12 13:38:05 humidityAbsolutTrend ↗→
2022-01-12 13:38:05 measured-temp 18.4
2021-10-01 18:23:20 night-temp 17 C
2021-11-30 18:22:16 party-temp 17 C
2022-01-12 13:48:54 state CMDs_pending
2022-01-12 00:01:50 time-request -
- tmpl_0 tc1:a:off b:0 c:off d:off,
cmdStack:
++A0011ACE1F20DFE1020E
helper:
HM_CMDNR 62
cSnd 011ACE1F20DFE1020E,011ACE1F20DFE1020E
cfgStateUpdt 0
lastMsgTm 1641991685.43574
mId 0039
peerFriend -
peerOpt -:thermostat
regLst 0
rxType 140
supp_Pair_Rep 0
tmplChg 0
ack:
cmds:
TmplKey :1641901472.20539:1641901472.60471
TmplTs 1641901472.60471
cmdKey 0:1:0::Thermostat.OZ:0039:00:
cmdLst:
assignHmKey noArg
burstXmit noArg
clear [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
desired-temp (on|off|6.0..30.0;0.5)
deviceRename -newName-
fwUpdate -filename- [-bootTime-]
getConfig noArg
getDevInfo noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
raw -data- [...]
regBulk -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
reset noArg
sysTime noArg
tplDel -tplDel-
tplPara000_0_tc1_a off,auto:-value-
tplPara001_0_tc1_b 10,25,5,20,0,15:-value-
tplPara002_0_tc1_c off,on:-value-
tplPara003_0_tc1_d on,off:-value-
tplSet_0 -tplChan-
unpair noArg
lst:
condition slider,0,1,255
peer
peerOpt
tplChan TC_00_sensor,tc1
tplDel 0>tc1
tplPeer
rtrvLst:
cmdList [({short}|long)]
deviceInfo [({short}|long)]
list [({normal}|full)]
param -param-
reg -addr- -list- [-peerChn-]
regList noArg
regTable noArg
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo noArg
expert:
def 1
det 1
raw 1
tpl 1
io:
flgs 2
newChn +20DFE1,02,00,00
nextSend 1641991685.53245
rxt 2
vccu ccu
p:
20DFE1
00
00
00
prefIO:
hmlan1
hmuart1
mRssi:
mNo 3E
io:
cul868:
-65
-65
hmlan1:
-44
-44
hmuart1:
-64
-64
peerIDsH:
prt:
awake 0
bErr 0
brstWu 0
sProc 2
try 1
rspWait:
tryMsg:
q:
qReqConf
qReqStat
regCollect:
role:
dev 1
rssi:
at_cul868:
avg -63.9868238557559
cnt 721
lst -65
max -60
min -70
at_hmlan1:
avg -51.4384508990318
cnt 723
lst -50
max -49
min -54
at_hmuart1:
avg -62.9483960948396
cnt 717
lst -64
max -60
min -70
hmlan1:
avg -56.2
cnt 10
lst -56
max -56
min -57
hmuart1:
avg -71.1666666666667
cnt 6
lst -70
max -70
min -72
shadowReg:
tmpl:
0>tc1 off 0 off off
hmccu:
Attributes:
.mId 0039
IOgrp ccu:hmlan1,hmuart1
actCycle 000:10
actStatus alive
alias 10. Thermostat
autoReadReg 5_readMissing
burstAccess 0_off
commStInCh off
event-on-change-reading .*
event-on-update-reading time-request
expert defReg,allReg,rawReg,templ
firmware 2.1
forceEvents 1
group Heizung.OZ
model HM-CC-TC
room 00_heating_test,15_OZ
rssiLog 1
serialNr KEQ0176062
sortby 50
stateFormat Tsoll:desired-temp°C, Tist:measured-temp°C, Hist:humidity%, Mode:controlMode, Bat:battery, Ventil:actuator
subType thermostat
timestamp-on-change-reading .*
userReadings humidityAbsolut:(measured-temp|humidity).* {AbsoluteFeuchte(ReadingsVal($name,"measured-temp",0),ReadingsVal($name,"humidity",0))}
webCmd getConfig:statusRequest
list climate channel nach absetzen von statusrequest:
Internals:
.AttrList aesCommReq:1,0 do_not_notify:1,0 event-aggregator event-min-interval event-on-change-reading event-on-update-reading expert:multiple,defReg,allReg,rawReg,templ,none levelMap levelRange model oldreadings param peerIDs readOnly:0,1 showtime:1,0 stateFormat:textField-long tempListTmpl timestamp-on-change-reading
.triggerUsed 0
DEF 20DFE102
FUUID 5c4ce2e8-f33f-09c4-88d9-5339769e9460127c
NAME Thermostat.OZ_Climate
NR 197
NTFY_ORDER 48-Thermostat.OZ_Climate
STATE - tmpl_0 TC_02_sensor,
TYPE CUL_HM
chanNo 02
device Thermostat.OZ
disableNotifyFn 1
.attraggr:
.attreocr:
.*
.attrminint:
CL:
Authenticated 0
BUF
FD 86
FW_ID 20138
LASTACCESS 1641991753
NAME WEB_192.168.1.31_49504
NR 20125
PEER 192.168.1.31
PORT 49504
SNAME WEB
SSL
STATE Connected
TEMPORARY 1
TYPE FHEMWEB
canAsyncOutput 1
.attraggr:
.attrminint:
READINGS:
2022-01-12 13:45:52 state Connected
READINGS:
2022-01-11 18:31:53 .associatedWith Thermostat.OZ,Thermostat.OZ_Climate,Thermostat.OZ_Weather,Thermostat.OZ_WindowRec,Thermostat.OZ
2022-01-11 18:31:53 .peerListRDate 2022-01-11 18:31:53
2022-01-11 19:21:51 CommandAccepted yes
2021-11-30 18:48:26 R-controlMode central
2021-10-04 17:56:36 R-day-temp 21 C
2021-10-04 17:56:36 R-decalHr 11 h
2021-10-04 17:56:36 R-decalMin 0 min
2021-11-30 18:48:26 R-decalcDay Sat
2021-11-30 18:48:26 R-displayMode temp-hum
2021-11-30 18:48:26 R-displayTemp actual
2021-11-30 18:48:26 R-displayTempUnit celsius
2021-10-04 17:56:36 R-mdTempValve auto
2021-10-04 17:56:36 R-night-temp 17 C
2021-11-30 18:22:16 R-party-temp 17 C
2021-11-30 18:20:44 R-partyEndDay 0 d
2021-11-30 18:20:44 R-partyEndHr 18 h
2021-11-30 18:20:44 R-partyEndMin 30 min
2022-01-11 18:31:59 R_0_tempListSat 06:00 17.0 12:00 21.0 23:00 21.0 24:00 17.0
2022-01-11 18:31:59 R_1_tempListSun 06:00 17.0 12:00 21.0 23:00 21.0 24:00 17.0
2022-01-11 18:31:59 R_2_tempListMon 24:00 17.0
2022-01-11 18:31:59 R_3_tempListTue 06:00 17.0 12:00 21.0 23:00 21.0 24:00 17.0
2022-01-11 18:31:59 R_4_tempListWed 06:00 17.0 12:00 21.0 23:00 21.0 24:00 17.0
2022-01-11 18:31:59 R_5_tempListThu 06:00 17.0 12:00 21.0 23:00 21.0 24:00 17.0
2022-01-11 18:31:59 R_6_tempListFri 06:00 17.0 12:00 21.0 23:00 21.0 24:00 17.0
2022-01-11 18:31:59 R_tempList_State verified
2022-01-11 18:31:57 RegL_05. 00:00 01:11 02:0C 03:2A 04:22 05:18 06:22 07:00 08:58 09:00 0A:00 0B:24 0C:22 0D:48 0E:2A 0F:8A 10:2A 11:90 12:22 13:90 14:28 15:90 16:28 17:90 18:28 19:90 1A:28 1B:90 1C:28 1D:90 1E:28 1F:90 20:28 21:90 22:28 23:90 24:28 25:90 26:28 27:90 28:28 29:90 2A:28 2B:90 2C:28 2D:90 2E:28 2F:90 30:28 31:90 32:28 33:90 34:28 35:90 36:28 37:90 38:28 39:90 3A:28 3B:24 3C:22 3D:48 3E:2A 3F:8A 40:2A 41:90 42:22 43:90 44:28 45:90 46:28 47:90 48:28 49:90 4A:28 4B:90 4C:28 4D:90 4E:28 4F:90 50:28 51:90 52:28 53:90 54:28 55:90 56:28 57:90 58:28 59:90 5A:28 5B:90 5C:28 5D:90 5E:28 5F:90 60:28 61:90 62:28 63:90 64:28 65:90 66:28 67:90 68:28 69:90 6A:28 6B:90 6C:22 6D:48 6E:2A 6F:8A 70:2A 71:90 72:22 73:90 74:28 75:90 76:28 77:90 78:28 79:90 7A:28 7B:90 7C:28 7D:90 7E:28 7F:90 80:28 81:90 82:28 83:90 84:28 85:90 86:28 87:90 88:28 89:90 8A:28 8B:90 8C:28 8D:90 8E:28 8F:90 90:28 91:90 92:28 93:90 94:28 95:90 96:28 97:90 98:28 99:90 9A:28 9B:24 9C:22 9D:48 9E:2A 9F:8A A0:2A A1:90 A2:22 A3:90 A4:28 A5:90 A6:28 A7:90 A8:28 A9:90 AA:28 AB:90 AC:28 AD:90 AE:28 AF:90 B0:28 B1:90 B2:28 B3:90 B4:28 B5:90 B6:28 B7:90 B8:28 B9:90 BA:28 BB:90 BC:28 BD:90 BE:28 BF:90 C0:28 C1:90 C2:28 C3:90 C4:28 C5:90 C6:28 C7:90 C8:28 C9:90 CA:28 CB:24 CC:22 CD:48 CE:2A CF:8A D0:2A D1:90 D2:22 D3:90 D4:28 D5:90 D6:28 D7:90 D8:28 D9:90 DA:28 DB:90 DC:28 DD:90 DE:28 DF:90 E0:28 E1:90 E2:28 E3:90 E4:28 E5:90 E6:28 E7:90 E8:28 E9:90 EA:28 EB:90 EC:28 ED:90 EE:28 EF:90 F0:28 F1:90 F2:28 F3:90 F4:28 F5:90 F6:28 F7:90 F8:28 F9:90 FA:28
2022-01-11 18:31:59 RegL_06. 00:00 01:24 02:22 03:48 04:2A 05:8A 06:2A 07:90 08:22 09:90 0A:28 0B:90 0C:28 0D:90 0E:28 0F:90 10:28 11:90 12:28 13:90 14:28 15:90 16:28 17:90 18:28 19:90 1A:28 1B:90 1C:28 1D:90 1E:28 1F:90 20:28 21:90 22:28 23:90 24:28 25:90 26:28 27:90 28:28 29:90 2A:28 2B:90 2C:28 2D:90 2E:28 2F:90 30:28 31:24 32:22 33:48 34:2A 35:8A 36:2A 37:90 38:22 39:90 3A:28 3B:90 3C:28 3D:90 3E:28 3F:90 40:28 41:90 42:28 43:90 44:28 45:90 46:28 47:90 48:28 49:90 4A:28 4B:90 4C:28 4D:90 4E:28 4F:90 50:28 51:90 52:28 53:90 54:28 55:90 56:28 57:90 58:28 59:90 5A:28 5B:90 5C:28 5D:90 5E:28 5F:90 60:28
2022-01-11 18:33:00 cfgState ok
2022-01-11 18:31:59 controlMode central
2022-01-11 18:31:59 day-temp 21 C
2022-01-11 18:31:59 decalcDay Sat
2022-01-11 19:21:51 desired-temp 6.0
2022-01-11 18:31:59 displayMode temp-hum
2022-01-11 18:31:59 displayTemp actual
2022-01-11 18:31:59 displayTempUnit celsius
2022-01-11 18:31:59 night-temp 17 C
2022-01-11 18:31:59 party-temp 17 C
2022-01-11 19:21:51 recentStateType ack
2021-09-29 20:56:40 tempTmplSet none
- tmpl_0 TC_02_sensor,
helper:
peerFriend
peerIDsRaw ,00000000
peerIDsState complete
peerOpt p:thermostat
regLst 5,6
tmplChg 0
cmds:
TmplKey :1641901472.20539:1641901472.60481
TmplTs 1641901472.60481
cmdKey 1:0:0::Thermostat.OZ:0039:02:
cmdLst:
burstXmit noArg
clear [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
controlMode (auto|manual|central|party)
desired-temp (on|off|6.0..30.0;0.5)
displayMode (temp-only|temp-hum)
displayTemp (actual|setpoint)
displayTempUnit (celsius|fahrenheit)
getConfig noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
partyMode [(prep|{exec})] -HH:MM- -durationDays- [...]
peerBulk -peer1,peer2,...- [({set}|unset)]
peerChan 0 -actChn- single [({set}|unset)] [(actor|remote|{both})]
regBulk -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
statusRequest noArg
sysTime noArg
tempListFri [(prep|{exec})] -HH:MM- -temp- [...]
tempListMon [(prep|{exec})] -HH:MM- -temp- [...]
tempListSat [(prep|{exec})] -HH:MM- -temp- [...]
tempListSun [(prep|{exec})] -HH:MM- -temp- [...]
tempListThu [(prep|{exec})] -HH:MM- -temp- [...]
tempListTmpl [({verify}|restore)] [[-file-:]-templateName-]
tempListTue [(prep|{exec})] -HH:MM- -temp- [...]
tempListWed [(prep|{exec})] -HH:MM- -temp- [...]
tempTmplSet -tempTmpl-
tplDel -tplDel-
tplSet_0 -tplChan-
lst:
condition slider,0,1,255
peer
peerOpt
tplChan TC_02_sensor,TC_02_test,s1,test09
tplDel 0>TC_02_sensor
tplPeer
rtrvLst:
cmdList [({short}|long)]
deviceInfo [({short}|long)]
list [({normal}|full)]
param -param-
reg -addr- -list- [-peerChn-]
regList noArg
regTable noArg
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo noArg
expert:
def 1
det 1
raw 1
tpl 1
peerIDsH:
00000000 broadcast
prt:
brstWu 1
regCollect:
role:
chn 1
shadowReg:
tmpl:
0>TC_02_sensor
Attributes:
event-on-change-reading .*
group Heizung.OZ
model HM-CC-TC
peerIDs 00000000
room 00_heating_test,15_OZ
tempListTmpl none
webCmd controlMode:desired-temp
kann das eventuell auch jemand bei den rt's bestätigen?
na dann:
"set statusRequest" packt im wu mode zuerst den befehl auf den cmd stack mit CUL_HM_PushCmdStack().
elsif($cmd eq "statusRequest") { ############################################
my @chnIdList = CUL_HM_getAssChnIds($name);
foreach my $channel (@chnIdList){
my $chnNo = substr($channel,6,2);
CUL_HM_PushCmdStack($hash,"++".$flag.'01'.$id.$dst.$chnNo.'0E');
}
CUL_HM_stateUpdatDly($name,20) if (scalar(@chnIdList));
$state = "";
}
und anschliessend wird über CUL_HM_stateUpdatDly() ein 20s timer gestartet,
Wed Jan 12 14:45:05 15: CUL_HM_qStateUpdatIfEnab :sUpdt:Thermostat.OZ_Climate
der nach ablauf einen 2. statusrequest-cmd in die wakeup-statusrequest-queue packt.
status request wakeup: Thermostat.OZ
dieser kommt dann beim wakeup ebenfalls auf den cmdstack.
im burst mode (burstAccess=1_auto) wird der 20s-timer nicht gestartet.
hier ein paar hashwerte (vor dem set, nach dem set, nach dem 20s-timer):
#######wu, -5s => kurz vor cmd
prt:
awake 0
bErr 0
brstWu 0
sProc 0
try 1
tryMsg:
q:
qReqConf
qReqStat
#######wu, +5s => kurz nach cmd
prt:
awake 0
bErr 0
brstWu 0
sProc 2
try 1
rspWait:
tryMsg:
q:
qReqConf
qReqStat
#######wu, +30s => nach timer
prt:
awake 0
bErr 0
brstWu 0
sProc 2
try 1
tryMsg:
q:
qReqConf
qReqStat 02
@martinp876
warum zusätzlich CUL_HM_stateUpdatDly()?
eventuell ein "fauler" kompromis, um den cmd auch für den automatischen statusrequest bei fhem restart zu nutzen?
der hintergrund meiner "untersuchung" ist nämlich ein etwas "chaotischer" ablauf der automatischen requests bei fhem restart. besonders die requests der thermostate zeigen viele probleme (resend), die egentlich unnötig sind, da manuelle requests in der regel keine probleme machen.
ich habe CUL_HM_stateUpdatDly() jetzt mal auskommentiert.
damit kommen jetzt alle statusrequest wie gewünscht nur noch einfach, auch beim restart.
probleme sehe ich dadurch bisher überhaupt nicht.
elsif($cmd eq "statusRequest") { ############################################
my @chnIdList = CUL_HM_getAssChnIds($name);
foreach my $channel (@chnIdList){
my $chnNo = substr($channel,6,2);
CUL_HM_PushCmdStack($hash,"++".$flag.'01'.$id.$dst.$chnNo.'0E');
}
#CUL_HM_stateUpdatDly($name,20) if (scalar(@chnIdList));
$state = "";
}
bleiben noch folgende punkte für die automatischen statusrequest bei restart:
1. den beginn der requests verzögern, damit die (mühsam) zugeordneten io auch erhalten bleiben. also abwarten bis die io bereit sind (vielleicht 60/90s nach initial cleanup).
am besten wäre eine io-abhängige verzögerung => sobald ein io bereit ist, werden die requests der devices gestartet, denen dieses io zugeornet ist.
2. wakeup devices werden erst nach der wakemeup message präpariert, also zu spät. hat eventuell mit punkt 1. zu tun, falls das io umgeswitcht werden muss.
3. bei thermostaten mit eingeschaltetem burst wird a112 und b112 gesendet. ausserdem wird erst noch unnötig auf die wakemeup message gewartet. wenn schon burst, dann nicht extra noch warten.
...weiß nicht, ob ich die richtige Stelle gefunden habe, aber mit der angehängten Version könnte #1 (90 Sek. Verzögerung) umgesetzt sein.
(da sind noch ein paar andere Fundstellen mit verarbeitet, getestet nur auf "lädt").
danke, schaue ich mir an.
mit einer 60s "ausführungs-verhinderung" von CUL_HM_appFromQ() sind jetzt jedenfalls schon alle resends bei restart verschwunden.
Zitat...weiß nicht, ob ich die richtige Stelle gefunden habe
das funktioniert für alle devices, die direkt erreichbar sind (normal/230v, burst). also die, die bei mir noch gefehlt haben.
bei meinem aktuellen patch für die restlichen devices (wakeup, lazy, conditional burst) wird zwar der statusrequest verschoben, aber leider noch nicht das präparieren der io, wie ich leider gerade feststellen musste. die io senden trotzdem ihre autonomen messages. alles sehr tricky. ;)
in deinem patch sind 2 stellen, wo du "IsDisabled" eingebaut hast (11113, 11193).
da wolltest du sicherlich "IsDummy" einfügen.
...mit IsDummy() hast du wohl recht - wie schnell man aus diesen ganzen Spezialitäten doch raus ist... Anbei eine aktualisierte Fassung.
Was mit "deinem" Patch gemeint ist, kann ich grade nur raten, im Anhang (auch von gestern) ist jedenfalls auch der CUL_HM_stateUpdatDly()-Aufruf auskommentiert.
Was das Präparieren der IO angeht, bin ich auch etwas ratlos, wann man das am besten machen sollte. Theoretisch könnte man die NotifyFn() ausbauen und auch die IO-Events durch die Zentral-Instanz überwachen lassen, allerdings ist dazu bisher mehr oder weniger 0 Code im Modul zu finden.
Bin vom Bauchgefühl her auch unschlüssig, ob das allzu sinnvoll wäre, denn prinzipiell sollte in "typischen Installationen" ja nicht die große Lücke zwischen zwei FHEM-Starts entstehen und die alte (typischerweise auf den IO's für autonome Bestätigungen verwendete) Zuordnung als Startpunkt an sich auch ok sein.(Ist aber mal wieder ein Thema, bei dem ich mir zumindest so vorkomme, als würde ein Blinder von Farbe reden...).
hier ist mein aktuelles diff zu version 25298.
punkt 1. habe ich jetzt anders gelöst. dadurch hat sich punkt 2. wie erwartet auch erledigt.
delay habe ich auf 60s gesetzt, bei mir würden wohl auch 30s genügen. eine dynamischer delay wäre weiterhin wünschenswert.
fehlt erstmal noch punkt 3.
@@ -532,11 +532,11 @@ sub CUL_HM_updateConfig($){##########################
#remove invalid attributes. After set commands fot templist
CUL_HM_Attr("set",$name,"peerIDs",$attr{$name}{peerIDs}) if (defined $attr{$name}{peerIDs});# set attr again to update namings
foreach(sort keys %{$attr{$name}}){
delete $attr{$name}{$_} if (CUL_HM_AttrCheck($name,'set',$_,$attr{$name}{$_}));
}
- CUL_HM_qStateUpdatIfEnab($name) if($hash->{helper}{role}{dev});
+ #CUL_HM_qStateUpdatIfEnab($name) if($hash->{helper}{role}{dev}); #frank
next if (0 == (0x07 & CUL_HM_getAttrInt($name,"autoReadReg")));
if(CUL_HM_getPeers($name,"Config") == 2){
CUL_HM_qAutoRead($name,1);
}
else{
@@ -551,22 +551,32 @@ sub CUL_HM_updateConfig($){##########################
CUL_HM_complConfig($name);
CUL_HM_setAssotiat($name);
}
- delete $modules{CUL_HM}{helper}{updtCfgLst};
+ #delete $modules{CUL_HM}{helper}{updtCfgLst}; #frank
if(!$modules{CUL_HM}{helper}{initDone}){
Log 1,"CUL_HM finished initial cleanup";
+ InternalTimer(gettimeofday() + 66, "CUL_HM_startQueues", "CUL_HM_startQueues", 0); #frank
if (defined &HMinfo_init){# force reread
$modules{HMinfo}{helper}{initDone} = 0;
InternalTimer(gettimeofday() + 5,"HMinfo_init", "HMinfo_init", 0);
}
}
$modules{CUL_HM}{helper}{initDone} = 1;# we made init once - now we are operational. Check with HMInfo as well
## configCheck will be issues by HMInfo once
}
+sub CUL_HM_startQueues() { #frank
+ #Log(1,Dumper($modules{CUL_HM}{helper}));
+ Log(1,"CUL_HM start Queues");
+ foreach my $name (@{$modules{CUL_HM}{helper}{updtCfgLst}}){
+ CUL_HM_qStateUpdatIfEnab($name) if($defs{$name}->{helper}{role}{dev});
+ }
+ delete $modules{CUL_HM}{helper}{updtCfgLst};
+}
+
sub CUL_HM_initializeVirtuals {
my $hash = shift // return;
my $name = $hash->{NAME} // return;
my $vId = substr($hash->{DEF}."01",0,8);
if ($hash->{helper}{fkt} eq "vdCtrl"){
@@ -5642,11 +5652,11 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
my @chnIdList = CUL_HM_getAssChnIds($name);
foreach my $channel (@chnIdList){
my $chnNo = substr($channel,6,2);
CUL_HM_PushCmdStack($hash,"++".$flag.'01'.$id.$dst.$chnNo.'0E');
}
- CUL_HM_stateUpdatDly($name,20) if (scalar(@chnIdList));
+ #CUL_HM_stateUpdatDly($name,20) if (scalar(@chnIdList)); #frank
$state = "";
}
elsif($cmd eq "getSerial") { ################################################
CUL_HM_PushCmdStack($hash,'++'.$flag.'01'.$id.$dst.'0009');
$state = "";
@@ -11098,12 +11108,12 @@ sub CUL_HM_unQEntity($$){# remove entity from q
}
sub CUL_HM_qEntity($$){ # add to queue
my ($name,$q) = @_;
return if ($modules{CUL_HM}{helper}{hmManualOper});#no autoaction when manual
my $devN = CUL_HM_getDeviceName($name);
- return if (AttrVal($devN,"subType","") eq "virtual");
-
+ #return if (AttrVal($devN,"subType","") eq "virtual"); #frank
+ return if (AttrVal($devN,"subType","") eq "virtual" || AttrVal($devN,"ignore",0));
$name = $devN if ($defs{$devN}{helper}{q}{$q} eq "00"); #already requesting all
if ($devN eq $name){#config for all device
$defs{$devN}{helper}{q}{$q}="00";
}
else{
edit: diff geändert
moin,
punkt 3. lässt sich mit folgender zusätzlicher zeile lösen:
@@ -11111,10 +11121,11 @@ sub CUL_HM_qEntity($$){ # add to queue
$defs{$devN}{helper}{q}{$q}
.",".substr(CUL_HM_name2Id($name),6,2));
}
my $rxt = CUL_HM_getRxType($defs{$name});
my $wu = ($rxt & 0x1C) ? 'Wu' : ''; #normal or wakeup q?
+ $wu = '' if($rxt & 0x80 && CUL_HM_getAttrInt($name,"burstAccess")); #frank: conditional burst
$q .= $wu;
my $qa = $modules{CUL_HM}{helper}{$q};
@{$qa} = CUL_HM_noDup(@{$qa},$devN); #we only q device - channels are stored in the device
zusätzlich habe ich nun die verzögerung auf 66s verlängert, da bei 60s immer gleichzeitig ein block "configcheck -f" verarbeitet werden muss, das habe ich im diff aus dem letzten post mal geändert:
2022.01.21 09:32:04.509 1: CUL_HM start Queues
2022.01.21 09:32:04.556 0: HMLAN_Send: hmlan1 I:+206487,02,00,00
2022.01.21 09:32:04.560 0: HMUARTLGW hmuart1 send: 01 062064CB000100
2022.01.21 09:32:04.564 0: HMLAN_Send: hmlan1 I:+206219,02,00,00
2022.01.21 09:32:04.596 0: HMUARTLGW hmuart1 added peer: 2064CB, aesChannels: FFFFFFFFFFFFFFFF
2022.01.21 09:32:04.600 0: HMUARTLGW hmuart1 send: 01 062064CB000100
2022.01.21 09:32:04.608 0: HMUARTLGW hmuart1 added peer: 2064CB, aesChannels: FFFFFFFFFFFFFFFF
2022.01.21 09:32:04.609 0: HMUARTLGW hmuart1 send: 01 0620DFE1000100
2022.01.21 09:32:04.617 0: HMUARTLGW hmuart1 added peer: 20DFE1, aesChannels: FFFFFFFFFFFFFFFF
2022.01.21 09:32:04.621 0: HMUARTLGW hmuart1 send: 01 0620DFE1000100
2022.01.21 09:32:04.628 0: HMUARTLGW hmuart1 added peer: 20DFE1, aesChannels: FFFFFFFFFFFFFFFF
2022.01.21 09:32:04.629 0: HMUARTLGW hmuart1 send: 01 061DFDA5000100
2022.01.21 09:32:04.637 0: HMUARTLGW hmuart1 added peer: 1DFDA5, aesChannels: FFFFFFFFFFFFFFFF
2022.01.21 09:32:04.641 0: HMUARTLGW hmuart1 send: 01 061DFDA5000100
2022.01.21 09:32:04.649 0: HMUARTLGW hmuart1 added peer: 1DFDA5, aesChannels: FFFFFFFFFFFFFFFF
2022.01.21 09:32:04.885 3: HMinfo hminfo get:configCheck :-f,^(Ventil.AZ.Nord|Ventil.AZ.Nord)$
2022.01.21 09:32:04.971 3: HMinfo hminfo get:configCheck :-f,^(Tuer.WZ.Terrasse|Tuer.WZ.Terrasse)$
2022.01.21 09:32:05.013 3: HMinfo hminfo get:configCheck :-f,^(Wetter.Nord|Wetter.Nord)$
2022.01.21 09:32:05.101 3: HMinfo hminfo get:configCheck :-f,^(Fenster.Bad|Fenster.Bad)$
2022.01.21 09:32:05.306 3: HMinfo hminfo get:configCheck :-f,^(SwitchUP02|SwitchUP02)$
2022.01.21 09:32:05.349 3: HMinfo hminfo get:configCheck :-f,^(Thermostat.WZ|Thermostat.WZ_Climate|Thermostat.WZ_Weather|Thermostat.WZ_WindowRec|Thermostat.WZ)$
2022.01.21 09:32:05.468 3: HMinfo hminfo get:configCheck :-f,^(SwitchPBU01|SwitchPBU01_Btn_01|SwitchPBU01_Btn_02|SwitchPBU01_Sw_01|SwitchPBU01_Sw_02|SwitchPBU01)$
2022.01.21 09:32:05.627 3: HMinfo hminfo get:configCheck :-f,^(Tuer.SZ|Tuer.SZ)$
2022.01.21 09:32:05.668 3: HMinfo hminfo get:configCheck :-f,^(Ventil.Bad|Ventil.Bad)$
2022.01.21 09:32:05.712 3: n_iodev return value: HASH(0x8d96940)
2022.01.21 09:32:05.776 3: CUL_HM set DimPBU01_Dim statusRequest noArg
Hab's mal eingepflegt (für eventuelle Mittester: komplette Version anbei) und werde das auch mal so testen.
Was den generellen Ablauf bzgl. der 66 Sekunden angeht, habe ich zwar nicht die durchschlagende Idee, aber vielleicht einen ersten Ansatzpunkt:
- Es gibt kein NotifyFn für IO-Events;
- der IO-Zustand wird aber "irgendwie" (auch) durch VCCU überwacht, wenn eine im Einsatz ist.
- hin und wieder wird ein update der VCCU-Zustände gemacht (Funktion: CUL_HM_UpdtCentralState()).
Theoretisch müßte es möglich sein, in der VCCU eine Liste der "noch nicht initialisierten" IO's zu führen. Dann könnte bei jedem internen update gecheckt werden, ob ein IO jetzt (schon) verfügbar ist, und dann die _dafür relevanten_ gequeueten Befehle (wie ermitteln?) raushauen, und nur den Rest in der Queue lassen...?
Keine Ahnung, ob das ein zielführender Gedankengang ist und wie man das ggf. in Code packen könnte...
Zitatund nur den Rest in der Queue lassen...
sobald etwas in eine wakeup-queue "geworfen" wird, wird das entsprechende io präpariert, wodurch die nächste passende message des devices das senden der cmds auslöst.
man braucht also eigentlich auch eine weitere vorgeschaltete queue/liste, die die entsprechenden aktionen erst in die queues wirft, wenn das jeweils vorgesehene io bereit ist. ;)
hier noch ein zusätzlicher patch, der verhindert, dass im vorhin erwähnten "configcheck -f block" unnötige configchecks für ignored device ausgeführt werden. die zusätzliche return zeile verhindert das:
sub CUL_HM_cfgStateDelay($) {#update cfgState: schedule for devices
my $name = shift;
return if(IsIgnored($name)); #frank
CUL_HM_cfgStateUpdate("cfgStateUpdate:".CUL_HM_getDeviceName($name));
}
...genau... Klingt kompliziert...
Ad patch: Da fehlt dann aber wieder "IsDisabled" (oder wie hieß das gleich noch)...
Vollständige Fassung wieder anbei.
Da fehlt dann aber wieder "IsDisabled" (oder wie hieß das gleich noch)...
war mir nicht sicher...
nach meinem verständnis wird (wurde?) bei einem cul_hm dummy-device nur das senden verhindert.
einige checks könnten ja vielleicht trotzdem "nützlich" sein.
Hmmm, auch wieder richtig. Es darf halt nicht passieren, dass das IO vorbereitet wird, aber sonst...
Hab's mit Bemerkung wieder rausgenommen.