Commandref at-Befehl: if Syntax

Begonnen von sigma415, 06 April 2020, 09:09:54

Vorheriges Thema - Nächstes Thema

sigma415

Hallo,

in der Commanref für den at-Befehl steht bei den Beispielen eine für mich etwas merkwürdige if-Syntax:

# Only do this on weekend
    define a12 at +*{sunset_rel()} { fhem("set lamp on-till 23:00") if($we) }



Kann mir bitte jemand das an den Schluß gestelllte "if" erklären ?
FHEM auf ubuntu-Server (Notebook), CUNO's via LAN, 3x HMLAN, 2x goE, Tasmota-Devices via MQTT, Home Connect, Velux-KLF200, Harmony, SMA STP10, SMA HM2.0, BYD HVS7.7, etc. pp.  ....
Und immer noch viele, viele (Alt-) HM's (ohne -IP).

herrmannj

Die egschweiften Klammern {...} sind ein perl Befehl und dort kann man das if ans Ende schreiben. $we is eine Variable, true am Wochenende, sonst false.


Den Ausdruck kann man mit gleicher Funktion auch so schreiben:

define a12 at +*{sunset_rel()} {
  if ($we) {
    fhem("set lamp on-till 23:00")
  };
};

sigma415

Danke für die Erläuterung.
Perl ist immer wieder für Überraschungen gut ...  ;)
FHEM auf ubuntu-Server (Notebook), CUNO's via LAN, 3x HMLAN, 2x goE, Tasmota-Devices via MQTT, Home Connect, Velux-KLF200, Harmony, SMA STP10, SMA HM2.0, BYD HVS7.7, etc. pp.  ....
Und immer noch viele, viele (Alt-) HM's (ohne -IP).

Prof. Dr. Peter Henning

ZitatPerl ist immer wieder für Überraschungen gut ...
Wieso Überraschungen? Das ist schon sehr lange Bestandteil der Perl-Syntax, ich glaube schon ca. 20 Jahre.

LG

pah