Hauptmenü

DOIF mit Templates

Begonnen von Tueftler1983, 26 November 2022, 12:46:20

Vorheriges Thema - Nächstes Thema

Tueftler1983

Hallo zusammen um nicht 8 DOIF anlegen zu müssen Versuche ich eines mit Templates an zu legen.

Allerdings habe ich da irgendwo einen Fehler drin. In der Hilfe finde ich immer nur versiedene IF Bedingungen aber immer nur eine DO Bedingung.

Bei mir soll ein IF mehrere Befehle ausführen.

Hier Mal meine Definition

DEF TPL_SPL ({ if ([$1] eq "on"){fhem_set MQTT2_smartpusher:on"$2"}{fhem_set MQTT2_smartpusher:sendText"$3 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif ([$1] eq "off"){fhem_set MQTT2_smartpusher:on"$2"}{fhem_set MQTT2_smartpusher:sendText"$3 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif ([$1] eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade"$2"}{fhem_set MQTT2_smartpusher:sendText"$3 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}})

TPL_SPL
(Garten_Diamant1,1,Garten1)
TPL_SPL
(Garten_Diamant2,2,Garten2)
TPL_SPL
(Garten_Diamant3,,Garten3)
TPL_SPL
(Garten_Diamant4,4,Garten4)
TPL_SPL
(Garten_Diamant5,5,Garten5)
TPL_SPL
(Garten_Steckdose1,6,Garten6)
TPL_SPL
(Garten_Steckdose2,7,Garten7)
TPL_SPL
(Garten_Steckdose3,8,Garten8)


Und ein List vom DOIF

Internals:
   CFGFN     
   DEF        DEF TPL_SPL ({ if ([$1] eq "on"){fhem_set MQTT2_smartpusher:on"$2"}{fhem_set MQTT2_smartpusher:sendText"$3 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif ([$1] eq "off"){fhem_set MQTT2_smartpusher:on"$2"}{fhem_set MQTT2_smartpusher:sendText"$3 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif ([$1] eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade"$2"}{fhem_set MQTT2_smartpusher:sendText"$3 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}})

TPL_SPL
(Garten_Diamant1,1,Garten1)
TPL_SPL
(Garten_Diamant2,2,Garten2)
TPL_SPL
(Garten_Diamant3,,Garten3)
TPL_SPL
(Garten_Diamant4,4,Garten4)
TPL_SPL
(Garten_Diamant5,5,Garten5)
TPL_SPL
(Garten_Steckdose1,6,Garten6)
TPL_SPL
(Garten_Steckdose2,7,Garten7)
TPL_SPL
(Garten_Steckdose3,8,Garten8)
   FUUID      6381edc1-f33f-b458-3ef6-81fbb590b855a869
   MODEL      Perl
   NAME       di_SmartPusher_LED
   NOTIFYDEV  Garten_Diamant4,Garten_Diamant2,Garten_Diamant3,Garten_Steckdose1,Garten_Steckdose2,global,Garten_Steckdose3,Garten_Diamant1,Garten_Diamant5
   NR         51421
   NTFY_ORDER 50-di_SPL_1
   STATE      initialized
   TYPE       DOIF
   VERSION    26020 2022-05-03 16:28:02
   eventCount 22
   READINGS:
     2022-11-26 12:34:27   mode            enabled
     2022-11-26 12:34:27   state           initialized
   Regex:
     accu:
     collect:
     cond:
       Garten_Diamant1:
         0:
           &STATE     ^Garten_Diamant1$
       Garten_Diamant2:
         1:
           &STATE     ^Garten_Diamant2$
       Garten_Diamant3:
         2:
           &STATE     ^Garten_Diamant3$
       Garten_Diamant4:
         3:
           &STATE     ^Garten_Diamant4$
       Garten_Diamant5:
         4:
           &STATE     ^Garten_Diamant5$
       Garten_Steckdose1:
         5:
           &STATE     ^Garten_Steckdose1$
       Garten_Steckdose2:
         6:
           &STATE     ^Garten_Steckdose2$
       Garten_Steckdose3:
         7:
           &STATE     ^Garten_Steckdose3$
   condition:
     0           if (::InternalDoIf($hash,'Garten_Diamant1','STATE') eq "on"){fhem_set MQTT2_smartpusher:on"1"}{fhem_set MQTT2_smartpusher:sendText"Garten1 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif (::InternalDoIf($hash,'Garten_Diamant1','STATE') eq "off"){fhem_set MQTT2_smartpusher:on"1"}{fhem_set MQTT2_smartpusher:sendText"Garten1 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif (::InternalDoIf($hash,'Garten_Diamant1','STATE') eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade"1"}{fhem_set MQTT2_smartpusher:sendText"Garten1 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}
     1           if (::InternalDoIf($hash,'Garten_Diamant2','STATE') eq "on"){fhem_set MQTT2_smartpusher:on"2"}{fhem_set MQTT2_smartpusher:sendText"Garten2 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif (::InternalDoIf($hash,'Garten_Diamant2','STATE') eq "off"){fhem_set MQTT2_smartpusher:on"2"}{fhem_set MQTT2_smartpusher:sendText"Garten2 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif (::InternalDoIf($hash,'Garten_Diamant2','STATE') eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade"2"}{fhem_set MQTT2_smartpusher:sendText"Garten2 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}
     2           if (::InternalDoIf($hash,'Garten_Diamant3','STATE') eq "on"){fhem_set MQTT2_smartpusher:on""}{fhem_set MQTT2_smartpusher:sendText"Garten3 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif (::InternalDoIf($hash,'Garten_Diamant3','STATE') eq "off"){fhem_set MQTT2_smartpusher:on""}{fhem_set MQTT2_smartpusher:sendText"Garten3 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif (::InternalDoIf($hash,'Garten_Diamant3','STATE') eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade""}{fhem_set MQTT2_smartpusher:sendText"Garten3 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}
     3           if (::InternalDoIf($hash,'Garten_Diamant4','STATE') eq "on"){fhem_set MQTT2_smartpusher:on"4"}{fhem_set MQTT2_smartpusher:sendText"Garten4 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif (::InternalDoIf($hash,'Garten_Diamant4','STATE') eq "off"){fhem_set MQTT2_smartpusher:on"4"}{fhem_set MQTT2_smartpusher:sendText"Garten4 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif (::InternalDoIf($hash,'Garten_Diamant4','STATE') eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade"4"}{fhem_set MQTT2_smartpusher:sendText"Garten4 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}
     4           if (::InternalDoIf($hash,'Garten_Diamant5','STATE') eq "on"){fhem_set MQTT2_smartpusher:on"5"}{fhem_set MQTT2_smartpusher:sendText"Garten5 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif (::InternalDoIf($hash,'Garten_Diamant5','STATE') eq "off"){fhem_set MQTT2_smartpusher:on"5"}{fhem_set MQTT2_smartpusher:sendText"Garten5 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif (::InternalDoIf($hash,'Garten_Diamant5','STATE') eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade"5"}{fhem_set MQTT2_smartpusher:sendText"Garten5 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}
     5           if (::InternalDoIf($hash,'Garten_Steckdose1','STATE') eq "on"){fhem_set MQTT2_smartpusher:on"6"}{fhem_set MQTT2_smartpusher:sendText"Garten6 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif (::InternalDoIf($hash,'Garten_Steckdose1','STATE') eq "off"){fhem_set MQTT2_smartpusher:on"6"}{fhem_set MQTT2_smartpusher:sendText"Garten6 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif (::InternalDoIf($hash,'Garten_Steckdose1','STATE') eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade"6"}{fhem_set MQTT2_smartpusher:sendText"Garten6 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}
     6           if (::InternalDoIf($hash,'Garten_Steckdose2','STATE') eq "on"){fhem_set MQTT2_smartpusher:on"7"}{fhem_set MQTT2_smartpusher:sendText"Garten7 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif (::InternalDoIf($hash,'Garten_Steckdose2','STATE') eq "off"){fhem_set MQTT2_smartpusher:on"7"}{fhem_set MQTT2_smartpusher:sendText"Garten7 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif (::InternalDoIf($hash,'Garten_Steckdose2','STATE') eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade"7"}{fhem_set MQTT2_smartpusher:sendText"Garten7 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}
     7           if (::InternalDoIf($hash,'Garten_Steckdose3','STATE') eq "on"){fhem_set MQTT2_smartpusher:on"8"}{fhem_set MQTT2_smartpusher:sendText"Garten8 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif (::InternalDoIf($hash,'Garten_Steckdose3','STATE') eq "off"){fhem_set MQTT2_smartpusher:on"8"}{fhem_set MQTT2_smartpusher:sendText"Garten8 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif (::InternalDoIf($hash,'Garten_Steckdose3','STATE') eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade"8"}{fhem_set MQTT2_smartpusher:sendText"Garten8 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}
   defs:
     tpl:
       TPL_SPL    { if ([$1] eq "on"){fhem_set MQTT2_smartpusher:on"$2"}{fhem_set MQTT2_smartpusher:sendText"$3 Ein"}{fhem_set  MQTT2_smartpusher sendImage lighton.bin} elseif ([$1] eq "off"){fhem_set MQTT2_smartpusher:on"$2"}{fhem_set MQTT2_smartpusher:sendText"$3 Aus"}{fhem_set MQTT2_smartpusher sendImage lightoff.bin} elseif ([$1] eq "on-for-timer"){ fhem_set MQTT2_smartpusher:fade"$2"}{fhem_set MQTT2_smartpusher:sendText"$3 Timer"}{fhem_set MQTT2_smartpusher sendImage timer.bin"}}
   helper:
     NOTIFYDEV  Garten_Diamant4,Garten_Diamant2,Garten_Diamant3,Garten_Steckdose1,Garten_Steckdose2,global,Garten_Steckdose3,Garten_Diamant1,Garten_Diamant5
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     all         Garten_Diamant1:STATE Garten_Diamant2:STATE Garten_Diamant3:STATE Garten_Diamant4:STATE Garten_Diamant5:STATE Garten_Steckdose1:STATE Garten_Steckdose2:STATE Garten_Steckdose3:STATE
   perlblock:
     0          block_01
     1          block_02
     2          block_03
     3          block_04
     4          block_05
     5          block_06
     6          block_07
     7          block_08
   uiState:
   uiTable:
Attributes:


Hoffe ihr könnt mir helfen da ich, wenn ich zum Testen block_01 setzen möchte folgenden Fehler angezeigt bekomme,
block_01
condition c01: Can't find string terminator '"' anywhere before EOF, line 1.
2022-11-26 12:43:59
mode
enabled
2022-11-26 12:43:51
state
initialized
2022-11-26 12:43:51
warning
condition c01: (Missing semicolon on previous line?)

Tueftler1983

Habe die Definition auch Mal so abgeändert:
DEF TPL_SPL ({ if ([$1] eq "on")(set MQTT2_smartpusher:on "$2",set MQTT2_smartpusher:sendText "$3 Ein",set MQTT2_smartpusher sendImage lighton.bin) elseif ([$1] eq "off")(set MQTT2_smartpusher:on "$2",set MQTT2_smartpusher:sendText "$3 Aus",set MQTT2_smartpusher sendImage lightoff.bin) elseif ([$1] eq "on-for-timer")(set MQTT2_smartpusher:fade "$2",set MQTT2_smartpusher:sendText "$3 Timer",set MQTT2_smartpusher sendImage timer.bin")})

TPL_SPL
(Garten_Diamant1,1,Garten1)
TPL_SPL
(Garten_Diamant2,2,Garten2)
TPL_SPL
(Garten_Diamant3,3,Garten3)
TPL_SPL
(Garten_Diamant4,4,Garten4)
TPL_SPL
(Garten_Diamant5,5,Garten5)
TPL_SPL
(Garten_Steckdose1,6,Garten6)
TPL_SPL
(Garten_Steckdose2,7,Garten7)
TPL_SPL
(Garten_Steckdose3,8,Garten8)


Aber immer noch der selbe Fehler