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 ()
{
logger ( DEBUG , _ ( " Initializing hook: " ) . $this -> hookName );
$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 ];
$indexDevices [ $ieeeAddress ] -> $property [ " functions " ][] = array ( $this , " callback " );
$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-01-28 23:05:58 +01:00
logger ( DEBUG , $this -> hookName . _ ( " initialized " ), __FILE__ . " : " . __LINE__ );
2022-01-17 00:18:50 +01:00
//var_dump($this);
}
}
return $result ;
}
}
?>