[Gelöst] RegEx, das auf on triggert, aber nicht auf on-for-timer?

Begonnen von fstefan1960, 05 November 2021, 18:02:45

Vorheriges Thema - Nächstes Thema

fstefan1960

Hallo,

ich möchte ein Notify schreiben, das beim Einschalten einer Leuchte einen Timer startet. Also



defmod nAussenlichtTimer notify Aussenlicht:on set Aussenlicht on-for-timer 120

Das aber löst das Notify sofort wieder aus und es kommt zu einer Endlosschleife ...

Wie müsste das RegEx denn aussehen? Oder wie mache ich das?

Vielen Dank schonmal
Frank
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

MadMax-FHEM

#1
Hast du schon mal im Eventmonitor geschaut was kommt, wenn du "on-for-timer" schaltest?

Kann das Gerät das "nativ" oder nutzt du "setExtension"?

Bei setExtension macht fhem das on-for-timer und schickt: on - wartet - off -> es gibt also kein "on-for-timer" Event... Bzw. "on" und "on-for-timer" sehen gleich aus bzgl. Events -> das wird nicht gehen...
(zumindest bei einem dummy so)

-> list des Devices

-> Auszug aus dem Eventmonitor bei on und on-for-timer

EDIT: falls es doch unterschiedliche Events gibt evtl.: defmod nAussenlichtTimer notify Aussenlicht:on$ set Aussenlicht on-for-timer 120

EDIT: andere Frage: warum machst du/willst du aus einem "on" ein "on-for-timer" machen? Warum nicht gleich ein "on-for-timer"?

Ansonsten: disableAfterTrigger?

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)

fstefan1960

Hallo,

Wenn ich das softwaremäßig ansteuere, kann ich natürlich gleich on-for-timer nutzen, aber das device ist ein Homematic-Relais, das mit einem Hardware-Taster eingeschaltet wird. Das liefert dann ja als Event eben das ON.


