38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| //TODO to test and debug
 | |
| $topics["linky2mqtt"] = new topic;
 | |
| $devices["linky2mqtt"] = array();
 | |
| 
 | |
| 
 | |
| $topics["linky2mqtt"]->callback = function($topic, $message)
 | |
| {
 | |
| 	global $topics, $logFh, $devices, $included;
 | |
| 	$topicName = $topic[0];
 | |
| 	$friendlyName = $topic[1]; 			// get friendlyName
 | |
| 	logger(INFO, sprintf(_("Incoming notification of device %s"), $topicName, $fn), __FILE__ . ":" . __LINE__);
 | |
| 	$payloadArray = json_decode($message->payload, true);
 | |
| 
 | |
| 	if (!array_key_exists($fn, $device))
 | |
| 	{
 | |
| 		echo "initializing $fn";
 | |
| 		$device[$fn] = array("device" => new device);
 | |
| 		$device = &$device[$fn];
 | |
| 		$device["device"]->friendlyName = $payloadArray["friendly_name"];
 | |
| 		$device["device"]->ieeeAddress =  $payloadArray["ieeeAddress"];
 | |
| 		$device["device"]->type = $payloadArray["type"];
 | |
| 		$indexDevices[$device["device"]->ieeeAddress] = & $device["device"];
 | |
| 		$indexFriendlyNames[$topicName][$fn] = & $device["device"];
 | |
| 	}else
 | |
| 	{
 | |
| 		$device = &$device[$fn];
 | |
| 	}
 | |
| 	unset($payloadArray["friendly_name"]);
 | |
| 	unset($payloadArray["ieeeAddress"]);
 | |
| 	unset($payloadArray["type"]);
 | |
| 
 | |
| 	//$device = getDeviceByFriendlyname($topicName, $fn, $payloadArray, true);
 | |
| 	changeDevice($topicName, $friendlyName, $device["device"], $payloadArray);
 | |
| 	//print_r($device["device"]);
 | |
| }
 | |
| ?>
 |