Ich versuche seit geraumer Zeit ein Function im Modul aufzurufen aber irgend etwas habe ich da wohl nicht ganz verstanden:
class StuderInnotecWeb extends IPSModule {
public function Create() {
// Diese Zeile nicht löschen.
parent::Create();
$this->RegisterTimer("UpdateTimer", 1000, 'Studer_Update($_IPS[\'TARGET\']);');
$this->RegisterTimer("UpdateTimerNEW", 1000, 'Studer_UpdateNEW($_IPS[\'TARGET\']);');
}
function Update(){
echo "das geht";
}
function UpdateNEW(){
echo "das geht NICHT";
}
}
in der module.json hab ich gesetzt:
"prefix": "Studer"
Warum geht die NEW Funktion nicht?
20.11.2020, 18:23:42 | TimerPool | Studer Innotec via Web-API (UpdateTimerNEW): <br />
<b>Fatal error</b>: Uncaught Error: Call to undefined function Studer_UpdateNEW() in /-:1
Stack trace: #0 {main}
thrown in <b>/-</b> on line <b>1</b><br />
Es muss immer Public sein, keine Ahnung was PHP ohne eine Angabe für eine Sichtbarkeit annimmt.
Und du musst das Modul neu laden oder den Dienst neu starten, wenn eine Instanz-Funktion geändert wurde.
Michael
Nein normalerweise reicht ein reload von dem Modul.
Wenn man aber in seinem Modul Mist geschrieben (z.b. Funktionsnamen die es schon gibt) hat kann es passieren, dass Symcon durcheinander kommt und man einmal durchstarten muss.
Ja, hatte ich auch bei 4 geschrieben. Wollte mich nur nicht noch einmal komplett wiederholen.
Glaube auch nicht , das der TE weiß wie man ein lokales Modul neu lädt.
Michael