Internals:
   DEF        393FE4
   FUUID      5d6a8c55-f33f-0145-e2fa-2905c60d4ecf4acc
   HMLAN1_MSGCNT 6
   HMLAN1_RAWMSG E393FE4,0000,00596E1E,FF,FFB7,69A410393FE4xxxxxx06010000
   HMLAN1_RSSI -73
   HMLAN1_TIME 2021-11-05 19:23:52
   HMLAN2_MSGCNT 5
   HMLAN2_RAWMSG E393FE4,0000,F39B46C7,FF,FFAA,69A410393FE4xxxxxx06010000
   HMLAN2_RSSI -86
   HMLAN2_TIME 2021-11-05 19:23:52
   IODev      HMLAN1
   LASTInputDev HMLAN2
   MSGCNT     11
   NAME       Aussenlicht
   NR         87
   NTFY_ORDER 48-Aussenlicht
   STATE      off
   TYPE       CUL_HM
   chanNo     01
   disableNotifyFn 1
   lastMsg    No:69 - t:10 s:393FE4 d:xxxxxx 06010000
   protLastRcv 2021-11-05 19:23:52
   protRcv    5 last_at:2021-11-05 19:23:52
   protSnd    6 last_at:2021-11-05 19:23:52
   protState  CMDs_done
   rssi_HMLAN1 cnt:4 min:-74 max:-73 avg:-73.25 lst:-73
   rssi_at_HMLAN1 cnt:6 min:-73 max:-72 avg:-72.83 lst:-73
   rssi_at_HMLAN2 cnt:5 min:-87 max:-83 avg:-84.8 lst:-86
   Helper:
     DBLOG:
       state:
         mySQLlog:
           TIME       1636136632.40792
           VALUE      off
   READINGS:
     2021-11-05 19:22:49   CommandAccepted yes
     2019-08-31 17:03:56   D-firmware      2.5
     2019-08-31 17:03:56   D-serialNr      MEQ0073940
     2021-11-05 19:23:52   IODev           HMLAN1
     2020-11-13 12:26:08   PairedTo        0xxxxxxx
     2019-08-31 17:03:59   R-pairCentral   0xxxxxxx
     2020-05-06 15:14:18   R-powerUpAction off
     2019-08-31 17:04:00   R-sign          off
     2020-11-13 12:26:08   RegL_00.        00:00 02:01 0A:09 0B:10 0C:60 15:FF 18:00
     2020-11-13 12:26:09   RegL_01.        00:00 08:00 30:06 56:00 57:24
     2020-11-13 12:26:39   cfgState        ok
     2021-11-05 19:23:52   commState       CMDs_done
     2021-11-05 19:23:52   deviceMsg       off (to VCCU)
     2021-11-05 19:23:52   level           0
     2021-11-05 19:23:52   pct             0
     2020-11-13 12:26:06   powerOn         2020-11-13 12:26:06
     2021-11-05 19:23:52   recentStateType info
     2021-11-05 19:23:52   state           off
     2021-11-05 19:23:52   timedOn         off
     2021-11-05 19:22:49   trigLast        fhem:02
   helper:
     HM_CMDNR   105
     cSnd       11xxxxxx393FE40201C80000,11xxxxxx393FE40201C800004B00
     dlvlCmd    ++A011xxxxxx393FE40201C80000
     lastMsgTm  1636136632.40381
     mId        0002
     peerFriend peerSens,peerVirt
     peerIDsState complete
     peerOpt    3:switch
     regLst     0,1,3p
     rxType     1
     supp_Pair_Rep 0
     ack:
     cmds:
       TmplKey    :no:1636130951.26595
       TmplTs     1636130951.26595
       cmdKey     1:1:0::Aussenlicht:0002:01:
       cmdLst:
         assignHmKey noArg
         clear      [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
         deviceRename -newName-
         fwUpdate   -filename- [-bootTime-]
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
         getVersion noArg
         inhibit    [(on|{off})]
         off        noArg
         on         noArg
         on-for-timer -ontime-
         on-till    -time-
         pair       noArg
         peerBulk   -peer1,peer2,...- [({set}|unset)]
         peerIODev  [IO] -btn- [({set}|unset)] 'not for future use'
         press      [(long|{short})] [(-peer-|{self01})] [(-repCount-|{0})] [(-repDelay-|{0.25})]
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         sign       [(on|{off})]
         statusRequest noArg
         toggle     noArg
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt   
         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        0
       raw        1
       tpl        0
     io:
       flgs       0
       newChn     +393FE4,00,00,00
       nextSend   1636136632.49309
       rxt        0
       vccu       VCCU
       p:
         393FE4
         00
         00
         00
       prefIO:
     mRssi:
       mNo        69
       io:
         HMLAN1:
           -71
           -71
         HMLAN2:
           -86
           -86
     peerIDsH:
       00000000   broadcast
     prt:
       bErr       0
       sProc      0
       rspWait:
       tryMsg:
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
       prs        1
     rpt:
       IO         HMLAN1
       flg        A
       ts         1636136632.40381
       ack:
         HASH(0x55eaeba36e28)
         698002xxxxxx393FE400
     rssi:
       HMLAN1:
         avg        -73.25
         cnt        4
         lst        -73
         max        -73
         min        -74
       at_HMLAN1:
         avg        -72.8333333333333
         cnt        6
         lst        -73
         max        -72
         min        -73
       at_HMLAN2:
         avg        -84.8
         cnt        5
         lst        -86
         max        -83
         min        -87
     tmpl:
Attributes:
   DbLogExclude .*
   DbLogInclude state
   IOgrp      VCCU
   autoReadReg 4_reqStatus
   devStateIcon on:light_ceiling@orange off:light_ceiling_off
   event-on-change-reading state
   expert     defReg,rawReg
   firmware   2.5
   group      Licht
   icon       light_ceiling
   model      HM-LC-SW1-FM
   peerIDs    00000000
   room       40_Aussen
   serialNr   MEQ0073940
   subType    switch
   webCmd     on:off


hier das Event-Log

2021-11-05 19:22:14 CUL_HM Aussenlicht set_on noArg
2021-11-05 19:22:14 CUL_HM Aussenlicht on
2021-11-05 19:22:49 CUL_HM Aussenlicht set_on-for-timer 60
2021-11-05 19:22:49 CUL_HM Aussenlicht on


Wenn ich das so anschaue, könnte ja was mit dem "noArg" anfangen ...
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

frank

wenn du mehr events erlaubst, sollte auch dieses event funktionieren
2021-11-05 19:22:49   trigLast        fhem:02
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

betateilchen

Um auf die ursprüngliche Frage

Zitat von: fstefan1960 am 05 November 2021, 18:02:45
Das aber löst das Notify sofort wieder aus und es kommt zu einer Endlosschleife ...

Wie müsste das RegEx denn aussehen? Oder wie mache ich das?

zurückzukommen und diese zu beantworten

defmod nAussenlichtTimer notify Aussenlicht:on$ sleep 0.1;;set Aussenlicht on-for-timer 120
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

MadMax-FHEM

Zitat von: fstefan1960 am 05 November 2021, 19:51:10
Wenn ich das softwaremäßig ansteuere, kann ich natürlich gleich on-for-timer nutzen, aber das device ist ein Homematic-Relais, das mit einem Hardware-Taster eingeschaltet wird. Das liefert dann ja als Event eben das ON.

Wenn du auch von einem HW-Schalter auch "nur" on-for-timer einschalten willst und der Schalter ein Homematic-Schalter ist: setze doch das entsprechende Register (shOn oder sowas) und dann hast du auch mit HW-Schalter dein on-for-timer 8)

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)

pwlr

Moin,
schließe mich den Ausführungen von Joachim an. Unter der Voraussetzung, dass die Zeit für on-for-timer eine Konstante ist, ist die Sache mit dem Setzen eines Registers erledigt.


set Aussenlicht regSet shOnTime xxx self01


xxx steht für die Zeit in Sekunden. Damit wird der Switch zum "Treppenhausautomaten" - Taste drücken und das Licht ist xxx Sekunden lang an.

Zurück zum Originalzustand kommt Du mit

set Aussenlicht regSet shOnTime unused self01


Funktioniert immer, auch wenn die Zentrale mal nicht will. (kein notify erforderlich)
:)
Moin
Bernd

fstefan1960

FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.