some debugging and separating callbacks of the main program
This commit is contained in:
8
topics_callbacks/pws2mqtt.php
Normal file
8
topics_callbacks/pws2mqtt.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
$topics["pws2mqtt"]->callback = function()
|
||||
{
|
||||
global $topics, $logFh, $devices, $included;
|
||||
|
||||
}
|
||||
?>
|
68
topics_callbacks/zigbee2mqtt.php
Normal file
68
topics_callbacks/zigbee2mqtt.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$topics["zigbee2mqtt"]->callback = function()
|
||||
{
|
||||
global $topics, $logFh, $devices, $included;
|
||||
if ($topic[1] == "bridge")
|
||||
{
|
||||
switch ($topic[2])
|
||||
{
|
||||
case "info":
|
||||
$topics[$topic[0]]->info = json_decode($message->payload);
|
||||
break;
|
||||
case "devices":
|
||||
$topics[$topic[0]]->devices = json_decode($message->payload);
|
||||
fwrite($logFh, print_r($topics[$topic[0]]->devices, true));
|
||||
mkDevicesDB($topic[0], $topics[$topic[0]]->devices);
|
||||
break;
|
||||
case "groups":
|
||||
$topics[$topic[0]]->groups = json_decode($message->payload);
|
||||
mkDevicesDB($topic[0], $topics[$topic[0]]->groups, true);
|
||||
break;
|
||||
case "extensions":
|
||||
$topics[$topic[0]]->extensions = json_decode($message->payload);
|
||||
break;
|
||||
case "config":
|
||||
$topics[$topic[0]]->config = json_decode($message->payload);
|
||||
break;
|
||||
case "logging":
|
||||
//TODO
|
||||
break;
|
||||
case "state":
|
||||
$topics[$topic[0]]->state = $message->payload;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
}elseif (($topic[array_key_last($topic)]) != "get" and ($topic[array_key_last($topic)]) != "set" and $included)
|
||||
{
|
||||
$topic = explode ("/", $message->topic, 2); // get topic name
|
||||
$fnTree = explode ("/" , $topic[1]); // get friendlyname
|
||||
echo $topic[0] . " => " . $topic[1] . EOL;
|
||||
//$devices[$topic[0]][$fnTree[0]]->json = json_decode($message->payload);
|
||||
if ($fnTree[array_key_last($fnTree)] == "availability")
|
||||
{
|
||||
unset ($fnTree[array_key_last($fnTree)]);
|
||||
$payloadArray = array("availability" => $message->payload);
|
||||
//print_r($payloadArray);
|
||||
}else
|
||||
{
|
||||
$payloadArray = json_decode($message->payload);
|
||||
}
|
||||
$device = & $devices[$topic[0]];
|
||||
foreach($fnTree as $fn)
|
||||
{
|
||||
//print_r($device) ;
|
||||
if (!isset($device[$fn])) //must not exists, but ...
|
||||
{
|
||||
logger(LOG_WARNING, $logFh, "init of " . $fn .EOL);
|
||||
$device[$fn] = array();
|
||||
$device[$fn]["device"] = new device;
|
||||
//addDevice($device[$fn], $fn, );
|
||||
}
|
||||
$device = & $device[$fn];
|
||||
}
|
||||
changeDevice($topic[0], $topic[1], $device["device"], $payloadArray);
|
||||
//fwrite($logFh, print_r($msg, true));
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user