set device virtual 1 schlägt fehl

Begonnen von Tommi ratlos, 11 Februar 2023, 16:26:40

Vorheriges Thema - Nächstes Thema

Tommi ratlos

Hallo,

komme irgendwie nicht weiter.
Wollte mir eine kleine Funktion zum Anlegen von virtuellen Fensterkontakten schreiben.

sub createVirtWsens($){
my ($NAME) = @_;

# zufällige HMID zwische 1 und FFFFFF erzeugen
my $HMID = sprintf("%06X", rand(hex("FFFFFF"))+1);

# prüfen ob es die HMID schon einmal gibt
my @devids = devspec2array("TYPE=CUL_HM:FILTER=DEF=$HMID");
my @exiid = grep($HMID, @devids);

if (grep($HMID, @devids)) {
return "HMID $HMID wird schon für @exiid verwendet";
}

if (defined($defs{"HM_SEC_VIRT_$NAME"})) {
return "Device HM_SEC_VIRT_$NAME wird schon verwendet";
}

fhem("define HM_SEC_VIRT_".$NAME." CUL_HM ".$HMID);
fhem("attr HM_SEC_VIRT_".$NAME." model VIRTUAL");
fhem("attr HM_SEC_VIRT_".$NAME." room 0_LAB");

if (defined($defs{"HM_SEC_VIRT_$NAME"})) {
fhem("set HM_SEC_VIRT_".$NAME." virtual 1");
}
       
}


Es läuft immer auf "Unknown argument virtual, choose one of ..." hinaus.

Soweit ich das verstehe "kennt" Perl/FHEM das Device nicht vollständig.
Rufe ich nach dem anlegen eine Funktion fhem("set HM_SEC_VIRT_".$NAME." virtual 1"); auf, geht es.

Kann ich das Device aus Perl "neu laden"?

Gruß
Thomas
Proxmox CUNX868 mit 433 Pigator.

frank

weil noch kein attr subtype existiert?
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

Tommi ratlos

Hi,

danke.
Wenn ich vorher
fhem("attr HM_SEC_VIRT_".$NAME." subType virtual");

ausführe ändert sich nichts.

Gruß
Thomas
Proxmox CUNX868 mit 433 Pigator.

frank

probiere mal so:

define
attr modeForce VIRTUAL
set vitual 1
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

Tommi ratlos

Proxmox CUNX868 mit 433 Pigator.

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

Tommi ratlos

LOG
2023.02.11 20:09:22.880 3: set HM_SEC_VIRT_doof virtual 1 : Unknown argument virtual, choose one of reset:noArg regBulk clear:msgErrors,noArg,msgEvents,rssi,attack,trigger,register,oldRegs,readings,all assignHmKey:noArg raw fwUpdate peerChan getRegRaw getDevInfo:noArg getConfig:noArg peerSmart:HM_LED_RGB_Kueche_Auto,HM_LED_RGB_Kueche_Color,HM_LED_RGB_Kueche_Dim,HM_RT_Bad_WindowRec,HM_RT_Bad_remote,HM_RT_Diele_WindowRec,HM_RT_Diele_remote,HM_RT_Kueche_WindowRec,HM_RT_Kueche_remote,HM_RT_Mansarde_WindowRec,HM_RT_Mansarde_remote,HM_RT_Schlafzimmer_WindowRec,HM_RT_Schlafzimmer_remote,HM_RT_Wohnzimmer_WindowRec,HM_RT_Wohnzimmer_remote,HM_Remote_Btn_01,HM_Remote_Btn_02,HM_Remote_Btn_03,HM_Remote_Btn_04,HM_Remote_Btn_05,HM_Remote_Btn_06,HM_Remote_Btn_07,HM_Remote_Btn_08,HM_SEC_Bad_Dachfenster,HM_SEC_Bad_Tuer,HM_SEC_Diele_Tuer,HM_SEC_Kueche_Dachfenster,HM_SEC_Kueche_Fenster_1,HM_SEC_Kueche_Fenster_2,HM_SEC_Kueche_Fenster_3,HM_SEC_Kueche_Tuer,HM_SEC_Mansarde_Fenster_1,HM_SEC_Mansarde_Fenster_2,HM_SEC_Mansarde_Tuer,HM_SEC_Schlafzimmer_Fenster_1,HM_SEC_Schlafzimmer_Fenster_2,HM_SEC_Schlafzimmer_Tuer,HM_SEC_Wohnzimmer_Fenster_1,HM_SEC_Wohnzimmer_Fenster_2,HM_SEC_Wohnzimmer_Tuer,HM_SW_Kueche_Tisch_SenF,HM_SW_Kueche_Tisch_SenI,HM_SW_Kueche_Tisch_SenPwr,HM_SW_Kueche_Tisch_SenU,HM_SW_Kueche_Tisch_sw,HM_SW_Mansarde_Tauchen_SenF,HM_SW_Mansarde_Tauchen_SenI,HM_SW_Mansarde_Tauchen_SenPwr,HM_SW_Mansarde_Tauchen_SenU,HM_SW_Mansarde_Tauchen_sw,HM_TC_Bad_WindowRec,HM_TC_Bad_remote,HM_TC_Kueche_WindowRec,HM_TC_Kueche_remote,HM_TC_Mansarde_WindowRec,HM_TC_Mansarde_remote,HM_TC_Schlafzimmer_WindowRec,HM_TC_Schlafzimmer_remote,HM_TC_Wohnzimmer_WindowRec,HM_TC_Wohnzimmer_remote,HM_VIRT_Bad_Dachfenster,HM_VIRT_Bad_Tuer,HM_VIRT_Kueche_Tuer,HM_VIRT_Schlafzimmer_Tuer,HM_VIRT_Wohnzimmer_Tuer regSet postEvent:slider,0,1,255 press unpair:noArg peerBulk deviceRename


