[gelöst] keine kommunikation zwischen vd und virtuellem tc nach fhem restart

Begonnen von frank, 27 September 2021, 17:15:26

Vorheriges Thema - Nächstes Thema

frank

1. das aktuelle cul_hm verhindert die kommunikation zwischen vd und virtuellem tc.
es werden keine regelmässigen keep alive messages mehr gesendet.
edit: die keepalive messages werden wieder gesendet, nachdem ich "set valvePos" im chn des vtc ausgeführt habe.
also hat der "automatische" start nach fhem restart nicht funktioniert.
komischer weise ist bei 2 vtc zusätzlich jeweils ein weiterer vtc mit "angesprungen"

2. im channel des virtuellen tc ist das "attr param msgReduce:2" zwar noch vorhanden, aber nicht mehr einstellbar.
es gibt nur noch "attr param showTimed" zur auswahl.
ausserdem hat das attribut keine wirkung, funktioniert also nicht mehr.

3. auffällig ist das fehlende internal .AttrList im channel vom vtc.
dises internal ist in keinem channel eines virtuellen devices zu finden. zb auch nicht in den chn der vccu.



Internals:
   .AttrList  .devInfo .mId .stc IODev IOgrp actCycle actStatus aesCommReq:1,0 aesKey:5,4,3,2,1,0 autoReadReg:0_off,1_restart,2_pon-restart,3_onChange,4_reqStatus,5_readMissing,8_stateOnly burstAccess:0_off,1_auto commStInCh:on,off do_not_notify:1,0 dummy:1,0 event-aggregator event-min-interval event-on-change-reading event-on-update-reading expert:multiple,defReg,allReg,rawReg,templ,none firmware hmKey hmKey2 hmKey3 hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger ignore:1,0 levelMap levelRange model modelForce:ACTIONDETECTOR,ACTIONDETECTOR,ASH550,ASH550I,CCU-FHEM,CMM,DORMA_ATENT,DORMA_BRC-H,DORMA_RC-H,HM-CC-RT-DN,HM-CC-RT-DN-BOM,HM-CC-SCD,HM-CC-TC,HM-CC-VD,HM-DIS-EP-WM55,HM-DIS-TD-T,HM-DIS-WM55,HM-DW-WM,HM-ES-PMSW1-DR,HM-ES-PMSW1-PL,HM-ES-PMSW1-PL-DN-R1,HM-ES-PMSW1-PL-DN-R2,HM-ES-PMSW1-PL-DN-R3,HM-ES-PMSW1-PL-DN-R4,HM-ES-PMSW1-PL-DN-R5,HM-ES-PMSW1-SM,HM-ES-TX-WM,HM-HM-LC-DW-WM,HM-LC-AO-SM,HM-LC-BL1-FM,HM-LC-BL1-FM-2,HM-LC-BL1-PB-FM,HM-LC-BL1-SM,HM-LC-BL1-SM-2,HM-LC-BL1PBU-FM,HM-LC-DDC1-PCB,HM-LC-DIM1L-CV,HM-LC-DIM1L-CV-2,HM-LC-DIM1L-CV-644,HM-LC-DIM1L-PL,HM-LC-DIM1L-PL-2,HM-LC-DIM1L-PL-3,HM-LC-DIM1L-PL-644,HM-LC-DIM1PWM-CV,HM-LC-DIM1PWM-CV-2,HM-LC-DIM1T-CV,HM-LC-DIM1T-CV-2,HM-LC-DIM1T-CV-644,HM-LC-DIM1T-DR,HM-LC-DIM1T-FM,HM-LC-DIM1T-FM-2,HM-LC-DIM1T-FM-644,HM-LC-DIM1T-FM-LF,HM-LC-DIM1T-PL,HM-LC-DIM1T-PL-2,HM-LC-DIM1T-PL-3,HM-LC-DIM1T-PL-644,HM-LC-DIM1TPBU-FM,HM-LC-DIM1TPBU-FM-2,HM-LC-DIM2L-CV,HM-LC-DIM2L-SM,HM-LC-DIM2L-SM-2,HM-LC-DIM2L-SM-644,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM-2,HM-LC-JA1PBU-FM,HM-LC-RGBW-WM,HM-LC-SW1-BA-PCB,HM-LC-SW1-DR,HM-LC-SW1-FM,HM-LC-SW1-FM-2,HM-LC-SW1-PB-FM,HM-LC-SW1-PCB,HM-LC-SW1-PL,HM-LC-SW1-PL-3,HM-LC-SW1-PL-CT-R1,HM-LC-SW1-PL-CT-R2,HM-LC-SW1-PL-CT-R3,HM-LC-SW1-PL-CT-R4,HM-LC-SW1-PL-CT-R5,HM-LC-SW1-PL-DN-R1,HM-LC-SW1-PL-DN-R2,HM-LC-SW1-PL-DN-R3,HM-LC-SW1-PL-DN-R4,HM-LC-SW1-PL-DN-R5,HM-LC-SW1-PL-OM54,HM-LC-SW1-PL2,HM-LC-SW1-SM,HM-LC-SW1-SM-2,HM-LC-SW1-SM-ATMEGA168,HM-LC-SW1PBU-FM,HM-LC-SW2-DR,HM-LC-SW2-DR-2,HM-LC-SW2-FM,HM-LC-SW2-FM-2,HM-LC-SW2-PB-FM,HM-LC-SW2-SM,HM-LC-SW2PBU-FM,HM-LC-SW4-BA-PCB,HM-LC-SW4-DR,HM-LC-SW4-DR-2,HM-LC-SW4-PCB,HM-LC-SW4-PCB-2,HM-LC-SW4-SM,HM-LC-SW4-SM-2,HM-LC-SW4-SM-ATMEGA168,HM-LC-SW4-WM,HM-LC-SW4-WM-2,HM-MOD-EM-8,HM-MOD-EM-8BIT,HM-MOD-RE-8,HM-OU-CF-PL,HM-OU-CFM-PL,HM-OU-CFM-TW,HM-OU-CM-PCB,HM-OU-LED16,HM-PB-2-FM,HM-PB-2-WM,HM-PB-2-WM55,HM-PB-2-WM55-2,HM-PB-4-WM,HM-PB-4DIS-WM,HM-PB-4DIS-WM-2,HM-PB-6-WM55,HM-PBI-4-FM,HM-RC-12,HM-RC-12-B,HM-RC-12-SW,HM-RC-19,HM-RC-19-B,HM-RC-19-SW,HM-RC-2-PBU-FM,HM-RC-2-PBU-FM-2,HM-RC-4,HM-RC-4-2,HM-RC-4-3,HM-RC-4-3-D,HM-RC-4-B,HM-RC-8,HM-RC-DIS-H-X-EU,HM-RC-KEY3,HM-RC-KEY3-B,HM-RC-KEY4-2,HM-RC-KEY4-3,HM-RC-P1,HM-RC-SEC3,HM-RC-SEC3-B,HM-RC-SEC4-2,HM-RC-SEC4-3,HM-SCI-3-FM,HM-SEC-CEN,HM-SEC-KEY,HM-SEC-KEY-O,HM-SEC-KEY-S,HM-SEC-MDIR,HM-SEC-MDIR-2,HM-SEC-MDIR-3,HM-SEC-RHS,HM-SEC-RHS-2,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-SCO,HM-SEC-SD,HM-SEC-SD-2,HM-SEC-SFA-SM,HM-SEC-SIR-WM,HM-SEC-TIS,HM-SEC-WDS,HM-SEC-WDS-2,HM-SEC-WIN,HM-SEN-DB-PCB,HM-SEN-EP,HM-SEN-LI-O,HM-SEN-MDIR-O,HM-SEN-MDIR-O-2,HM-SEN-MDIR-O-3,HM-SEN-MDIR-SM,HM-SEN-MDIR-WM55,HM-SEN-RD-O,HM-SEN-WA-OD,HM-SWI-3-FM,HM-SYS-SRP-PL,HM-TC-IT-WM-W-EU,HM-WDC7000,HM-WDS10-TH-O,HM-WDS100-C6-O,HM-WDS100-C6-O-2,HM-WDS20-TH-O,HM-WDS30-OT2-SM,HM-WDS30-OT2-SM-2,HM-WDS30-T-O,HM-WDS40-TH-I,HM-WDS40-TH-I-2,HM-WS550,HM-WS550LCB,HM-WS550LCW,HM-WS550TECH,IS-WDS-TH-OD-S-R3,KFM-DISPLAY,KFM-SENSOR,KS550,KS550LC,KS550TECH,KS888,OLIGO-SMART-IQ-HM,PS-SWITCH,PS-TH-SENS,ROTO_ZEL-STG-RM-DWT-10,ROTO_ZEL-STG-RM-FDK,ROTO_ZEL-STG-RM-FEP-230V,ROTO_ZEL-STG-RM-FFK,ROTO_ZEL-STG-RM-FSA,ROTO_ZEL-STG-RM-FSS-UP3,ROTO_ZEL-STG-RM-FST-UP4,ROTO_ZEL-STG-RM-FWT,ROTO_ZEL-STG-RM-FZS,ROTO_ZEL-STG-RM-FZS-2,ROTO_ZEL-STG-RM-HS-4,ROTO_ZEL-STG-RM-WT-2,S550IA,SCHUECO_263-130,SCHUECO_263-131,SCHUECO_263-132,SCHUECO_263-133,SCHUECO_263-134,SCHUECO_263-135,SCHUECO_263-144,SCHUECO_263-145,SCHUECO_263-146,SCHUECO_263-147,SCHUECO_263-155,SCHUECO_263-157,SCHUECO_263-158,SCHUECO_263-160,SCHUECO_263-162,SCHUECO_263-167,SCHUECO_263-XXX,SENSOTIMER-ST-6,VIRTUAL,WDF-SOLAR,WS888 msgRepeat oldreadings param peerIDs readOnly:0,1 readingOnDead:multiple,noChange,state,periodValues,periodString,channels rssiLog:1,0 serialNr showtime:1,0 stateFormat:textField-long subType:AlarmControl,KFM100,THSensor,blindActuator,blindActuatorSol,dimmer,display,keyMatic,motionAndBtn,motionDetector,no,outputUnit,powerMeter,powerSensor,pushButton,remote,repeater,rgb,senBright,sensRain,sensor,singleButton,siren,smokeDetector,swi,switch,thermostat,threeStateSensor,timer,tipTronic,virtual,winMatic timestamp-on-change-reading
   DEF        1C4E25
   FUUID      5c4ce2e9-f33f-09c4-f092-82004d6255d7f361
   IODev      hmlan1
   NAME       Ventil.AZ.Nord
   NR         281
   NTFY_ORDER 50-Ventil.AZ.Nord
   STATE      Vsoll:0 %, Vist:0, Status:0, Operation:onTarget, OpErr:16, Mot:stop, MotErr:ok, Bat:ok, Verr:12 %, Voff:0 %
   TYPE       CUL_HM
   chanNo     01
   disableNotifyFn 1
   peerList   VentilControler.AZ.Nord_Btn1
   .attraggr:
   .attreocr:
     .*
   .attrminint:
   .attrtocr:
     battery
     motorErr
   CL:
     Authenticated 0
     BUF       
     FD         79
     FW_ID      1598
     LASTACCESS 1632755818
     NAME       WEB_192.168.1.31_50567
     NR         1723
     PEER       192.168.1.31
     PORT       50567
     SNAME      WEB
     SSL       
     STATE      Connected
     TEMPORARY  1
     TYPE       FHEMWEB
     canAsyncOutput 1
     .attraggr:
     .attrminint:
     READINGS:
       2021-09-27 17:16:55   state           Connected
   READINGS:
     1900-01-01 00:00:01   .D-devInfo      010100
     1900-01-01 00:00:01   .D-stc          58
     2021-09-27 16:23:28   .associatedWith Ventil.AZ.Nord,Ventil.AZ.Nord,VentilControler.AZ.Nord_Btn1
     2021-07-03 23:17:32   .peerListRDate  2021-07-03 23:17:32
     2021-09-27 16:17:32   .protLastRcv    20210927161732
     2021-09-27 16:27:58   Activity        alive
     2021-09-27 16:17:32   CommandAccepted yes
     1900-01-01 00:00:01   D-firmware      2.0
     1900-01-01 00:00:01   D-serialNr      JEQ0312631
     2021-09-27 16:23:26   IODev           hmlan1
     2021-06-08 17:34:24   PairedTo        0x1ACE1F
     2021-09-27 16:23:15   R-pairCentral   0x1ACE1F
     2021-09-27 16:23:15   R-valveErrorPos 12 %
     2021-09-27 16:23:15   R-valveOffset   0 %
     2021-06-08 17:34:24   RegL_00.        00:00 02:01 0A:1A 0B:CE 0C:1F
     2021-06-10 00:22:05   RegL_05.        00:00 09:00 0A:0C
     2021-09-27 12:44:26   ValveDesired    0 %
     2021-09-27 16:17:32   ValvePosition   0
     2021-05-13 17:53:25   battery         ok
     2021-09-27 16:33:34   cfgState        ok
     2021-09-27 16:17:32   commState       CMDs_done
     2021-09-27 16:17:32   motor           stop
     2021-05-13 17:53:25   motorErr        ok
     2021-09-27 16:17:32   operState       onTarget
     2021-07-29 13:17:43   operStateErrCnt 16
     2021-09-27 16:23:28   peerList        VentilControler.AZ.Nord_Btn1
     2021-09-27 16:17:32   recentStateType ack
     2021-09-27 16:17:32   state           0
   helper:
     HM_CMDNR   168
     cfgStateUpdt 0
     mId        003A
     oldDes     0
     peerFriend
     peerIDsState complete
     peerOpt    p:thermostat
     regLst     0,5
     rxType     12
     tmplChg    0
     cmds:
       TmplKey    VentilControler.AZ.Nord_Btn1:1632752595.86026:1632752608.82646
       TmplTs     1632752608.82646
       cmdKey     1:1:0::Ventil.AZ.Nord:003A:01:VentilControler.AZ.Nord_Btn1
       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-]
         peerBulk   -peer1,peer2,...- [({set}|unset)]
         peerSmart  -peerOpt-
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         tplSet_VentilControler.AZ.Nord_Btn1 -tplPeer-
         unpair     noArg
         valvePos   [({off}|0.0..99.0;0.5)]
       lst:
         condition  slider,0,1,255
         peer       VentilControler.AZ.Nord_Btn1
         peerOpt    remove_VentilControler.AZ.Nord_Btn1
         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        1
       raw        1
       tpl        1
     io:
       flgs       0
       newChn     +1C4E25,00,00,00
       rxt        2
       vccu       ccu
       p:
         1C4E25
         00
         00
         00
       prefIO:
         hmlan1
     mRssi:
       mNo       
     peerIDsH:
       00000000   broadcast
       B5B5B501   VentilControler.AZ.Nord_Btn1
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
     rssi:
     shadowReg:
     tmpl:
