From 82ecf6cd6dbdd8dc96935f663b3d7f8241d3ff67 Mon Sep 17 00:00:00 2001 From: helgeerbe Date: Tue, 7 Feb 2023 13:36:37 +0100 Subject: [PATCH] Add victron serial to mqtt topics --- src/MqttHandlVedirectHass.cpp | 3 ++- src/MqttHandleVedirect.cpp | 13 +++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/MqttHandlVedirectHass.cpp b/src/MqttHandlVedirectHass.cpp index 1c7d68f5c..f3f1f6473 100644 --- a/src/MqttHandlVedirectHass.cpp +++ b/src/MqttHandlVedirectHass.cpp @@ -46,7 +46,8 @@ void MqttHandleVedirectHassClass::publishConfig() if (!MqttSettings.getConnected()) { return; } - if (VeDirect.veMap.find("SER") == VeDirect.veMap.end()) { + // ensure data is revieved from victron + if (VeDirect.veMap.find("SER") == VeDirect.veMap.end()) { return; } diff --git a/src/MqttHandleVedirect.cpp b/src/MqttHandleVedirect.cpp index 9d01a44e0..4ba7ec7bb 100644 --- a/src/MqttHandleVedirect.cpp +++ b/src/MqttHandleVedirect.cpp @@ -21,7 +21,16 @@ void MqttHandleVedirectClass::loop() if (!MqttSettings.getConnected() || !config.Vedirect_Enabled) { return; - } + } + + String serial; + auto pos = VeDirect.veMap.find("SER"); + if (pos == VeDirect.veMap.end()) { + return; + } + else { + serial = pos->second; + } if (millis() - _lastPublish > (config.Mqtt_PublishInterval * 1000)) { String key; @@ -44,7 +53,7 @@ void MqttHandleVedirectClass::loop() // publish only changed key, values pairs if (!config.Vedirect_UpdatesOnly || (bChanged && config.Vedirect_UpdatesOnly)) { - topic = "victron/"; + topic = "victron/" + serial + "/"; topic.concat(key); MqttSettings.publish(topic.c_str(), value.c_str()); }