diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index e5cf02a..ee8b551 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -59,6 +59,7 @@ public: void forceUpdate(); private: + void publish(const String& subtopic, const String& payload); void publishField(std::shared_ptr inv, uint8_t channel, byteAssign_fieldDeviceClass_t fieldType, bool clear = false); void publishInverterButton(std::shared_ptr inv, const char* caption, const char* icon, const char* category, const char* deviceClass, const char* subTopic, const char* payload); void publishInverterNumber(std::shared_ptr inv, const char* caption, const char* icon, const char* category, const char* commandTopic, const char* stateTopic, const char* unitOfMeasure, int16_t min = 1, int16_t max = 100); diff --git a/include/MqttSettings.h b/include/MqttSettings.h index 8cedd31..d3279f6 100644 --- a/include/MqttSettings.h +++ b/include/MqttSettings.h @@ -16,7 +16,6 @@ public: bool getConnected(); void publish(const String& subtopic, const String& payload); void publishGeneric(const String& topic, const String& payload, bool retain, uint8_t qos = 0); - void publishHass(const String& subtopic, const String& payload); void subscribe(const String& topic, uint8_t qos, const espMqttClientTypes::OnMessageCallback& cb); void unsubscribe(const String& topic); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 1827788..08fa107 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -131,9 +131,9 @@ void MqttHandleHassClass::publishField(std::shared_ptr inv, ui char buffer[512]; serializeJson(root, buffer); - MqttSettings.publishHass(configTopic, buffer); + publish(configTopic, buffer); } else { - MqttSettings.publishHass(configTopic, ""); + publish(configTopic, ""); } } @@ -169,7 +169,7 @@ void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const char* caption, const char* subTopic, const char* payload_on, const char* payload_off) @@ -237,7 +237,7 @@ void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv) @@ -248,4 +248,11 @@ void MqttHandleHassClass::createDeviceInfo(JsonObject& object, std::shared_ptrtypeName(); object[F("sw")] = AUTO_GIT_HASH; +} + +void MqttHandleHassClass::publish(const String& subtopic, const String& payload) +{ + String topic = Configuration.get().Mqtt_Hass_Topic; + topic += subtopic; + MqttSettings.publishGeneric(topic.c_str(), payload.c_str(), Configuration.get().Mqtt_Hass_Retain); } \ No newline at end of file diff --git a/src/MqttSettings.cpp b/src/MqttSettings.cpp index 8414bc6..02bde75 100644 --- a/src/MqttSettings.cpp +++ b/src/MqttSettings.cpp @@ -165,13 +165,6 @@ void MqttSettingsClass::publishGeneric(const String& topic, const String& payloa mqttClient->publish(topic.c_str(), qos, retain, payload.c_str()); } -void MqttSettingsClass::publishHass(const String& subtopic, const String& payload) -{ - String topic = Configuration.get().Mqtt_Hass_Topic; - topic += subtopic; - mqttClient->publish(topic.c_str(), 0, Configuration.get().Mqtt_Hass_Retain, payload.c_str()); -} - void MqttSettingsClass::init() { using std::placeholders::_1;