Ich habe vor einger Zeit mal ein update gemacht. Seither läuft von meiner Hausautomation so ziemlich gar nix mehr automatisch.
Meine sämtlichen Skripte liegen bei mir im Verzeichnis c:\ip-symcon\scripts .
Einige Scripte Starten, sobald da aber eine include anweisung ( z.B. drin ist, dann gibt es einen Fehler. Dann versucht IPSymcon das zu ladende Scriot im ordner c:\php\pear zu suchen. Das verzeichnis existiert aber nicht. Gibt es irgendwo eine einstellung wo ich ein Default-Skriptverzeichnis angeben kann?
Eine Fehlermeldung sieht zum Beispiel so aus:
warning: include_once(IPSLogger.ips.php): failed to open stream: No such file or directory in C:\ip-symcon\scripts\46752.ips.php on line 3
warning:include_once(): Failed open ‚IPSLogger.ips.php‘ for inclusion (include path =’.;c.\php\pear’ in C:\ip-symcon\scripts\46752.ips.php on line 3
Also die Datei, die er anmeckert findet er und führt sie auch aus!
In der besagten Skriptdatei 46752.ips.php steht allerdings in Zeile 3
include_once "IPSLogger.ips.php";
und genau das findet er nicht, obwohl diese Implementation in den Beispielskripten unter „Best Practice“ in der IPSlogger Wiki syntaktisch genauso angegeben ist.
Wenn die Datei nicht da ist sollte eigentlich folgendes kommen.
Fatal error: Uncaught exception 'Exception' with message 'script.....
In der Datei „…\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php“
sollte folgendes stehen
function IPSUtils_Include($file, $namespace="") {
if ($namespace=="") {
include_once $file;
} else {
$file = IPS_GetKernelDir().'\\scripts\\'.str_replace('::','\\',$namespace).'\\'.$file;
if (!file_exists($file)) {
throw new Exception('script '.$file.' could NOT be found!', E_USER_ERROR);
}
include_once $file;
}
}