Attributes:
   .mId       003A
   IOgrp      ccu:hmlan1
   actCycle   001:30
   actStatus  alive
   alias      40. Ventil.AZ.Nord
   autoReadReg 5_readMissing
   comment    batChange: 2021-03-03 09:28:25 critical (oldBat: low since 2020-12-18 16:26:27)
   event-on-change-reading .*
   expert     defReg,allReg,rawReg,templ
   firmware   2.0
   group      Heizung.AZ
   model      HM-CC-VD
   msgRepeat  0
   peerIDs    00000000,B5B5B501
   room       20_AZ,98_Ventile
   serialNr   JEQ0312631
   stateFormat Vsoll:ValveDesired, Vist:ValvePosition, Status:state, Operation:operState, OpErr:operStateErrCnt, Mot:motor, MotErr:motorErr, Bat:battery, Verr:R-valveErrorPos, Voff:R-valveOffset
   subType    thermostat
   timestamp-on-change-reading battery,motorErr
   webCmd     getConfig


Internals:
   .AttrList  .devInfo .mId .stc IODev IOgrp actCycle actStatus aesCommReq:1,0 aesKey:5,4,3,2,1,0 autoReadReg:0_off,1_restart,2_pon-restart,3_onChange,4_reqStatus,5_readMissing,8_stateOnly burstAccess:0_off,1_auto commStInCh:on,off cyclicMsgOffset do_not_notify:1,0 dummy:1,0 event-aggregator event-min-interval event-on-change-reading event-on-update-reading expert:multiple,defReg,allReg,rawReg,templ,none firmware hmKey hmKey2 hmKey3 hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger ignore:1,0 model modelForce:ACTIONDETECTOR,ACTIONDETECTOR,ASH550,ASH550I,CCU-FHEM,CMM,DORMA_ATENT,DORMA_BRC-H,DORMA_RC-H,HM-CC-RT-DN,HM-CC-RT-DN-BOM,HM-CC-SCD,HM-CC-TC,HM-CC-VD,HM-DIS-EP-WM55,HM-DIS-TD-T,HM-DIS-WM55,HM-DW-WM,HM-ES-PMSW1-DR,HM-ES-PMSW1-PL,HM-ES-PMSW1-PL-DN-R1,HM-ES-PMSW1-PL-DN-R2,HM-ES-PMSW1-PL-DN-R3,HM-ES-PMSW1-PL-DN-R4,HM-ES-PMSW1-PL-DN-R5,HM-ES-PMSW1-SM,HM-ES-TX-WM,HM-HM-LC-DW-WM,HM-LC-AO-SM,HM-LC-BL1-FM,HM-LC-BL1-FM-2,HM-LC-BL1-PB-FM,HM-LC-BL1-SM,HM-LC-BL1-SM-2,HM-LC-BL1PBU-FM,HM-LC-DDC1-PCB,HM-LC-DIM1L-CV,HM-LC-DIM1L-CV-2,HM-LC-DIM1L-CV-644,HM-LC-DIM1L-PL,HM-LC-DIM1L-PL-2,HM-LC-DIM1L-PL-3,HM-LC-DIM1L-PL-644,HM-LC-DIM1PWM-CV,HM-LC-DIM1PWM-CV-2,HM-LC-DIM1T-CV,HM-LC-DIM1T-CV-2,HM-LC-DIM1T-CV-644,HM-LC-DIM1T-DR,HM-LC-DIM1T-FM,HM-LC-DIM1T-FM-2,HM-LC-DIM1T-FM-644,HM-LC-DIM1T-FM-LF,HM-LC-DIM1T-PL,HM-LC-DIM1T-PL-2,HM-LC-DIM1T-PL-3,HM-LC-DIM1T-PL-644,HM-LC-DIM1TPBU-FM,HM-LC-DIM1TPBU-FM-2,HM-LC-DIM2L-CV,HM-LC-DIM2L-SM,HM-LC-DIM2L-SM-2,HM-LC-DIM2L-SM-644,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM,HM-LC-DIM2T-SM-2,HM-LC-JA1PBU-FM,HM-LC-RGBW-WM,HM-LC-SW1-BA-PCB,HM-LC-SW1-DR,HM-LC-SW1-FM,HM-LC-SW1-FM-2,HM-LC-SW1-PB-FM,HM-LC-SW1-PCB,HM-LC-SW1-PL,HM-LC-SW1-PL-3,HM-LC-SW1-PL-CT-R1,HM-LC-SW1-PL-CT-R2,HM-LC-SW1-PL-CT-R3,HM-LC-SW1-PL-CT-R4,HM-LC-SW1-PL-CT-R5,HM-LC-SW1-PL-DN-R1,HM-LC-SW1-PL-DN-R2,HM-LC-SW1-PL-DN-R3,HM-LC-SW1-PL-DN-R4,HM-LC-SW1-PL-DN-R5,HM-LC-SW1-PL-OM54,HM-LC-SW1-PL2,HM-LC-SW1-SM,HM-LC-SW1-SM-2,HM-LC-SW1-SM-ATMEGA168,HM-LC-SW1PBU-FM,HM-LC-SW2-DR,HM-LC-SW2-DR-2,HM-LC-SW2-FM,HM-LC-SW2-FM-2,HM-LC-SW2-PB-FM,HM-LC-SW2-SM,HM-LC-SW2PBU-FM,HM-LC-SW4-BA-PCB,HM-LC-SW4-DR,HM-LC-SW4-DR-2,HM-LC-SW4-PCB,HM-LC-SW4-PCB-2,HM-LC-SW4-SM,HM-LC-SW4-SM-2,HM-LC-SW4-SM-ATMEGA168,HM-LC-SW4-WM,HM-LC-SW4-WM-2,HM-MOD-EM-8,HM-MOD-EM-8BIT,HM-MOD-RE-8,HM-OU-CF-PL,HM-OU-CFM-PL,HM-OU-CFM-TW,HM-OU-CM-PCB,HM-OU-LED16,HM-PB-2-FM,HM-PB-2-WM,HM-PB-2-WM55,HM-PB-2-WM55-2,HM-PB-4-WM,HM-PB-4DIS-WM,HM-PB-4DIS-WM-2,HM-PB-6-WM55,HM-PBI-4-FM,HM-RC-12,HM-RC-12-B,HM-RC-12-SW,HM-RC-19,HM-RC-19-B,HM-RC-19-SW,HM-RC-2-PBU-FM,HM-RC-2-PBU-FM-2,HM-RC-4,HM-RC-4-2,HM-RC-4-3,HM-RC-4-3-D,HM-RC-4-B,HM-RC-8,HM-RC-DIS-H-X-EU,HM-RC-KEY3,HM-RC-KEY3-B,HM-RC-KEY4-2,HM-RC-KEY4-3,HM-RC-P1,HM-RC-SEC3,HM-RC-SEC3-B,HM-RC-SEC4-2,HM-RC-SEC4-3,HM-SCI-3-FM,HM-SEC-CEN,HM-SEC-KEY,HM-SEC-KEY-O,HM-SEC-KEY-S,HM-SEC-MDIR,HM-SEC-MDIR-2,HM-SEC-MDIR-3,HM-SEC-RHS,HM-SEC-RHS-2,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-SCO,HM-SEC-SD,HM-SEC-SD-2,HM-SEC-SFA-SM,HM-SEC-SIR-WM,HM-SEC-TIS,HM-SEC-WDS,HM-SEC-WDS-2,HM-SEC-WIN,HM-SEN-DB-PCB,HM-SEN-EP,HM-SEN-LI-O,HM-SEN-MDIR-O,HM-SEN-MDIR-O-2,HM-SEN-MDIR-O-3,HM-SEN-MDIR-SM,HM-SEN-MDIR-WM55,HM-SEN-RD-O,HM-SEN-WA-OD,HM-SWI-3-FM,HM-SYS-SRP-PL,HM-TC-IT-WM-W-EU,HM-WDC7000,HM-WDS10-TH-O,HM-WDS100-C6-O,HM-WDS100-C6-O-2,HM-WDS20-TH-O,HM-WDS30-OT2-SM,HM-WDS30-OT2-SM-2,HM-WDS30-T-O,HM-WDS40-TH-I,HM-WDS40-TH-I-2,HM-WS550,HM-WS550LCB,HM-WS550LCW,HM-WS550TECH,IS-WDS-TH-OD-S-R3,KFM-DISPLAY,KFM-SENSOR,KS550,KS550LC,KS550TECH,KS888,OLIGO-SMART-IQ-HM,PS-SWITCH,PS-TH-SENS,ROTO_ZEL-STG-RM-DWT-10,ROTO_ZEL-STG-RM-FDK,ROTO_ZEL-STG-RM-FEP-230V,ROTO_ZEL-STG-RM-FFK,ROTO_ZEL-STG-RM-FSA,ROTO_ZEL-STG-RM-FSS-UP3,ROTO_ZEL-STG-RM-FST-UP4,ROTO_ZEL-STG-RM-FWT,ROTO_ZEL-STG-RM-FZS,ROTO_ZEL-STG-RM-FZS-2,ROTO_ZEL-STG-RM-HS-4,ROTO_ZEL-STG-RM-WT-2,S550IA,SCHUECO_263-130,SCHUECO_263-131,SCHUECO_263-132,SCHUECO_263-133,SCHUECO_263-134,SCHUECO_263-135,SCHUECO_263-144,SCHUECO_263-145,SCHUECO_263-146,SCHUECO_263-147,SCHUECO_263-155,SCHUECO_263-157,SCHUECO_263-158,SCHUECO_263-160,SCHUECO_263-162,SCHUECO_263-167,SCHUECO_263-XXX,SENSOTIMER-ST-6,VIRTUAL,WDF-SOLAR,WS888 msgRepeat oldreadings param readOnly:0,1 readingOnDead:multiple,noChange,state,periodValues,periodString,channels rssiLog:1,0 serialNr showtime:1,0 stateFormat:textField-long subType:AlarmControl,KFM100,THSensor,blindActuator,blindActuatorSol,dimmer,display,keyMatic,motionAndBtn,motionDetector,no,outputUnit,powerMeter,powerSensor,pushButton,remote,repeater,rgb,senBright,sensRain,sensor,singleButton,siren,smokeDetector,swi,switch,thermostat,threeStateSensor,timer,tipTronic,virtual,winMatic timestamp-on-change-reading
   DEF        B5B5B5
   FUUID      5c4ce2e9-f33f-09c4-41e8-f94c9a0ee1c747e2
   IODev      hmlan1
   NAME       VentilControler.AZ.Nord
   NR         282
   NTFY_ORDER 50-VentilControler.AZ.Nord
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 VentilControler.AZ.Nord_Btn1
   disableNotifyFn 1
   .attreour:
     state
   .attrminint:
   CL:
     Authenticated 0
     BUF       
     FD         79
     FW_ID      1176
     LASTACCESS 1632755865
     NAME       WEB_192.168.1.31_50567
     NR         1723
     PEER       192.168.1.31
     PORT       50567
     SNAME      WEB
     SSL       
     STATE      Connected
     TEMPORARY  1
     TYPE       FHEMWEB
     canAsyncOutput 1
     .attraggr:
     .attrminint:
     READINGS:
       2021-09-27 17:16:55   state           Connected
   READINGS:
     2021-09-27 16:17:31   .protLastRcv    20210927161731
     2021-06-10 00:22:05   CommandAccepted yes
     2021-09-27 16:23:26   IODev           hmlan1
     2021-09-27 16:33:34   cfgState        ok
     2021-06-10 00:22:05   commState       CMDs_done
     2021-06-10 00:22:05   state           CMDs_done
   helper:
     HM_CMDNR   223
     mId        FFF1
     peerFriend -
     peerOpt    -:virtual
     regLst     0
     rxType     1
     tmplChg    0
     cmds:
       TmplKey    :1632752595.86026:1632752608.86521
       TmplTs     1632752608.86521
       cmdKey     0:1:1::VentilControler.AZ.Nord:FFF1:00:
       cmdLst:
         assignHmKey noArg
         clear      [(readings|rssi|msgEvents|attack|{msgErrors}|unknownDev)]
         deviceRename -newName-
         fwUpdate   -filename- [-bootTime-]
         getDevInfo noArg
         raw        -data- [...]
         reset      noArg
         unpair     noArg
         virtual    [(1..50;1|{1})]
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt   
         tplChan   
         tplDel     
         tplPeer   
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         list       [({normal}|full)]
         param      -param-
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       vccu       ccu
       prefIO:
         hmlan1
     mRssi:
       mNo       
     peerIDsH:
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
       vrt        1
     rssi:
     shadowReg:
     tmpl:
