Hallo Zusammen
Ich möchte bei einem bestimmten Ereignis von meinem Homegear-Server eine E-Mail zugesandt bekommen. Das stelle ich mir so vor, daß ich zum Beispiel darauf hingewiesen werde, wenn eine Batterie leer wird:
rc $hg->addEvent(array("TYPE" => 0,"ID" => "MyBatteryEmptyEvent","PEERID" => 1,"PEERCHANNEL" => 1,"TRIGGER" => 8,"TRIGGERVALUE" => true,"VARIABLE" => "LOWBAT","EVENTMETHOD" => "runScript","EVENTMETHODPARAMS" => array("battlow.php") ))
Dazu habe ich einen ssmtp-Server korrekt konfiguriert und dieses Skript geschrieben:
#!/usr/bin/env php
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
try{
$komplettText = "Batterie ist schwach";
$receiver = 'valid@mailadress.com';
$subject = 'My Test script';
$headers = 'From: valid@senderadress.net' . "\n" .
'Reply-To: valid@senderadress.net' . "\n" .
'X-Mailer: PHP/' . phpversion();
$status = mail($receiver,$subject,$komplettText);
}
catch(\Homegear\HomegearException $e) {
print "Exception catched. Code: ".$e->getCode().". Message: ".$e->getMessage();
}
?>
zusätzlich habe ich in den Dateien /etc/homegear/php.ini
und /etc/php/php.ini
folgenden Abschnitt eingefügt:
[mail function]
SMTP = localhost
smtp_port = 25
sendmail_path = /usr/bin/ssmtp -t
mail.add_x_header = On
Nun zum Kern der Frage. Das angegebene Skript funktioniert, wenn ich es direkt mit php battlow.php
aufrufe. Wenn ich es aber in der Homegear-Konsole starte mit rc $hg->runScript("battlow.php")
, dann bekomme ich keine Mail. Im Logfile /var/log/homegear/homegear.log erhalte ich nur folgenden Eintrag:
02/01/17 18:45:12.946 Script Engine Server: Info: Starting script "/var/lib/homegear/scripts/inline.php" with id 1803.
02/01/17 18:45:12.966 Script Engine Server: Info: Client number 0 is calling RPC method: runScript Parameters:
(String) battlow.php
02/01/17 18:45:12.966 Info: Executing script "/var/lib/homegear/scripts/battlow.php" with parameters "" using internal script engine.
02/01/17 18:45:12.967 Script Engine Server: Info: Starting script "/var/lib/homegear/scripts/battlow.php" with id 1804.
02/01/17 18:45:12.972 Script Engine Server: Response:
(Struct length=2)
{
[EXITCODE]
{
(Integer) 0
}
[OUTPUT]
{
(String)
}
}
02/01/17 18:45:12.981 Script Engine Server: Info: Client number 0 is calling RPC method: scriptFinished
(Integer) 0
02/01/17 18:45:12.981 Info: Script with id 1803 finished with exit code 0
02/01/17 18:45:12.982 Script Engine Server: Response:
(void)
02/01/17 18:45:13.060 Script Engine Server: Info: Client number 0 is calling RPC method: scriptFinished
(Integer) 0
02/01/17 18:45:13.062 Info: Script with id 1804 finished with exit code 0
02/01/17 18:45:13.064 Script Engine Server: Response:
Ich suche seit Tagen in den Foren und Logfiles nach Hinweisen für mein Problem, aber ich komme nicht weiter. Es wäre großartig, wenn mir jemand weiterhelfen könnte. Vielen Dank im Voraus,
Alexander