diff --git a/template_sensors_7.4.xml b/template_sensors_7.4.xml
index 84cb222..8e95e9c 100644
--- a/template_sensors_7.4.xml
+++ b/template_sensors_7.4.xml
@@ -31,6 +31,54 @@
+ -
+ 898f731c944446d4b895a6282c229a08
+ Sensors discovery JSON
+ DEPENDENT
+ sensors.discovery
+ 0
+ TEXT
+
+
+ JAVASCRIPT
+
+ var inp = JSON.parse(value);
+var out = [];
+function isNumeric(x) { return /^-?\d+(\.\d+)?$/.test(String(x)); }
+
+Object.keys(inp).forEach(function (drv) {
+ var v = inp[drv];
+ Object.keys(v).forEach(function (sens) {
+ var s = v[sens];
+ var label = s.label ? s.label : sens;
+ var type = s.sensor_type; // "temp", "in", "fan", "power", etc.
+ if (!type) return;
+
+ // mimic the current temp filter: only include temps with numeric input
+ if (type === "temp" && !isNumeric(s.input)) return;
+
+ out.push({
+ "{#DRIVER}": drv,
+ "{#SENSOR}": sens,
+ "{#LABEL}": label,
+ "{#TYPE}": type
+ });
+ });
+});
+return JSON.stringify(out);
+
+
+
+
+ sensors
+
+
+
+ component
+ raw
+
+
+
@@ -38,6 +86,14 @@
Discover Fans
DEPENDENT
sensors.discovery.fan
+
+
+
+ {#TYPE}
+ ^fan$
+
+
+
DISABLE_NEVER
@@ -85,44 +141,22 @@
- sensors
+ sensors.discovery
-
-
- JAVASCRIPT
-
- var inp = JSON.parse(value);
-var out = [];
-
-Object.keys(inp).forEach(function(drv) {
- var v = inp[drv];
-
- Object.keys(v).forEach(function(sens) {
- var v2 = v[sens];
- var label = sens;
- if (v2.label) {
- label = v2.label;
- }
- if (v2.sensor_type == "fan") {
- out.push({
- "{#DRIVER}": drv,
- "{#SENSOR}": sens,
- "{#LABEL}": label
- })
- }
- })
-})
-
-return JSON.stringify(out);
-
-
-
acd8137d037a4ae390660a23374a56c9
Discover Power
DEPENDENT
sensors.discovery.power
+
+
+
+ {#TYPE}
+ ^power$
+
+
+
DISABLE_NEVER
@@ -163,38 +197,8 @@ return JSON.stringify(out);
- sensors
+ sensors.discovery
-
-
- JAVASCRIPT
-
- var inp = JSON.parse(value);
-var out = [];
-
-Object.keys(inp).forEach(function(drv) {
- var v = inp[drv];
-
- Object.keys(v).forEach(function(sens) {
- var v2 = v[sens];
- var label = sens;
- if (v2.label) {
- label = v2.label;
- }
- if (v2.sensor_type == "power") {
- out.push({
- "{#DRIVER}": drv,
- "{#SENSOR}": sens,
- "{#LABEL}": label
- })
- }
- })
-})
-
-return JSON.stringify(out);
-
-
-
393379127d0f48f4bb3763c00273ba43
@@ -202,11 +206,11 @@ return JSON.stringify(out);
DEPENDENT
sensors.discovery.temp
+ AND
- {#VALUE}
- ^-?\d+$
- A
+ {#TYPE}
+ ^temp$
@@ -288,45 +292,22 @@ return JSON.stringify(out);
- sensors
+ sensors.discovery
-
-
- JAVASCRIPT
-
- var inp = JSON.parse(value);
-var out = [];
-
-Object.keys(inp).forEach(function(drv) {
- var v = inp[drv];
-
- Object.keys(v).forEach(function(sens) {
- var v2 = v[sens];
- var label = sens;
- if (v2.label) {
- label = v2.label;
- }
- if (v2.sensor_type == "temp") {
- out.push({
- "{#DRIVER}": drv,
- "{#SENSOR}": sens,
- "{#LABEL}": label,
- "{#VALUE}": v2.input
- })
- }
- })
-})
-
-return JSON.stringify(out);
-
-
-
d19dbbd218514acc9ae77c19cb1f9c44
Discover Voltage
DEPENDENT
sensors.discovery.voltage
+
+
+
+ {#TYPE}
+ ^in$
+
+
+
DISABLE_NEVER
@@ -393,38 +374,8 @@ return JSON.stringify(out);
- sensors
+ sensors.discovery
-
-
- JAVASCRIPT
-
- var inp = JSON.parse(value);
-var out = [];
-
-Object.keys(inp).forEach(function(drv) {
- var v = inp[drv];
-
- Object.keys(v).forEach(function(sens) {
- var v2 = v[sens];
- var label = sens;
- if (v2.label) {
- label = v2.label;
- }
- if (v2.sensor_type == "in") {
- out.push({
- "{#DRIVER}": drv,
- "{#SENSOR}": sens,
- "{#LABEL}": label
- })
- }
- })
-})
-
-return JSON.stringify(out);
-
-
-