- FHEM if-Abfrage - Beispiel: Schalten nach Wochentag
- FHEM if-Abfrage - Beispiel: Schalten nach Wochentag
- Screenshot Mac: So macht man ein Bildschirmfoto (Video)!
- Schnell-Tipp: "Global symbol $Variable requires explicit package name"
- Mac Zugriffsrechte prüfen und reparieren
- Mac Zugriffsrechte prüfen und reparieren
- Screenshot Mac: So macht man ein Bildschirmfoto (Video)!
FHEM: Vordefinierte Variablen nutzen – oder eigene definieren
FHEM hat für die Programmierung zahlreiche Variablen schon vordefiniert, auf die man ganz einfach zugreifen kann – zum Beispiel um einen Aktor nur zu bestimmten Zeiten einzuschalten. Wem diese Variablen nicht reichen, der kann aber auch ganz einfach einfache Variablen definieren.
Vordefinierte Variablen in FHEM: $hour, $min, $month…
Diese Variablen stehen automatisch zur Verfügung und können für eigene IF-Bedingungen genutzt werden:
$hour: Die aktuelle Stunde $min: Die aktuelle Minute $sec: Die aktuelle Sekunde $hms: Die Uhrzeit im Format HH:MM:SS time(): Gibt den akuellen Unix-Timestamp zurück » Alternative: my $timestamp = time();; $month: Der aktuelle Monat (1-12, z.B. 9 für September) $mday: Tag des Monats (1-31) $year: Das aktuelle Jahr $yday: Tag des Jahres (1-365) $wday: Tag der Woche (0 = Sonntag bis 6) $we: Wochenende (0 für in der Woche, 1 für Wochenende) $isdst: Sommer- oder Winterzeit $EVENT: Bei einem Notify: Wert des Events, z.B. "on" oder "off"
Die Werte der Event-Variable ist zusätzlich noch einzeln über die Variablen “$EVTPART0”, “$EVTPART1”, “$EVTPART2” ansprechbar: Enthält der Event nur “on”, enthält nur $EVTPART0 einen Wert (“on”), $EVTPART1 ist leer. Bei längeren Events wie “on-for-timer 15” enthält $EVTPART0 den Wert “on-for-timer” und $EVTPART1 den Wert “15”.
Eigene Variablen in FHEM definieren
Neben den vordefinierten FHEM Variablen kann man auch eigene Variablen definieren und in FHEM nutzen: Soll das nur in einem kurzen Stück Perl Code genutzt werden (nur innerhalb einer “define”-Definition), geht das so:
my $variable = "Mein Text"; my $zahl = 15;
Warum das “my” wichtig ist und wie man es nutzt, zeigen wir in diesem Artikel!
Eigene, globale Variablen in FHEM
Will man aber global Variablen nutzen, die man innerhalb der FHEM Steuerung auch von anderen Geräten oder notifys auslesen oder längerfristig speichern möchte, definiert man zunächst ein dummy-Device in FHEM, dem man später einen Wert geben kann:
define MeineVariable dummy
Diesem Device kann man jetzt einen Wert zuweisen – entweder aus FHEM selbst:
set MeineVariable on
oder aus Perl:
fhem(“set MeineVariable on”);
Auslesen der dummy-Variable:
Möchte man den Wert der frisch angelegten dummy-Variable mit Perl auslesen, geht das über den Befehl “ReadingsVal”:
if(ReadingsVal("Licht_Arbeitszimmer", "state", "") eq "off")) { fhem("set Licht_Arbeitszimmer on");; }
Wie man diesen Code in FHEM eingibt, zeigen wir hier!
So lässt sich mit diesem Beispiel immer abends um 18:00 Uhr das Licht einschalten, wenn es noch nicht an ist – Licht_Arbeitszimmer ist dabei eine Lampe, die sich so einschalten lässt, per ReadingsVal lässt sich der Status abfragen:
define Lichtsteuerung at *18:00:00 {\ if(ReadingsVal("Licht_Arbeitszimmer", "state", "on") eq "off") {\ fhem("set Licht_Arbeitszimmer on");; }\ }
Man kann einer eigenen Variable aber auch andere Werte als on und off zuweisen, zum Beispiel die Uhrzeit des Sonnenaufgangs und Sonnenuntergangs:
define Uhrzeit_Sonnenaufgang dummy define Uhrzeit_Sonnenuntergang dummy define Sonnenaugang_speichern at *09:00:00 {\ my $Sonnenaufgang = sunrise_abs();;\ fhem("set Uhrzeit_Sonnenaufgang $Sonnenaufgang");;\ my $Sonnenuntergang = sunset_abs();;\ fhem("set Uhrzeit_Sonnenuntergang $Sonnenuntergang");;\ }
Auch hier kann man mit “ReadingsVal” wieder auf den Wert zugreifen:
define Licht_abends at *20:00:00 {\ if($hms ge ReadingsVal("Uhrzeit_Sonnenuntergang", "state", "")) { fhem("set Lampe on");; }}
- datenschutz (17x gelesen)
- windows-beschleunigen (11x gelesen)
- windows-schneller-starten-autostart-aufraeumen (11x gelesen)
- pc-einsteigerkurs (6x gelesen)
- pc-einsteigerkurs-1-1 (3x gelesen)
Mehr Tipps zu FHEM: Vordefinierte Variablen nutzen...
-
curl: Parameter als Variablen übergeben
Wenn man Parameter als Variablen an eine andere Seite übergeben möchte, geht das zum Beispiel als GET Parameter: Ruft man eine Webseite auf, lassen sich...
-
curl: Parameter als Variablen übergeben
Wenn man Parameter als Variablen an eine andere Seite übergeben möchte, geht das zum Beispiel als GET Parameter: Ruft man eine Webseite auf, lassen sich...
-
FHEM: JeeLink / LaCrosse Sensor: Batterie wechseln
Wer bei einem LaCrosse Temperatursensor die Batterien tauscht, muss eine Sache beachten - andernfalls wird die Hardware-ID zurückgesetzt und der Sensor wird unter einem neuen...
-
FHEM: Logitech Harmony Hub “Disconnected”
FHEM / Logitech Harmony Hub: Steht der Harmony Hub nach einem Update in der Smart Home Software plötzlich auf "Disconnected", lässt sich das in der...
-
PC oder Laptop finanzieren – Tipps und Wissenswertes
Beim Kauf eines neuen Notebooks ist der Preis häufig der entscheidende Faktor. Das Budget gibt nicht mehr her, also gibt es ein günstiges und finanzierbares...
-
FHEM if-Abfrage – Beispiel: Schalten nach Wochentag
In unserem Artikel "Intelligente Zeitschaltuhr mit FHEM" zeigen wir bereits, wie man das Licht oder die Rolläden jeden Tag zu einer bestimmten Zeit schalten kann...
- Lubuntu, Xubuntu oder ältere Ubuntuversion nutzen bei
- Wie kann ich ein Programm an zwei (oder mehr ) Computern nutzen?
Hallo,für die meisten unter euch wahrscheinlich eine Kleinigkeit, aber ich habe wirklic...
- Microsoft Word - Variablen aus Anwendungen nach Update nicht mehr belegt.
- Admin, Gruppenrichtlinien definieren
Hallo liebe User,ich hoffe Ihr könnt mir helfen.Ich soll einen Rechner in der Firma ver...
- Taschenrechner programmieren: bestimmte Variable definieren
Hallo ihr Lieben :)!!!Ich habe einen TI 83+ und möchte längere Formeln einspeich...
- fhem 5.7.deb installation
- Bewegungsmelder PIR-1000 433 - MHz CUL mit Fhem
[???]Leider wird der PIR mit autocreate autosave nicht erkannt.IT Funkdosen werden aber erkann...
FHEM: Vordefinierte Variablen nutzen - oder eigene definieren