FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: uwirt am 20 Februar 2020, 12:38:04

Titel: PHP-Script regelmässig auslösen
Beitrag von: uwirt am 20 Februar 2020, 12:38:04
Wie kann ich ein (oder zwei) PHP-Script(s) in regelmässigen Abständen auslösen lassen?
Titel: Antw:PHP-Script regelmässig auslösen
Beitrag von: Otto123 am 20 Februar 2020, 12:47:31
die FHEM Lösung?
Beispiel a3 modifiziert mit Beispiel a4
https://commandref.fhem.de/#at
define a3 at *17:00:00 "/bin/echo "Teatime" > /dev/console"   # shell command

Oder ich hab es nicht verstanden, liegt die Frage bei PHP Script auslösen oder regelmäßig?

Gruß Otto
Titel: Antw:PHP-Script regelmässig auslösen
Beitrag von: Wernieman am 20 Februar 2020, 13:00:15
Otto, Du warst schneller .. da ich aber schon gesucht habe:
http://www.fhem.de/commandref.html#command (http://www.fhem.de/commandref.html#command)
http://www.fhem.de/commandref.html#at (http://www.fhem.de/commandref.html#at)

also:
define a3 at *17:00:00 "/usr/bin/php MeinTollesPHPScript"
Wenn Dein php-Script richit Shell-Conform mit #! geschrieben ist, dann kann man den "/usr/bin/php" teil weglassen

@Otto
Was mir noch auffält ... Du hast innerhalb der " nochmals " (Um Teatime), das kann doch nicht funktionieren??


Titel: Antw:PHP-Script regelmässig auslösen
Beitrag von: uwirt am 20 Februar 2020, 13:05:03
Besten Dank für die rasche Antwort - und es geht um auslösen und regelmässig. Regelmässig mit dem "at" habe ich verstanden.

Das PHP script liest aus einer MySQL Datenbank Wetterdaten und stellt diese im JSON Format zur Verfügung. Ich möchte eben dieses PHP script alle 15 Minuten laufen lassen.

Wäre das was?


define php_script at +*00:15:00 "php /opt/fhem/www/db/script.php &"
Titel: Antw:PHP-Script regelmässig auslösen
Beitrag von: Otto123 am 20 Februar 2020, 13:19:54
Ja sollte so gehen - wobei Du das & am Ende nicht brauchst. Warum steht wieder in der Doku:
https://commandref.fhem.de/#command

ZitatIch möchte eben dieses PHP script alle 15 Minuten laufen lassen.
Könntest Du auch über crontab im System machen

@Werner, ich hatte einfach das Beispiel aus der Doku kopiert und nicht nachgedacht. Aber ich glaube das funktioniert wirklich. Wobei ich nicht weiß wo dann /dev/console überhaupt ist :)
Und das Beispiel an sich funktioniert nicht wirklich, zumindest bei mir. Es gibt keine Pipe innerhalb "" also die Umleitung geht nicht, wenn man das so testet:
"/bin/echo "Teatime" > t.txt" landet Teatime im Log und die Datei wird leer angelegt.
Auch bei "/bin/echo 'Teatime' > t.txt"
Titel: Antw:PHP-Script regelmässig auslösen
Beitrag von: Wernieman am 20 Februar 2020, 13:26:52
@Otto .. da Bewege ich mich auf verdammt dünnen Eis ... kann deshalb wenig dazu sagen

@uwirt
Bei automatischen Scripten arbeite bitte mit Kompletten Pfaden. php kann funktionieren, muß aber nicht. Besser ist s, sich anzugewöhnen und es richtig machen: "/usr/bin/php".

Wenn bei Dir php woanders liegt, einfach rauszufinden mit
whereis php
Titel: Antw:PHP-Script regelmässig auslösen
Beitrag von: Otto123 am 20 Februar 2020, 13:29:34
Da hat Werner verdammt recht: Also bez. der Ausführung dann eher so:
Den Pfad zum Script kann man gerne relativ zu FHEM angeben, oder eben auch absolut.
define php_script at +*00:15:00 "/usr/bin/php ./www/db/script.php"
stdout Ausgaben des Scripts landen ungefiltert im FHEM Log!