On 05 Feb 2016, at 23:46, Dirk-Willem van Gulik <dirkx@webweaving.org> wrote:
We have a tiny sensor/discovery module (gist below) that picks up the (back)pressure, in Bar, of a cooling system.
However when we add below to config.php:
$config['sensor_types']['pressure']['symbol']='B';
$config['sensor_types']['pressure']['text']='Pressure';
$config['sensor_types']['pressure']['icon']=‘oicon-omega’;
it seems that these values are wiped/overwritten by the values from definitions.dat.
What, or perhaps, where, is the proper way to add these ?
Pretty much as you’d expect.
Sofar so good. However if we scroll to sensor types - we do NOT see the extra 2 entries from config.php (screenshot 3).
So something is amiss here.
However if we move these entries to definitions.inc.php - post the reading of definitions.dat - all is well again (screenshot 4).
So I guess the bug is in the array merge.
Tiny SVN patch attached below.. I suspect it may be worthwhile to poke a bit more at this - as some issues with the detected mibs posted about half a year ago smell the same.
Dw.
beeb:includes dirkx$ svn diff
Index: definitions.inc.php
===================================================================
--- definitions.inc.php
+++ definitions.inc.php (working copy)
@@ -146,7 +146,7 @@
//var_dump($config_tmp);
if (is_array($config_tmp) && isset($config_tmp['os'])) // Simple check for passed correct data
{
- $config = array_merge($config, $config_tmp);
+ $config = array_merge_recursive($config, $config_tmp);
}
unset($config_tmp);
}