From 64e4656dbe6c7fe5b31c3e2f99a01ca68b06b4ea Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 26 Oct 2022 00:11:06 +0200 Subject: [PATCH] Simplify creation of HASS device info --- src/MqttHassPublishing.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/MqttHassPublishing.cpp b/src/MqttHassPublishing.cpp index 513f159f..e452419e 100644 --- a/src/MqttHassPublishing.cpp +++ b/src/MqttHassPublishing.cpp @@ -100,16 +100,15 @@ void MqttHassPublishingClass::publishField(std::shared_ptr inv name = String(inv->name()) + " CH" + String(channel) + " " + fieldName; } - DynamicJsonDocument deviceDoc(512); - JsonObject deviceObj = deviceDoc.as(); - createDeviceInfo(deviceObj, inv); - DynamicJsonDocument root(1024); root[F("name")] = name; root[F("stat_t")] = stateTopic; root[F("unit_of_meas")] = inv->Statistics()->getChannelFieldUnit(channel, fieldType.fieldId); root[F("uniq_id")] = String(serial) + "_ch" + String(channel) + "_" + fieldName; - root[F("dev")] = deviceObj; + + JsonObject deviceObj = root.createNestedObject("dev"); + createDeviceInfo(deviceObj, inv); + if (Configuration.get().Mqtt_Hass_Expire) { root[F("exp_aft")] = Hoymiles.getNumInverters() * Configuration.get().Mqtt_PublishInterval * 2; } @@ -137,7 +136,7 @@ void MqttHassPublishingClass::createDeviceInfo(JsonObject& object, std::shared_p object[F("name")] = inv->name(); object[F("ids")] = String(serial); - object[F("cu")] = String(F("http://")) + String(WiFi.localIP().toString()); + object[F("cu")] = String(F("http://")) + WiFi.localIP().toString(); object[F("mf")] = F("OpenDTU"); object[F("mdl")] = inv->typeName(); object[F("sw")] = AUTO_GIT_HASH;