Routine optimieren die den Zeitstempel der Batteriestatus-Abfrage ermittelt

Begonnen von CottonIJo, 28 August 2020, 14:17:18

Vorheriges Thema - Nächstes Thema

CottonIJo

Hallo zusammen,

ich habe ein Problem mit der zyklischen Abfrage des Batteriestatus' einiger HM-Geräte.
Von meinen Homematic Geräten gibt es einige, die den Batteriestatus nur aktualisieren, wenn sie aktiv werden, das ist aber nicht bei jedem Fenster- bzw. Fenstergriffsensor der Fall.
Nun kommt es leider vor, dass die Geräte längere Zeit nicht aktiviert wurden und somit ein veralterter Batteriestatus "ok" im FTUI  angezeigt wird, die Batterie aber seit der letzten Meldung zwischenzeitlich schwach geworden ist.
Und das bekomme ich in so einem Fall dann im FTUI nicht mit.
Ich weiß, dass es die Funktionalität "actiondetector" und "actCycle" gibt, leider konnte ich noch keines dieser Geräte überzeugen sich ohne äußere Aktivierung selbstständig zu melden.
Also habe ich mir eine Funktion gebastelt die mir zumindest optisch singnalisiert, dass die letzte Prüfung des Batteriestatus länger als ein Tag zurückliegt.
Das funktioniert in der Form, dass ein "at" alle 15 Minuten den aktuellen- und den Batteriestatus-Zeitstempel holt und die Differenz berechnet. Ein DOIF schreibt dann in ein Dummy je nach Betrag der Differenz ein "ok" oder "failed". In Abhängigkeit von "ok" oder "failed" wird dann im FTUI eine Meldung eingeblendet.
Das Konstrukt funktioniert für ein Gerät ganz gut, nur habe ich gegenwärtig von allen HM-Geräten 13 die sich so verhalten.

Nun meine Frage (weil ich in Perl nicht so bewandert bin) kann man einen derartigen Ablauf so optimieren, dass ich die Funktion nicht 13mal (also für jedes Gerät individuell) programmieren muss?
Freue mich auf eure Vorschläge, eine Alternative wäre natürlich, dass über actCycle zu lösen aber wie muss ich was parametrieren damit ein "dead" Gerät aufgefordert wird seinen Batteriestatus zu melden?

P.S.: ich weiß, dass in einigen devices userReadings überflüssigerweise enthalten sind, sind halt Überbleibsel aus der Experimentierphase  ;)

Grüße Joachim

list vom "at"

Internals:
   CFGFN     
   COMMAND    []
   DEF        +*00:15 []
   FUUID      5f4648eb-f33f-8c2a-1399-3b15b0dbde12fbed
   NAME       TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff
   NR         16786
   NTM        14:20:39
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 14:20:39
   TIMESPEC   00:15
   TRIGGERTIME 1598617239.29906
   TRIGGERTIME_FMT 2020-08-28 14:20:39
   TYPE       at
   READINGS:
     2020-08-28 14:05:39   Batt_timestamp_Balkonzimmer_FensterGriff_Status 2020-08-28 12:52:42
     2020-08-28 14:05:39   Differenz       4376
     2020-08-28 14:05:39   Zeit1           1598616339
     2020-08-28 14:05:39   Zeit2           1598611963
     2020-08-28 14:05:39   state           Next: 14:20:39
Attributes:
   room       20_Dachgeschoss->Balkonzimmer
   userReadings Zeit1 {int(time())},
Zeit2 {time_str2num(ReadingsTimestamp("20_DG_Balkonzimmer_FensterGriff","Batt_timestamp_Balkonzimmer_FensterGriff",""))},
Differenz {ReadingsVal("TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff","Zeit1",0) - ReadingsVal("20_DG_Balkonzimmer_FensterGriff","Zeit2",0)},
Batt_timestamp_Balkonzimmer_FensterGriff_Status {ReadingsTimestamp("20_DG_Balkonzimmer_FensterGriff","battery","")}


list vom DOIF

Internals:
   CFGFN     
   DEF        ([TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff:Differenz]  >= 100000) (set 20_DG_Balkonzimmer_FensterGriff_TimeStamp_Status failed)
