debugage
This commit is contained in:
@ -1,25 +1,37 @@
|
||||
<?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"), $topic[0], $topic[1]), __FILE__ . ":" . __LINE__);
|
||||
$device = & $devices[$topic[0]];
|
||||
$payloadArray = json_decode($message->payload);
|
||||
if (!isset($device[$fn])) //must not exists, but ...
|
||||
logger(INFO, sprintf(_("Incoming notification of device %s"), $topicName, $fn), __FILE__ . ":" . __LINE__);
|
||||
$payloadArray = json_decode($message->payload, true);
|
||||
|
||||
if (!array_key_exists($fn, $device))
|
||||
{
|
||||
logger(LOG_WARNING, $logFh, _("init of ") . $fn, __FILE__ . ":" . __LINE__);
|
||||
$device[$fn] = array();
|
||||
$device[$fn]["device"] = new device;
|
||||
$device[$fn]["device"]->type = "mesure";
|
||||
$device[$fn]["device"]->ieeeAddress = $payloadArray["ADSC"];
|
||||
$indexDevices[$device[$fn]["device"]->ieeeAddress] = & $device[$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[$fn] = & $device["device"];
|
||||
|
||||
}else
|
||||
{
|
||||
$device = &$device[$fn];
|
||||
}
|
||||
$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"]);
|
||||
}
|
||||
|
@ -1,43 +1,56 @@
|
||||
<?php
|
||||
$topics["pws2mqtt"] = new topic;
|
||||
$devices["pws2mqtt"] = array();
|
||||
|
||||
|
||||
$topics["pws2mqtt"]->callback = function($topic, $message)
|
||||
{
|
||||
global $topics, $logFh, $devices, $included;
|
||||
$fn = $topic[1]; // get friendlyname
|
||||
logger(INFO, sprintf(_("Incoming notification of device %s => friendly name : %s"), $topic[0], $topic[1]), __FILE__ . ":" . __LINE__);
|
||||
$device = & $devices[$topic[0]];
|
||||
$payloadArray = json_decode($message->payload);
|
||||
|
||||
if (!isset($device[$fn]))
|
||||
global $logFh, $devices, $included;
|
||||
$topicName = $topic[0];
|
||||
$fn = $topic[1];
|
||||
logger(INFO, sprintf(_("Incoming notification of device %s => friendly name : %s"), $topicName, $fn), __FILE__ . ":" . __LINE__);
|
||||
$device = & $devices[$topicName];
|
||||
$payloadArray = json_decode($message->payload, true);
|
||||
// friendlyname
|
||||
if (!array_key_exists($fn, $device))
|
||||
{
|
||||
logger(WARNING, $logFh, _("init of ") . $fn, __FILE__ . ":" . __LINE__);
|
||||
$device[$fn] = array();
|
||||
$device[$fn]["device"] = new device;
|
||||
$device[$fn]["device"]->type = $payloadArray->type;
|
||||
$device[$fn]["device"]->ieeeAddress = $payloadArray->ieeeAddress;
|
||||
$device[$fn]["device"]->friendlyname = $fn;
|
||||
$indexDevices[$device[$fn]["device"]->ieeeAddress] = & $device[$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"];
|
||||
$device["device"]->topic = $topicName;
|
||||
$indexDevices[$device["device"]->ieeeAddress] = & $device["device"];
|
||||
$indexFriendlyNames[$fn] = & $device["device"];
|
||||
|
||||
}else
|
||||
{
|
||||
$device = &$device[$fn];
|
||||
}
|
||||
$device = & $device[$fn];
|
||||
unset($payloadArray["friendly_name"]);
|
||||
unset($payloadArray["ieeeAddress"]);
|
||||
unset($payloadArray["type"]);
|
||||
|
||||
foreach ($payloadArray as $property => $value)
|
||||
{
|
||||
$str = substr($property, -1);
|
||||
if ($str == "f")
|
||||
{
|
||||
$newProperty = rtrim($property, "f") . "c";
|
||||
$payloadArray->{$newProperty} = farenheit2celsius($value);
|
||||
$payloadArray[$newProperty] = farenheit2celsius($value);
|
||||
}elseif ($str == "h")
|
||||
{
|
||||
$newProperty = substr($property, 0, -3) . "kmh";
|
||||
$payloadArray->{$newProperty} = mph2kmh($value);
|
||||
$payloadArray[$newProperty] = mph2kmh($value);
|
||||
}
|
||||
if ($property == "baromin")
|
||||
{
|
||||
$newProperty = "barominmb";
|
||||
$payloadArray->{"barominmb"} = millibars($value);
|
||||
$payloadArray["barominmb"] = millibars($value);
|
||||
}
|
||||
}
|
||||
changeDevice($topic[0], $fn, $device["device"], $payloadArray);
|
||||
//$device = getDeviceByFriendlyname($topicName, $fn, $payloadArray, true);
|
||||
changeDevice($topicName, $fn, $device["device"], $payloadArray);
|
||||
}
|
||||
?>
|
||||
|
@ -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