FHEM: system() Aufruf ohne lange Log-Einträge
Mit dem freien Smart-Home System FHEM kann man viel erreichen: Ein großer Vorteil ist aber die Offenheit – so lässt es sich leicht mit eigenen Skripten und Programmen erweitern. Ganz egal, in welcher Programmiersprache sie geschrieben sind, so lange sie auf dem FHEM Rechner gestartet werden können, lassen sie sich auch in FHEM nutzen.
Wir gehen in diesem Beispiel allerdings von einem Linux Rechner wie dem sparsamen Raspberry Pi aus, da es sich hier um Linux-Befehle handelt.
Shell-Befehle mit system() ausführen
Mit dem Befehl lassen sich auch Programme außerhalb von FHEM einbinden: Ganz egal, ob es sich um ein Shell-Skript, ein Python- oder PHP-Programm oder einen normalen Linux-Befehl wie “wget” handelt: über den “system” Befehl lässt sich das Skript oder Programm problemlos in FHEM integrieren:
system("php /var/www/html/programm.php");
oder:
system("sh /home/pi/script.sh");
Der Nachteil ist aber, dass die Ausgabe des Programms direkt in das FHEM Log-File geschrieben wird und dieses unter Umständen stark aufblähen kann: Soll bei einer erkannten Bewegung automatisch mit einem Skript ein Bild von der Webcam per Email verschickt oder per FTP kopiert werden, wird dieses ebenfalls Byte für Byte in das Logfile geschrieben.
Alternative für system() Befehl: qx
Nutzt man statt dem “system()” Befehl dagegen “qx”, kann man genau so alle auf dem Linux-Rechner lauffähigen Programme und Skripte ausführen – sie Ausgabe wird aber nicht mehr in die FHEM Log-Datei geschrieben. Wer trotzdem einen kurzen Hinweis in seinem Logfile möchte, muss diesen daher von Hand ergänzen.
Der Befehl, um ein externes Skript per qx zu starten, sieht so aus:
qx "php /var/www/html/programm.php";
qx "sh /home/pi/script.sh";
- Windows streikt, extrem lange Ladezeit und System friert ein
Hi, ich kämpfe schon mehrere Stunden höchstwahrscheinlich mit einem Trojaner o.ä. (Und nein, ich ...
- System formatieren ohne CD
Möchte mein System ( Vista ) auf Werkseinstellung zurück setzen.Habe aber keine CD. Geht es ...
- Laptop neu formatieren und neuer System laden ohne cd
hallo zusammenich bin neu hier und habe leider wenig bis gar keine ahnung von pc's. ...
- System Neu aufsetzen ohne Datenverlust auf anderen Festplatten
- Bei Aufruf einer Webseite
- Probleme beim Aufruf interner Adressen
Hallo,ich habe seit kurzem ein Problem mit dem Aufruf interner Adressen im Netz....
- stark verzögerter Aufruf von MS Outlook 2007
- XPCOM Fehler bei Aufruf Firefox von Thunderbird
- datenschutz (29x gelesen)
- windows-schneller-starten-autostart-aufraeumen (27x gelesen)
- windows-beschleunigen (25x gelesen)
- pc-einsteigerkurs (18x gelesen)
- pc-einsteigerkurs-1-2 (5x gelesen)
Mehr Tipps zu FHEM: system() Aufruf ohne lange Log...
-
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...
-
Automagic Download für Android, AMAD und FHEM
Automagic ist eine Android-Software, über die sich zahlreiche Automatisierungen auf dem Gerät einstellen und planen lassen. Automagic ist aber auch wichtig, um Android-Tablets oder -Handys...
-
Befehlstaste bei Windows: So findet man sie!
Die Befehlstaste auf der Apple-Tastatur (auch Apfeltaste, CMD-Taste oder Command-Taste genannt) gibt es auch unter Windows: Allerdings sieht die Befehlstaste bei Windows nicht nur anders...
-
Javascript “striptags”: HTML Befehle aus Variable entfernen!
PHP hat die Funktion "striptags", mit der sich ganz leicht sämtliche HTML Befehle aus einem Wert entfernen lassen. In Javascript gibt es dafür zwar keinen...
-
WebM Videos öffnen: Kostenlose Player für Windows, Mac & Linux
WebM ist ein freies Videoformat, das unter anderem von YouTube und immer mehr Webseiten genutzt wird: Der große Vorteil des WebM Video Formats ist die...
FHEM: system() Aufruf ohne lange Log-Einträge