FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: cornelius fillmore am 24 Mai 2020, 22:16:06

Titel: MQTT2 + on-for-timer
Beitrag von: cornelius fillmore am 24 Mai 2020, 22:16:06
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
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: rudolfkoenig am 24 Mai 2020, 23:03:01
Fehlt nicht ein Newline vor on-for-timer?
Und on-for-timer sollte man nicht zweimal definieren.
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: cornelius fillmore am 25 Mai 2020, 21:58:29
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
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: rudolfkoenig am 25 Mai 2020, 22:13:37
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.
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: cornelius fillmore am 26 Mai 2020, 06:22:36
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
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: rudolfkoenig am 26 Mai 2020, 09:42:19
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.
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: cornelius fillmore am 26 Mai 2020, 10:13:14
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
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: rudolfkoenig am 26 Mai 2020, 10:22:42
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)
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: Beta-User am 26 Mai 2020, 11:57:24
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...).
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: rudolfkoenig am 26 Mai 2020, 12:07:03
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.
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: Beta-User am 26 Mai 2020, 12:24:50
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...
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: cornelius fillmore am 26 Mai 2020, 20:46:08
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
Titel: Antw:MQTT2 + on-for-timer
Beitrag 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...
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: cornelius fillmore am 27 Mai 2020, 06:52:01
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
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
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: Beta-User am 27 Mai 2020, 09:29:46
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 ;) .
Titel: gelöst: "MQTT2 + on-for-timer"
Beitrag von: cornelius fillmore am 27 Mai 2020, 18:01:51
 :-\ Leider nicht
anbei die aktuelle 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 710
   MQTT2_FHEM_Server_TIME 2020-05-27 17:58:02
   MSGCNT     710
   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 17:57:24   Heap            27
     2020-05-27 17:57:24   LoadAvg         19
     2020-05-27 17:58:02   POWER1          off
     2020-05-27 17:57:57   POWER2          off
     2020-05-27 17:50:08   SaveData        on
     2020-05-27 17:50:08   SetOption26     on
     2020-05-27 17:57:24   Sleep           50
     2020-05-27 17:57:24   SleepMode       Dynamic
     2020-05-27 17:50:07   StateText1      off
     2020-05-27 17:50:07   StateText2      on
     2020-05-27 17:50:07   StateText3      toggle
     2020-05-27 17:50:08   StateText4      hold
     2020-05-27 17:57:24   Time            2020-05-27T16:57:24
     2020-05-27 17:57:24   Uptime          2T22:58:31
     2020-05-27 17:57:24   Wifi_AP         1
     2020-05-27 17:57:24   Wifi_BSSId      2C:91:AB:CC:C6:C0
     2020-05-27 17:57:24   Wifi_Channel    1
     2020-05-27 17:57:24   Wifi_DeepSleep  0
     2020-05-27 17:57:24   Wifi_Downtime   0T00:01:06
     2020-05-27 17:57:24   Wifi_Heap       27864
     2020-05-27 17:57:24   Wifi_LinkCount  10
     2020-05-27 17:57:24   Wifi_RSSI       88
     2020-05-27 17:57:24   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

und der log nach Eingabe von on-for-timer
2020.05.27 17:54:56.190 3: MQTT2_DEVICE set MQTT2_DVES_CCD14C POWER1 on-for-timer 100
2020.05.27 17:54:56.191 5: MQTT2_FHEM_Server: PUBLISH cmnd/Sprinkler/POWER1 on-for-timer
2020.05.27 17:54:56.191 5:   MQTT2_FHEM_Server_192.168.0.69_63137 DVES_CCD14C => cmnd/Sprinkler/POWER1:on-for-timer
2020.05.27 17:54:56.191 5: out: PUBLISH: 0#(0)(21)cmnd/Sprinkler/POWER1on-for-timer
2020.05.27 17:54:56.453 5: in:  PUBLISH: 0'(0)(21)stat/Sprinkler/RESULT{"POWER1":"off"}
2020.05.27 17:54:56.454 4:   MQTT2_FHEM_Server_192.168.0.69_63137 DVES_CCD14C PUBLISH stat/Sprinkler/RESULT:{"POWER1":"off"}
2020.05.27 17:54:56.455 5: MQTT2_FHEM_Server: dispatch autocreate=simple\000DVES_CCD14C\000stat/Sprinkler/RESULT\000{"POWER1":"off"}
2020.05.27 17:54:56.631 5: in:  PUBLISH: 0(26)(0)(21)stat/Sprinkler/POWER1off
2020.05.27 17:54:56.632 4:   MQTT2_FHEM_Server_192.168.0.69_63137 DVES_CCD14C PUBLISH stat/Sprinkler/POWER1:off
2020.05.27 17:54:56.633 5: MQTT2_FHEM_Server: dispatch autocreate=simple\000DVES_CCD14C\000stat/Sprinkler/POWER1\000off


