protected function SetTimer($Name, $TargetTime) { $id = @IPS_GetObjectIDByIdent($Name, $this->InstanceID); if ($id === false) { throw new Exception('Timer not present'); } if (!IPS_EventExists($id)) { throw new Exception('Timer not present'); } $Event = IPS_GetEvent($id); if ($TargetTime < time()) { if ($Event['EventActive']) { IPS_SetEventActive($id, false); } } else { IPS_SetEventCyclic($id, 1, 0, 0, 0, 0, 0); IPS_SetEventCyclicDateFrom($id, (int) date("j", $TargetTime), (int) date("n", $TargetTime), (int) date("o", $TargetTime)); IPS_SetEventCyclicDateTo($id, (int) date("j", $TargetTime), (int) date("n", $TargetTime), (int) date("o", $TargetTime)); IPS_SetEventCyclicTimeFrom($id, (int) date("H", $TargetTime), (int) date("i", $TargetTime), (int) date("s", $TargetTime)); IPS_SetEventCyclicTimeTo($id, (int) date("H", $TargetTime), (int) date("i", $TargetTime), (int) date("s", $TargetTime)); if (!$Event['EventActive']) { IPS_SetEventActive($id, true); } } }
protected function SetTimerIntervalTime($Name, $startzeith, $startzeitm, $stopzeith, $stopzeitm) { $id = @IPS_GetObjectIDByIdent($Name, $this->InstanceID); if ($id === false) { throw new Exception('Timer not present', E_USER_WARNING); } if (!IPS_EventExists($id)) { throw new Exception('Timer not present', E_USER_WARNING); } $Event = IPS_GetEvent($id); if ($startzeith > 23) { if ($Event['EventActive']) { IPS_SetEventActive($id, false); } } else { IPS_SetEventCyclicTimeFrom($id, $startzeith, $startzeitm, 0); IPS_SetEventCyclicTimeTo($id, $stopzeith, $stopzeitm, 0); } }