- changed webserver to apiserver
- added webserver - a lot of debugging - install shell script
This commit is contained in:
@ -12,25 +12,25 @@ function zigbee2mqttCallback($topic, $message)
|
||||
switch ($topic[2])
|
||||
{
|
||||
case "info":
|
||||
$topics[$topic[0]]->info = json_decode($message->payload);
|
||||
$topics[$topic[0]]->info = json_decode($message->payload, true);
|
||||
break;
|
||||
case "devices":
|
||||
logger(DEBUG,_("Inserting zigbee devices in DB"), __FILE__ . ":" . __LINE__);
|
||||
$topics[$topic[0]]->devices = json_decode($message->payload);
|
||||
$topics[$topic[0]]->devices = json_decode($message->payload, true);
|
||||
//fwrite($logFh, var_export($topics[$topic[0]]->devices, true));
|
||||
mkDevicesDB($topic[0], $topics[$topic[0]]->devices);
|
||||
getDevicesValues($topic[0]);
|
||||
break;
|
||||
case "groups":
|
||||
logger(DEBUG,_("Inserting zigbee groups in DB"), __FILE__ . ":" . __LINE__);
|
||||
$topics[$topic[0]]->groups = json_decode($message->payload);
|
||||
$topics[$topic[0]]->groups = json_decode($message->payload, true);
|
||||
mkDevicesDB($topic[0], $topics[$topic[0]]->groups, true);
|
||||
break;
|
||||
case "extensions":
|
||||
$topics[$topic[0]]->extensions = json_decode($message->payload);
|
||||
$topics[$topic[0]]->extensions = json_decode($message->payload, true);
|
||||
break;
|
||||
case "config":
|
||||
$topics[$topic[0]]->config = json_decode($message->payload);
|
||||
$topics[$topic[0]]->config = json_decode($message->payload, true);
|
||||
break;
|
||||
case "logging":
|
||||
//TODO
|
||||
@ -64,23 +64,45 @@ function zigbee2mqttCallback($topic, $message)
|
||||
array_pop ($fnTree);
|
||||
$fn = implode("/", $fnTree);
|
||||
$fn = implode("/", $fnTree);
|
||||
$payloadArray = array($fnTreeEnd => $message->payload);
|
||||
//TODO payload can be a json object
|
||||
if (($payloadArray = json_decode($message->payload, true)) === null)
|
||||
{
|
||||
$payloadArray = array($fnTreeEnd => $message->payload);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$payloadArray = json_decode($message->payload,true);
|
||||
$payloadArray = json_decode($message->payload, true);
|
||||
}
|
||||
logger(DEBUG, _("friendlyname = ") . $fn, __FILE__ . ":" . __LINE__);
|
||||
if (!array_key_exists($fn, $indexFriendlyNames[$topicName]))
|
||||
$flag = 0;
|
||||
$alert = 0;
|
||||
while (!array_key_exists($fn, $indexFriendlyNames))
|
||||
{
|
||||
mkDevicesDB($topicName, $message->payload);
|
||||
logger(ERROR, sprintf(_("device with friendlyname %s not found"), $fn), __FILE__ . ":" . __LINE__);
|
||||
}else
|
||||
{
|
||||
logger(DEBUG, "PayloadArray = " . print_r($payloadArray,true), __FILE__ . ":" . __LINE__);
|
||||
changeDevice($topicName, $fn, $indexFriendlyNames[$topicName][$fn], $payloadArray);
|
||||
logger(INFO, _("device does not exists in IndexFriendlyNames: ") . print_r($payloadArray,true), __FILE__ . ":" . __LINE__);
|
||||
if ($flag == 0)
|
||||
{
|
||||
logger(INFO, "Reindexing all indexes", __FILE__ . ":" . __LINE__);
|
||||
mkIndexes();
|
||||
$flag += 1;
|
||||
}elseif($flag == 1)
|
||||
{
|
||||
logger(INFO, "getting device list from zigbee2mqtt", __FILE__ . ":" . __LINE__);
|
||||
publish("zigbee2mqtt", array("bridge/devices" => ""), "get");
|
||||
$flag += 1;
|
||||
}elseif($flag >= 2)
|
||||
{
|
||||
$flage = 0;
|
||||
if ($alert++ > 4)
|
||||
{
|
||||
logger(ALERT, _("device does not exists in IndexFriendlyNames: ") . $fn, __FILE__ . ":" . __LINE__);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//logger(DEBUG, "PayloadArray = " . print_r($payloadArray,true), __FILE__ . ":" . __LINE__);
|
||||
if ($alert <= 4)
|
||||
{
|
||||
changeDevice($topicName, $fn, $indexFriendlyNames[$fn], $payloadArray);
|
||||
}
|
||||
|
||||
}else
|
||||
{
|
||||
logger(DEBUG, _("Zigbee2mqtt doing get or set !?"));
|
||||
|
Reference in New Issue
Block a user