Was ich auch nicht verstehe ist, dass wenn ich die Zeile via Attributeingabe einfügen möchte, doch automatisch ein Fenster aufgeht, welches genauso aussieht wie der RAW-Input (oben mit dem +-Zeichen)
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: Beta-User am 27 Mai 2020, 18:12:33
1. Die Synatxprüfung bzw. "Übersetzung" ist eine andere, je nachdem, welches Dialogfeld man nimmt. Weiß aber nicht, warum das noch fraglich ist. Einfach hinterher den RAW-Code ansehen...

2. Dein Befehl ist "suboptimal":
2020.05.27 17:54:56.190 3: MQTT2_DEVICE set MQTT2_DVES_CCD14C POWER1 on-for-timer 100Entweder du schaltest "POWER1" oder "on-for-timer" (das geht gedanklich auf "state"). Versuch' mal das:
set MQTT2_DVES_CCD14C on-for-timer 100
(Warum denkst du wohl, dass wir "split"-Geräte empfehlen, wenn es keinen Grund gibt für "unified" (z.B. weil nur interne Verwendung für was anderes)....)Du kannst auch den setter POWER1-for-timer nennen und den für Kanal 2 POWER2-for-timer; beides hat mit einem "FHEM-on-for-timer" wenig zu tun. Also in setList
POWER1-for-timer {my $duration = $EVTPART1*10; 'cmnd/Sprinkler/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}
Dann geht Kommando
set MQTT2_DVES_CCD14C POWER1-for-timer 100
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: cornelius fillmore am 27 Mai 2020, 22:18:01
So habe nun das template vom unified zu split Gerät gewechselt
On-for-timer funktioniert von Anfang an ohne irgenwelche Eingaben in die setlist
Zumindest Kanal 1

Kanal 2 wird auch geschaltet zeigt aber keine Rückmeldung welche Stellung er nun hat
Muss ich da noch was konfigurieren?

Anbei die list vom CH1
Internals:
   CFGFN     
   CID        DVES_CCD14C
   DEF        DVES_CCD14C
   DEVICETOPIC MQTT2_DVES_CCD14C
   FUUID      5ecec671-f33f-4662-ed9c-94f2aa9960799b17
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 49
   MQTT2_FHEM_Server_TIME 2020-05-27 22:14:51
   MSGCNT     49
   NAME       MQTT2_DVES_CCD14C
   NR         17184
   STATE      off
   TYPE       MQTT2_DEVICE
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   OLDREADINGS:
   READINGS:
     2020-05-27 22:13:50   Heap            28
     2020-05-27 22:13:50   LoadAvg         19
     2020-05-27 21:59:20   SaveData        on
     2020-05-27 21:59:20   SetOption26     on
     2020-05-27 22:13:50   Sleep           50
     2020-05-27 22:13:50   SleepMode       Dynamic
     2020-05-27 21:59:19   StateText1      off
     2020-05-27 21:59:19   StateText2      on
     2020-05-27 21:59:19   StateText3      toggle
     2020-05-27 21:59:19   StateText4      hold
     2020-05-27 22:13:50   Time            2020-05-27T21:13:49
     2020-05-27 22:13:50   Uptime          0T00:15:14
     2020-05-27 22:13:50   Wifi_AP         1
     2020-05-27 22:13:50   Wifi_BSSId      2C:91:AB:CC:C6:C0
     2020-05-27 22:13:50   Wifi_Channel    1
     2020-05-27 22:13:50   Wifi_DeepSleep  0
     2020-05-27 22:13:50   Wifi_Downtime   0T00:00:04
     2020-05-27 22:13:50   Wifi_Heap       28824
     2020-05-27 22:13:50   Wifi_LinkCount  1
     2020-05-27 22:13:50   Wifi_RSSI       94
     2020-05-27 22:13:50   Wifi_SSId       Bloh_WLAN_2,4G
     2020-05-27 21:59:18   associatedWith  MQTT2_DVES_CCD14C_CH2
     2020-05-27 22:14:51   state           off
     2020-05-27 21:59:18   subscriptions   cmnd/DVES_CCD14C_fb/# cmnd/Sprinkler/# cmnd/sonoffs/#
   TIMED_OnOff:
     CMD        on-for-timer
     DURATION   800
     NEXTCMD    off
     START      1590610120
     START_FMT  2020-05-27 22:08:40
     hash:
Attributes:
   IODev      MQTT2_FHEM_Server
   autocreate 0
   comment    Channel 1 for MQTT2_DVES_CCD14C, see also MQTT2_DVES_CCD14C_CH2
   icon       hue_filled_outlet
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   model      tasmota_2channel_split
   readingList tele/Sprinkler/LWT:.* LWT
  tele/Sprinkler/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Sprinkler/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Sprinkler/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Sprinkler/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/Sprinkler/POWER1:.* state
  stat/Sprinkler/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       Aussen->Bewässerung,Steuerung->MQTT2_DEVICE
   setList    off:noArg    cmnd/Sprinkler/POWER1 0
  on:noArg     cmnd/Sprinkler/POWER1 1
  toggle:noArg cmnd/Sprinkler/POWER1 2
  setOtaUrl:textField cmnd/Sprinkler/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/Sprinkler/upgrade 1
   setStateList on off toggle

und die List CH2
Internals:
   CFGFN     
   CID        DVES_CCD14C
   DEF        DVES_CCD14C
   DEVICETOPIC MQTT2_DVES_CCD14C_CH2
   FUUID      5ecec696-f33f-4662-7cba-0060d04ac95ff041
   IODev      MQTT2_FHEM_Server
   NAME       MQTT2_DVES_CCD14C_CH2
   NR         17194
   STATE      set_off
   TYPE       MQTT2_DEVICE
   JSONMAP:
     ANALOG_A0  0
     Dimmer     pct
     Heap       0
     LedTable   0
     LoadAvg    0
     MqttCount  0
     POWER1     0
     POWER2     0
     SaveData   0
     Scheme     0
     SetOption26 0
     Sleep      0
     SleepMode  0
     Speed      0
     StateText1 0
     StateText2 0
     StateText3 0
     StateText4 0
     Time       0
     Uptime     0
     UptimeSec  0
     Wifi_AP    0
     Wifi_BSSId 0
     Wifi_Channel 0
     Wifi_Downtime 0
     Wifi_LinkCount 0
     Wifi_RSSI  0
     Wifi_SSId  0
   READINGS:
     2020-05-27 21:59:18   associatedWith  MQTT2_DVES_CCD14C
     2020-05-27 22:10:49   state           set_off
     2020-05-27 21:59:18   subscriptions   cmnd/DVES_CCD14C_fb/# cmnd/Sprinkler/# cmnd/sonoffs/#
Attributes:
   IODev      MQTT2_FHEM_Server
   autocreate 0
   comment    Channel 2 for MQTT2_DVES_CCD14C
   icon       hue_filled_outlet
   jsonMap    POWER2:0 Dimmer:pct POWER1:0 Heap:0 LedTable:0 LoadAvg:0 MqttCount:0 SaveData:0 Scheme:0 SetOption26:0 Sleep:0 SleepMode:0 Speed:0 StateText1:0 StateText2:0 StateText3:0 StateText4:0 Time:0 Uptime:0 UptimeSec:0 Wifi_SSId:0 Wifi_RSSI:0 Wifi_LinkCount:0 Wifi_Downtime:0 Wifi_Channel:0 Wifi_BSSId:0 Wifi_AP:0 ANALOG_A0:0 SetOption26:0 Sleep:0 SleepMode:0 Speed:0 StateText1:0 StateText2:0 StateText3:0 StateText4:0 Time:0 Uptime:0 UptimeSec:0 Wifi_SSId:0 Wifi_RSSI:0 Wifi_LinkCount:0 Wifi_Downtime:0 Wifi_Channel:0 Wifi_BSSId:0 Wifi_AP:0
   model      tasmota_2channel_split
   readingList STATTOPIC/POWER2:.* state
   room       Aussen->Bewässerung,Steuerung->MQTT2_DEVICE
   setList    off:noArg    cmnd/Sprinkler/POWER2 0
  on:noArg     cmnd/Sprinkler/POWER2 1
  toggle:noArg cmnd/Sprinkler/POWER2 2
   setStateList on off toggle
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: Beta-User am 28 Mai 2020, 08:45:57
Kann es sein, dass dein FHEM mind. 2 Monate nicht aktualisiert wurde? (afaik hatte ich das irgendwann im März repariert, dass der Parameter für STATTOPIC auch im 2. Kanal aufgelöst wird).
Titel: Antw:MQTT2 + on-for-timer
Beitrag von: cornelius fillmore am 28 Mai 2020, 09:11:46
Ich prüfe dies umgehend

Nach einen "erzwungenem" update läuft es nun.

Danke noch mal an die Ideengeber