DOELSEIF
([TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff:Differenz] < 99999) (set 20_DG_Balkonzimmer_FensterGriff_TimeStamp_Status ok)
DOELSE
   FUUID      5f467dd4-f33f-8c2a-572e-e3faa7d8c6c4c64a
   MODEL      FHEM
   NAME       20_DG_DOIF_Balkonzimmer_FensterGriff_Timestamp_Status
   NOTIFYDEV  global,TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff
   NR         19830
   NTFY_ORDER 50-20_DG_DOIF_Balkonzimmer_FensterGriff_Timestamp_Status
   STATE      cmd_2
   TYPE       DOIF
   VERSION    22588 2020-08-12 19:25:15
   READINGS:
     2020-08-28 14:05:39   Device          TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff
     2020-08-28 14:05:39   cmd             2
     2020-08-28 14:05:39   cmd_event       TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff
     2020-08-28 14:05:39   cmd_nr          2
     2020-08-28 14:05:39   e_TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff_Differenz 4376
     2020-08-26 22:02:05   mode            enabled
     2020-08-28 14:05:39   state           cmd_2
   Regex:
     accu:
     cond:
       TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff:
         0:
           Differenz  ^TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff$:^Differenz:
         1:
           Differenz  ^TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff$:^Differenz:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff','Differenz')  >= 100000
     1          ::ReadingValDoIf($hash,'TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff','Differenz') < 99999
   do:
     0:
       0          set 20_DG_Balkonzimmer_FensterGriff_TimeStamp_Status failed
     1:
       0          set 20_DG_Balkonzimmer_FensterGriff_TimeStamp_Status ok
     2:
       0         
   helper:
     DEVFILTER  ^global$|^TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff$
     NOTIFYDEV  global|TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff
     event      Next: 14:20:39,Zeit1: 1598616339,Zeit2: 1598611963,Differenz: 4376,Batt_timestamp_Balkonzimmer_FensterGriff_Status: 2020-08-28 12:52:42
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff
     timerevent Next: 14:20:39,Zeit1: 1598616339,Zeit2: 1598611963,Differenz: 4376,Batt_timestamp_Balkonzimmer_FensterGriff_Status: 2020-08-28 12:52:42
     triggerDev TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff
     DOIF_eventa:
       cmd_nr: 2
       cmd: 2
       cmd_event: TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff
       cmd_2
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff
       state: cmd_2
     timerevents:
       Next: 14:20:39
       Zeit1: 1598616339
       Zeit2: 1598611963
       Differenz: 4376
       Batt_timestamp_Balkonzimmer_FensterGriff_Status: 2020-08-28 12:52:42
     timereventsState:
       state: Next: 14:20:39
       Zeit1: 1598616339
       Zeit2: 1598611963
       Differenz: 4376
       Batt_timestamp_Balkonzimmer_FensterGriff_Status: 2020-08-28 12:52:42
     triggerEvents:
       Next: 14:20:39
       Zeit1: 1598616339
       Zeit2: 1598611963
       Differenz: 4376
       Batt_timestamp_Balkonzimmer_FensterGriff_Status: 2020-08-28 12:52:42
     triggerEventsState:
       state: Next: 14:20:39
       Zeit1: 1598616339
       Zeit2: 1598611963
       Differenz: 4376
       Batt_timestamp_Balkonzimmer_FensterGriff_Status: 2020-08-28 12:52:42
   internals:
   readings:
     all         TimeDiff_BattTimestamp_Balkonzimmer_FensterGriff:Differenz
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       20_Dachgeschoss->Balkonzimmer


list vom dummy

Internals:
   CFGFN     
   FUUID      5f467bb2-f33f-8c2a-bf01-0e6ff43a4ca74826
   NAME       20_DG_Balkonzimmer_FensterGriff_TimeStamp_Status
   NR         19692
   STATE      ok
   TYPE       dummy
   READINGS:
     2020-08-28 14:05:39   Batt_timestamp_Balkonzimmer_FensterGriff_Status 2020-08-28 12:52:42
     2020-08-28 14:05:39   state           ok
