debugage
This commit is contained in:
@ -1,8 +1,12 @@
|
||||
<?php
|
||||
|
||||
$callback = function($topic, $message)
|
||||
$topics["zigbee2mqtt"] = new topic;
|
||||
$devices["zigbee2mqtt"] = array();
|
||||
|
||||
$topics["zigbee2mqtt"]->callback = function($topic, $message)
|
||||
{
|
||||
global $topics, $logFh, $devices, $included;
|
||||
global $topics, $devices, $included, $logFh;
|
||||
|
||||
if ($topic[1] == "bridge")
|
||||
{
|
||||
switch ($topic[2])
|
||||
@ -13,7 +17,7 @@ $callback = function($topic, $message)
|
||||
case "devices":
|
||||
logger(DEBUG,_("Inserting zigbee devices in DB"), __FILE__ . ":" . __LINE__);
|
||||
$topics[$topic[0]]->devices = json_decode($message->payload);
|
||||
fwrite($logFh, var_export($topics[$topic[0]]->devices, true));
|
||||
//fwrite($logFh, var_export($topics[$topic[0]]->devices, true));
|
||||
mkDevicesDB($topic[0], $topics[$topic[0]]->devices);
|
||||
getDevicesValues($topic[0]);
|
||||
break;
|
||||
@ -40,36 +44,46 @@ $callback = function($topic, $message)
|
||||
}elseif (($topic[array_key_last($topic)]) != "get" and ($topic[array_key_last($topic)]) != "set" and $included)
|
||||
{
|
||||
$topic = explode ("/", $message->topic, 2); // get topic name
|
||||
$topicName = $topic[0];
|
||||
$fn = $topic[1];
|
||||
$device = null;
|
||||
$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")
|
||||
|
||||
echo $topicName . " => " . $fn . EOL;
|
||||
logger(DEBUG, _("end of fnTree = ") . end($fnTree), __FILE__ . ":" . __LINE__);
|
||||
$fnTreeEnd = end($fnTree);
|
||||
switch($fnTreeEnd)
|
||||
{
|
||||
unset ($fnTree[array_key_last($fnTree)]);
|
||||
$payloadArray = array("availability" => $message->payload);
|
||||
//TODO payload can be a json object
|
||||
}else
|
||||
{
|
||||
$payloadArray = json_decode($message->payload);
|
||||
case "l1":
|
||||
case "l2":
|
||||
$fnTreeEnd = "state_" . $fnTreeEnd;
|
||||
case "mode":
|
||||
case "contact":
|
||||
case "availability":
|
||||
array_pop ($fnTree);
|
||||
$fn = implode("/", $fnTree);
|
||||
$fn = implode("/", $fnTree);
|
||||
$payloadArray = array($fnTreeEnd => $message->payload);
|
||||
//TODO payl
|
||||
$payloadArray = array($fnTreeEnd => $message->payload);
|
||||
//TODO payload can be a json object
|
||||
break;
|
||||
default:
|
||||
$payloadArray = json_decode($message->payload,true);
|
||||
}
|
||||
$device = & $devices[$topic[0]];
|
||||
foreach($fnTree as $fn)
|
||||
logger(DEBUG, _("friendlyname = ") . $fn, __FILE__ . ":" . __LINE__);
|
||||
if ((getDeviceByFriendlyname($device, $topicName, $fn, $payloadArray, true)) === false)
|
||||
{
|
||||
//print_r($device) ;
|
||||
if (!isset($device[$fn])) //must not exists, but ...
|
||||
{
|
||||
logger(LOG_WARNING, $logFh, _("init of ") . $fn, __FILE__ . ":" . __LINE__);
|
||||
$device[$fn] = array();
|
||||
$device[$fn]["device"] = new device;
|
||||
addDevice($device[$fn], $fn, $payloadArray);
|
||||
}
|
||||
$device = & $device[$fn];
|
||||
logger(ERROR, sprintf(_("device with friendlyname %s not found"), $fn), __FILE__ . ":" . __LINE__);
|
||||
}
|
||||
changeDevice($topic[0], $topic[1], $device["device"], $payloadArray);
|
||||
//fwrite($logFh, print_r($msg, true));
|
||||
print_r($device);
|
||||
changeDevice($topicName, $fn, $device["device"], $payloadArray);
|
||||
}else
|
||||
{
|
||||
logger(DEBUG, _("Zigbee2mqtt doing nothing !?"));
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$topics["zigbee2mqtt"] = new topic;
|
||||
$topics["zigbee2mqtt"]->callback = & $callback;
|
||||
|
||||
?>
|
||||
|
Reference in New Issue
Block a user