ICh habe gerade das Problem, dass ich in einem Modul ein Event erstelle, welches einmal täglich um 23 Uhr eine interne Funktion aufrufen soll. Es gibt keine Fehlermeldung, allerdings ruft er die Funktion auch nicht auf. Ich vermute, dass irgendwas mit der Aufrufsyntax nicht in Ordnung ist, habe aber in der Doku nur Sachen gefunden, wo mit einer GUID aufgerufen wird.
Der Code schaut so aus:
public function Create()
{
parent::Create();
$this->RegisterEventTarif('GetTarifEvent','GetTarifEvent',1, $this->InstanceID, 200); #Event zum abruf der Daten
}
private function RegisterEventTarif($Name, $Ident, $Typ, $Parent, $Position)
{
$eid = @$this->GetIDForIdent($Ident);
if($eid === false) {
$eid = 0;
} else if(IPS_GetEvent($eid)['EventType'] <> $Typ) {
$this->LogMessage("Eventregister Delete: $eid, $Typ",KL_NOTIFY);
IPS_DeleteEvent($eid);
$eid = 0;
}
//we need to create one
if ($eid == 0)
{
$EventID = IPS_CreateEvent($Typ);
$this->LogMessage("Eventregister Create: $EventID, $Typ",KL_NOTIFY);
IPS_SetEventCyclicTimeFrom($EventID, 23, 0, 0); #Täglich um 23Uhr
IPS_SetParent($EventID, $Parent); #Parent Setzen-> dieses Modul
IPS_SetIdent($EventID, $Ident); #Ident setzen
IPS_SetName($EventID, $Name); #Name Setzen
IPS_SetPosition($EventID, $Position); #Position im Modul setzen
// Initiale Befüllung
IPS_SetEventAction ($EventID, getVariableTarif(),[]); #Auszuführende Funktion (Hier eventuell der Fehler?)
IPS_SetEventActive($EventID, true); #aktivieren
}
}
#interne Funktion, die aufgerufen werden soll
public function getVariableTarif() {
#erst mal nur Tibber abfragen
$this->GetTibberPrice();
}