Attributes:
   room       20_Dachgeschoss->Balkonzimmer
   setList    ok failed
   userReadings Batt_timestamp_Balkonzimmer_FensterGriff_Status {ReadingsTimestamp("20_DG_Balkonzimmer_FensterGriff","battery","")}
   webCmd     ok:failed


list vom device

Internals:
   DEF        614349
   FUUID      5ee505e3-f33f-8c2a-55cd-c79c3a3d2ed92567
   IODev      myHmUART
   LASTInputDev RM_HmUART_DG
   MSGCNT     21
   NAME       20_DG_Balkonzimmer_FensterGriff
   NOTIFYDEV  global
   NR         2551
   RM_HmUART_DG_MSGCNT 12
   RM_HmUART_DG_RAWMSG 0500003D03A2416143494C3DF4010200
   RM_HmUART_DG_RSSI -61
   RM_HmUART_DG_TIME 2020-08-28 12:52:43
   RM_HmUART_UG_MSGCNT 2
   RM_HmUART_UG_RAWMSG 0500005702A6106143494C3DF40601C800
   RM_HmUART_UG_RSSI -87
   RM_HmUART_UG_TIME 2020-08-28 12:49:39
   STATE      closed
   TYPE       CUL_HM
   chanNo     01
   lastMsg    No:03 - t:41 s:614349 d:4C3DF4 010200
   myHmUART_MSGCNT 7
   myHmUART_RAWMSG 0501005303A2416143494C3DF4010200
   myHmUART_RSSI -83
   myHmUART_TIME 2020-08-28 12:52:43
   protLastRcv 2020-08-28 12:52:42
   protRcv    7 last_at:2020-08-28 12:52:42
   protResnd  1 last_at:2020-08-26 13:29:01
   protSnd    16 last_at:2020-08-28 12:52:43
   protState  CMDs_done
   rssi_at_RM_HmUART_DG cnt:12 min:-71 max:-49 avg:-58.25 lst:-61
   rssi_at_RM_HmUART_UG cnt:2 min:-90 max:-87 avg:-88.5 lst:-87
   rssi_at_myHmUART cnt:7 min:-83 max:-72 avg:-75.57 lst:-83
   READINGS:
     2020-08-20 17:35:30   Activity        dead
     2020-08-28 12:52:43   Batt_timestamp_Balkonzimmer_FensterGriff 2020-08-28 12:52:42
     2020-07-01 17:02:58   CommandAccepted yes
     2020-06-14 13:38:56   D-firmware      2.4
     2020-06-14 13:38:56   D-serialNr      OEQ2049184
     2020-08-28 12:52:43   Datum_Batt_timestamp 2020-08-28 12
     2020-08-28 12:52:43   Differenz       0
     2020-08-26 13:28:56   PairedTo        0x4C3DF4
     2020-06-13 19:01:44   R-cyclicInfoMsg off
     2020-08-28 12:49:40   R-eventDlyTime  3 s
     2020-06-13 19:01:44   R-pairCentral   0x4C3DF4
     2020-06-13 19:01:44   R-sign          off
     2020-08-26 13:28:56   RegL_00.         00:00 02:01 09:00 0A:4C 0B:3D 0C:F4 10:01 14:06
     2020-08-28 12:49:40   RegL_01.         00:00 08:00 20:6C 21:03 22:64 30:06
     2020-08-28 12:52:43   Uhrzeit_Batt_timestamp 52
     2020-08-28 12:52:43   Zeit1           1598611963
     2020-08-28 12:52:43   Zeit2           1598611963
     2020-08-28 12:49:39   alive           yes
     2020-08-28 12:52:42   battery         ok
     2020-08-28 12:50:10   cfgState        updating
     2020-08-28 12:52:43   commState       CMDs_done
     2020-08-28 12:52:42   contact         closed (to VCCU)
     2020-08-26 13:28:55   powerOn         2020-08-26 13:28:55
     2020-08-28 12:49:39   recentStateType info
     2020-08-28 12:49:39   sabotageError   off
     2020-08-28 12:52:42   state           closed
     2020-08-28 12:52:42   trigger_cnt     2
   helper:
     HM_CMDNR   3
     PONtest    0
     cSnd       014C3DF461434901040000000001,014C3DF46143490103
     mId        0030
     peerFriend peerAct,peerVirt
     peerIDsRaw ,00000000
     peerOpt    4:threeStateSensor
     regLst     0,1,4p
     rxType     20
     supp_Pair_Rep 0
     ack:
     cmds:
       TmplKey    :no:1598370876.9687
       TmplTs     1598370876.9687
       cmdKey     1:1:0::20_DG_Balkonzimmer_FensterGriff:0030: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] ... [-PeerChannel-]
         peerBulk   -peer1,peer2,...- [set|unset]
         peerChan   -btnNumber- -actChn- ... single [set|unset] [actor|remote|both]
         peerSmart  -peerOpt-
         raw        data ...
         regBulk    -list-.-peerChn- -addr1:data1- -addr2:data2- ...
         regSet     [prep|exec] -regName- -value- ... [-peerChannel-]
         reset      noArg
         sign       [on|off]
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt    00_UG_Freizeitraum_Rollladen,00_UG_Technikraum_Rollladen,10_EG_Esszimmer_HzgThermostat_WindowRec,10_EG_Esszimmer_HzgThermostat_remote,10_EG_Esszimmer_Rollladen,10_EG_Esszimmer_Stehlampe_Sw,10_EG_Esszimmer_Wand_HzgThermostat_WindowRec,10_EG_Esszimmer_Wand_HzgThermostat_remote,10_EG_Flur_HzgThermostat_WindowRec,10_EG_Flur_HzgThermostat_remote,10_EG_Flur_Stehlampe_Sw,10_EG_Kueche_HzgThermostat_WindowRec,10_EG_Kueche_HzgThermostat_remote,10_EG_Kueche_Rollladen_Norden,10_EG_Kueche_Rollladen_Westen,10_EG_Toilette_HzgThermostat_WindowRec,10_EG_Toilette_HzgThermostat_remote,10_EG_Vorratsraum_HzgThermostat_WindowRec,10_EG_Vorratsraum_HzgThermostat_remote,10_EG_WohnZimmer_Rollladen_Erker_Nord,10_EG_WohnZimmer_Rollladen_Erker_Sued,10_EG_WohnZimmer_Rollladen_Westen,10_EG_Wohnzimmer_HzgThermostat_Erker_Nord_WindowRec,10_EG_Wohnzimmer_HzgThermostat_Erker_Nord_remote,10_EG_Wohnzimmer_HzgThermostat_Erker_Sued_WindowRec,10_EG_Wohnzimmer_HzgThermostat_Erker_Sued_remote,10_EG_Wohnzimmer_HzgThermostat_Westen_WindowRec,10_EG_Wohnzimmer_HzgThermostat_Westen_remote,10_EG_Wohnzimmer_Temp_Regler_WindowRec,10_EG_Wohnzimmer_Temp_Regler_remote,20_DG_AZ_Dad_HzgThermostat_Erker_WindowRec,20_DG_AZ_Dad_HzgThermostat_Erker_remote,20_DG_AZ_Dad_HzgThermostat_Westen_WindowRec,20_DG_AZ_Dad_HzgThermostat_Westen_remote,20_DG_AZ_Dad_Temp_Regler_WindowRec,20_DG_AZ_Dad_Temp_Regler_remote,20_DG_AZ_Mam_HzgThermostat_WindowRec,20_DG_AZ_Mam_HzgThermostat_remote,20_DG_Badezimmer_Handtuch_HzgThermostat_WindowRec,20_DG_Badezimmer_Handtuch_HzgThermostat_remote,20_DG_Badezimmer_HzgThermostat_WindowRec,20_DG_Badezimmer_HzgThermostat_remote
         tplChan   
         tplDel     
         tplPeer   
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +614349,00,00,00
       nextSend   1598611963.56089
       rxt        2
       vccu       VCCU
       p:
         614349
         00
         00
         00
       prefIO:
         myHmUART
     mRssi:
       mNo        03
       io:
         RM_HmUART_DG:
           -61
           -61
         RM_HmUART_UG:
         myHmUART:
           -81
           -81
     prt:
       bErr       0
       sProc      0
       sleeping   1
       rspWait:
     q:
       qReqConf   00
       qReqStat   
     regCollect:
     role:
       chn        1
       dev        1
     rpt:
       IO         RM_HmUART_DG
       flg        A
       ts         1598611963.32841
       ack:
         HASH(0x4497050)
         0380024C3DF461434900
     rssi:
       at_RM_HmUART_DG:
         avg        -58.25
         cnt        12
         lst        -61
         max        -49
         min        -71
       at_RM_HmUART_UG:
         avg        -88.5
         cnt        2
         lst        -87
         max        -87
         min        -90
       at_myHmUART:
         avg        -75.5714285714286
         cnt        7
         lst        -83
         max        -72
         min        -83
     shadowReg:
     tmpl:
