FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: -user- am 23 Februar 2020, 12:25:39

Titel: "Sleep"
Beitrag von: -user- am 23 Februar 2020, 12:25:39
edit...
Titel: Antw:"Sleep" abbrechen
Beitrag von: Otto123 am 23 Februar 2020, 12:50:38
Hi,

Du willst FHEM sleep / cancel machen, Du machst aber Perl sleep. Ich denke, das hat kein cancel.

BTW: auch ein set funktioniert an der Stelle nicht :)

Die sub in der 99_myUtils.pm ist Perl. Für FHEM Befehle musst du dort die sub fhem("") verwenden.

Gruß Otto
Titel: Antw:"Sleep" abbrechen
Beitrag von: Jamo am 23 Februar 2020, 13:04:39
Hier mal ein Beispiel
sub mysub($) {
  my ($EVENT) = @_;
...
  if ($EVENT eq "off") {fhem ("sleep 30 sleepDVBc_0;set Schalter_DVBc:FILTER=state!=off off")}
  if ($EVENT eq "on")  {fhem ("cancel sleepDVBc_0 quiet;set Schalter_DVBc:FILTER=state!=on on")}
...
}
Titel: Antw:"Sleep" abbrechen
Beitrag von: Otto123 am 23 Februar 2020, 14:29:06
Aber die Antwort hatten wir schon gegeben!? ::)
Falsch:
{fhem("set Lampe on"); cancel s_Test;}
Richtig:
{fhem("set Lampe on; cancel s_Test")}

Dein sleep steht ja auch an der richtigen Stelle :) nur das ; am Ende ist unnötig
{fhem("sleep 300 s_Test quiet; set Lampe off")}

Gruß Otto
Titel: Antw:"Sleep" abbrechen
Beitrag von: herrmannj am 23 Februar 2020, 14:31:03
Zitat von: fhempi am 23 Februar 2020, 14:13:45
Hallo,

danke für die Antworten, habe o.g. Code nochmal angepasst, sorry für die Verwirrung  :-[
und er ist immer noch falsch.. Versteh den Beitrag von Jamo. (edit wl überschnitten: und den von Otto)
Titel: Antw:[erledigt] "Sleep" abbrechen
Beitrag von: Otto123 am 23 Februar 2020, 16:15:55
Nein Du hast es nicht verstanden:  ::)
cancel ist ein FHEM Befehl, der muss innerhalb von fhem("") stehen!
fhem("") ist eine Perlfunktion, die muss innerhalb von {} stehen ;)
{hier stehen perl befehle{hier stehen noch mehr perl befehle;fhem("hier stehen FHEM Befehle")}}