Attributes:
   .mId       FFF1
   IOgrp      ccu:hmlan1
   event-on-update-reading state
   expert     defReg,rawReg
   group      Heizung.AZ
   model      VIRTUAL
   msgRepeat  0
   room       20_AZ
   subType    virtual
   webCmd     press short:press long


Internals:
   .triggerUsed 1
   DEF        B5B5B501
   FUUID      5c4ce2e9-f33f-09c4-f9b9-f192af5a6a6260d0
   NAME       VentilControler.AZ.Nord_Btn1
   NR         283
   NTFY_ORDER 50-VentilControler.AZ.Nord_Btn1
   STATE      Vsoll: 0 %, Status: ValveAdjust:0 %, Kommunikation: ok, Error (tot/lost/avg): 1665 / 21 / 12.2, Modus: msgReduce:2
   TYPE       CUL_HM
   chanNo     01
   device     VentilControler.AZ.Nord
   disableNotifyFn 1
   peerList   Ventil.AZ.Nord
   .attraggr:
   .attreocr:
     .*
   .attreour:
     state
     valvePosTC
   .attrminint:
   .userReadings:
     HASH(0x38ef780)
     HASH(0x38f7348)
   CL:
     Authenticated 0
     BUF       
     FD         79
     FW_ID      1176
     LASTACCESS 1632755898
     NAME       WEB_192.168.1.31_50567
     NR         1723
     PEER       192.168.1.31
     PORT       50567
     SNAME      WEB
     SSL       
     STATE      Connected
     TEMPORARY  1
     TYPE       FHEMWEB
     canAsyncOutput 1
     .attraggr:
     .attrminint:
     READINGS:
       2021-09-27 17:16:55   state           Connected
   READINGS:
     2021-09-27 16:23:28   .associatedWith VentilControler.AZ.Nord,VentilControler.AZ.Nord_Btn1,VentilControler.AZ.Nord,Ventil.AZ.Nord
     2021-09-27 16:17:41   .next           206;1632752377.87581
     2021-09-27 16:33:34   cfgState        ok
     2021-06-10 00:22:05   commState       CMDs_done
     2021-05-13 17:53:25   ctrStart        2021-05-13 17:53:25
     2021-09-27 15:21:54   errorAvg        12.2
     2021-09-27 15:21:54   errorCtr        1665
     2021-09-27 15:23:57   errorState      ok
     2021-07-29 13:00:40   lostCtr         21
     2021-09-27 12:44:26   msgReduce       msgReduce:2
     2021-09-27 16:23:28   peerList        Ventil.AZ.Nord
     2021-09-27 12:44:26   state           ValveAdjust:0 %
     2021-09-27 15:23:57   valveCtrl       ok
     2021-09-27 15:23:57   valveCtrlRam    ok
     2021-09-27 12:44:26   valvePosTC      0 %
   helper:
     fkt        vdCtrl
     peerFriend peerSD,peerSens,peerAct
     peerIDsState incomplete
     peerOpt    -:virtual
     regLst     
     tmplChg    0
     cmds:
       TmplKey    Ventil.AZ.Nord:1632752595.86026:1632752608.88651
       TmplTs     1632752608.88651
       cmdKey     1:0:1:vdCtrl:VentilControler.AZ.Nord:FFF1:01:Ventil.AZ.Nord
       cmdLst:
         peerChan   -btnNumber- -actChn- [({single}|dual|reverse)] [({set}|unset)] [(actor|remote|{both})]
         peerSmart  -peerOpt-
         postEvent  -condition-
         press      [(long|{short})] [(-peer-|{all})] [(noBurst|{Burst})] [(-repCount-|{0})] [(-repDelay-|{0.25})]
         pressL     [(-peer-|{all})]
         pressS     [(-peer-|{all})]
         tplSet_0   -tplChan-
         tplSet_Ventil.AZ.Nord -tplPeer-
         valvePos   (off|0.0..99.0;0.1)
       lst:
         condition  slider,0,1,255
         peer       Ventil.AZ.Nord
         peerOpt    DimPBU01_Dim,DimPBU01_Dim_V_01,DimPBU01_Dim_V_02,DimUP01,Fenster.Bad,SD.AZ,SD.SZ,SD.WZ,SDTeam_Btn1,SwitchES01_SenF,SwitchES01_SenI,SwitchES01_SenPwr,SwitchES01_SenU,SwitchES01_Sw,SwitchPBU01_Btn_01,SwitchPBU01_Btn_02,SwitchPBU01_Sw_01,SwitchPBU01_Sw_02,SwitchPBU02_Btn_01,SwitchPBU02_Btn_02,SwitchPBU02_Sw_01,SwitchPBU02_Sw_02,SwitchPBU03,SwitchPBU05,SwitchPBU06,SwitchUP01,SwitchUP02,Tuer.SZ,Tuer.WZ.Terrasse,VentilControler.AZ.West_Btn1,VentilControler.Bad_Btn1,VentilControler.Kueche_Btn1,VentilControler.SZ_Btn1,VentilControler.WZ_Btn1,ccu_Btn1,rssi_hmuart_Btn1,virtAktorAlarmOff_Btn1,virt_vd_Btn1
         tplChan   
         tplDel     
         tplPeer   
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         list       [({normal}|full)]
         param      -param-
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     peerIDsH:
       1C4E2501   Ventil.AZ.Nord_chn-01
     role:
       chn        1
       vrt        1
     shadowReg:
     tmpl:
