[gelöst] patch: fehlende cmds tplSet/tplPara bei multi-chn-devices

Begonnen von frank, 15 Juni 2021, 14:35:26

Vorheriges Thema - Nächstes Thema

frank

hallo martin,

bei multi-chn-devices fehlen die cmds tplSet/tplPara.
genauer gesagt: nach fhem restart erscheinen die cmds genau einmal im frontend. nach einem reload der detail seite sind sie sofort verschwunden.
mit dem fhem-befehl "list" oder dem cul_hm befehl "list" kann ich sie nie sehen.


hier mal ein list von einem HM-ES-PMSW1-PL
Internals:
   DEF        24AF1D
   FUUID      5c4ce2ea-f33f-09c4-415f-e15aa2f177978261
   IODev      hmlan1
   LASTInputDev hmlan1
   MSGCNT     417
   NAME       SwitchES01
   NOTIFYDEV  global
   NR         374
   NTFY_ORDER 50-SwitchES01
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 SwitchES01_Sw
   channel_02 SwitchES01_Pwr
   channel_03 SwitchES01_SenPwr
   channel_04 SwitchES01_SenI
   channel_05 SwitchES01_SenU
   channel_06 SwitchES01_SenF
   cul868_MSGCNT 197
   cul868_RAWMSG A143E845E24AF1D00000083A41D0000000000094F01::-96:cul868
   cul868_RSSI -96
   cul868_TIME 2021-06-15 13:18:19
   hmlan1_MSGCNT 219
   hmlan1_RAWMSG E24AF1D,0000,04D6B11B,FF,FFA7,56845E24AF1D00000083A41D00000000000950FF
   hmlan1_RSSI -89
   hmlan1_TIME 2021-06-15 14:19:03
   hmuart1_MSGCNT 1
   hmuart1_RAWMSG 0500005634845E24AF1D00000083A41D0000000000094201
   hmuart1_RSSI -86
   hmuart1_TIME 2021-06-15 12:53:24
   lastMsg    No:56 - t:5E s:24AF1D d:000000 83A41D00000000000950FF
   protCmdDel 13
   protLastRcv 2021-06-15 14:19:03
   protRcv    364 last_at:2021-06-15 14:19:03
   protResnd  48 last_at:2021-06-15 04:42:33
   protResndFail 13 last_at:2021-06-15 04:34:25
   protSnd    27 last_at:2021-06-15 04:42:18
   protState  CMDs_done
   rssi_at_cul868 cnt:197 min:-100 max:-91 avg:-95.49 lst:-96
   rssi_at_hmlan1 cnt:219 min:-103 max:-83 avg:-90.82 lst:-89
   rssi_at_hmuart1 cnt:1 min:-86 max:-86 avg:-86 lst:-86
   rssi_hmlan1 cnt:8 min:-93 max:-83 avg:-88.5 lst:-93
   CL:
     Authenticated 0
     BUF       
     FD         85
     FW_ID      21118
     LASTACCESS 1623759630
     NAME       WEB_192.168.1.31_49693
     NR         21121
     PEER       192.168.1.31
     PORT       49693
     SNAME      WEB
     SSL       
     STATE      Connected
     TEMPORARY  1
     TYPE       FHEMWEB
     canAsyncOutput 1
     READINGS:
       2021-06-15 14:20:11   state           Connected
   READINGS:
     2021-06-02 22:36:23   Activity        alive
     2021-05-31 21:56:14   CommandAccepted yes
     from archivexx        D-firmware      2.5
     from archivexx        D-serialNr      KEQ0967103
     2021-06-14 15:45:42   IODev           hmlan1
     2021-05-13 16:26:34   PairedTo        0x1ACE1F
     2021-06-14 15:13:10   R-confBtnTime   permanent
     2021-06-14 15:13:10   R-intKeyVisib   visib
     2021-06-14 15:13:10   R-localResDis   off
     2021-06-14 15:13:10   R-pairCentral   0x1ACE1F
     2021-05-31 22:03:02   RegL_00.        00:00 02:81 0A:1A 0B:CE 0C:1F 15:FF 18:00
     2021-05-31 22:04:36   cfgState        ok
     2021-06-15 04:42:34   commState       CMDs_done
     2021-06-15 04:42:34   state           CMDs_done
     -                     tmpl_0          tplCheck:confBtnTime:permanent,
   helper:
     HM_CMDNR   86
     cSnd       
     lastMsgTm  1623759543.18326
     mId        00AC
     peerFriend -
     peerOpt    -:powerMeter
     regLst     0
     rxType     1
     supp_Pair_Rep 0
     tmplChg    0
     ack:
     cmds:
       TmplKey    :1623678351.76777:1623678352.09471
       TmplTs     1623678352.09471
       cmdKey     0:1:0::SwitchES01:00AC:00:
       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|List7) [-peerChn-]
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- -addr2:data2-...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         tplDel     -tplDel-
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt   
         tplChan    es99,sw99,test,tplCheck
         tplDel     0>tplCheck
         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       0
       newChn     +24AF1D,00,00,00
       nextSend   1623759543.27394
       rxt        0
       vccu       ccu
       p:
         24AF1D
         00
         00
         00
       prefIO:
         hmlan1
     mRssi:
       mNo        56
       io:
         cul868:
         hmlan1:
           -87
           -87
         hmuart1:
         hmusb1:
     peerIDsH:
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
       prs        1
     rssi:
       at_cul868:
         avg        -95.492385786802
         cnt        197
         lst        -96
         max        -91
         min        -100
       at_hmlan1:
         avg        -90.8219178082192
         cnt        219
         lst        -89
         max        -83
         min        -103
       at_hmuart1:
         avg        -86
         cnt        1
         lst        -86
         max        -86
         min        -86
       hmlan1:
         avg        -88.5
         cnt        8
         lst        -93
         max        -83
         min        -93
     shadowReg:
     tmpl:
       0>tplCheck permanent
