moin
nach dem aufwecken (8102) und senden des cmd (A001) wird leider immer eine dritte msg (8002) gesendet.
gelegentlich kommt es hier zu resends. eventuell durch kollisionen der funkmessages mit den antworten.
zunächst mal ein kompakter ausschnitt des sniffs:
2022.01.22 14:25:06.738 0: HMUARTLGW hmuart1 recv: 01 05 00 00 2E msg: A6 A2 70 6869B6 1ACE1F 00A3382ACB00006F4A0A28
2022.01.22 14:25:06.742 0: HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: A6 81 02 1ACE1F 6869B6 00
2022.01.22 14:25:06.747 0: HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: A7 A0 01 1ACE1F 6869B6 010E
2022.01.22 14:25:06.750 0: HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: A6 80 02 1ACE1F 6869B6 00
das falsche ACK wird am ende von CUL_HM_Parse erzeugt:
#------------ send default ACK if not applicable------------------
# ack if we are destination, anyone did accept the message (@evtEt)
# parser did not supress
push @ack,$mh{shash}, $mh{mNo}."8002".$ioId.$mh{src}."00"
if( ($ioId eq $mh{dst}) #are we adressee
&& ($mh{mFlgH} & 0x20) #response required Flag
&& @evtEt #only ack if we identified it
&& (!scalar(@ack)) #sender requested ACK
);
der vergleich mit meiner cul_hm-lieblingsversion von noansi (https://forum.fhem.de/index.php/topic,121139.msg1158983.html#msg1158983)hat ergeben, dass hier eine bedingung zur unterdrückung des ACK fehlt:
push @ack,$mh{shash}, $mh{mNo}."8002".$ioId.$mh{src}."00"
if( ($ioId eq $mh{dst}) #are we adressee
&& ($mh{mFlgH} & 0x20) #response required Flag
&& !$mh{wakupAck} #noansi: not if wakeup is sent
&& @evtEt #only ack if we identified it
&& (!scalar(@ack)) #sender requested ACK
);
das hash-flag $mh{wakupAck}, das in der version 7x existiert, gibt es aktuell nicht.
entweder wurde es komplett ausgebaut oder nicht übernommen.
da der aktuelle code im vergleich ziehmlich umgebaut ist, sollte eventuell an anderer stelle eine unterdrückung des ACK erfolgen.
ein minimaler einbau in meine aktuelle version funktioniert jedenfalls.
vollständiger sniff mit debug ausgaben des hash helper/prt:
2022.01.22 16:12:31.808 4: CUL_Parse: cul868 A 14 CD A270 6869B6 1ACE1F 00A5382ACB000010010A2831 -49.5
2022.01.22 16:12:31.811 5: cul868: dispatch A14CDA2706869B61ACE1F00A5382ACB000010010A28::-49.5:cul868
2022.01.22 16:12:31.818 3: CUL_HM set Wetter.Sued statusRequest noArg
2022.01.22 16:12:31.820 1: ----- ACK-searching-01 -----
2022.01.22 16:12:31.822 1: $VAR1 = {
'bErr' => 0,
'sProc' => 2,
'rspWait' => {}
};
2022.01.22 16:12:31.842 3: n_iodev return value: HASH(0x82d6de8)
2022.01.22 16:12:31.852 5: cul868 sending As0ACD81021ACE1F6869B600
2022.01.22 16:12:31.854 5: CUL 6869B6 dly:56ms
2022.01.22 16:12:31.911 5: DevIo_SimpleWrite cul868: As0ACD81021ACE1F6869B600
2022.01.22 16:12:31.914 5: cul868 sending As0BCEA0011ACE1F6869B6010E
2022.01.22 16:12:31.915 5: CUL 6869B6 dly:54ms
2022.01.22 16:12:31.971 5: DevIo_SimpleWrite cul868: As0BCEA0011ACE1F6869B6010E
2022.01.22 16:12:31.975 1: ----- ACK-searching-02 -----
2022.01.22 16:12:31.976 1: $VAR1 = {
'bErr' => 0,
'sProc' => 1,
'rspWait' => {
'mNo' => 206,
'cmd' => 'As0BCEA0011ACE1F6869B6010E',
'reSent' => '1'
}
};
2022.01.22 16:12:31.978 5: cul868 sending As0ACD80021ACE1F6869B600
2022.01.22 16:12:31.979 5: CUL 6869B6 dly:51ms
2022.01.22 16:12:32.031 5: DevIo_SimpleWrite cul868: As0ACD80021ACE1F6869B600
2022.01.22 16:12:32.082 0: HMUARTLGW hmuart1 recv: 01 05 00 00 2E msg: CD A2 70 6869B6 1ACE1F 00A5382ACB000010010A28
2022.01.22 16:12:32.087 0: HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: CD 81 02 1ACE1F 6869B6 00
2022.01.22 16:12:32.092 0: HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: CE A0 01 1ACE1F 6869B6 010E
2022.01.22 16:12:32.096 0: HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: CD 80 02 1ACE1F 6869B6 00
2022.01.22 16:12:32.100 0: HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:8E8A3B83 d:FF r:FFD5 m:CD 8102 1ACE1F 6869B6 00
2022.01.22 16:12:32.103 0: HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:8E8A3BC0 d:FF r:FFD5 m:CE A001 1ACE1F 6869B6 010E
2022.01.22 16:12:32.107 0: HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:8E8A3BFB d:FF r:FFD5 m:CD 8002 1ACE1F 6869B6 00
2022.01.22 16:12:32.782 4: CUL_Parse: cul868 A 0E CE A410 6869B6 1ACE1F 060100000031 -49.5
2022.01.22 16:12:32.784 5: cul868: dispatch A0ECEA4106869B61ACE1F0601000000::-49.5:cul868
2022.01.22 16:12:32.887 1: ----- ACK-searching-02 -----
2022.01.22 16:12:32.888 1: $VAR1 = {
'sProc' => 1,
'tryMsg' => {},
'bErr' => 0
};
2022.01.22 16:12:32.889 5: cul868 sending As0ACE80021ACE1F6869B600
2022.01.22 16:12:32.890 5: DevIo_SimpleWrite cul868: As0ACE80021ACE1F6869B600
2022.01.22 16:12:32.915 0: HMUARTLGW hmuart1 recv: 01 05 00 00 2E msg: CE A4 10 6869B6 1ACE1F 0601000000
2022.01.22 16:12:32.919 0: HMLAN_Parse: hmlan1 R:E6869B6 stat:0000 t:8E8A3ECE d:FF r:FFD9 m:CE A410 6869B6 1ACE1F 0601000000
2022.01.22 16:12:33.342 0: HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: CE 80 02 1ACE1F 6869B6 00
2022.01.22 16:12:33.346 0: HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:8E8A3F56 d:FF r:FFD5 m:CE 8002 1ACE1F 6869B6 00
list vom device
Internals:
DEF 6869B6
FUUID 5c4ce2eb-f33f-09c4-4dec-70db0da4a026d89f
IODev cul868
LASTInputDev hmlan1
MSGCNT 23
NAME Wetter.Sued
NR 423
NTFY_ORDER 48-Wetter.Sued
STATE T: 16.5 H: 49 L: 542 P: 1095.5
TYPE CUL_HM
chanNo 01
cul868_MSGCNT 10
cul868_RAWMSG A146FA2706869B61ACE1F00A5312ACB0000D3D60A28::-49.5:cul868
cul868_RSSI -49.5
cul868_TIME 2022-01-21 12:25:47
disableNotifyFn 1
hmlan1_MSGCNT 3
hmlan1_RAWMSG E6869B6,0000,889410AD,FF,FFDA,6FA2706869B61ACE1F00A5312ACB0000D3D60A28
hmlan1_RSSI -38
hmlan1_TIME 2022-01-21 12:25:47
hmuart1_MSGCNT 10
hmuart1_RAWMSG 0500002E6FA2706869B61ACE1F00A5312ACB0000D3D60A28
hmuart1_RSSI -46
hmuart1_TIME 2022-01-21 12:25:47
lastMsg No:6F - t:70 s:6869B6 d:1ACE1F 00A5312ACB0000D3D60A28
protCmdPend 1 CMDs_pending
protLastRcv 2022-01-21 12:25:46
protRcv 11 last_at:2022-01-21 12:25:46
protSnd 15 last_at:2022-01-21 12:25:47
protState CMDs_pending
rssi_at_cul868 cnt:10 min:-50 max:-49.5 avg:-49.55 lst:-49.5
rssi_at_hmlan1 cnt:3 min:-38 max:-38 avg:-38 lst:-38
rssi_at_hmuart1 cnt:10 min:-47 max:-46 avg:-46.3 lst:-46
CL:
Authenticated 0
BUF
FD 94
FW_ID 1057
LASTACCESS 1642764381
NAME WEB_192.168.1.31_49354
NR 1057
PEER 192.168.1.31
PORT 49354
SNAME WEB
SSL
STATE Connected
TEMPORARY 1
TYPE FHEMWEB
canAsyncOutput 1
READINGS:
2022-01-21 12:26:10 state Connected
READINGS:
2021-11-28 01:13:45 Activity alive
2021-05-17 16:28:39 CommandAccepted yes
from archivexx D-firmware 0.14
from archivexx D-serialNr UWS3621504
2022-01-21 12:25:46 IODev cul868
2021-05-13 16:19:59 PairedTo 0x1ACE1F
2022-01-21 12:08:05 R-altitude 78 m
2022-01-21 12:08:05 R-burstRx off
2022-01-21 12:08:05 R-ledMode off
2022-01-21 12:08:05 R-lowBatLimitTHPL 2.4 V
2022-01-21 12:08:05 R-pairCentral 0x1ACE1F
2022-01-21 12:08:05 R-transmDevTryMax 3
2022-01-19 08:32:10 RegL_00. 00:00 01:00 05:24 0A:1A 0B:CE 0C:1F 12:18 14:03 24:00 25:4E
2022-01-20 22:24:58 absFeuchte 6.8
2021-11-28 01:08:22 batNotOkCtr 0
2021-11-28 01:08:22 batNotOkFirstTime waiting...
2022-01-21 12:09:35 batVoltage 2.60
2022-01-21 12:09:35 battery ok
2022-01-19 08:33:11 cfgState ok
2022-01-21 12:26:13 commState CMDs_pending
2022-01-20 22:24:58 dewpoint 5.6
2022-01-21 11:53:15 humidity 49
2022-01-21 12:20:16 humidityAbsolut 6.9
2022-01-21 12:25:47 luminosity 542
2022-01-21 12:20:16 measured-temp 16.5
2022-01-19 08:29:30 powerOn 2022-01-19 08:29:30
2022-01-21 11:39:48 pressure 1095.5
2021-05-13 22:03:39 recentStateType info
2022-01-21 12:09:37 rssi_at_cul868 -49.5
2022-01-21 09:43:46 rssi_at_hmlan1 -38
2022-01-21 12:22:35 rssi_at_hmuart1 -46
2022-01-21 12:25:47 state T: 16.5 H: 49 L: 542 P: 1095.5
2022-01-21 12:20:16 temperature 16.5
- tmpl_0 THPL_00_default,
2021-05-13 23:59:59 x_sd 0
cmdStack:
++A0011ACE1F6869B6010E
helper:
HM_CMDNR 111
cSnd 011ACE1F6869B6010E,011ACE1F6869B6010E
cfgStateUpdt 0
lastMsgTm 1642764346.96362
mId F101
peerFriend peerRecT
peerIDsState complete
peerOpt p:THPLSensor
regLst 0
rxType 140
supp_Pair_Rep 0
tmplChg 0
ack:
cmds:
TmplKey :1642763285.94188:1642763295.65845
TmplTs 1642763295.65845
cmdKey 1:1:0::Wetter.Sued:F101:01:
cmdLst:
assignHmKey noArg
burstXmit noArg
clear [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
deviceRename -newName-
fwUpdate ...
getConfig noArg
getDevInfo noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
getSerial noArg
getVersion noArg
peerBulk -peer1,peer2,...- [({set}|unset)]
peerChan 0 ... single [set|unset] [actor|remote|both]
raw -data- [...]
regBulk -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
reset noArg
statusRequest noArg
tplDel -tplDel-
tplSet_0 -tplChan-
unpair noArg
lst:
condition slider,0,1,255
peer
peerOpt
tplChan THPL_00_default
tplDel 0>THPL_00_default
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 +6869B6,02,00,00
nextSend 1642764347.12193
rxt 2
sendWu 1
vccu ccu
p:
6869B6
00
00
00
prefIO:
cul868
hmuart1
mRssi:
mNo 6F
io:
cul868:
-41.5
-41.5
hmlan1:
-38
-38
hmuart1:
-46
-46
peerIDsH:
00000000 broadcast
prt:
bErr 0
sProc 2
rspWait:
tryMsg:
q:
qReqConf
qReqStat
role:
chn 1
dev 1
rpt:
IO cul868
flg A
ts 1642764346.96362
ack:
HASH(0x39ec230)
6F80021ACE1F6869B600
rssi:
at_cul868:
avg -49.55
cnt 10
lst -49.5
max -49.5
min -50
at_hmlan1:
avg -38
cnt 3
lst -38
max -38
min -38
at_hmuart1:
avg -46.3
cnt 10
lst -46
max -46
min -47
shadowReg:
tmpl:
0>THPL_00_default
Attributes:
IOgrp ccu:cul868,hmuart1
actCycle 000:10
actStatus alive
autoReadReg 5_readMissing
commStInCh off
comment batChange: 2020-09-11 20:34:12 (oldBat: low since 2020-08-14 04:14:43)
batChange: 2020-10-05 11:21:18 (oldBat: low since 2020-09-20 04:57:15)
batChange: 2020-11-27 14:17:02 (oldBat: low since 2020-11-07 08:10:57)
batChange: 2021-01-17 12:17:37 (oldBat: low since 2021-01-10 04:48:18)
reparatur: 2021-01-19 14:13:40 (configtaster defekt)
batChange: 2021-05-21 08:15:39 (oldBat: low since 2021-05-13 16:17:59)
batChange: 2021-07-04 11:18:14 (oldBat: low since 2021-06-22 13:04:10)
batChange: 2021-09-13 08:42:54 (oldBat: low since 2021-08-29 07:28:23 dead)
batChange: 2021-11-28 01:07:49 (oldBat: low since 2021-11-14 19:37:08 dead)
event-min-interval batVoltage:86400,battery:86400
event-on-change-reading .*
event-on-update-reading rssiLog
expert defReg,allReg,rawReg,templ
firmware 0.15
forceEvents 1
model HB-UW-Sen-THPL-I
peerIDs 00000000
room 65_Flur.OG,70_Garten
rssiLog 1
serialNr UWS3621504
timestamp-on-change-reading .*
userReadings measured-temp:temperature:.* {
return ReadingsVal($name,"temperature",0);
},
humidityAbsolut:(temperature|humidity):.* {
return AbsoluteFeuchte(ReadingsVal($name,"temperature",0),ReadingsVal($name,"humidity",0));
}
noch chaotischer ist ein getconfig.
da werden immer wieder 8102 acks gesendet, anstatt normaler 8002 acks
2022.01.23 12:16:09.648 4 : CUL_Parse: cul868 A 14 83 A270 6869B6 1ACE1F 00A4382ACB000086690A2830 -50
2022.01.23 12:16:09.649 5 : cul868: dispatch A1483A2706869B61ACE1F00A4382ACB000086690A28::-50:cul868
2022.01.23 12:16:09.666 3 : n_iodev return value: HASH(0x7bf44f8)
2022.01.23 12:16:09.682 5 : cul868 sending As0A8381021ACE1F6869B600
2022.01.23 12:16:09.683 5 : CUL 6869B6 dly:65ms
2022.01.23 12:16:09.750 5 : DevIo_SimpleWrite cul868: As0A8381021ACE1F6869B600
2022.01.23 12:16:09.753 5 : cul868 sending As1084A0011ACE1F6869B600040000000000
2022.01.23 12:16:09.754 5 : CUL 6869B6 dly:54ms
2022.01.23 12:16:09.810 5 : DevIo_SimpleWrite cul868: As1084A0011ACE1F6869B600040000000000
2022.01.23 12:16:09.814 5 : cul868 sending As0A8381021ACE1F6869B600
2022.01.23 12:16:09.815 5 : CUL 6869B6 dly:53ms
2022.01.23 12:16:09.870 5 : DevIo_SimpleWrite cul868: As0A8381021ACE1F6869B600
2022.01.23 12:16:09.911 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 2D msg: 83 A2 70 6869B6 1ACE1F 00A4382ACB000086690A28
2022.01.23 12:16:09.915 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 4D msg: FA 86 70 206487 000000 005E46
2022.01.23 12:16:09.950 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: 83 81 02 1ACE1F 6869B6 00
2022.01.23 12:16:09.955 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: 84 A0 01 1ACE1F 6869B6 00040000000000
2022.01.23 12:16:09.959 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 2D msg: 84 A0 10 6869B6 1ACE1F 02010005240A1A0BCE0C1F121814032400
2022.01.23 12:16:09.963 5 : cul868 sending As0A8481021ACE1F6869B600
2022.01.23 12:16:09.965 5 : DevIo_SimpleWrite cul868: As0A8481021ACE1F6869B600
2022.01.23 12:16:09.969 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: 83 81 02 1ACE1F 6869B6 00
2022.01.23 12:16:09.974 0 : HMLAN_Parse: hmlan1 R:E6869B6 stat:0000 t:92D85742 d:FF r:FFDA m:83 A270 6869B6 1ACE1F 00A4382ACB000086690A28
2022.01.23 12:16:09.977 5 : cul868 sending As0A8381021ACE1F6869B600
2022.01.23 12:16:09.978 5 : CUL 6869B6 dly:46ms
2022.01.23 12:16:10.025 5 : DevIo_SimpleWrite cul868: As0A8381021ACE1F6869B600
2022.01.23 12:16:10.029 5 : cul868 sending As0A8381021ACE1F6869B600
2022.01.23 12:16:10.030 5 : CUL 6869B6 dly:54ms
2022.01.23 12:16:10.085 5 : DevIo_SimpleWrite cul868: As0A8381021ACE1F6869B600
2022.01.23 12:16:10.115 0 : HMLAN_Parse: hmlan1 R:E206487 stat:0000 t:92D85785 d:FF r:FFAF m:FA 8670 206487 000000 005E46
2022.01.23 12:16:10.143 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:92D857C7 d:FF r:FFD5 m:83 8102 1ACE1F 6869B6 00
2022.01.23 12:16:10.146 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:92D85808 d:FF r:FFD5 m:84 A001 1ACE1F 6869B6 00040000000000
2022.01.23 12:16:10.150 0 : HMLAN_Parse: hmlan1 R:E6869B6 stat:0000 t:92D8582C d:FF r:FFDA m:84 A010 6869B6 1ACE1F 02010005240A1A0BCE0C1F121814032400
2022.01.23 12:16:10.154 5 : cul868 sending As0A8481021ACE1F6869B600
2022.01.23 12:16:10.156 5 : DevIo_SimpleWrite cul868: As0A8481021ACE1F6869B600
2022.01.23 12:16:10.160 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:92D85845 d:FF r:FFD5 m:83 8102 1ACE1F 6869B6 00
2022.01.23 12:16:10.166 4 : CUL_Parse: cul868 A 0C FA 8670 206487 000000 005E46EF -82.5
2022.01.23 12:16:10.168 5 : cul868: dispatch A0CFA8670206487000000005E46::-82.5:cul868
2022.01.23 12:16:10.305 4 : CUL_Parse: cul868 A 1A 84 A010 6869B6 1ACE1F 02010005240A1A0BCE0C1F12181403240031 -49.5
2022.01.23 12:16:10.307 5 : cul868: dispatch A1A84A0106869B61ACE1F02010005240A1A0BCE0C1F121814032400::-49.5:cul868
2022.01.23 12:16:10.340 4 : CUL_Parse: cul868 A 0E 85 A010 6869B6 1ACE1F 02254E000031 -49.5
2022.01.23 12:16:10.343 5 : cul868: dispatch A0E85A0106869B61ACE1F02254E0000::-49.5:cul868
2022.01.23 12:16:10.352 5 : cul868 sending As0A8581021ACE1F6869B600
2022.01.23 12:16:10.353 5 : CUL 6869B6 dly:53ms
2022.01.23 12:16:10.407 5 : DevIo_SimpleWrite cul868: As0A8581021ACE1F6869B600
2022.01.23 12:16:10.411 5 : cul868 sending As0B95A0011ACE1F6869B60103
2022.01.23 12:16:10.412 5 : CUL 6869B6 dly:54ms
2022.01.23 12:16:10.467 5 : DevIo_SimpleWrite cul868: As0B95A0011ACE1F6869B60103
2022.01.23 12:16:10.500 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 2D msg: 85 A0 10 6869B6 1ACE1F 02254E0000
2022.01.23 12:16:10.505 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: 84 81 02 1ACE1F 6869B6 00
2022.01.23 12:16:10.511 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: 83 81 02 1ACE1F 6869B6 00
2022.01.23 12:16:10.515 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: 83 81 02 1ACE1F 6869B6 00
2022.01.23 12:16:10.519 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: 84 81 02 1ACE1F 6869B6 00
2022.01.23 12:16:10.524 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: 85 81 02 1ACE1F 6869B6 00
2022.01.23 12:16:10.529 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: 95 A0 01 1ACE1F 6869B6 0103
2022.01.23 12:16:10.532 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:92D8589D d:FF r:FFD5 m:84 8102 1ACE1F 6869B6 00
2022.01.23 12:16:10.537 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:92D858DB d:FF r:FFD5 m:83 8102 1ACE1F 6869B6 00
2022.01.23 12:16:10.541 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:92D85916 d:FF r:FFD5 m:83 8102 1ACE1F 6869B6 00
2022.01.23 12:16:10.544 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:92D8595D d:FF r:FFD5 m:84 8102 1ACE1F 6869B6 00
2022.01.23 12:16:10.549 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:92D85A59 d:FF r:FFD5 m:85 8102 1ACE1F 6869B6 00
2022.01.23 12:16:10.553 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:92D85A95 d:FF r:FFD5 m:95 A001 1ACE1F 6869B6 0103
meine cul-kommunikation "schnurrt" wieder. :)
hier das diff zur aktuellen version von @Beta-User von hier (https://forum.fhem.de/index.php/topic,125378.msg1202403.html#msg1202403)
@@ -2162,7 +2162,7 @@ sub CUL_HM_Parse($$) {#########################################################
&& ( $mh{devH}->{IODev}->{helper}{VTS_LZYCFG} # for TSCUL VTS0.34 up, wakeup Ack automatically sent
|| $mh{devH}->{IODev}->{TYPE} =~ m/^(?:HMLAN|HMUARTLGW)$/s ) ); # also for HMLAN/HMUARTLGW?
$flr = sprintf("%02X", hex($flr)|0x01);
$m =~ s/^(..)../$1$flr/s; #noansi: wakeup replacement
#$m =~ s/^(..)../$1$flr/s; #frank: https://forum.fhem.de/index.php/topic,125667.msg1202867.html#msg1202867
}
CUL_HM_SndCmd($h, $m);
}
@@ -3483,8 +3483,18 @@ sub CUL_HM_Parse($$) {#########################################################
push @evtEt,[$mh{shash},1,"SDunknownMsg:$mh{p}"] if(!@evtEt);
}
if($ioId eq $mh{dst} && ($mh{mFlgH}&0x20)){ # Send Ack/Nack
push @ack,$mh{shash},$mh{mNo}."8002".$ioId.$mh{src}.($mh{mFlg}.$mh{mTp} eq "A001" ? "80":"00");
if($ioId eq $mh{dst} && ($mh{mFlgH}&0x20)){ # Send Ack/Nack #noansi not if wakeup is sent => #frank: https://forum.fhem.de/index.php/topic,125667.msg1202867.html#msg1202867
#push @ack,$mh{shash},$mh{mNo}."8002".$ioId.$mh{src}.($mh{mFlg}.$mh{mTp} eq "A001" ? "80":"00");
if ($mh{mFlg}.$mh{mTp} eq 'A001') {
push @ack,$mh{shash},$mh{mNo}.'8002'.$ioId.$mh{src}.'80';
}
else {
push @ack,$mh{shash},$mh{mNo}.'8002'.$ioId.$mh{src}.'00' #noansi: additional CUL ACK
if ( $ioId eq $mh{dst}
&& !$mh{wakupAck} #noansi not if wakeup is sent => #frank: https://forum.fhem.de/index.php/topic,125667.msg1202867.html#msg1202867
&& !$mh{devH}->{IODev}->{helper}{VTS_ACK} # for TSCUL VTS0.17 up
&& $mh{devH}->{IODev}->{TYPE} !~ m/^(?:HMLAN|HMUARTLGW)$/s ); #noansi: additional CUL ACK
}
}
}
elsif($mh{st} eq "threeStateSensor") { ######################################
@@ -3513,6 +3523,7 @@ sub CUL_HM_Parse($$) {#########################################################
push @evtEt,[$mh{devH},1,"battery:". ($err?"low" :"ok" )];
push @ack,$mh{shash},$mh{mNo}."8002".$mh{dst}.$mh{src}."00"
if ( $ioId eq $mh{dst}
&& !$mh{wakupAck} #noansi not if wakeup is sent => #frank: https://forum.fhem.de/index.php/topic,125667.msg1202867.html#msg1202867
&& !$mh{devH}->{IODev}->{helper}{VTS_ACK}
&& $mh{devH}->{IODev}->{TYPE} !~ m/^(HMLAN|HMUARTLGW)$/); #noansi: additional CUL ACK
}
@@ -3671,7 +3682,8 @@ sub CUL_HM_Parse($$) {#########################################################
elsif($ioId eq $mh{dst}){# if fhem is destination check if we need to react
if( $mh{mTp} =~ m/^4./ #Push Button event
&& !$mh{AckDone} #noansi: allready done device specific
&& ($mh{mFlgH} & 0x20)){ #response required Flag
&& ($mh{mFlgH} & 0x20) #response required Flag
&& !$mh{wakupAck}){ #noansi not if wakeup is sent => #frank: https://forum.fhem.de/index.php/topic,125667.msg1202867.html#msg1202867
# fhem CUL shall ack a button press
if ($mh{md} =~ m/^(HM-SEC-SC.*|ROTO_ZEL-STG-RM-FFK)$/){# SCs - depending on FW version - do not accept ACK only. Especially if peered
push @ack,$mh{shash},$mh{mNo}."8002".$mh{dst}.$mh{src}."0101".((hex($mI[0])&1)?"C8":"00")."00";
@@ -3689,6 +3701,7 @@ sub CUL_HM_Parse($$) {#########################################################
push @ack,$mh{shash}, $mh{mNo}."8002".$ioId.$mh{src}."00"
if( ($ioId eq $mh{dst}) #are we adressee
&& ($mh{mFlgH} & 0x20) #response required Flag
&& !$mh{wakupAck} #noansi not if wakeup is sent => #frank: https://forum.fhem.de/index.php/topic,125667.msg1202867.html#msg1202867
&& @evtEt #only ack if we identified it
&& (!scalar(@ack)) #sender requested ACK
);
@@ -3719,7 +3732,7 @@ sub CUL_HM_Parse($$) {#########################################################
&& ( $mh{devH}->{IODev}->{helper}{VTS_LZYCFG} # for TSCUL VTS0.34 up, wakeup Ack automatically sent
|| $mh{devH}->{IODev}->{TYPE} =~ m/^(?:HMLAN|HMUARTLGW)$/s ) ); # also for HMLAN/HMUARTLGW?
$flr = sprintf("%02X", hex($flr)|0x01);
$m =~ s/^(..)../$1$flr/s; #noansi: wakeup replacement
#$m =~ s/^(..)../$1$flr/s; #frank: https://forum.fhem.de/index.php/topic,125667.msg1202867.html#msg1202867
}
CUL_HM_SndCmd($h, $m);
}
@@ -3769,6 +3782,7 @@ sub CUL_HM_parseCommon(@){#####################################################
}
$devHlpr->{prt}{sleeping} = 0;
CUL_HM_ProcessCmdStack($mhp->{devH});
$mhp->{wakupAck} = 1; #noansi not if wakeup is sent => #frank: https://forum.fhem.de/index.php/topic,125667.msg1202867.html#msg1202867
}
}
$devHlpr->{prt}{sleeping} = 1 if (!$devHlpr->{prt}{sProc}); # set back to sleeping with next trigger, if nothing to do
@@ -3782,6 +3796,7 @@ sub CUL_HM_parseCommon(@){#####################################################
CUL_HM_SndCmd($mhp->{devH}, $mhp->{mNo}.'8102'.CUL_HM_IoId($mhp->{devH}).$mhp->{src}.'00'); #noansi: Ack with wakeup bit set for CUL
}
CUL_HM_ProcessCmdStack($mhp->{devH});
$mhp->{wakupAck} = 1; #noansi not if wakeup is sent => #frank: https://forum.fhem.de/index.php/topic,125667.msg1202867.html#msg1202867
}
}
}
- 6 änderungen ({wakupAck}) verhindern die zusätzlichen acks aus dem ersten post.
hier habe ich alle vorkommen von {wakupAck} aus der version von noansi eingefügt => https://forum.fhem.de/index.php/topic,121139.msg1158983.html#msg1158983 (https://forum.fhem.de/index.php/topic,121139.msg1158983.html#msg1158983) - die restlichen 2 änderungen verhindern die eingebaute umwandlung normaler acks (8002) in wakeup-acks (8102).
den grund dieser eingebauten umwandlung habe ich noch nicht verstanden.
getestet habe ich bisher 3 wakeup devices (den homebrew th-sensor von dirk, hm-cc-tc und hm-cc-vd)
ein regset mit automatischem getconfig auf den th-sensor sieht jetzt wie folgt (perfekt) aus:
2022.01.26 14:22:24.838 3 : CUL_HM set Wetter.Sued regSet exec transmDevTryMax 2
2022.01.26 14:22:24.875 3 : HMinfo hminfo get:configCheck :-f,^(Wetter.Sued|Wetter.Sued)$
2022.01.26 14:23:50.842 4 : CUL_Parse: cul868 A 14 D5 A270 6869B6 1ACE1F 00A2372ACB000038D809C430 -50
2022.01.26 14:23:50.844 5 : cul868: dispatch A14D5A2706869B61ACE1F00A2372ACB000038D809C4::-50:cul868
2022.01.26 14:23:50.847 3 : CUL_HM set Wetter.Sued getConfig noArg
2022.01.26 14:23:50.869 3 : n_iodev return value: HASH(0x7ce6258)
2022.01.26 14:23:50.883 5 : cul868 sending As0AD581021ACE1F6869B600
2022.01.26 14:23:50.885 5 : CUL 6869B6 dly:58ms
2022.01.26 14:23:50.944 5 : DevIo_SimpleWrite cul868: As0AD581021ACE1F6869B600
2022.01.26 14:23:50.947 5 : cul868 sending As10D6A0011ACE1F6869B600050000000000
2022.01.26 14:23:50.949 5 : CUL 6869B6 dly:54ms
2022.01.26 14:23:51.004 5 : DevIo_SimpleWrite cul868: As10D6A0011ACE1F6869B600050000000000
2022.01.26 14:23:51.044 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 2E msg: D5 A2 70 6869B6 1ACE1F 00A2372ACB000038D809C4
2022.01.26 14:23:51.048 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: D5 81 02 1ACE1F 6869B6 00
2022.01.26 14:23:51.053 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: D6 A0 01 1ACE1F 6869B6 00050000000000
2022.01.26 14:23:51.057 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:0AD0E050 d:FF r:FFD5 m:D5 8102 1ACE1F 6869B6 00
2022.01.26 14:23:51.061 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:0AD0E091 d:FF r:FFD5 m:D6 A001 1ACE1F 6869B6 00050000000000
2022.01.26 14:23:51.067 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 2E msg: D6 80 02 6869B6 1ACE1F 00
2022.01.26 14:23:51.070 5 : cul868 sending As0DD7A0011ACE1F6869B600081402
2022.01.26 14:23:51.071 5 : DevIo_SimpleWrite cul868: As0DD7A0011ACE1F6869B600081402
2022.01.26 14:23:51.076 4 : CUL_Parse: cul868 A 0A D6 8002 6869B6 1ACE1F 0030 -50
2022.01.26 14:23:51.077 5 : cul868: dispatch A0AD680026869B61ACE1F00::-50:cul868
2022.01.26 14:23:51.171 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: D7 A0 01 1ACE1F 6869B6 00081402
2022.01.26 14:23:51.177 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 2E msg: D7 80 02 6869B6 1ACE1F 00
2022.01.26 14:23:51.180 5 : cul868 sending As0BD8A0011ACE1F6869B60006
2022.01.26 14:23:51.181 5 : DevIo_SimpleWrite cul868: As0BD8A0011ACE1F6869B60006
2022.01.26 14:23:51.186 4 : CUL_Parse: cul868 A 0A D7 8002 6869B6 1ACE1F 0030 -50
2022.01.26 14:23:51.187 5 : cul868: dispatch A0AD780026869B61ACE1F00::-50:cul868
2022.01.26 14:23:51.191 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:0AD0E0D1 d:FF r:FFD5 m:D7 A001 1ACE1F 6869B6 00081402
2022.01.26 14:23:51.194 0 : HMLAN_Parse: hmlan1 R:E6869B6 stat:0000 t:0AD0E0E8 d:FF r:FFD9 m:D7 8002 6869B6 1ACE1F 00
2022.01.26 14:23:51.214 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: D8 A0 01 1ACE1F 6869B6 0006
2022.01.26 14:23:51.222 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:0AD0E13E d:FF r:FFD5 m:D8 A001 1ACE1F 6869B6 0006
2022.01.26 14:23:51.250 4 : CUL_Parse: cul868 A 0A D8 8002 6869B6 1ACE1F 0030 -50
2022.01.26 14:23:51.251 5 : cul868: dispatch A0AD880026869B61ACE1F00::-50:cul868
2022.01.26 14:23:51.255 5 : cul868 sending As10D9A0011ACE1F6869B600040000000000
2022.01.26 14:23:51.256 5 : DevIo_SimpleWrite cul868: As10D9A0011ACE1F6869B600040000000000
2022.01.26 14:23:51.262 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 2E msg: D8 80 02 6869B6 1ACE1F 00
2022.01.26 14:23:51.266 0 : HMLAN_Parse: hmlan1 R:E6869B6 stat:0000 t:0AD0E165 d:FF r:FFDA m:D8 8002 6869B6 1ACE1F 00
2022.01.26 14:23:51.294 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: D9 A0 01 1ACE1F 6869B6 00040000000000
2022.01.26 14:23:51.300 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:0AD0E18C d:FF r:FFD5 m:D9 A001 1ACE1F 6869B6 00040000000000
2022.01.26 14:23:51.979 4 : CUL_Parse: cul868 A 1A D9 A010 6869B6 1ACE1F 02010005240A1A0BCE0C1F12181402240030 -50
2022.01.26 14:23:51.980 5 : cul868: dispatch A1AD9A0106869B61ACE1F02010005240A1A0BCE0C1F121814022400::-50:cul868
2022.01.26 14:23:51.984 5 : cul868 sending As0AD980021ACE1F6869B600
2022.01.26 14:23:51.985 5 : CUL 6869B6 dly:94ms
2022.01.26 14:23:52.081 5 : DevIo_SimpleWrite cul868: As0AD980021ACE1F6869B600
2022.01.26 14:23:52.087 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 2E msg: D9 A0 10 6869B6 1ACE1F 02010005240A1A0BCE0C1F121814022400
2022.01.26 14:23:52.091 0 : HMLAN_Parse: hmlan1 R:E6869B6 stat:0000 t:0AD0E43D d:FF r:FFDA m:D9 A010 6869B6 1ACE1F 02010005240A1A0BCE0C1F121814022400
2022.01.26 14:23:52.113 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: D9 80 02 1ACE1F 6869B6 00
2022.01.26 14:23:52.120 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:0AD0E4C1 d:FF r:FFD5 m:D9 8002 1ACE1F 6869B6 00
2022.01.26 14:23:52.136 4 : CUL_Parse: cul868 A 0E DA A010 6869B6 1ACE1F 02254E00002F -50.5
2022.01.26 14:23:52.138 5 : cul868: dispatch A0EDAA0106869B61ACE1F02254E0000::-50.5:cul868
2022.01.26 14:23:52.145 5 : cul868 sending As0ADA80021ACE1F6869B600
2022.01.26 14:23:52.146 5 : DevIo_SimpleWrite cul868: As0ADA80021ACE1F6869B600
2022.01.26 14:23:52.149 5 : cul868 sending As0BEAA0011ACE1F6869B60103
2022.01.26 14:23:52.149 5 : CUL 6869B6 dly:56ms
2022.01.26 14:23:52.207 5 : DevIo_SimpleWrite cul868: As0BEAA0011ACE1F6869B60103
2022.01.26 14:23:52.240 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 2E msg: DA A0 10 6869B6 1ACE1F 02254E0000
2022.01.26 14:23:52.244 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: DA 80 02 1ACE1F 6869B6 00
2022.01.26 14:23:52.249 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: EA A0 01 1ACE1F 6869B6 0103
2022.01.26 14:23:52.253 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:0AD0E501 d:FF r:FFD5 m:DA 8002 1ACE1F 6869B6 00
2022.01.26 14:23:52.257 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:0AD0E53F d:FF r:FFD5 m:EA A001 1ACE1F 6869B6 0103
2022.01.26 14:23:52.263 4 : CUL_Parse: cul868 A 0E EA A010 6869B6 1ACE1F 010000000030 -50
2022.01.26 14:23:52.264 5 : cul868: dispatch A0EEAA0106869B61ACE1F0100000000::-50:cul868
2022.01.26 14:23:52.269 5 : cul868 sending As0AEA80021ACE1F6869B600
2022.01.26 14:23:52.270 5 : DevIo_SimpleWrite cul868: As0AEA80021ACE1F6869B600
2022.01.26 14:23:52.300 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 2E msg: EA A0 10 6869B6 1ACE1F 0100000000
2022.01.26 14:23:52.304 0 : HMLAN_Parse: hmlan1 R:E6869B6 stat:0000 t:0AD0E55A d:FF r:FFD9 m:EA A010 6869B6 1ACE1F 0100000000
2022.01.26 14:23:52.330 0 : HMUARTLGW hmuart1 recv: 01 05 00 00 11 msg: EA 80 02 1ACE1F 6869B6 00
2022.01.26 14:23:52.335 0 : HMLAN_Parse: hmlan1 R:E1ACE1F stat:0000 t:0AD0E57E d:FF r:FFD5 m:EA 8002 1ACE1F 6869B6 00
damit mir die version nicht abhanden kommt, hänge ich sie auch mal komplett hier an.
edit: datei entfernt, neue version im nächsten post
edit:
ich habe diese "symptom-bekämpfung" wieder ausgebaut und nun das problem hoffentlich an der "wurzel" gepatcht:
siehe https://forum.fhem.de/index.php/topic,126118.0.html (https://forum.fhem.de/index.php/topic,126118.0.html)
die neue gepatchte 10_cul_hm.pm ist im nächsten post zu finden.
hier noch ein zusätzlicher patch, der verhindert, dass ein hm-cc-vd trotz perfekter kommunikation einschläft.
das hat mit diesem thema aber nichts zu tun.
@@ -8518,11 +8518,12 @@ sub CUL_HM_respPendTout($) {
# commandstack will be executed when device wakes up itself
}
elsif ($pHash->{try}){ #send try failed - revert, wait for wakeup
# device might still be busy with writing flash or similar
# we have to wait for next wakeup
- unshift (@{$hash->{cmdStack}}, "++".substr($pHash->{rspWait}{cmd},6));
+ unshift (@{$hash->{cmdStack}}, "++".substr($pHash->{rspWait}{cmd},6))
+ if (substr($pHash->{rspWait}{cmd},8,2) ne "58"); #noansi: do not repeat TC duty cycle => #frank: https://forum.fhem.de/index.php/topic,125667.msg1202867.html#msg1202867
delete $pHash->{try};
CUL_HM_respPendRm($hash);# do not count problems with wakeup try, just wait
CUL_HM_protState($hash,"CMDs_pending");
}
elsif (!CUL_HM_operIObyIOHash($hash->{IODev})){#IO errors
dieser erfolgreiche hack von noansi scheint mir aber nur die symptome zu "bekämpfen".
noch schöner wäre natürlich die fehlerbehaftete nutzung von {prt}{try} zu verbessern.
so wird nämlich:
1. ein echter protokoll fehler nicht erfasst ;)
2. es gibt eventuell noch weitere probleme mit anderen devices in anderen situationen.
Danke für's Weiterforschen.
Teste auch (allerdings nicht mit großer Detailtiefe) mit, bisher keine Auffälligkeiten mit den Versionen von gestern bzw. der davor.
An alle bisherigen "patches"-Mitleser und "Mittester": Es wäre ggf. hilfreich, wenn wieder ein paar Leute vorab mit testen würden, das erleichtert ggf. die Entscheidungsfindung bei martinp876, ob das übernommen werden kann...
Anm. an frank: version liefert grade "$Id: 10_CUL_HM.pm 25298 2022-01-21 Beta-User". Bei den bisherigen Aktionen hatte ich dann immer das Datum (und ggf. den "Letztverantwortlichen") angepaßt, damit in etwa zu erkennen war, welche svn-Basis und welcher (gesamt-) Änderungsstand). Wäre evtl. auch hier hilfreich...
hier noch eine verbesserung des letzten patches.
die angehängte cul_hm nun auch mit "angepasster" version.
Zitat von: frank am 28 Januar 2022, 12:25:35
edit:
ich habe diese "symptom-bekämpfung" wieder ausgebaut und nun das problem hoffentlich an der "wurzel" gepatcht:
siehe https://forum.fhem.de/index.php/topic,126118.0.html (https://forum.fhem.de/index.php/topic,126118.0.html)