From e5ca0ab7845f1ed53721cfdac21c57d06b635b99 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 20:06:45 +0200 Subject: [PATCH] MQTT Hass: Reorder binary sensor methods --- include/MqttHandleHass.h | 5 +++-- src/MqttHandleHass.cpp | 36 ++++++++++++++++++------------------ 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index b932ae5..7be8120 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -59,14 +59,15 @@ public: private: void loop(); static void publish(const String& subtopic, const String& payload); + static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); + static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); + static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off); static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); - static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); static void publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const String& category); static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& state_topic, const String& command_topic, const int16_t min, const int16_t max, float step, const String& unit_of_measure, const String& icon, const String& category); - static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off); static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 2fcd4e6..ed5a76b 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -275,15 +275,6 @@ void MqttHandleHassClass::publishInverterNumber( publish(configTopic, buffer); } -void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off) -{ - const String serial = inv->serialString(); - - JsonDocument root; - createInverterInfo(root, inv); - publishBinarySensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, payload_on, payload_off, "", ""); -} - void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) { const String serial = inv->serialString(); @@ -375,15 +366,6 @@ void MqttHandleHassClass::publishDtuSensor(const String& name, const String& sta publish(configTopic, buffer); } -void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) -{ - const String dtuId = getDtuUniqueId(); - - JsonDocument root; - createDtuInfo(root); - publishBinarySensor(root, dtuId, dtuId, name, state_topic, payload_on, payload_off, device_class, category); -} - void MqttHandleHassClass::createInverterInfo(JsonDocument& root, std::shared_ptr inv) { createDeviceInfo( @@ -474,3 +456,21 @@ void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& r serializeJson(doc, buffer); publish(configTopic, buffer); } + +void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) +{ + const String dtuId = getDtuUniqueId(); + + JsonDocument root; + createDtuInfo(root); + publishBinarySensor(root, dtuId, dtuId, name, state_topic, payload_on, payload_off, device_class, category); +} + +void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off) +{ + const String serial = inv->serialString(); + + JsonDocument root; + createInverterInfo(root, inv); + publishBinarySensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, payload_on, payload_off, "", ""); +}