Attributes:
   IODev      hmlan1
   IOgrp      ccu:hmlan1
   actCycle   000:15
   actStatus  alive
   autoReadReg 5_readMissing
   event-on-change-reading .*
   expert     defReg,allReg,rawReg,templ
   firmware   2.5
   group      Messstecker
   model      HM-ES-PMSW1-PL
   room       901_Messtechnik
   serialNr   KEQ0967103
   subType    powerMeter
   timestamp-on-change-reading .*
   webCmd     getConfig:clear msgEvents
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

frank

update:

die probleme existieren scheinbar "nur" bei templates für das hauptdevice bei multi-channel-devices.
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

martinp876

Das Kommando tplSet steht nur in der Auswahlliste, wenn es auch ein Template gibt, welches genutzt werden könnte.
Solltest du also ein Template haben, welches du glaubst nutzen zu können für das Device dann poste das Tempalte und das Devicemodel und den Kanal.

Prüfen selbst ob das Device alle Register im regList hat welche auch im template angefragt sind.

frank

hallo martin,
das template ist ok, hat ja auch schon mal alles funktioniert.

4 mögliche templates, eins ist sogar assigned, siehe list im 1. post. auch "get tplInfo" zeigt alles an.
in cul_hm scheint intern alles ok zu sein.
nur beim einbau der cmds scheint es buggy zu sein.

wie gesagt, es betrifft nur templates im hauptdevice eines multi-channel-device.

teste das mal bei deinem HM-ES-PMSW1-PL.
nach der template definition sind die cmds kurz vorhanden. nach reload der detailseite sind sie dann wieder weg.
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

martinp876

ich habe im Hauptdevice getestet. Bei RT nutze ich das immer.

Das Template ist allerdings nicht im Post - nur dessen Name.
Ein get ht defineCmd <templatename> wäre hilfreich.

frank

#5
ZitatEin get ht defineCmd <templatename> wäre hilfreich.
set hm templateDef tplCheck confBtnTime "test" confBtnTime:p0

get tplInfo vom device aus post #1 zeigt alle 4 möglichen templates:
device templates:
   es99             params:                         Info:test
   sw99             params:                         Info:test
   test             params:intKeyVisib localResDis  Info:test
   tplCheck         params:confBtnTime              Info:test



ZitatBei RT nutze ich das immer.
sind die cmds tplSet/tplPara vorhanden, wenn du die detailseite eines rt aufrufst?
spätestens nach einem reload der seite müssten die cmds "verschwinden".

bei meinen HM-CC-TC habe ich das selbe problem. andere multi-chn-devices habe ich nicht.

edit:
beim HM-LC-DIM1TPBU-FM besteht ebenfalls das problem.
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

martinp876

kann ich bedingt nachvollziehen.

Beim Definieren des Templates wird es schon teileweise angelegt. Abgeschlossen wird es mit "save". Danach wird auch die Kommandoliste upgedated und das Template erscheint bei mir in der Auswahl.
Bei Get werden auch die nicht-finalen templates betrachtet. Das ist nicht ganz korrekt.
Nach Reboot sind alle weg, welche nicht mit "save" in ht abgeschlossen wurden. Somit stimmt set, bei Get ist eine kleine Lücke

frank

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

frank

ich denke, ich habe das problem gefunden.

wenn ich zeile 4980 auskommentiere bleiben die cmds erhalten.  :)
    #delete $hash->{helper}{cmds}{cmdLst} ;

etwas weiter oben wird cmdLst ja bereits gelöscht, allerdings ohne die tplSet/tplPara cmds.
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

frank

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