From be303aa85178da5fffb883590dfa851bbf5a933f Mon Sep 17 00:00:00 2001 From: Carl Philipp Klemm Date: Fri, 17 Apr 2026 18:30:43 +0200 Subject: [PATCH] Support power, engery and voltage sensors in sensors and mqtt --- src/sensors/mqttsensorsource.cpp | 24 ++++++++++++++++++++++++ src/sensors/sensor.h | 9 +++++++++ 2 files changed, 33 insertions(+) diff --git a/src/sensors/mqttsensorsource.cpp b/src/sensors/mqttsensorsource.cpp index 0853abf..be4ec20 100644 --- a/src/sensors/mqttsensorsource.cpp +++ b/src/sensors/mqttsensorsource.cpp @@ -147,6 +147,30 @@ void MqttSensorSource::onMessageReceived(const QMqttMessage& message) sensor.field = obj["voc"].toDouble(0); stateChanged(sensor); } + + if(obj.contains("power")) + { + sensor.name = baseName + " Power"; + sensor.type = Sensor::TYPE_POWER; + sensor.field = obj["Power"].toDouble(0); + stateChanged(sensor); + } + + if(obj.contains("energy")) + { + sensor.name = baseName + " Energy"; + sensor.type = Sensor::TYPE_ENERGY_USE; + sensor.field = obj["energy"].toDouble(0); + stateChanged(sensor); + } + + if(obj.contains("voltage")) + { + sensor.name = baseName + " Voltage"; + sensor.type = Sensor::TYPE_VOLTAGE; + sensor.field = obj["voltage"].toDouble(0); + stateChanged(sensor); + } } } diff --git a/src/sensors/sensor.h b/src/sensors/sensor.h index 86fa5cb..d24090a 100644 --- a/src/sensors/sensor.h +++ b/src/sensors/sensor.h @@ -22,6 +22,9 @@ public: TYPE_FORMALDEHYD, TYPE_PM25, TYPE_TOTAL_VOC, + TYPE_ENERGY_USE, + TYPE_POWER, + TYPE_VOLTAGE, TYPE_LOWBATTERY = 128, TYPE_SHUTDOWN_IMMINENT = 251, TYPE_OCUPANCY, @@ -145,6 +148,12 @@ public: return "ppb"; case TYPE_SUN_ALTITUDE: return "°"; + case TYPE_POWER: + return "W"; + case TYPE_ENERGY_USE: + return "kWh"; + case TYPE_VOLTAGE: + return "V"; default: return ""; }