Attributes:
   IODev      myHmUART
   IOgrp      VCCU:myHmUART
   actCycle   001:05
   autoReadReg 4_reqStatus
   devStateIcon tilted:fts_window_1w_tilt@yellow open:fts_window_1w_open_left_anchor@red closed:fts_window_1w_closed_left_anchor@green
   expert     defReg,rawReg
   firmware   2.4
   icon       fts_window_1w_closed_left_anchor
   model      HM-SEC-RHS
   peerIDs    00000000,
   room       20_Dachgeschoss->Balkonzimmer
   serialNr   OEQ2049184
   subType    threeStateSensor
   userReadings Batt_timestamp_Balkonzimmer_FensterGriff {ReadingsTimestamp("20_DG_Balkonzimmer_FensterGriff","battery","")},
Zeit1 {int(time())},
Zeit2 {time_str2num(ReadingsTimestamp("20_DG_Balkonzimmer_FensterGriff","Batt_timestamp_Balkonzimmer_FensterGriff",""))},
Differenz {ReadingsVal("20_DG_Balkonzimmer_FensterGriff","Zeit1",0) - ReadingsVal("20_DG_Balkonzimmer_FensterGriff","Zeit2",0)},
Datum_Batt_timestamp:Batt_timestamp_Balkonzimmer_FensterGriff.* {(split(":",ReadingsVal($NAME,"Batt_timestamp_Balkonzimmer_FensterGriff","00-00-00")))[0]},
Uhrzeit_Batt_timestamp:Batt_timestamp_Balkonzimmer_FensterGriff.* {(split(":",ReadingsVal($NAME,"Batt_timestamp_Balkonzimmer_FensterGriff","00:00:00")))[1]}