Attributes:
   alias      30. Controler.AZ.Nord
   event-on-change-reading .*
   event-on-update-reading state,valvePosTC
   group      Heizung.AZ
   model      VIRTUAL
   param      msgReduce:2
   peerIDs    1C4E2501
   room       20_AZ,98_Ventile
   stateFormat Vsoll: valvePosTC, Status: state, Kommunikation: valveCtrl, Error (tot/lost/avg): errorCtr / lostCtr / errorAvg, Modus: msgReduce
   userReadings msgReduce:valvePosTC.* {AttrVal($name,"param","???")},
errorAvg:(valvePosTC|errorCtr).* {
my $tsStart = ReadingsVal($name,"ctrStart",undef);
my $days = ((defined($tsStart))?sprintf("%.1f",(time() - time_str2num($tsStart)) / (24*60*60)):0);
return sprintf("%.1f",ReadingsVal($name,"errorCtr",0) / (($days < 0.1)?0.1:$days));
}
   verbose    2
   webCmd     press short:press long
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

workaround für das "attr param msgReduce:x"

1. cul_hm version von beta-user nutzen https://forum.fhem.de/index.php/topic,122422.msg1176632.html#msg1176632
damit kann man das attr im channel des vtc wieder einstellen/verändern.

2. nach jedem fhem restart muss nun noch das attribut explizit erneut gesetzt werden.
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

