Da ich immer wieder danach suche, notiere ich hier einmal die Systemvariablen die FHEM von "Haus aus" zur Verfügung stellt.
FHEM | Bemerkung | |
---|---|---|
$NAME |
Enthält den Namen des Device, dass das Event ausgelöst hat |
|
$EVENT |
Enthält mit ein Leerzeichen getrennt
|
Bsp.: temperatur: 6 |
$EVTPART(x) | Enthält den durch ein Leerzeichen getrennten Teil des $EVENT |
Bsp: $EVENT: temperatur: 6 $EVTPART0: temperatur: |
$TYPE | Enthält den Typ des Device, dass den Event ausgelöst hat (wie im Internals - Type) | |
Perl | ||
$hour | Enthält die Aktuelle Stunde |
Funktioniert innerhalb eines Perl Blockes in einem Notify oder at aber nicht in einer Perl-Subroutine. Bsp.: define <Name> notify <Device>:<Reading>:.* { |
$min | Enthält die aktuelle Minute | |
$sec | Enthält die aktuelle Sekunde | |
$hms | Enthält die aktuelle Zeit im Format HH:MM:SS | |
$month | Enthält den aktuellen Monat (1-12) | |
$mday | Enthält den Tag des Monats (1-31) | |
$year | Enthält das aktuelle Jahr (JJJJ) | |
$yday | Enthält den Tag des Jahres (1-365) | |
$wday | Tag der Woche (0-6, 0=Sonntag) | |
$we | Wochenende (1=ja/0=nein) | In einem Notify kann das Wochenende ganz einfach mit if($we) abgefragt werden. |
$isdst | Sommerzeit (1=ja/0=nein) | |
sunrise_abs() | Enthält die Zeit des Sonnenaufgangs |
Es müssen die Attribute für Latitude und Longitude im Device Global hinterlegt sein. Bsp.: attr global latitude 51.380 |
sunset_abs() | Enthält die Zeit des Sonnenuntergangs |
Es müssen die Attribute für Latitude und Longitude im Device Global hinterlegt sein. Bsp.: attr global latitude 51.380 |
In einer Perl Subroutine, wie zum Beispiel in der 99_myUtils.pm, kann die o.g. Variablen nicht so einfach nutzen. Man kann sich aber hier mit einer eigenen Variablenzuweisung behelfen.
my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($now);