frank

alle homematic fk senden zyklisch den batteriezustand wenn du das register cyclicInfoMsg auf on setzt.
dann senden sie ca alle 24std den status.

dann kannst du deinen ganzen konstrukt entfernen.

ausserdem bietet hminfo entsprechende fehlererkennungen, zb batterie und action status.
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

MadMax-FHEM

Bei den meisten (ich glaube es gibt nur einen Batterie-Sensor) Homematic "Classic" (bidCos) Geräten auch Fenstersensoren lässt sich ein zyklisches Senden aktivieren:

Dazu das Register cyclicInfoMsg auf on setzen...

Ich frage nirgends Batteriestände ab...
...die werden alle geliefert.

(Außer bei ZWave, die wachen zwar auf und schicken auch Daten aber [soweit mir bekannt nicht von alleine] Batteriewerte)

Zur "Anzeige" und Benachrichtigung verwende ich das hier:

https://forum.fhem.de/index.php/topic,82637.msg747514.html#msg747514

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

CottonIJo

Hallo,
die Hinweise sind schon mal sehr hilfreich, ich weiß nur nicht ob sie bereits die finale Lösung sind.
@frank,
der Hinweis mit dem Register cyclicInfoMsg ist ein hilfreicher Hinweis.
Warum bei den Fensterkontakten das Register default "on" ist, bei den Türgriffkontakten dagegen default "off" weiß wohl nur elv aber wieder was dazu gelernt.
Ja, hminfo liefert mir eine ganze Reihe an Registern mit Informationen über die Stati der HM-devices, mir ist nur noch nicht klar wie ich die Info aus dem hm-register auf das betroffene device runter breche.
Ungünstigerweise habe ich noch Geräte (HM-RC-4-3, HM-MOD-EM-8) die kein cyclicInfoMsg haben.