Beta-User

Zwischeninfo: meine "Trefferwahrscheinlichkeit" für das korrekte Setzen von .AttrList bei den RT's erhöht sich scheinbar, wenn ca. in #9658

foreach (sort keys %{$culHmModel}){
statt
foreach (keys %{$culHmModel}){
steht. Evtl. hilft das auch hier? (Die anderen sort-Anweisungen werden damit aber nicht alle überflüssig, das ist irgendwie vertrackt, und ich bin daher nach wie vor nicht sicher, ob das alles war).

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

frank

sortieren kann ich mir sparen.
es gibt kein internal .AttrList in keinem virtuellen channel.
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

Beta-User

Das Problem ist nach meinem Verständnis nicht, dass man was vorhandenes sortieren müßte, sondern dass nur was vorhanden ist, wenn die Kanäle in der richtigen Reihenfolge geprüft werden.

Wie im Testsszenarium beschrieben: Mal ist was da, mal nicht. Sowas passiert mAn. im Perl-Umfeld nur, wenn ein unsortierter Hash-Zugriff stattfindet.

Ein Tipp noch: Direkt nach dem Starten mal am Kanal ein refresh ausführen (also "alte FHEM-Seite" offenlassen, den Startbefehl auf der Linux-Kommandozeile abschicken und dann gleich F5@Firefox). Dann bekommt man (ganz ohne Internal .AttrList) die Attributliste aus dem Anhang, sobald die Sanduhr um ist.
Erst danach wird gekappt und das Internal ist nach einem neuerlichen refresh dann da.

Was uns also (auch) interessiert, ist was zwischen dem initialen Einlesen der cfg und dem "Normalbetrieb" passiert...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

frank

hier gibt es bisher kein voodoo und kein wackekontakt.  :)

alle 6 entities besitzen das attribut param, es war nie weg und immer auszuwählen.

ich hätte auch ohne deine version gestern ein attribut param setzen können. es gab aber eine falsche voreinstellung mit falscher fester argument liste.

mit deiner version kann ich, wie schon immer das argument selber schreiben, ohne liste. (doch zufall?)

dadurch konnte ich das richtige argument setzen.
ein setzen über cmdline hatte ich vorher nicht probiert.


alle fehler die ich bisher sehe, haben mit einem gestörten cul_hm start zu tun. das war noch nie ohne bugs/reibungsverluste.
scheinbar ist das konstrukt selbst für martin "undurchschaubar" mit 1000 sonderlocken. sobald martin an einer ecke "optimiert" funktioniert vieles nur noch "solala" oder gar nicht mehr.
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

Beta-User

Zitat von: frank am 28 September 2021, 16:49:23
hier gibt es bisher kein voodoo und kein wackekontakt.  :)
"Voodoo" ist mein Testszenarium eigentlich nicht, aber man kann damit schön demonstrieren, wie sich "einfache" Hash-Zugriffe auswirken, nämlich genau: Zufällig, falls es kein eindeutiges Ergebnis gibt bzw. man eine Schleife über die (unsortierte!) key-Liste laufen läßt. Oft ist es wirklich egal, in welcher Reihenfolge z.B. keys gelöscht werden. Aber sobald eine nachfolgende Aktion erwartet, dass vorher was sauber durch ist, geht es eben nicht (immer) so aus wie erwünscht, sondern es ist eine moderne Form des Würfelns.