LIST
define HM_SEC_VIRT_doof CUL_HM F9BB34
attr HM_SEC_VIRT_doof userattr structexclude winOpen winOpen_map
attr HM_SEC_VIRT_doof .mId FFF1
attr HM_SEC_VIRT_doof DbLogExclude .*
attr HM_SEC_VIRT_doof model VIRTUAL
attr HM_SEC_VIRT_doof modelForce VIRTUAL
attr HM_SEC_VIRT_doof room 0_LAB
attr HM_SEC_VIRT_doof subType virtual
attr HM_SEC_VIRT_doof webCmd virtual
#   CFGFN     
#   DEF        F9BB34
#   FUUID      63e7e7e2-f33f-c08c-641f-5eb2f66e8d2c93d1
#   IODev     
#   NAME       HM_SEC_VIRT_doof
#   NR         5716
#   NTFY_ORDER 48-HM_SEC_VIRT_doof
#   STATE      ???
#   TYPE       CUL_HM
#   chanNo     01
#   disableNotifyFn 1
#   READINGS:
#   helper:
#     HM_CMDNR   230
#     mId        FFF1
#     peerFriend peerSD,peerSens,peerAct
#     peerOpt    -:virtual
#     regLst     0
#     rxType     1
#     cmds:
#       TmplKey    :no:1676142567.69586
#       TmplTs     1676142567.69586
#       cmdKey     1:1:1::HM_SEC_VIRT_doof:FFF1:01:
#       cmdLst:
#         assignHmKey noArg
#         clear      [(readings|rssi|msgEvents|attack|{msgErrors}|unknownDev)]
#         deviceRename -newName-
#         fwUpdate   -filename- [-bootTime-]
#         getDevInfo noArg
#         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})]
#         raw        -data- [...]
#         reset      noArg
#         tplSet_0   -tplChan-
#         unpair     noArg
#         virtual    [(1..50;1|{1})]
#       lst:
#         condition  slider,0,1,255
#         peer       
#         peerOpt    HM_LED_RGB_Kueche_Auto,HM_LED_RGB_Kueche_Color,HM_LED_RGB_Kueche_Dim,HM_RT_Bad_WindowRec,HM_RT_Bad_remote,HM_RT_Diele_WindowRec,HM_RT_Diele_remote,HM_RT_Kueche_WindowRec,HM_RT_Kueche_remote,HM_RT_Mansarde_WindowRec,HM_RT_Mansarde_remote,HM_RT_Schlafzimmer_WindowRec,HM_RT_Schlafzimmer_remote,HM_RT_Wohnzimmer_WindowRec,HM_RT_Wohnzimmer_remote,HM_Remote_Btn_01,HM_Remote_Btn_02,HM_Remote_Btn_03,HM_Remote_Btn_04,HM_Remote_Btn_05,HM_Remote_Btn_06,HM_Remote_Btn_07,HM_Remote_Btn_08,HM_SEC_Bad_Dachfenster,HM_SEC_Bad_Tuer,HM_SEC_Diele_Tuer,HM_SEC_Kueche_Dachfenster,HM_SEC_Kueche_Fenster_1,HM_SEC_Kueche_Fenster_2,HM_SEC_Kueche_Fenster_3,HM_SEC_Kueche_Tuer,HM_SEC_Mansarde_Fenster_1,HM_SEC_Mansarde_Fenster_2,HM_SEC_Mansarde_Tuer,HM_SEC_Schlafzimmer_Fenster_1,HM_SEC_Schlafzimmer_Fenster_2,HM_SEC_Schlafzimmer_Tuer,HM_SEC_Wohnzimmer_Fenster_1,HM_SEC_Wohnzimmer_Fenster_2,HM_SEC_Wohnzimmer_Tuer,HM_SW_Kueche_Tisch_SenF,HM_SW_Kueche_Tisch_SenI,HM_SW_Kueche_Tisch_SenPwr,HM_SW_Kueche_Tisch_SenU,HM_SW_Kueche_Tisch_sw,HM_SW_Mansarde_Tauchen_SenF,HM_SW_Mansarde_Tauchen_SenI,HM_SW_Mansarde_Tauchen_SenPwr,HM_SW_Mansarde_Tauchen_SenU,HM_SW_Mansarde_Tauchen_sw,HM_TC_Bad_WindowRec,HM_TC_Bad_remote,HM_TC_Kueche_WindowRec,HM_TC_Kueche_remote,HM_TC_Mansarde_WindowRec,HM_TC_Mansarde_remote,HM_TC_Schlafzimmer_WindowRec,HM_TC_Schlafzimmer_remote,HM_TC_Wohnzimmer_WindowRec,HM_TC_Wohnzimmer_remote,HM_VIRT_Bad_Dachfenster,HM_VIRT_Bad_Tuer,HM_VIRT_Kueche_Tuer,HM_VIRT_Schlafzimmer_Tuer,HM_VIRT_Wohnzimmer_Tuer
#         tplChan   
#         tplDel     
#         tplPeer   
#       rtrvLst:
#         cmdList    [({short}|long)]
#         deviceInfo [({short}|long)]
#         list       [({normal}|full)]
#         param      -param-
#     expert:
#       def        1
#       det        0
#       raw        0
#       tpl        0
#     io:
#       flgs       0
#       newChn     +F9BB34,00,00,00
#       rxt        0
#       vccu       
#       p:
#         F9BB34
#         00
#         00
#         00
#       prefIO:
#     mRssi:
#       mNo       
#     peerIDsH:
#     prt:
#       bErr       0
#       sProc      0
#     q:
#       qReqConf   
#       qReqStat   
#     role:
#       chn        1
#       dev        1
#       vrt        1
#     tmpl:
#


Sieht meiner Meinug nach gut aus. Wie gesagt wenn ich den Befehl NACH der Erstellung ausführe geht es. Irgendwie "merkt" Perl nicht das dass Device "komplett" ist

Gruß
Thomas
Proxmox CUNX868 mit 433 Pigator.

frank

das list sieht gut aus und zeigt auch den befehl.
vermutlich kommt dein "set virtual" zu früh durch die vielen "fhem" 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

Tommi ratlos

Möglich,

habe es auch schon mit einem FHEM sleep vor dem Befehl versucht.
Ohne Erfolg.

Gruß
Thomas
Proxmox CUNX868 mit 433 Pigator.

frank

mach mal so:

fhem("cmd1; sleep; cmd2; sleep; cmd3");
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

Tommi ratlos

Morgähn,

habe es so hinbekommen
fhem("sleep 6; set HM_SEC_VIRT_".$NAME." virtual 1");

Dabei darf die Zeit nicht zu kurz sein 4 Sekunden geht z.B. nicht.

Es scheint das FHEM ein weilchen braucht bis das Device "da" ist.

Gruß
Thomas

Proxmox CUNX868 mit 433 Pigator.