@MadMax-FHEM,
den Fred muss ich erstmal durcharbeiten um zu verstehen wie die Abfrage/Auswertung funktioniert.

Grüße Joachim

frank

sicher, dass der em8 keine möglichkeit bietet?
was wird bei den devices unter "get regList" gezeigt?

hminfo bietet für battery 2 readings:
1. wenn ERR_battery existiert und nicht null ist, gibt es ein korrespondierendes internal iERR_battery_...., in dem die betreffenden devices gelistet sind.
2. I_sum_battery


mit HMinfoTools.js erhält man eine tabelle mit allen fehlerhaften devices.
https://forum.fhem.de/index.php/topic,112825.0.html
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

Hallo frank,

mit HMinfoTools bekommt hminfo für mich eine ganz neue Wertigkeit, das probiere ich mal aus.
Der Vollständigkeit halber noch reglist und list der "zickigen" devices

get reglist   [HM-MOD-EM-8]

list:         register | range              | peer     | description
   0: ledMode          |     literal        |          | LED mode options:off,on
   0: localResDis      |     literal        |          | local reset disable options:on,off
   0: lowBatLimitBA2   | 0.0 to 15V         |          | low batterie limit, step .1V
   0: pairCentral      |   0 to 16777215    |          | pairing to central
   0: transmDevTryMax  |   1 to 10          |          | max message re-transmit


list 00_UG_HzgKeller_Hzg_Umwaelzpumpe [HM-MOD-EM-8]

Internals:
   CFGFN      ./FHEM/include/fhem_untergeschoss.cfg
   DEF        667A04
   FUUID      5c587ad3-f33f-8c2a-8fb7-c69bbc6de57a0559
   IODev      myHmUART
   NAME       00_UG_HzgKeller_Hzg_Umwaelzpumpe
   NOTIFYDEV  global
   NR         354
   STATE      00_UG_HzgKeller_Hzg_Umwaelzpumpe_Btn_02 Long
   TYPE       CUL_HM
   channel_01 00_UG_HzgKeller_Hzg_Umwaelzpumpe_Btn_01
   channel_02 00_UG_HzgKeller_Hzg_Umwaelzpumpe_Btn_02
   channel_03 00_UG_HzgKeller_Hzg_Umwaelzpumpe_Btn_03
   channel_04 00_UG_HzgKeller_Hzg_Umwaelzpumpe_Btn_04
   channel_05 00_UG_HzgKeller_Hzg_Umwaelzpumpe_Btn_05
   channel_06 00_UG_HzgKeller_Hzg_Umwaelzpumpe_Btn_06
   channel_07 00_UG_HzgKeller_Hzg_Umwaelzpumpe_Btn_07
   channel_08 00_UG_HzgKeller_Hzg_Umwaelzpumpe_Btn_08
   READINGS:
     2020-08-28 18:25:27   Batt_timestamp_HzgKeller_Hzg_Umwaelzpumpe 2020-07-28 14:16:19
     2018-10-13 20:17:07   CommandAccepted yes
     2018-10-13 20:17:06   D-firmware      1.1
     2018-10-13 20:17:06   D-serialNr      PEQ0105622
     2019-01-13 20:57:17   Ende_Umwaelzpumpe_aktiv
     2018-10-13 20:16:52   PairedTo        0x4C3DF4
     2018-10-13 19:12:20   R-pairCentral   0x4C3DF4
     2018-10-13 20:16:52   RegL_00.        02:01 05:00 0A:4C 0B:3D 0C:F4 12:00 14:03 18:00  00:00
     2020-08-28 18:25:27   Time_Umlaufpumpe_aktiv
     2020-05-20 14:24:53   alive           yes
     2020-07-28 14:16:19   battery         ok
     2020-08-28 18:25:27   cfgState        ok
     2020-05-20 14:24:53   powerOn         2020-05-20 14:24:53
     2020-05-20 14:24:53   recentStateType info
     2020-07-28 14:16:19   state           00_UG_HzgKeller_Hzg_Umwaelzpumpe_Btn_02 Long
     2019-02-06 13:47:47   trigger         Long_210
     2019-02-06 13:47:47   trigger_cnt     210
   helper:
     HM_CMDNR   116
     cfgChkResult No regs found for:-ret--ret-00_UG_HzgKeller_Hzg_Umwaelzpumpe type:remote - -ret-list:peer register         :value-ret-   0:      ledMode          :off-ret-   0:      localResDis      :off-ret-   0:      lowBatLimitBA2   :0 V-ret-   0:      pairCentral      :0x4C3DF4-ret-   0:      transmDevTryMax  :3-ret-                       -ret-                       -ret-
     mId        00D9
     peerFriend
     peerOpt    -:remote
     regLst     0
     rxType     16
     cmds:
       TmplKey    :no:1598370865.65533
       TmplTs     1598370865.65533
       cmdKey     0:1:0::00_UG_HzgKeller_Hzg_Umwaelzpumpe:00D9: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] ... [-PeerChannel-]
         raw        data ...
         regBulk    -list-.-peerChn- -addr1:data1- -addr2:data2- ...
         regSet     [prep|exec] -regName- -value- ... [-peerChannel-]
         reset      noArg
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         unpair     noArg
       lst:
         condition  closed,open
         peer       
         peerOpt   
         tplChan   
         tplDel     
         tplPeer   
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +667A04,00,00,00
       rxt        2
       vccu       VCCU
       p:
         667A04
         00
         00
         00
       prefIO:
         myHmUART
     mRssi:
       mNo       
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
     tmpl:
   nb:
     cnt        2