EDIT:
Zitat... und das fällt auf

       
  • Bei der Initialisierung wird zuerst der Schlüssel übergeben und dann der Wert.
  • Man ordnet dem Hash ein Array zu!
  • Bei Hashes gibt es keine Reihenfolge! Ursache: Die Daten werden nach einem speziellen internen Verfahren gespeichert, auf das man als Programmierer keinen Zugriff hat.
EDIT 2: zum Testen:
{my %test=(1=>1,2=>2,3=>3);;my @y = keys %test;; return join q{ }, @y;;}
Einfach mehrfach in die FHEM-Kommandozeile werfen...

Zitat
alle 6 entities besitzen das attribut param, es war nie weg und immer auszuwählen.

ich hätte auch ohne deine version gestern ein attribut param setzen können. es gab aber eine falsche voreinstellung mit falscher fester argument liste.
OK, das kam hier nicht so deutlich an, wo genau das Problem liegt

Zitat
mit deiner version kann ich, wie schon immer das argument selber schreiben, ohne liste. (doch zufall?)
Nach meiner Testerei würde ich behaupten: Begrenzung der Wahrscheinlichkeiten für bestimmte Effekte in der Initialisierung der CUL_HM-Geräte-Hashes, also teilweise gesteuerter Zufall ;) .

Zitat
dadurch konnte ich das richtige argument setzen.
ein setzen über cmdline hatte ich vorher nicht probiert.
Soweit ich das überblicke, geht über cmdline nur, was auch in den dropdowns ist. Nur über direktes cfg-Edit kann man das (ggf. nur temporär) überspielen, und wenn die neueren CUL_HM-Versionen etwas nicht mögen/kennen, hauen die das auch (timergesteuert in der Initialisierung) weg.

Zitat
alle fehler die ich bisher sehe, haben mit einem gestörten cul_hm start zu tun. das war noch nie ohne bugs/reibungsverluste.
scheinbar ist das konstrukt selbst für martin "undurchschaubar" mit 1000 sonderlocken. sobald martin an einer ecke "optimiert" funktioniert vieles nur noch "solala" oder gar nicht mehr.
Nach meinem Eindruck ist es v.a. deswegen undurchschaubar, weil eben mit dem "Universalwerkzeug" "for (keys %whatever)" mit nicht deterministisch sortierten Arrays gearbeitet wird/wurde. Es kann durchaus sein, dass die sort-Aktionen neue Probleme bringen und man die Durchläufe ggf. auch anders strukturieren muss. Aber das ganze weiter dem Zufall zu überlassen halte ich mit meinem heutigen Kenntnisstand für einen handwerklichen Fehler. Und das ganze betrifft definitiv mehrere Stellen, was die Zahl der möglichen Varianten wohl nicht unbedingt verkleinert...

