Hallo zusammen,
ich erhalte ein ungewöhnliches Verhalten, wenn ich bei folgendem Homematic-Device (der Name lautet TH.Kuhlmannweg8 - gilt auch für andere Homematic-Devices) per raw-Definition ändern will:
HMid DEF already used by TH.Kuhlmannweg8
Ein list des Devices:
Internals:
CFGFN ./FHEM/HomematicAktorenSensoren.cfg
DEF 20E202
FUUID 5c430dca-f33f-b139-def6-a6cfeb5b0aaaae7c
HM_CFG_LAN_Adapter_MSGCNT 569
HM_CFG_LAN_Adapter_RAWMSG E20E202,0000,715E9DE9,FF,FFC3,F6867020E20200000000C852
HM_CFG_LAN_Adapter_RSSI -61
HM_CFG_LAN_Adapter_TIME 2021-09-26 10:57:33
IODev myHmUARTLGW1
LASTInputDev myHmUARTLGW1
MSGCNT 1696
NAME TH.Kuhlmannweg8
NR 689
NTFY_ORDER 50-TH.Kuhlmannweg8
STATE T<span style='color:black'>19<span style="vertical-align: +4px; font-size: 75%;">9</span></span> H82<span style='vertical-align: +4px; font-size: 75%;'>%</span> D16<span style="vertical-align: +4px; font-size: 75%;">8</span><br/><div style='vertical-align: middle; font-size: 85%'>2021-09-26 10:57</div>
TYPE CUL_HM
chanNo 01
disableNotifyFn 1
lastMsg No:F6 - t:70 s:20E202 d:000000 00C852
myHmUARTLGW1_MSGCNT 572
myHmUARTLGW1_RAWMSG 05000040F6867020E20200000000C852
myHmUARTLGW1_RSSI -64
myHmUARTLGW1_TIME 2021-09-26 10:57:33
myHmUARTLGW2_MSGCNT 555
myHmUARTLGW2_RAWMSG 0500004DF6867020E20200000000C852
myHmUARTLGW2_RSSI -77
myHmUARTLGW2_TIME 2021-09-26 10:57:33
protLastRcv 2021-09-26 10:57:33
protRcv 572 last_at:2021-09-26 10:57:33
rssi_at_HM_CFG_LAN_Adapter cnt:569 min:-67 max:-58 avg:-61.44 lst:-61
rssi_at_myHmUARTLGW1 cnt:572 min:-85 max:-59 avg:-66.05 lst:-64
rssi_at_myHmUARTLGW2 cnt:555 min:-96 max:-70 avg:-78.69 lst:-77
READINGS:
2021-09-25 11:00:33 Activity alive
2020-12-20 13:43:08 CommandAccepted yes
2020-12-20 13:40:56 D-firmware 1.3
2020-12-20 13:40:56 D-serialNr KEQ0175095
2021-09-25 10:50:33 IODev myHmUARTLGW1
2020-12-20 13:43:09 PairedTo 0x257643
2020-05-01 22:55:22 R-burstRx off
2020-12-20 10:18:06 R-pairCentral 0x257643
2020-12-20 13:43:09 RegL_00. 00:00 01:00 02:01 05:00 0A:25 0B:76 0C:43 0F:00
2021-09-26 10:57:33 Zeitstempel 2021-09-26 10:57
2021-09-26 10:57:33 _temperature <span style='color:black'>19<span style="vertical-align: +4px; font-size: 75%;">9</span></span>
2021-09-26 10:57:33 battery ok
2021-09-25 09:24:53 cfgState ok
2020-12-20 13:43:09 commState CMDs_done
2021-09-26 10:57:33 dewpoint 16.8
2021-09-26 10:57:33 f_dewpoint 16<span style="vertical-align: +4px; font-size: 75%;">8</span>
2021-09-26 10:57:33 f_temperature 20<span style="vertical-align: +4px; font-size: 75%;"></span>
2021-09-26 10:57:33 humidity 82
2020-12-20 11:32:25 powerOn 2020-12-20 11:32:25
2020-12-20 11:32:25 recentStateType info
2021-09-26 10:57:33 state T: 20.0 H: 82
2021-09-26 10:57:33 temperature 20.0
helper:
HM_CMDNR 246
lastMsgTm 1632646653.03188
mId 003D
peerFriend
peerIDsState complete
peerOpt p:THSensor
regLst 0
rxType 140
supp_Pair_Rep 0
bm:
CUL_HM_Attr:
cnt 38
dmx -1000
dtot 0
dtotcnt 0
mTS 26.09. 09:23:52
max 0.00226306915283203
tot 0.0204992294311523
mAr:
set
TH.Kuhlmannweg8
userReadings
_temperature {if (ReadingsVal($name,'f_temperature','')<0) {"<span style='color:blue'><b>T ".ReadingsVal($name,'f_temperature','')."</b></span>"} else {"<span style='color:black'>T ".ReadingsVal($name,'f_temperature','')."</span>"}},
f_temperature {int(ReadingsVal($name,'temperature',''))<span style="vertical-align: +4px; font-size: 75%;">substr(abs(ReadingsVal($name,'temperature','')-int(ReadingsVal($name,'temperature',''))),2,1)</span>},
dewpoint:temperature.* {urDewpoint($name)},
f_dewpoint {int(ReadingsVal($name,'dewpoint','')).'<span style="vertical-align: +4px; font-size: 75%;">'.substr(abs(ReadingsVal($name,'dewpoint','')-int(ReadingsVal($name,'dewpoint',''))),2,1).'</span>'},
Zeitstempel {substr(ReadingsTimestamp($name,'state',''),0,16)}
CUL_HM_Define:
cnt 5
dmx -1000
dtot 0
dtotcnt 0
mTS 26.09. 09:50:58
max 0.00164699554443359
tot 0.00239205360412598
mAr:
HASH(0x55888e47abc0)
TH.Kuhlmannweg8 CUL_HM 20E202
CUL_HM_Get:
cnt 59
dmx -1000
dtot 0
dtotcnt 0
mTS 26.09. 09:50:24
max 0.00128412246704102
tot 0.0313303470611572
mAr:
HASH(0x55888e47abc0)
TH.Kuhlmannweg8
?
CUL_HM_Set:
cnt 916
dmx -1000
dtot 0
dtotcnt 0
mTS 26.09. 09:22:23
max 0.0128459930419922
tot 0.562243700027466
mAr:
HASH(0x55888e47abc0)
TH.Kuhlmannweg8
?
cmds:
TmplKey :no:1632559834.07817
TmplTs 1632559834.07817
cmdKey 1:1:0::TH.Kuhlmannweg8:003D:01:
cmdLst:
assignHmKey noArg
burstXmit 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|List7) [-peerChn-]
peerBulk -peer1,peer2,...- [({set}|unset)]
peerChan 0 -actChn- [({single})] [({set}|unset)] [actor|remote|both]
raw -data- [...]
regBulk -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
reset 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)]
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 0
raw 1
tpl 0
io:
flgs 0
newChn +20E202,00,00,00
nextSend 1632646493.18902
rxt 2
vccu VCCU
p:
20E202
00
00
00
prefIO:
myHmUARTLGW1
myHmUARTLGW2
mRssi:
mNo F6
io:
HM_CFG_LAN_Adapter:
-61
-61
myHmUARTLGW1:
-60
-60
myHmUARTLGW2:
-77
-77
peerIDsH:
00000000 broadcast
prt:
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
chn 1
dev 1
rssi:
at_HM_CFG_LAN_Adapter:
avg -61.4499121265378
cnt 569
lst -61
max -58
min -67
at_myHmUARTLGW1:
avg -66.0594405594407
cnt 572
lst -64
max -59
min -85
at_myHmUARTLGW2:
avg -78.6918918918919
cnt 555
lst -77
max -70
min -96
tmpl:
Attributes:
IOgrp VCCU:myHmUARTLGW1,myHmUARTLGW2
actCycle 000:10
actStatus alive
alias TH Kuhlmannweg 8
autoReadReg 5_readMissing
comment Fehler beim erfassen von StateFormat (Attribut) 10_CUL_HM (Version 24836):
https://forum.fhem.de/index.php/topic,122423.msg1171432.html#msg1171432
Abhilfe: Zeile 1261 z.B. so ändern:
return undef if (!$attrOpt || $attrOpt =~ m/^multiple|textField-/); # any value allowed
event-min-interval .*:110
event-on-change-reading state,temperature,humidity,dewpoint
expert defReg,rawReg
firmware 1.3
group Sensoren
icon temperature_humidity
model HM-WDS10-TH-O
peerIDs 00000000
room HomeHM,Heizung,Weather
serialNr KEQ0175095
stateFormat T[$name:_temperature] H[$name:humidity]<span style='vertical-align: +4px; font-size: 75%;'>%</span> D[$name:f_dewpoint]<br/><div style='vertical-align: middle; font-size: 85%'>[$name:Zeitstempel]</div>
subType THSensor
userReadings _temperature {if (ReadingsVal($name,'temperature','')<0) {"<span style='color:blue'><b>".ReadingsVal($name,'f_temperature','')."</b></span>"} else {"<span style='color:black'>".ReadingsVal($name,'f_temperature','')."</span>"}},
f_temperature {int(ReadingsVal($name,'temperature','')).'<span style="vertical-align: +4px; font-size: 75%;">'.substr(abs(round(ReadingsVal($name,'temperature','')-int(ReadingsVal($name,'temperature','')),2)),2,1).'</span>'},
dewpoint:temperature.* {urDewpoint($name)},
f_dewpoint {int(ReadingsVal($name,'dewpoint','')).'<span style="vertical-align: +4px; font-size: 75%;">'.substr(abs(round(ReadingsVal($name,'dewpoint','')-int(ReadingsVal($name,'dewpoint','')),2)),2,1).'</span>'},
Zeitstempel {substr(ReadingsTimestamp($name,'state',''),0,16)}
Ich bin etwas lost, da ich bei vielen anderen Devices die unterschiedlichsten raw-Definitionen gespeichert und damit geändert habe.
Viele Grüße Gisbert
Hallo Gisbert,
die Möglichkeit bei CUL_HM Geräten mit der kompletten Raw Def zu arbeiten hat martin quasi "rausgebaut". Ist schon ca. 2 Jahre so (https://forum.fhem.de/index.php/topic,103344.0.html).
Du kannst im Prinzip deine eigenen attribute ändern, bei allen anderen wird es "schwierig".
Gruß Otto
Hallo Otto,
besten Dank für die Info, dann ist es ein Feature und kein Bug ;D, und ich bin insoweit beruhigt.
Viele Grüße Gisbert