Attributes:
   IODev      myHmUART
   IOgrp      VCCU:myHmUART
   autoReadReg 3_onChange
   event-on-update-reading .*
   expert     defReg,rawReg
   firmware   1.1
   icon       sani_pump
   model      HM-MOD-EM-8
   room       Hzg-Keller
   serialNr   PEQ0105622
   subType    remote
   userReadings Time_Umlaufpumpe_aktiv {ReadingsTimestamp("00_UG_HzgKeller_Hzg_Umwaelzpumpe","myHmUART_TIME","")},
Batt_timestamp_HzgKeller_Hzg_Umwaelzpumpe {ReadingsTimestamp("00_UG_HzgKeller_Hzg_Umwaelzpumpe","battery","")}
   webCmd     getConfig:clear msgEvents


get reglist [HM-RC-4-3]

list:         register | range              | peer     | description
0: pairCentral      |   0 to 16777215    |          | pairing to central


list [HM-RC-4-3]

Internals:
CFGFN      ./FHEM/include/fhem_dachgeschoss.cfg
DEF        6AAECE
FUUID      5d1644e4-f33f-8c2a-569e-1efda07ce76f83bf
IODev      myHmUART
LASTInputDev RM_HmUART_DG
MSGCNT     105
NAME       20_DG_SZ_Remote_Control1
NOTIFYDEV  global
NR         966
RM_HmUART_DG_MSGCNT 36
RM_HmUART_DG_RAWMSG 050000355DA2406AAECE4C3DF44247
RM_HmUART_DG_RSSI -53
RM_HmUART_DG_TIME 2020-08-28 07:11:03
RM_HmUART_UG_MSGCNT 33
RM_HmUART_UG_RAWMSG 0500004B5DA2406AAECE4C3DF44247
RM_HmUART_UG_RSSI -75
RM_HmUART_UG_TIME 2020-08-28 07:11:03
STATE      CMDs_done
TYPE       CUL_HM
channel_01 20_DG_SZ_Remote_Control1_Btn_01
channel_02 20_DG_SZ_Remote_Control1_Btn_02
channel_03 20_DG_SZ_Remote_Control1_Btn_03
channel_04 20_DG_SZ_Remote_Control1_Btn_04
lastMsg    No:5D - t:40 s:6AAECE d:4C3DF4 4247
myHmUART_MSGCNT 36
myHmUART_RAWMSG 050100345DA2406AAECE4C3DF44247
myHmUART_RSSI -52
myHmUART_TIME 2020-08-28 07:11:03
protLastRcv 2020-08-28 07:11:03
protRcv    36 last_at:2020-08-28 07:11:03
protSnd    8 last_at:2020-08-28 07:11:03
protState  CMDs_done
rssi_at_RM_HmUART_DG cnt:36 min:-60 max:-44 avg:-52.63 lst:-53
rssi_at_RM_HmUART_UG cnt:33 min:-87 max:-69 avg:-75.6 lst:-75
rssi_at_myHmUART cnt:36 min:-70 max:-51 avg:-57.13 lst:-52
READINGS:
2020-08-28 18:25:28   Batt_timestamp_SZ_Remote_Control1 2020-08-28 07:11:03
2019-06-28 23:26:39   CommandAccepted yes
2019-06-28 23:26:37   D-firmware      1.1
2019-06-28 23:26:37   D-serialNr      PEQ0781233
2020-03-13 07:23:28   PairedTo        0x4C3DF4
2019-06-28 23:26:39   R-pairCentral   0x4C3DF4
2020-03-13 07:23:28   RegL_00.        00:00 02:01 0A:4C 0B:3D 0C:F4 18:00
2020-03-01 08:03:59   alive           yes
2020-08-28 07:11:03   battery         ok
2020-08-28 18:25:28   cfgState        ok
2020-08-28 07:11:03   commState       CMDs_done
2020-03-01 08:03:59   powerOn         2020-03-01 08:03:59
2020-03-01 08:03:59   recentStateType info
2020-08-28 07:11:03   state           CMDs_done
helper:
HM_CMDNR   93
mId        00D4
peerFriend
peerOpt    -:remote
regLst     0
rxType     28
supp_Pair_Rep 0
ack:
cmds:
TmplKey    :no:1598370878.7337
TmplTs     1598370878.7337
cmdKey     0:1:0::20_DG_SZ_Remote_Control1:00D4: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] ... [-PeerChannel-]
raw        data ...
regBulk    -list-.-peerChn- -addr1:data1- -addr2:data2- ...
regSet     [prep|exec] -regName- -value- ... [-peerChannel-]
reset      noArg
tplDel     -tplDel-
tplSet_0   -tplChan-
unpair     noArg
lst:
condition  slider,0,1,255
peer       
peerOpt   
tplChan   
tplDel     
tplPeer   
expert:
def        1
det        0
raw        1
tpl        0
io:
newChn     +6AAECE,00,00,00
nextSend   1598591463.8428
rxt        2
vccu       VCCU
p:
6AAECE
00
00
00
prefIO:
myHmUART
mRssi:
mNo        5D
io:
RM_HmUART_DG:
   -53
   -53
