raw-Definition bei einem Homematic-Device

Begonnen von Gisbert, 26 September 2021, 10:59:28

Vorheriges Thema - Nächstes Thema

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Otto123

#1
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.

Du kannst im Prinzip deine eigenen attribute ändern, bei allen anderen wird es "schwierig".

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome