MQTT2 + on-for-timer

Begonnen von cornelius fillmore, 24 Mai 2020, 22:16:06

Vorheriges Thema - Nächstes Thema

cornelius fillmore

Hallo Forum,
ich wollte eines meiner MQTT2 mit einem timer laufen lassen, aber irgenwie bekommen ich dies nicht hin.
Kann mir in diesem Punkt jemand weiterhelfen?

Anbei die list
Internals:
   CID        DVES_CCD14C
   DEF        DVES_CCD14C
   DEVICETOPIC MQTT2_DVES_CCD14C
   FUUID      5ecaa637-f33f-4662-8be3-2d2fa2831bd839b2
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 40
   MQTT2_FHEM_Server_TIME 2020-05-24 22:09:28
   MSGCNT     40
   NAME       MQTT2_DVES_CCD14C
   NR         587
   STATE      Online
1:off
2:off
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>
   TYPE       MQTT2_DEVICE
   READINGS:
     2020-05-24 22:09:28   Heap            27
     2020-05-24 21:02:03   LWT             Online
     2020-05-24 22:09:28   LoadAvg         19
     2020-05-24 22:09:28   POWER1          off
     2020-05-24 22:09:28   POWER2          off
     2020-05-24 19:00:50   SaveData        on
     2020-05-24 19:00:50   SetOption26     on
     2020-05-24 22:09:28   Sleep           50
     2020-05-24 22:09:28   SleepMode       Dynamic
     2020-05-24 19:00:49   StateText1      off
     2020-05-24 19:00:49   StateText2      on
     2020-05-24 19:00:49   StateText3      toggle
     2020-05-24 19:00:50   StateText4      hold
     2020-05-24 22:09:28   Time            2020-05-24T21:09:28
     2020-05-24 22:09:28   Uptime          0T03:10:35
     2020-05-24 22:09:28   Wifi_AP         1
     2020-05-24 22:09:28   Wifi_BSSId      2C:91:AB:CC:C6:C0
     2020-05-24 22:09:28   Wifi_Channel    6
     2020-05-24 22:09:28   Wifi_DeepSleep  0
     2020-05-24 22:09:28   Wifi_Downtime   0T00:00:04
     2020-05-24 22:09:28   Wifi_Heap       28304
     2020-05-24 22:09:28   Wifi_LinkCount  1
     2020-05-24 22:09:28   Wifi_RSSI       80
     2020-05-24 22:09:28   Wifi_SSId       Bloh_WLAN_2,4G
     2020-05-24 18:59:50   associatedWith  MQTT2_DVES_CCD14C_CH2
     2020-05-24 19:59:34   subscriptions   cmnd/DVES_CCD14C_fb/# cmnd/Sprinkler/# cmnd/sonoffs/#
