From d6d274f078a110c65b61e1c4c5d4af2d82bbe56e Mon Sep 17 00:00:00 2001 From: helgeerbe Date: Sat, 6 Jan 2024 22:51:35 +0100 Subject: [PATCH] Prevent empty HASS auto discovery topics if memory allocation fails (onBattery) --- src/MqttHandlVedirectHass.cpp | 7 +++++++ src/MqttHandlePylontechHass.cpp | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/MqttHandlVedirectHass.cpp b/src/MqttHandlVedirectHass.cpp index 4e6ee3c7..1a0ffa24 100644 --- a/src/MqttHandlVedirectHass.cpp +++ b/src/MqttHandlVedirectHass.cpp @@ -8,6 +8,7 @@ #include "NetworkSettings.h" #include "MessageOutput.h" #include "VictronMppt.h" +#include "Utils.h" MqttHandleVedirectHassClass MqttHandleVedirectHass; @@ -109,6 +110,9 @@ void MqttHandleVedirectHassClass::publishSensor(const char* caption, const char* statTopic.concat(subTopic); DynamicJsonDocument root(1024); + if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { + return; + } root["name"] = caption; root["stat_t"] = statTopic; root["uniq_id"] = serial + "_" + sensorId; @@ -160,6 +164,9 @@ void MqttHandleVedirectHassClass::publishBinarySensor(const char* caption, const statTopic.concat(subTopic); DynamicJsonDocument root(1024); + if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { + return; + } root["name"] = caption; root["uniq_id"] = serial + "_" + sensorId; root["stat_t"] = statTopic; diff --git a/src/MqttHandlePylontechHass.cpp b/src/MqttHandlePylontechHass.cpp index c2353953..d4afbb2d 100644 --- a/src/MqttHandlePylontechHass.cpp +++ b/src/MqttHandlePylontechHass.cpp @@ -6,6 +6,7 @@ #include "Configuration.h" #include "MqttSettings.h" #include "MessageOutput.h" +#include "Utils.h" MqttHandlePylontechHassClass MqttHandlePylontechHass; @@ -115,6 +116,9 @@ void MqttHandlePylontechHassClass::publishSensor(const char* caption, const char statTopic.concat(subTopic); DynamicJsonDocument root(1024); + if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { + return; + } root["name"] = caption; root["stat_t"] = statTopic; root["uniq_id"] = serial + "_" + sensorId; @@ -166,6 +170,9 @@ void MqttHandlePylontechHassClass::publishBinarySensor(const char* caption, cons statTopic.concat(subTopic); DynamicJsonDocument root(1024); + if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { + return; + } root["name"] = caption; root["uniq_id"] = serial + "_" + sensorId; root["stat_t"] = statTopic;