NOTIFY mit Aufruf einer PHP Datei

Begonnen von Pazekal, 04 Februar 2017, 13:47:46

Vorheriges Thema - Nächstes Thema

Pazekal

Hi zusammen,

ich hänge seit Stunden an einem Problem und komme nicht weiter.
Ich möchte gesteuert nach einer bestimmten Voraussetzung ein PHP Script ausführen, welches ein Relay per TCP Befehlen steuert. Das PHP Script funktioniert alleine sehr gut. Ich bekomme es nur nicht hin dieses PHP Script per FHEM aufzurufen.

Folgenden Code nutze ich zum Testen um dann per "trigger" die einzelnen Notify auszuführen.

define NOTIFY_PlantRelayON notify NOTIFY_PlantRelayON {system("php /opt/fhem/mycfg/scripts/relayplant.php 192.168.3.142 3x4x1")}
define NOTIFY_PlantRelayOFF notify NOTIFY_PlantRelayOFF {system("php /opt/fhem/mycfg/scripts/relayplant.php 192.168.3.142 3x4x0")}


Als Rückgabe im Log bekomme ich immer nur "-1".

Hat jemand eine Idee?

Danke

VG
Pazekal

DeeSPe

Ist die Seite nicht auf dem Webserver verfügbar?
Dann könntest Du sie mit GetFileFromURL oder GetFileFromURLQuiet holen!

Dein notify sollte auch kein system enthalten. Und evtl. am Ende noch ein & anfügen.
Etwa so:
define NOTIFY_PlantRelayON notify NOTIFY_PlantRelayON "php /opt/fhem/mycfg/scripts/relayplant.php 192.168.3.142 3x4x1 &"

Ich würde, wenn es geht, lieber per GetFileFromURL holen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Pazekal

Danke für die schnelle Antwort.
Das hatte ich schon versucht ohne system. Das funktioniert leider auch nicht.

Das Script zuckt nicht wenn ich es so aufrufe.

Ich werde deinen Rat befolgen und das Script auf meinen Apache laden, sodass ich es so ausführen kann. Dennoch wundert es mich, dass das Script nicht läuft.
Ich habe in einem anderen Thread gelesen, dass es an der Anzahl Übergabeparameter liegen könnte. Ist dem so?

DeeSPe

Zitat von: Pazekal am 04 Februar 2017, 13:59:09
Danke für die schnelle Antwort.
Das hatte ich schon versucht ohne system. Das funktioniert leider auch nicht.

Das Script zuckt nicht wenn ich es so aufrufe.

Und Du hast es auch ganz sicher ohne die umschliessenden {} gemacht? Und auch das & am Ende?

Gruß
Dan

EDIT: Läuft es denn wenn Du es so auf der CLI ausführst?
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Pazekal

Ganz sicher..

Auf der CLI läuft das Script ohne Probleme.. Ich rufe es ganz genauso auf nur eben direkt auf der Konsole.

pi@raspberrypi:/opt/fhem/mycfg $ php scripts/relayplant.php 192.168.3.142 3x4x1

Muss ich hem noch bestimmte Rechte geben, dass es diese Kommandos ausführen kann? Eventuell eine bestimmte Shell zuweisen für den User oder ähnliches?


Pazekal

Oh Mann.. Habe soeben mein Problem gelöst. Ich hatte einen Schreibfehler in den Variablen.

Danke für die Hilfe