Wenn es sortiert Probleme gibt, muss man die für die Initialisierung erforderlichen Arrays mit den keywords nochmal irgendwo gesondert definieren und dann eben die Codes in den Schleifen entsprechend der erforderlichen Reihenfolge abarbeiten. Nicht schön, weil es weitere Komplexität und zusätzlichen Pflegebedarf verursacht, aber m.E. gibt es keinen anderen Weg. Kann aber natürlich sein, dass es irgendwo eine "Hauptliste" gibt und es schon ausreicht, die "richtig herum" zu initialisieren. Wenn wir Glück haben, sind die "sort"-Anweisungen "zufällig" gleich richtig herum, denn ganz schlimm kann es eigentlich (vor der "Härtung") nicht gewesen sein.

Ich werde meine neue Version nachher mal ins Hauptsystem packen, mal sehen, ob ich dann wieder eine kalte Dusche bekomme...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

frank

neue erkenntnisse zum kaputten autostart des vtc:

im log ist zu sehen, dass der befehl valvePos doch automatisch kommt.
allerdings ist valvePos zu dem zeitpunkt noch unbekannt, wodurch der automatismus stirbt.

2021.09.29 20:47:50.868 3: set VentilControler.Bad_Btn1 valvePos 32 : Unknown argument valvePos, choose one of press getRegRaw regSet clear:msgErrors,noArg,readings,trigger,register,oldRegs,rssi,msgEvents,attack,all regBulk peerBulk peerSmart:DimPBU01_Dim,DimPBU01_Dim_V_01,DimPBU01_Dim_V_02,DimUP01,Fenster.Bad,SD.AZ,SD.SZ,SD.WZ,SDTeam_Btn1,SwitchES01_SenF,SwitchES01_SenI,SwitchES01_SenPwr,SwitchES01_SenU,SwitchES01_Sw,SwitchPBU01_Btn_01,SwitchPBU01_Btn_02,SwitchPBU01_Sw_01,SwitchPBU01_Sw_02,SwitchPBU03,SwitchPBU05,SwitchPBU06,SwitchUP01,SwitchUP02,Tuer.SZ,Tuer.WZ.Terrasse,VentilControler.AZ.Nord_Btn1,VentilControler.AZ.West_Btn1,VentilControler.Kueche_Btn1,VentilControler.SZ_Btn1,VentilControler.WZ_Btn1,ccu_Btn1,rssi_hmuart_Btn1,virtAktorAlarmOff_Btn1 postEvent:slider,0,1,255 getConfig:noArg peerChan
2021.09.29 20:47:51.022 3: set VentilControler.Kueche_Btn1 valvePos 91 : Unknown argument valvePos, choose one of press getRegRaw regSet clear:msgErrors,noArg,readings,trigger,register,oldRegs,rssi,msgEvents,attack,all peerSmart:DimPBU01_Dim,DimPBU01_Dim_V_01,DimPBU01_Dim_V_02,DimUP01,Fenster.Bad,SD.AZ,SD.SZ,SD.WZ,SDTeam_Btn1,SwitchES01_SenF,SwitchES01_SenI,SwitchES01_SenPwr,SwitchES01_SenU,SwitchES01_Sw,SwitchPBU01_Btn_01,SwitchPBU01_Btn_02,SwitchPBU01_Sw_01,SwitchPBU01_Sw_02,SwitchPBU03,SwitchPBU05,SwitchPBU06,SwitchUP01,SwitchUP02,Tuer.SZ,Tuer.WZ.Terrasse,VentilControler.AZ.Nord_Btn1,VentilControler.AZ.West_Btn1,VentilControler.Bad_Btn1,VentilControler.SZ_Btn1,VentilControler.WZ_Btn1,ccu_Btn1,rssi_hmuart_Btn1,virtAktorAlarmOff_Btn1 postEvent:slider,0,1,255 regBulk peerBulk getConfig:noArg peerChan
2021.09.29 20:47:51.083 3: set VentilControler.WZ_Btn1 valvePos 0 : Unknown argument valvePos, choose one of clear:msgErrors,noArg,readings,trigger,register,oldRegs,rssi,msgEvents,attack,all regSet press getRegRaw getConfig:noArg peerChan regBulk peerBulk peerSmart:DimPBU01_Dim,DimPBU01_Dim_V_01,DimPBU01_Dim_V_02,DimUP01,Fenster.Bad,SD.AZ,SD.SZ,SD.WZ,SDTeam_Btn1,SwitchES01_SenF,SwitchES01_SenI,SwitchES01_SenPwr,SwitchES01_SenU,SwitchES01_Sw,SwitchPBU01_Btn_01,SwitchPBU01_Btn_02,SwitchPBU01_Sw_01,SwitchPBU01_Sw_02,SwitchPBU03,SwitchPBU05,SwitchPBU06,SwitchUP01,SwitchUP02,Tuer.SZ,Tuer.WZ.Terrasse,VentilControler.AZ.Nord_Btn1,VentilControler.AZ.West_Btn1,VentilControler.Bad_Btn1,VentilControler.Kueche_Btn1,VentilControler.SZ_Btn1,ccu_Btn1,rssi_hmuart_Btn1,virtAktorAlarmOff_Btn1 postEvent:slider,0,1,255
2021.09.29 20:47:51.122 3: set VentilControler.AZ.Nord_Btn1 valvePos 0 : Unknown argument valvePos, choose one of regSet clear:msgErrors,noArg,readings,trigger,register,oldRegs,rssi,msgEvents,attack,all press getRegRaw getConfig:noArg peerChan regBulk peerBulk peerSmart:DimPBU01_Dim,DimPBU01_Dim_V_01,DimPBU01_Dim_V_02,DimUP01,Fenster.Bad,SD.AZ,SD.SZ,SD.WZ,SDTeam_Btn1,SwitchES01_SenF,SwitchES01_SenI,SwitchES01_SenPwr,SwitchES01_SenU,SwitchES01_Sw,SwitchPBU01_Btn_01,SwitchPBU01_Btn_02,SwitchPBU01_Sw_01,SwitchPBU01_Sw_02,SwitchPBU03,SwitchPBU05,SwitchPBU06,SwitchUP01,SwitchUP02,Tuer.SZ,Tuer.WZ.Terrasse,VentilControler.AZ.West_Btn1,VentilControler.Bad_Btn1,VentilControler.Kueche_Btn1,VentilControler.SZ_Btn1,VentilControler.WZ_Btn1,ccu_Btn1,rssi_hmuart_Btn1,virtAktorAlarmOff_Btn1 postEvent:slider,0,1,255
2021.09.29 20:47:51.162 1: CUL_HM start inital cleanup
2021.09.29 20:47:56.055 1: CUL_HM finished initial cleanup
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

