1
0

- changed webserver to apiserver

- added webserver
- a lot of debugging
- install shell script
This commit is contained in:
2022-04-07 01:44:17 +02:00
parent 0d35b1ff3f
commit f8fc3f63ec
28 changed files with 463 additions and 223 deletions

View File

@ -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 !?"));