Attributes:
   IODev      MQTT2_FHEM_Server
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on 2.on:on:POWER2+off 2.off:off:POWER2+on
   eventMap   attr MQTT2_DVES_CCD14C eventMap { dev=>{ 'true'=>'on', 'false'=>'off' }, usr=>{ '^on$'=>'true', '^off$'=>'false' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }
   icon       hue_filled_outlet
   model      tasmota_2ch_unified
   readingList tele/Sprinkler/LWT:.* LWT
  tele/Sprinkler/STATE:.* { json2nameValue($EVENT) }
  tele/Sprinkler/SENSOR:.* { json2nameValue($EVENT) }
  tele/Sprinkler/INFO.:.* { json2nameValue($EVENT) }
  stat/Sprinkler/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Sprinkler/UPTIME:.* { json2nameValue($EVENT) }
  stat/Sprinkler/POWER1:.* POWER1
  stat/Sprinkler/POWER2:.* POWER2
   room       Aussen->Bewässerung,Steuerung->MQTT2_DEVICE
   setExtensionsEvent 1
   setList    POWER1:on,off,toggle cmnd/Sprinkler/POWER1 $EVTPART1 on-for-timer {my $duration = $EVTPART1*10; 'cmnd/DVES_575127/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}
  POWER2:on,off,toggle cmnd/Sprinkler/POWER2 $EVTPART1 on-for-timer {my $duration = $EVTPART1*10; 'cmnd/DVES_575127/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}
   setStateList on off toggle
   stateFormat LWT
1:POWER1
2:POWER2
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>
   webCmd     POWER1:POWER2

Und das logfile
2020.05.27 06:54:44.239 3: MQTT2_DEVICE set MQTT2_DVES_CCD14C POWER1 on-for-timer 10
2020.05.27 06:54:44.240 5: MQTT2_FHEM_Server: PUBLISH cmnd/Sprinkler/POWER1 on-for-timer
2020.05.27 06:54:44.246 5:   MQTT2_FHEM_Server_192.168.0.69_55238 DVES_CCD14C => cmnd/Sprinkler/POWER1:on-for-timer
2020.05.27 06:54:44.247 5: out: PUBLISH: 0#(0)(21)cmnd/Sprinkler/POWER1on-for-timer
2020.05.27 06:54:44.384 5: in:  PUBLISH: 0'(0)(21)stat/Sprinkler/RESULT{"POWER1":"off"}
2020.05.27 06:54:44.384 4:   MQTT2_FHEM_Server_192.168.0.69_55238 DVES_CCD14C PUBLISH stat/Sprinkler/RESULT:{"POWER1":"off"}
2020.05.27 06:54:44.385 5: MQTT2_FHEM_Server: dispatch autocreate=simple\000DVES_CCD14C\000stat/Sprinkler/RESULT\000{"POWER1":"off"}
2020.05.27 06:54:44.449 5: in:  PUBLISH: 0(26)(0)(21)stat/Sprinkler/POWER1off
2020.05.27 06:54:44.449 4:   MQTT2_FHEM_Server_192.168.0.69_55238 DVES_CCD14C PUBLISH stat/Sprinkler/POWER1:off
2020.05.27 06:54:44.450 5: MQTT2_FHEM_Server: dispatch autocreate=simple\000DVES_CCD14C\000stat/Sprinkler/POWER1\000off
3 x Fhem 5.9 mit RPI

rudolfkoenig

Fehlt nicht ein Newline vor on-for-timer?
Und on-for-timer sollte man nicht zweimal definieren.

cornelius fillmore

So habs mal geändert.
Aber es funktioniert immer noch nicht
Anbei die list
Internals:
   CID        DVES_CCD14C
   DEF        DVES_CCD14C
   DEVICETOPIC MQTT2_DVES_CCD14C
   FUUID      5ecaa637-f33f-4662-8be3-2d2fa2831bd839b2
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 392
   MQTT2_FHEM_Server_TIME 2020-05-25 21:55:30
   MSGCNT     392
   NAME       MQTT2_DVES_CCD14C
   NR         587
   STATE      Online
1:off
2:on
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>
   TYPE       MQTT2_DEVICE
   READINGS:
     2020-05-25 21:55:17   Heap            27
     2020-05-25 17:52:13   LWT             Online
     2020-05-25 21:55:17   LoadAvg         19
     2020-05-25 21:55:30   POWER1          off
     2020-05-25 21:55:29   POWER2          on
     2020-05-24 19:00:50   SaveData        on
     2020-05-24 19:00:50   SetOption26     on
     2020-05-25 21:55:17   Sleep           50
     2020-05-25 21:55:17   SleepMode       Dynamic
     2020-05-24 19:00:49   StateText1      off
     2020-05-24 19:00:49   StateText2      on
     2020-05-24 19:00:49   StateText3      toggle
     2020-05-24 19:00:50   StateText4      hold
     2020-05-25 21:55:17   Time            2020-05-25T20:55:17
     2020-05-25 21:55:17   Uptime          1T02:56:24
     2020-05-25 21:55:17   Wifi_AP         1
     2020-05-25 21:55:17   Wifi_BSSId      2C:91:AB:CC:C6:C0
     2020-05-25 21:55:17   Wifi_Channel    11
     2020-05-25 21:55:17   Wifi_DeepSleep  0
     2020-05-25 21:55:17   Wifi_Downtime   0T00:00:20
     2020-05-25 21:55:17   Wifi_Heap       28304
     2020-05-25 21:55:17   Wifi_LinkCount  6
     2020-05-25 21:55:17   Wifi_RSSI       94
     2020-05-25 21:55:17   Wifi_SSId       Bloh_WLAN_2,4G
     2020-05-24 18:59:50   associatedWith  MQTT2_DVES_CCD14C_CH2
     2020-05-24 19:59:34   subscriptions   cmnd/DVES_CCD14C_fb/# cmnd/Sprinkler/# cmnd/sonoffs/#
Attributes:
   IODev      MQTT2_FHEM_Server
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on 2.on:on:POWER2+off 2.off:off:POWER2+on
   eventMap   attr MQTT2_DVES_CCD14C eventMap { dev=>{ 'true'=>'on', 'false'=>'off' }, usr=>{ '^on$'=>'true', '^off$'=>'false' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }
   icon       hue_filled_outlet
   model      tasmota_2ch_unified
   readingList tele/Sprinkler/LWT:.* LWT
  tele/Sprinkler/STATE:.* { json2nameValue($EVENT) }
  tele/Sprinkler/SENSOR:.* { json2nameValue($EVENT) }
  tele/Sprinkler/INFO.:.* { json2nameValue($EVENT) }
  stat/Sprinkler/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Sprinkler/UPTIME:.* { json2nameValue($EVENT) }
  stat/Sprinkler/POWER1:.* POWER1
  stat/Sprinkler/POWER2:.* POWER2
   room       Aussen->Bewässerung,Steuerung->MQTT2_DEVICE
   setExtensionsEvent 1
   setList    POWER1:on,off,toggle cmnd/Sprinkler/POWER1 $EVTPART1
on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}
POWER2:on,off,toggle cmnd/Sprinkler/POWER2 $EVTPART1
   setStateList on off toggle
   stateFormat LWT
1:POWER1
2:POWER2
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>
   webCmd     POWER1:POWER2
3 x Fhem 5.9 mit RPI

rudolfkoenig

Ich wuerde das FHEM-Log nach "attr MQTT2_FHEM_Server verbose 5" und "set MQTT2_DVES_CCD14C on-for-timer 10" anschauen.
Und dann ueberlegen, ob das im FHEM-Log gezeigte topic/message das ist, was das Geraet erwartet.

cornelius fillmore

#4
So, habe mal die beiden Zeilen ausgeführt, aber so richtig was geändert hat sich nicht.
Anbei das log
2020.05.26 06:13:36.481 3: MQTT2_DEVICE set MQTT2_DVES_CCD14C on-for-timer 10
2020.05.26 06:13:36.482 5: MQTT2_FHEM_Server: PUBLISH {my $duration = 10*10; 'cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}
2020.05.26 06:13:45.192 5: in:  PINGREQ: (192)(0)
2020.05.26 06:13:45.192 4:   MQTT2_FHEM_Server_192.168.0.69_50390 DVES_CCD14C PINGREQ
2020.05.26 06:13:45.193 5: out: PINGRESP: (208)(0)
2020.05.26 06:14:00.741 5: in:  PINGREQ: (192)(0)
2020.05.26 06:14:00.741 4:   MQTT2_FHEM_Server_192.168.0.13_63925 DVES_976FB9 PINGREQ
2020.05.26 06:14:00.742 5: out: PINGRESP: (208)(0)
2020.05.26 06:14:01.168 5: in:  PINGREQ: (192)(0)
2020.05.26 06:14:01.168 4:   MQTT2_FHEM_Server_192.168.0.47_16711 DVES_E54AAB PINGREQ
2020.05.26 06:14:01.168 5: out: PINGRESP: (208)(0)
2020.05.26 06:14:03.978 5: in:  PINGREQ: (192)(0)
2020.05.26 06:14:03.978 4:   MQTT2_FHEM_Server_192.168.0.154_50207 DVES_9796BC PINGREQ
2020.05.26 06:14:03.979 5: out: PINGRESP: (208)(0)
2020.05.26 06:14:15.200 5: in:  PINGREQ: (192)(0)
2020.05.26 06:14:15.201 4:   MQTT2_FHEM_Server_192.168.0.69_50390 DVES_CCD14C PINGREQ
2020.05.26 06:14:15.202 5: out: PINGRESP: (208)(0)
2020.05.26 06:14:30.770 5: in:  PINGREQ: (192)(0)
2020.05.26 06:14:30.770 4:   MQTT2_FHEM_Server_192.168.0.13_63925 DVES_976FB9 PINGREQ
2020.05.26 06:14:30.771 5: out: PINGRESP: (208)(0)
2020.05.26 06:14:31.172 5: in:  PINGREQ: (192)(0)
2020.05.26 06:14:31.173 4:   MQTT2_FHEM_Server_192.168.0.47_16711 DVES_E54AAB PINGREQ
2020.05.26 06:14:31.173 5: out: PINGRESP: (208)(0)
2020.05.26 06:14:34.006 5: in:  PINGREQ: (192)(0)
2020.05.26 06:14:34.007 4:   MQTT2_FHEM_Server_192.168.0.154_50207 DVES_9796BC PINGREQ
2020.05.26 06:14:34.007 5: out: PINGRESP: (208)(0)

Ist den meine setlist so i.O?
POWER1:on,off,toggle cmnd/Sprinkler/POWER1 $EVTPART1
on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}
POWER2:on,off,toggle cmnd/Sprinkler/POWER2 $EVTPART1

Komisch finde ich, dass ich manuel jetzt gar nicht mehr schalten kann
3 x Fhem 5.9 mit RPI

rudolfkoenig

Wenn ich deine Konfiguration bei mir eingebe, dann bekomme ich fuer "set MQTT2_DVES_CCD14C on-for-timer 10"
2020.05.26 09:38:08 5: m2s: PUBLISH cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay 100; POWER1 0

Das ist zwar wegen cmnd/cmnd mAn etwas komisch, aber deutlich besser als deine Variante.
Weiss nicht, was bei Dir anders ist.

cornelius fillmore

Kann es denn etwas damit zu tun haben, dass dies ein 2Kanal ist.
Ich habe noch einen sonoffs mit 1Kanal am laufen, welcher von Anfang an mit on-for-timer funktionierte ohne das etwas in der setList hinzugefügt oder geändert wurde
3 x Fhem 5.9 mit RPI

rudolfkoenig

Generell ist ein kombiniertes Geraet mit mehreren Kanaelen aufwendiger zu konfigurieren, weil die Mechanismen wie SetExtensions sowas nicht beherrschen, aber in diesem Fall geht es um was anderes, vermutlich Tippfehler
=> deine PUBLISH Ausgabe sollte etwas enthalten, womit dein MQTT-Client etwas anfangen kann (und nicht Perl-Code)

Beta-User

Da der Code für den einen Kanal vermutlich aus dem Wiki/Praxisbeispiele kommt:

(Ungetestet:) Mach' da mal ein zweites ";" rein
on-for-timer {my $duration = $EVTPART1*10;; 'cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}

Falls das funktioniert, kannst du mal das noch so ändern:
on-for-timer {my $duration = $EVTPART1*10;; qq(cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay $duration; POWER1 0)}
Wenn das paßt, würde ich das dann auch wieder im Wiki anpassen (ich hatte das, was jetzt da steht, nur als "funktionierend" zugerufen bekommen, nie getestet und evtl. auch einen Fehler beim Übertrag gemacht...).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rudolfkoenig

Getestet:
Zitatattr MQTT2_DVES_CCD14C setList    POWER1:on,off,toggle cmnd/Sprinkler/POWER1 $EVTPART1\
on-for-timer {my $duration = $EVTPART1*10;; 'cmnd/cmnd/Sprinkler/Backlog POWER1 1;; delay '.$duration.';; POWER1 0'}\
POWER2:on,off,toggle cmnd/Sprinkler/POWER2 $EVTPART1
Das ; muss fuer fhem.cfg ueberall verdoppelt werden, da der FHEM Parser nicht so intelligent ist, dass es ein "innerhalb" von ' (oder " oder qq  etc) feststellen kann.

In der Detailansicht sieht man nur noch ein ; und auch beim Bearbeiten des Attributes im FHEMWEB ist nur noch ein ; notwendig, da es hier immer um genau ein FHEM Befehl geht, und es keine Befehlskette sein kann.

Beta-User

Hmm, dann war das im Wiki bisher jedenfalls mißverständlich; habe mal den Hinweis rein, dass das der Weg der Eingabe via FHEMWEB-Attributfeld ist... (der Rest des Artikels geht immer von RAW-input aus).

@TE: es gibt ein "split"-template, damit hätte SetExtensions-on-for-timer&Co ootb funktioniert...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

cornelius fillmore

Zitat von: rudolfkoenig am 26 Mai 2020, 12:07:03
Getestet:Das ; muss fuer fhem.cfg ueberall verdoppelt werden, da der FHEM Parser nicht so intelligent ist, dass es ein "innerhalb" von ' (oder " oder qq  etc) feststellen kann.
Ich habe das nun mal eingegeben.
So richtig verbessert hat es sich aber nicht.
Schalten via "on-for-timer" geht immer noch nicht.
Anbei die list des devices:
Internals:
   CID        DVES_CCD14C
   DEF        DVES_CCD14C
   DEVICETOPIC MQTT2_DVES_CCD14C
   FUUID      5ecaa637-f33f-4662-8be3-2d2fa2831bd839b2
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 313
   MQTT2_FHEM_Server_TIME 2020-05-26 20:41:51
   MSGCNT     313
   NAME       MQTT2_DVES_CCD14C
   NR         587
   STATE      Online
1:off
2:off
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>
   TYPE       MQTT2_DEVICE
   OLDREADINGS:
   READINGS:
     2020-05-26 20:41:51   Heap            27
     2020-05-26 17:31:41   LWT             Online
     2020-05-26 20:41:51   LoadAvg         19
     2020-05-26 20:41:51   POWER1          off
     2020-05-26 20:41:51   POWER2          off
     2020-05-26 10:18:29   SaveData        on
     2020-05-26 10:18:29   SetOption26     on
     2020-05-26 20:41:51   Sleep           50
     2020-05-26 20:41:51   SleepMode       Dynamic
     2020-05-26 10:18:28   StateText1      off
     2020-05-26 10:18:28   StateText2      on
     2020-05-26 10:18:28   StateText3      toggle
     2020-05-26 10:18:28   StateText4      hold
     2020-05-26 20:41:51   Time            2020-05-26T19:41:51
     2020-05-26 20:41:51   Uptime          2T01:42:58
     2020-05-26 20:41:51   Wifi_AP         1
     2020-05-26 20:41:51   Wifi_BSSId      2C:91:AB:CC:C6:C0
     2020-05-26 20:41:51   Wifi_Channel    1
     2020-05-26 20:41:51   Wifi_DeepSleep  0
     2020-05-26 20:41:51   Wifi_Downtime   0T00:00:23
     2020-05-26 20:41:51   Wifi_Heap       27864
     2020-05-26 20:41:51   Wifi_LinkCount  7
     2020-05-26 20:41:51   Wifi_RSSI       90
     2020-05-26 20:41:51   Wifi_SSId       Bloh_WLAN_2,4G
     2020-05-26 09:33:31   associatedWith  MQTT2_DVES_CCD14C_CH2
Attributes:
   IODev      MQTT2_FHEM_Server
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on 2.on:on:POWER2+off 2.off:off:POWER2+on
   eventMap   attr MQTT2_DVES_CCD14C eventMap { dev=>{ 'true'=>'on', 'false'=>'off' }, usr=>{ '^on$'=>'true', '^off$'=>'false' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }
   icon       hue_filled_outlet
   model      tasmota_2ch_unified
   readingList tele/Sprinkler/LWT:.* LWT
  tele/Sprinkler/STATE:.* { json2nameValue($EVENT) }
  tele/Sprinkler/SENSOR:.* { json2nameValue($EVENT) }
  tele/Sprinkler/INFO.:.* { json2nameValue($EVENT) }
  stat/Sprinkler/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Sprinkler/UPTIME:.* { json2nameValue($EVENT) }
  stat/Sprinkler/POWER1:.* POWER1
  stat/Sprinkler/POWER2:.* POWER2
   room       Aussen->Bewässerung,Steuerung->MQTT2_DEVICE
   setExtensionsEvent 1
   setList    POWER1:on,off,toggle cmnd/Sprinkler/POWER1 $EVTPART1\ on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}\ POWER2:on,off,toggle cmnd/Sprinkler/POWER2 $EVTPART1
   setStateList on off toggle
   stateFormat LWT
1:POWER1
2:POWER2
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>
   webCmd     POWER1:POWER2
3 x Fhem 5.9 mit RPI

Beta-User

da ist auch noch ein "doppeltes "cmnd" drin, das habe ich auch übersehen, Rudi hatte das aber schon früher angemakelt...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

cornelius fillmore

Zitat von: Beta-User am 26 Mai 2020, 20:56:10
da ist auch noch ein "doppeltes "cmnd" drin, das habe ich auch übersehen, Rudi hatte das aber schon früher angemakelt...
Guten Morgen, anbei meine Vorgehensweise

  • Ich wähle für den zwei Kanal Sonoff-Tasmota mit attrTemplate den "tasmota_2ch-unified"
  • setze dann die "setExtesionEvent" auf 1
  • gebe dann über raw input "on-for-timer {my $duration = $EVTPART1*10; 'cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}" ein
dann lässt sich das device weiterhin manuel schalten, aber on-for-timer funktioniert nicht
Noch eine Idee?

Anbei die aktuelle List des devices
[/list]Internals:
   CID        DVES_CCD14C
   DEF        DVES_CCD14C
   DEVICETOPIC MQTT2_DVES_CCD14C
   FUUID      5ecaa637-f33f-4662-8be3-2d2fa2831bd839b2
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 482
   MQTT2_FHEM_Server_TIME 2020-05-27 06:47:13
   MSGCNT     482
   NAME       MQTT2_DVES_CCD14C
   NR         587
   STATE      LWT
1:off
2:off
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>
   TYPE       MQTT2_DEVICE
   OLDREADINGS:
   READINGS:
     2020-05-27 06:47:13   Heap            27
     2020-05-27 06:47:13   LoadAvg         19
     2020-05-27 06:47:13   POWER1          off
     2020-05-27 06:47:13   POWER2          off
     2020-05-27 06:27:18   SaveData        on
     2020-05-27 06:27:18   SetOption26     on
     2020-05-27 06:47:13   Sleep           50
     2020-05-27 06:47:13   SleepMode       Dynamic
     2020-05-27 06:27:17   StateText1      off
     2020-05-27 06:27:17   StateText2      on
     2020-05-27 06:27:17   StateText3      toggle
     2020-05-27 06:27:18   StateText4      hold
     2020-05-27 06:47:13   Time            2020-05-27T05:47:13
     2020-05-27 06:47:13   Uptime          2T11:48:20
     2020-05-27 06:47:13   Wifi_AP         1
     2020-05-27 06:47:13   Wifi_BSSId      2C:91:AB:CC:C6:C0
     2020-05-27 06:47:13   Wifi_Channel    1
     2020-05-27 06:47:13   Wifi_DeepSleep  0
     2020-05-27 06:47:13   Wifi_Downtime   0T00:00:26
     2020-05-27 06:47:13   Wifi_Heap       28032
     2020-05-27 06:47:13   Wifi_LinkCount  8
     2020-05-27 06:47:13   Wifi_RSSI       90
     2020-05-27 06:47:13   Wifi_SSId       Bloh_WLAN_2,4G
     2020-05-26 09:33:31   associatedWith  MQTT2_DVES_CCD14C_CH2
Attributes:
   IODev      MQTT2_FHEM_Server
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on 2.on:on:POWER2+off 2.off:off:POWER2+on
   eventMap   attr MQTT2_DVES_CCD14C eventMap { dev=>{ 'true'=>'on', 'false'=>'off' }, usr=>{ '^on$'=>'true', '^off$'=>'false' }, fw=>{ '^on$'=>'on', '^off$'=>'off' } }
   icon       hue_filled_outlet
   model      tasmota_2ch_unified
   readingList tele/Sprinkler/LWT:.* LWT
  tele/Sprinkler/STATE:.* { json2nameValue($EVENT) }
  tele/Sprinkler/SENSOR:.* { json2nameValue($EVENT) }
  tele/Sprinkler/INFO.:.* { json2nameValue($EVENT) }
  stat/Sprinkler/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Sprinkler/UPTIME:.* { json2nameValue($EVENT) }
  stat/Sprinkler/POWER1:.* POWER1
  stat/Sprinkler/POWER2:.* POWER2
   room       Aussen->Bewässerung,Steuerung->MQTT2_DEVICE
   setExtensionsEvent 1
   setList    POWER1:on,off,toggle cmnd/Sprinkler/POWER1 $EVTPART1
on-for-timer {my $duration = $EVTPART1*10; 'cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}
  POWER2:on,off,toggle cmnd/Sprinkler/POWER2 $EVTPART1
   setStateList on off toggle
   stateFormat LWT
1:POWER1
2:POWER2
<br>
<a href="http://IPAddress" target="_blank">IPAddress</a>
   webCmd     POWER1:POWER2

3 x Fhem 5.9 mit RPI

Beta-User

Zitat von: cornelius fillmore am 27 Mai 2020, 06:52:01gebe dann über raw input "on-for-timer {my $duration = $EVTPART1*10; 'cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}" ein
:o ...warum schreibe ich im Wiki, dass die Schreibweise mit einem ";" für die Eingabe ins Attributfeld ist? Und hier, dass das abweicht von RAW, was sonst im Artikel verwendet wird?!?
Antwort im Klartext: Weil es über RAW mit je einem ";" nicht klappt... (qed)

Langform: nutze die Attributeingabe zur Korrektur, dann sollte es passen ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files