Ich antworte mir mal selbst, um den Stand meiner Nachforschungen mitzuteilen:
Irgendwie hat das wohl mit der Variable $_IPS[„AUTOLOAD“] zu tun.
Über diese finde ich leider keine Informationen.
Sie ist beim Aufruf der /usr/share/symcon/scripts/__autoinclude.inc.php false.
Damit werden die Befehle nach if (!isset($_IPS[„AUTOLOAD“]) || $_IPS[„AUTOLOAD“]) nicht ausgeführt und damit funktioniert der Autoload nicht mehr.
Kommentiere ich die Zeile aus funktioniert alles wie bei 6.4
Kann mir jemand bitte weiterhelfen, was es mit $_IPS[„AUTOLOAD“] auf sich hat?
Ja, deine autoload muss irgendwie Ausgaben oder Fehler erzeugen und wird deshalb zur Sicherheit deaktiviert. Schau mal bitte ins Logfile. Dort sollte recht am Anfang der Text mit einer passenden Meldung fehlschlagen.
OK, da gibt es eine Meldung:
20.11.2023 00:11:07 | 00000 | MESSAGE | ScriptEngine | Pretest for loading __autoload.php failed. __autoload.php will be d
isabled. Error:
Warning: Kernel module SyncRemoteService is not available in /var/lib/symcon/scripts/__autoload.php on line 4
Meine __autoload.php sieht so aus:
<?php
$autoinclude = 46499 /*[Globale Skripte\Autoinclude]*/;
if (IPS_ObjectExists($autoinclude))
{
$script_ids = IPS_GetChildrenIDs($autoinclude);
foreach($script_ids as $script_id)
{
if ($_IPS['SELF'] <> $script_id)
include_once(IPS_GetScriptFile($script_id));
}
}
Insofern kann ich die Fehlermeldung nicht nachvollziehen.
Dann kann ich mir die zusätzlichen Abfragen, welche aus einem frühen Aufruf resultieren, sparen.
Danke,
Günter
Vorschläge:
generell einen „Autoload“ Ordner in Symcon etablieren, dessen Inhalt (Skripte) bei jedem Script-Aufruf geladen wird (für diejenigen, die sich noch nicht an Module gewagt haben)
oder ein Modul, in welchem man immer auszuführende Script-IDs hinterlegt