Prevent empty HASS auto discovery topics if memory allocation fails (onBattery)

This commit is contained in:
helgeerbe 2024-01-06 22:51:35 +01:00
parent ec93004724
commit d6d274f078
2 changed files with 14 additions and 0 deletions

View File

@ -8,6 +8,7 @@
#include "NetworkSettings.h" #include "NetworkSettings.h"
#include "MessageOutput.h" #include "MessageOutput.h"
#include "VictronMppt.h" #include "VictronMppt.h"
#include "Utils.h"
MqttHandleVedirectHassClass MqttHandleVedirectHass; MqttHandleVedirectHassClass MqttHandleVedirectHass;
@ -109,6 +110,9 @@ void MqttHandleVedirectHassClass::publishSensor(const char* caption, const char*
statTopic.concat(subTopic); statTopic.concat(subTopic);
DynamicJsonDocument root(1024); DynamicJsonDocument root(1024);
if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) {
return;
}
root["name"] = caption; root["name"] = caption;
root["stat_t"] = statTopic; root["stat_t"] = statTopic;
root["uniq_id"] = serial + "_" + sensorId; root["uniq_id"] = serial + "_" + sensorId;
@ -160,6 +164,9 @@ void MqttHandleVedirectHassClass::publishBinarySensor(const char* caption, const
statTopic.concat(subTopic); statTopic.concat(subTopic);
DynamicJsonDocument root(1024); DynamicJsonDocument root(1024);
if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) {
return;
}
root["name"] = caption; root["name"] = caption;
root["uniq_id"] = serial + "_" + sensorId; root["uniq_id"] = serial + "_" + sensorId;
root["stat_t"] = statTopic; root["stat_t"] = statTopic;

View File

@ -6,6 +6,7 @@
#include "Configuration.h" #include "Configuration.h"
#include "MqttSettings.h" #include "MqttSettings.h"
#include "MessageOutput.h" #include "MessageOutput.h"
#include "Utils.h"
MqttHandlePylontechHassClass MqttHandlePylontechHass; MqttHandlePylontechHassClass MqttHandlePylontechHass;
@ -115,6 +116,9 @@ void MqttHandlePylontechHassClass::publishSensor(const char* caption, const char
statTopic.concat(subTopic); statTopic.concat(subTopic);
DynamicJsonDocument root(1024); DynamicJsonDocument root(1024);
if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) {
return;
}
root["name"] = caption; root["name"] = caption;
root["stat_t"] = statTopic; root["stat_t"] = statTopic;
root["uniq_id"] = serial + "_" + sensorId; root["uniq_id"] = serial + "_" + sensorId;
@ -166,6 +170,9 @@ void MqttHandlePylontechHassClass::publishBinarySensor(const char* caption, cons
statTopic.concat(subTopic); statTopic.concat(subTopic);
DynamicJsonDocument root(1024); DynamicJsonDocument root(1024);
if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) {
return;
}
root["name"] = caption; root["name"] = caption;
root["uniq_id"] = serial + "_" + sensorId; root["uniq_id"] = serial + "_" + sensorId;
root["stat_t"] = statTopic; root["stat_t"] = statTopic;