Beta-User

Zitat von: frank am 30 September 2021, 10:18:22
nein, beim virtuellen tc hat sich nichts geändert.
Nachdem ich die lists hier nochmal durchgesehen hatte, habe ich auch eine Idee, warum das so ist:

VIRTUAL-Geräte werden erst mal gesondert behandelt...
Hier scheint noch dazuzukommen, dass der Befehl wohl erst verfügbar wird, wenn bekannt ist, welcher Typ der peer ist, oder deute ich mein Testsystem falsch?
Evtl. muss man beim Start erst mal pauschal alle Befehle verfügbar machen, bis die Initialisierung drüber ist (wie bei den Attributen)?

Was mir aber auffällt: der vtc hat keinen subType (mehr?). Kannst du den mal setzen und dann nochmal testen?
UU. führt dann CUL_HM_updateConfig() (dort #424ff) dazu, dass das Paket wieder auf den Weg gebracht wird?
(EDIT: Sollte eigentlich automatisch auf "virtual" gesetzt werden...?)

Zitat von: frank am 30 September 2021, 10:18:22
hminfo configcheck findet weiterhin keinen fehler, wenn kein attribut gesetzt ist.
das war damals der grund das attribut mit none zu setzen.
HMinfo hatte ich bisher erst mal ausgeblendet. Letztlich hatte das auf die zugrundeliegenden Probleme ja keinen Einfluss. Allerdings war mir schon länger suspekt, dass da getConfig-Befehle in größerer Zahl _an immer wieder dieselben Geräte_ rausgegangen sind zwischen "start initial cleanup" und "finish". Den Teil wollte ich eigentlich als nächstes ansehen, aber vermutlich ist die Initialisierung der "VIRTUAL" wichtiger?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

frank

ZitatWas mir aber auffällt: der vtc hat keinen subType (mehr?).
doch, das hauptdevice vom vtc hat attr subType.
auch haben device und channel jeweils {role}{vrt}

im prinzip wird nur zu "verabredeten" zeiten periodisch an die vd gefunkt (valvePos/keepalive).
direkt beim restart wird aber sofort ein keepalive rausgehauen, unabhängig vom richtigen zeitpunkt.
eigentlich hat mich das schon immer gestört, aber scheinbar wichtig, damit der autostart erstmal anläuft.
erst die weiteren messages erfolgen wieder zu den berechneten zeitpunkten.


Zitatvermutlich ist die Initialisierung der "VIRTUAL" wichtiger?
das wichtigste für mich wäre der autostart der vtc, damit die ventile nach restart nicht grundsätzlich einschlafen.
denn sonst ist die heizung 90min aus, oder ich renne durchs haus und muss alles manuell wieder starten.

über ein verzögertes, automatisches senden von valvePos über mein INITIALIZED-notify springt zwar das automatische senden der keepalive wieder an, aber scheinbar stimmen dann die sendezeitpunkte nicht, da bisher immer alle vd einschlafen.
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

Beta-User

Gefährlich bzw. unklar, was damit an Nebenwirkungen verbunden ist, aber testweise wäre das Abfangen des Kommands in der Initialisierungsphase deaktiviert, wenn man #5059 so ändert:
  if(!defined $hash->{helper}{cmds}{cmdLst}{$cmd} && defined $hash->{helper}{cmds}{cmdLst}{cmdKey}) { ### unknown - return the commandlist if initialisation is done
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

frank

wenn, dann meinst du wohl eher
  if(!defined $hash->{helper}{cmds}{cmdLst}{$cmd} && defined $hash->{helper}{cmds}{cmdKey}) { ### unknown - return the commandlist if initialisation is done

mal schauen...
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

Beta-User

Ups, klar...

Wenn ich das richtig überblicke, sollte man dann ggf. nur im "else"-Fall (ganz unten...) auch noch unterscheiden, ob der betreffende Hash defined ist oder nicht und dann während der Initialisierung für einen unbekannten command eine etwas andere Rückmeldung geben.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Beta-User

Nachtrag zu:
Zitat von: frank am 28 September 2021, 16:49:23
ich hätte auch ohne deine version gestern ein attribut param setzen können. es gab aber eine falsche voreinstellung mit falscher fester argument liste.
Beim Rumtesten damit ist mir aufgefallen, dass mal wieder "Voodoo" im Spiel ist und die "falsche argument liste" eben nicht fest ist, sondern mit jedem Neustart anders auf einen festen Wert eingestellt wird.

"Meine Lieblingslösung" gegen Voodoo ist mal wieder sort, hier in doppelter Ausführung ab #1394
    $hash->{AttrList} = join(" ",sort #Beta-User: double sorting in map and noDup seems to bind empty preselection for param to VIRTUAL channel (textfield)
                                 map{my ($foo) = sort keys %{$hash->{ModulAttr}{$_}}; # use first option
                                       my $val = $hash->{AttrX}{$foo}{$_};
                                       $_.($val ? ':'.$val                         # add colon
                                                : '')
                                      }   
                                 CUL_HM_noDup(sort keys %{$hash->{ModulAttr}})         # each attr just once
                             );

Damit ergab sich beim Testen jedenfalls immer ein leeres Eingabefeld. Auch hier kann ich unerwünschte Nebenwirkungen mal wieder nicht ausschließen, glaube aber, dass "sort" besser ist wie Hash-Voodoo....

Komisch ist aber, dass sich das Setzen des param-Attributs zwar auswirkt, man aber keinen Seitenrefresh und damit keine Rückmeldung bekommt - das ist aber scheinbar generell das Verhalten von CUL_HM und nicht spezifisch für dieses eine (lange nichts mehr an meinen Geräten geändert, jedenfalls nicht via Detail-View...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

frank

dies ist grosser murks:
if(!defined $hash->{helper}{cmds}{cmdLst}{$cmd} && defined $hash->{helper}{cmds}{cmdKey}) { ### unknown - return the commandlist if initialisation is done

nur 1 von 6 ventilen hat es geschaft.
zu beginn ein paar
set VentilControler.Bad_Btn1 valvePos 22 : virtual TC support one VD only. Correct number of peers

ausserdem gibt es am laufenden meter ohne ende ständig warnings mit unterschiedlichen zeilen:
PERL WARNING: Use of uninitialized value $paraOpts in substitution (s///) at ./FHEM/10_CUL_HM.pm line 5140.

diverse getconfigs, statusrequest für andere devices sind wohl auch betroffen.
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