RM_HmUART_UG:
   -75
   -75
myHmUART:
   -46
   -46
prt:
bErr       0
sProc      0
sleeping   0
rspWait:
q:
qReqConf   
qReqStat   
role:
dev        1
rpt:
IO         RM_HmUART_UG
flg        A
ts         1598591463.44445
ack:
HASH(0x52d1c20)
5D80024C3DF46AAECE00
rssi:
at_RM_HmUART_DG:
avg        -52.6388888888889
cnt        36
lst        -53
max        -44
min        -60
at_RM_HmUART_UG:
avg        -75.6060606060606
cnt        33
lst        -75
max        -69
min        -87
at_myHmUART:
avg        -57.1388888888889
cnt        36
lst        -52
max        -51
min        -70
tmpl:
Attributes:
IODev      myHmUART
IOgrp      VCCU:myHmUART
autoReadReg 4_reqStatus
expert     defReg,rawReg
firmware   1.1
group      Remote-Control
icon       it_remote
model      HM-RC-4-3
room       20_Dachgeschoss->Schlafzimmer
serialNr   PEQ0781233
subType    remote
userReadings Batt_timestamp_SZ_Remote_Control1 {ReadingsTimestamp("20_DG_SZ_Remote_Control1","battery","")}
webCmd     getConfig:clear msgEvents