iterate(); } private function iterate() { global $indexDevices; foreach ($indexDevices as $value) { $value->availability["functions"][] = array($this,"callback"); } } // callback fonction. Is called with these 3 parameters // $device -> calling device // $property -> parameter passed by mqtt // $value -> value of the parameter public function callBack($device, $property, $value) { switch($property) { case "availability": // theorically can't be other, but .... if ($device->availability != $value) { //echo "==========>>>>>> Availability $value" . EOL; //if (!empty($device->availability)) //{ $log = ALERT; //}else //{ // $log = INFO; //} //$device->availability = $value; logger($log, sprintf(_("Device: %s/%s is %s"), $device->topic, $device->friendlyName, $value)); } break; } //echo sprintf(_("notification received from MQTT -> device %s is %s"), $device->friendlyName , $value). EOL; //echo $property . "=> " . $value . EOL; } /* public function getHook() { return array($this,"callback"); }*/ } $hooks["availability"] = new availability(); ?>