1
0

modified rdc_sdb_eclairage

This commit is contained in:
Daniel Tartavel 2022-07-31 22:31:51 +02:00
parent be7db07714
commit d13529251b
2 changed files with 14 additions and 12 deletions

View File

@ -25,7 +25,7 @@ function checkEvents()
if($event->dateTimeEvent < $now) if($event->dateTimeEvent < $now)
{ {
logger(DEBUG, _("Event must be executed"), __FILE__ . ":" . __LINE__); logger(DEBUG, _("Event must be executed"), __FILE__ . ":" . __LINE__);
if (!empty($event->exceptionInterval) and $event->isInterval == true) if (!empty($event->exceptionInterval) and $event->isInterval == true)
{ {
logger(DEBUG, _("Testing exceptions"), __FILE__ . ":" . __LINE__); logger(DEBUG, _("Testing exceptions"), __FILE__ . ":" . __LINE__);
@ -40,7 +40,7 @@ function checkEvents()
} }
} }
} }
if ($exception === false) if ($exception === false)
{ {
if (is_callable($event->function)) if (is_callable($event->function))
@ -80,7 +80,7 @@ function checkEvents()
// datetime format : "yyyy-mm-dd hh:mm:ss" // datetime format : "yyyy-mm-dd hh:mm:ss"
function setOneshotEvent(device &$deviceObject, string $datetime, $property, $value, $replace=false, $method=null) function setOneshotEvent(device &$deviceObject, string $datetime, $property, $value, $function=null, $replace=false, $method=null)
{ {
global $events; global $events;
$events[] = new event; $events[] = new event;
@ -91,6 +91,7 @@ function setOneshotEvent(device &$deviceObject, string $datetime, $property, $va
$events[$key]->param = $property; $events[$key]->param = $property;
$events[$key]->value = $value; $events[$key]->value = $value;
$events[$key]->device = & $deviceObject; $events[$key]->device = & $deviceObject;
$events[$key]->function = $function;
if ($method !==null) $events[$key]->method =$method; if ($method !==null) $events[$key]->method =$method;
} }
@ -100,7 +101,7 @@ function setRecurrentEvent($function, $ieeeAddress, string $property, $value, bo
{ {
global $events, $indexDevices; global $events, $indexDevices;
logger(INFO, _("Setting recurrent event"), __FILE__ . ":" . __LINE__); logger(INFO, _("Setting recurrent event"), __FILE__ . ":" . __LINE__);
$string = "P"; $string = "P";
if (!empty($years)) $string .= $years . "Y"; if (!empty($years)) $string .= $years . "Y";
if (!empty($months)) $string .= $months . "M"; if (!empty($months)) $string .= $months . "M";
@ -111,8 +112,8 @@ function setRecurrentEvent($function, $ieeeAddress, string $property, $value, bo
if (!empty($months)) $string .= $months . "M"; if (!empty($months)) $string .= $months . "M";
if (!empty($seconds)) $string .= $seconds . "S"; if (!empty($seconds)) $string .= $seconds . "S";
logger(DEBUG, _("reccurrent event string : ") . $string, __FILE__ . ":" . __LINE__); logger(DEBUG, _("reccurrent event string : ") . $string, __FILE__ . ":" . __LINE__);
$event = new event; $event = new event;
// pb in recurrent event in case of date and not interval // pb in recurrent event in case of date and not interval
if ($isInterval === true) if ($isInterval === true)
@ -122,7 +123,7 @@ function setRecurrentEvent($function, $ieeeAddress, string $property, $value, bo
{ {
$event->recurrenceInterval = 0; $event->recurrenceInterval = 0;
} }
if (!empty($startDatetime)) if (!empty($startDatetime))
{ {
$event->startDatetime = new datetime($startDatetime); $event->startDatetime = new datetime($startDatetime);
@ -131,7 +132,7 @@ function setRecurrentEvent($function, $ieeeAddress, string $property, $value, bo
$event->startDatetime = now(); $event->startDatetime = now();
} }
$event->dateTimeEvent = $event->startDatetime; $event->dateTimeEvent = $event->startDatetime;
if (!empty($stopDatetime)) if (!empty($stopDatetime))
{ {
$event->stopDatetime = new datetime($stopDatetime); $event->stopDatetime = new datetime($stopDatetime);
@ -144,7 +145,7 @@ function setRecurrentEvent($function, $ieeeAddress, string $property, $value, bo
$event->param = $property; $event->param = $property;
$event->value = $value; $event->value = $value;
} }
if ($event->recurrenceInterval != 0) if ($event->recurrenceInterval != 0)
{ {
if (($event->dateTimeEvent->add($event->recurrenceInterval)) === false) if (($event->dateTimeEvent->add($event->recurrenceInterval)) === false)
@ -157,7 +158,7 @@ function setRecurrentEvent($function, $ieeeAddress, string $property, $value, bo
return 0; return 0;
} }
function setDelay(device &$deviceObject, float $delay, string $unit, string $property, $value, bool $replace=false, int $method = null) function setDelay(device &$deviceObject, float $delay, string $unit, string $property, $value, $function, bool $replace=false, int $method = null)
{ {
global $events, $logLevel; global $events, $logLevel;
$oldLevel = $logLevel; $oldLevel = $logLevel;
@ -211,6 +212,7 @@ function setDelay(device &$deviceObject, float $delay, string $unit, string $pro
$events[$key]->param = $property; $events[$key]->param = $property;
$events[$key]->value = $value; $events[$key]->value = $value;
$events[$key]->device = & $deviceObject; $events[$key]->device = & $deviceObject;
$events[$key]->function = $function;
if ($method !== null) $events[$key]->method = $method; if ($method !== null) $events[$key]->method = $method;
logger (DEBUG, _('Setting new delay in $events[]'), __FILE__ . ":" . __LINE__); logger (DEBUG, _('Setting new delay in $events[]'), __FILE__ . ":" . __LINE__);
//print_r($events[$key]); //print_r($events[$key]);
@ -228,7 +230,7 @@ function removeEvent(device $deviceObject, string $property , $value, int $metho
} }
} }
function searchEvent(device $deviceObject, string $property , $value) function searchEvent(device $deviceObject, string $property, $function, $value)
{ {
global $events; global $events;
logger(DEBUG, sprintf(_("searching event for device %s, property %s and value %s"), $deviceObject->friendlyName, $property, bool2string($value)), __FILE__ . ":" . __LINE__); logger(DEBUG, sprintf(_("searching event for device %s, property %s and value %s"), $deviceObject->friendlyName, $property, bool2string($value)), __FILE__ . ":" . __LINE__);

View File

@ -52,7 +52,7 @@ class rdc_sdb_eclairage extends hook
}elseif (testActionneurs($this->actionneurs)) }elseif (testActionneurs($this->actionneurs))
{ {
logger(DEBUG, _("Actionneurs are all false"), __FILE__ . ":" . __LINE__); logger(DEBUG, _("Actionneurs are all false"), __FILE__ . ":" . __LINE__);
setDelay($deviceTarget, $this->delay, $this->timeUnit, "state_l1", "OFF", true, IDLE); //setDelay($deviceTarget, $this->delay, $this->timeUnit, "state_l1", "OFF", true, IDLE);
} }
break; break;
case "state_l1": case "state_l1":