FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Superposchi am 20 Mai 2021, 12:37:07

Titel: Verständnisproblem mit Perl-Modus
Beitrag von: Superposchi am 20 Mai 2021, 12:37:07
Hallo, ich habe bei einem DOIF Probleme mit dem Command.
Im Perl-Modus wird das Kommando nicht ausgeführt, während es im Fhem-Modus normal funktioniert.
Also
(set Wohnzimmerlautsprecher speak "Bitte füllen Sie das Wasser auf  und montieren das Wischtuch")
funktioniert
{fhem("set Wohnzimmerlautsprecher speak /"Bitte füllen Sie das Wasser auf  und montieren das Wischtuch/"")}
funktioniert nicht

Wo habe ich den Denkfehler?
Titel: Antw:Verständnisproblem mit Perl-Modus
Beitrag von: frank am 20 Mai 2021, 13:36:58
und so?
{fhem("set Wohnzimmerlautsprecher speak 'Bitte füllen Sie das Wasser auf  und montieren das Wischtuch'")}
Titel: Antw:Verständnisproblem mit Perl-Modus
Beitrag von: MadMax-FHEM am 20 Mai 2021, 15:28:31
Bzw. wenn "escapen", dann richtig:

Zitat
/"

vs.


\"


;)

Es gibt auch noch q(String) oder qq(String)
(aber das habe ich mir noch nicht näher zu Gemüte geführt)

Gruß, Joachim
Titel: Antw:Verständnisproblem mit Perl-Modus
Beitrag von: Superposchi am 20 Mai 2021, 17:19:15
Ok, da hat sich ein Dreher eingeschlichen. Danke.
Nach dem ich es geändert hat, hat es auch funktioniert.

Allerdings komischerweise nur zweimal und dann kam keine Ansage mehr. Die Lautstärkeanpassung hingegen funktioniert jedesmal.

Hier das List:
Internals:
   CFGFN     
   DEF        ([Test] eq "on")
({my $volume=ReadingsVal("Wohnzimmerlautsprecher","volume","50");fhem("set Wohnzimmerlautsprecher volume 85");fhem("set Wohnzimmerlautsprecher speak \"Bitte füllen Sie das Wasser auf  und montieren das Wischtuch\"");fhem("sleep 5");fhem("set Wohnzimmerlautsprecher volume $volume");})
   FUUID      60a635ee-f33f-793a-cd0b-27371ba54687c97d
   MODEL      FHEM
   NAME       Benachrichtigung_universell
   NOTIFYDEV  global,Test
   NR         38592
   NTFY_ORDER 50-Benachrichtigung_universell
   STATE      initialized
   TYPE       DOIF
   VERSION    24330 2021-04-24 21:09:16
   .attraggr:
   .attrminint:
   READINGS:
     2021-05-20 17:17:13   cmd             0
     2021-05-20 17:17:13   mode            enabled
     2021-05-20 17:17:13   state           initialized
   Regex:
     accu:
     collect:
     cond:
       Test:
         0:
           &STATE     ^Test$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'Test','STATE') eq "on"
   do:
     0:
       0          {my $volume=ReadingsVal("Wohnzimmerlautsprecher","volume","50");fhem("set Wohnzimmerlautsprecher volume 85");fhem("set Wohnzimmerlautsprecher speak \"Bitte füllen Sie das Wasser auf  und montieren das Wischtuch\"");fhem("sleep 5");fhem("set Wohnzimmerlautsprecher volume $volume");}
     1:
   helper:
     DEVFILTER  ^global$|^Test$
     NOTIFYDEV  global|Test
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     all         Test:STATE
   uiState:
   uiTable:
Attributes:
   do         always