1
0
moha/class/hook_class.php

67 lines
1.8 KiB
PHP
Raw Normal View History

2022-01-17 00:18:50 +01:00
<?php
class hook
{
public $hookName = "";
public $active = true;
public $initialized = false;
protected $devicelist;
// list of devices we are listening to
function __construct()
{
2022-03-04 22:30:16 +01:00
logger(INFO, _("Initializing hook: ") . $this->hookName);
2022-01-17 00:18:50 +01:00
$this->installHooks();
2022-01-23 09:46:06 +01:00
if (method_exists($this, "init"))
{
$this->init();
}
2022-01-17 00:18:50 +01:00
}
function installHooks()
{
global $indexDevices;
$result = true;
// assigne the function to the sensors devices
if ($this->active === true)
{
foreach ($this->devicelist as $ieeeAddress => $property2change)
{
2022-01-28 23:05:58 +01:00
logger(DEBUG, _("Device: ") . $ieeeAddress, __FILE__ . ":" . __LINE__);
2022-01-17 00:18:50 +01:00
if ($property2change[1] === false)
{
2022-01-28 23:05:58 +01:00
logger(DEBUG, _("Trying to store callback"), __FILE__ . ":" . __LINE__);
2022-01-17 00:18:50 +01:00
if (isset($indexDevices[$ieeeAddress]))
{
$property = $property2change[0];
2022-02-23 10:23:16 +01:00
$indexDevices[$ieeeAddress]->properties[$property]["functions"][] = array($this,"callback");
2022-01-17 00:18:50 +01:00
$property2change[1] = true;
2022-01-28 23:05:58 +01:00
logger(DEBUG, sprintf(_("Property '%s' is initialized with callback"), $property2change[0]), __FILE__ . ":" . __LINE__);
2022-01-17 00:18:50 +01:00
}else
{
2022-01-28 23:05:58 +01:00
logger(WARNING, sprintf(_("Hook %s can not initialize Property '%s' of device %s"), $this->hookName, $property2change[0], $ieeeAddress), __FILE__ . ":" . __LINE__);
2022-01-17 00:18:50 +01:00
$result = false;
}
}else
{
2022-01-28 23:05:58 +01:00
logger(DEBUG, _("Callback already installed"), __FILE__ . ":" . __LINE__);
2022-01-17 00:18:50 +01:00
}
}
2022-01-17 21:01:11 +01:00
//echo "result => "; var_dump($result);
2022-01-17 00:18:50 +01:00
if ($result === true)
{
$this->initialized = true;
2022-03-04 22:30:16 +01:00
logger(INFO, $this->hookName . _(" initialized"), __FILE__ . ":" . __LINE__);
2022-01-17 00:18:50 +01:00
//var_dump($this);
}
}else
{
$this->initialized = true;
2022-03-04 22:30:16 +01:00
logger(INFO, $this->hookName . _("hook is disabled"), __FILE__ . ":" . __LINE__);
2022-01-17 00:18:50 +01:00
}
2022-01-17 00:18:50 +01:00
return $result;
}
}
?>