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
Pi 3 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
Pi 3 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

Pi 3 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
Pi 3 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
Pi 3 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

Pi 3 CUNX868 mit 433 Pigator.