diff --git a/html/images/os/cambium.png b/html/images/os/cambium.png
index 941fdbfd5..4f1aa055d 100644
Binary files a/html/images/os/cambium.png and b/html/images/os/cambium.png differ
diff --git a/html/includes/collectd/definitions.php b/html/includes/collectd/definitions.php
index 932524da1..3ab39e1ce 100644
--- a/html/includes/collectd/definitions.php
+++ b/html/includes/collectd/definitions.php
@@ -1371,6 +1371,18 @@ function load_graph_definitions($logarithmic = false, $tinylegend = false) {
'GPRINT:temp_avg:AVERAGE:%4.1lf',
'GPRINT:temp_max:MAX:%4.1lf',
'GPRINT:temp_avg:LAST:%4.1lf\l');
+ $GraphDefs['signal'] = array(
+ 'DEF:signal_avg={file}:value:AVERAGE',
+ 'DEF:signal_min={file}:value:MIN',
+ 'DEF:signal_max={file}:value:MAX',
+ 'CDEF:average=signal_avg,0.2,*,PREV,UN,signal_avg,PREV,IF,0.8,*,+',
+ "AREA:signal_max#$HalfRed",
+ "AREA:signal_min#$Canvas",
+ "LINE1:signal_avg#$FullRed:Signal",
+ 'GPRINT:signal_min:MIN:%4.1lf',
+ 'GPRINT:signal_avg:AVERAGE:%4.1lf',
+ 'GPRINT:signal_max:MAX:%4.1lf',
+ 'GPRINT:signal_avg:LAST:%4.1lf\l');
$GraphDefs['timeleft'] = array(
#'-v', 'Minutes',
'DEF:avg={file}:timeleft:AVERAGE',
diff --git a/html/includes/graphs/device/signal.inc.php b/html/includes/graphs/device/signal.inc.php
new file mode 100644
index 000000000..5bf416ee1
--- /dev/null
+++ b/html/includes/graphs/device/signal.inc.php
@@ -0,0 +1,7 @@
+ ');
}
-$icons = array('fanspeed'=>'tachometer','humidity'=>'tint','temperature'=>'fire','current'=>'bolt','frequency'=>'line-chart','power'=>'power-off','voltage'=>'bolt','charge'=>'plus-square','dbm'=>'sun-o', 'load'=>'spinner','state'=>'bullseye');
-foreach (array('fanspeed','humidity','temperature') as $item) {
+$icons = array('fanspeed'=>'tachometer','humidity'=>'tint','temperature'=>'fire','current'=>'bolt','frequency'=>'line-chart','power'=>'power-off','voltage'=>'bolt','charge'=>'plus-square','dbm'=>'sun-o', 'load'=>'spinner','state'=>'bullseye','signal'=>'wifi');
+foreach (array('fanspeed','humidity','temperature','signal') as $item) {
if (isset($menu_sensors[$item])) {
echo('
'.nicecase($item).'');
unset($menu_sensors[$item]);$sep++;
diff --git a/html/pages/device/health.inc.php b/html/pages/device/health.inc.php
index 21f41389b..7c04d6ccc 100644
--- a/html/pages/device/health.inc.php
+++ b/html/pages/device/health.inc.php
@@ -16,6 +16,7 @@ $power = dbFetchCell("select count(*) from sensors WHERE sensor_class='po
$dBm = dbFetchCell("select count(*) from sensors WHERE sensor_class='dBm' AND device_id = ?", array($device['device_id']));
$states = dbFetchCell("select count(*) from sensors WHERE sensor_class='state' AND device_id = ?", array($device['device_id']));
$load = dbFetchCell("select count(*) from sensors WHERE sensor_class='load' AND device_id = ?", array($device['device_id']));
+$signal = dbFetchCell("select count(*) from sensors WHERE sensor_class='signal' AND device_id = ?", array($device['device_id']));
unset($datas);
$datas[] = 'overview';
@@ -79,6 +80,10 @@ if ($load) {
$datas[] = 'load';
}
+if ($signal) {
+ $datas[] = 'signal';
+}
+
$type_text['overview'] = 'Overview';
$type_text['charge'] = 'Battery Charge';
$type_text['temperature'] = 'Temperature';
@@ -95,6 +100,7 @@ $type_text['power'] = 'Power';
$type_text['dbm'] = 'dBm';
$type_text['state'] = 'State';
$type_text['load'] = 'Load';
+$type_text['signal'] = 'Signal';
$link_array = array(
'page' => 'device',
diff --git a/html/pages/device/health/signal.inc.php b/html/pages/device/health/signal.inc.php
new file mode 100644
index 000000000..14665c3c8
--- /dev/null
+++ b/html/pages/device/health/signal.inc.php
@@ -0,0 +1,7 @@
+ static-config ?
$type_text['overview'] = "Overview";
@@ -31,6 +32,7 @@ $type_text['toner'] = "Toner";
$type_text['dbm'] = "dBm";
$type_text['load'] = "Load";
$type_text['state'] = "State";
+$type_text['signal'] = "Signal";
if (!$vars['metric']) {
$vars['metric'] = "processor";
diff --git a/html/pages/health/signal.inc.php b/html/pages/health/signal.inc.php
new file mode 100644
index 000000000..8d9d41fd4
--- /dev/null
+++ b/html/pages/health/signal.inc.php
@@ -0,0 +1,7 @@
+ -80) {
+ $limit = -80;
+ }
+ break;
}//end switch
return $limit;
@@ -378,6 +385,10 @@ function sensor_limit($class, $current) {
case 'power':
$limit = ($current * 1.50);
break;
+
+ case 'signal';
+ $limit = 0;
+ break;
}//end switch
return $limit;
diff --git a/includes/discovery/sensors.inc.php b/includes/discovery/sensors.inc.php
index 32d4fdd9e..67da5bc8e 100644
--- a/includes/discovery/sensors.inc.php
+++ b/includes/discovery/sensors.inc.php
@@ -27,3 +27,4 @@ require 'includes/discovery/sensors/charge.inc.php';
require 'includes/discovery/sensors/load.inc.php';
require 'includes/discovery/sensors/states.inc.php';
require 'includes/discovery/sensors/dbm.inc.php';
+require 'includes/discovery/sensors/signal.inc.php';
\ No newline at end of file
diff --git a/includes/discovery/sensors/signal.inc.php b/includes/discovery/sensors/signal.inc.php
index 55ab39291..39808c4d4 100644
--- a/includes/discovery/sensors/signal.inc.php
+++ b/includes/discovery/sensors/signal.inc.php
@@ -9,4 +9,4 @@ d_echo($valid['sensor']['signal']);
check_valid_sensors($device, 'signal', $valid['sensor']);
-echo "\n";
+echo "\n";
\ No newline at end of file
diff --git a/includes/discovery/sensors/signal/cambium.inc.php b/includes/discovery/sensors/signal/cambium.inc.php
new file mode 100644
index 000000000..9104ab9b8
--- /dev/null
+++ b/includes/discovery/sensors/signal/cambium.inc.php
@@ -0,0 +1,73 @@
+ '%',
'load' => '%',
'state' => '#',
+ 'signal' => 'dBm',
);
foreach ($supported_sensors as $sensor_type => $sensor_unit) {
diff --git a/includes/polling/signal/cambium.inc.php b/includes/polling/signal/cambium.inc.php
new file mode 100644
index 000000000..41582d93d
--- /dev/null
+++ b/includes/polling/signal/cambium.inc.php
@@ -0,0 +1,51 @@
+