diff --git a/include/Configuration.h b/include/Configuration.h index bda8d4d..a6a986f 100644 --- a/include/Configuration.h +++ b/include/Configuration.h @@ -98,6 +98,7 @@ public: CONFIG_T& get(); INVERTER_CONFIG_T* getFreeInverterSlot(); + INVERTER_CONFIG_T* getInverterConfig(uint64_t serial); }; extern ConfigurationClass Configuration; \ No newline at end of file diff --git a/src/Configuration.cpp b/src/Configuration.cpp index b7d09e3..0842f4c 100644 --- a/src/Configuration.cpp +++ b/src/Configuration.cpp @@ -264,4 +264,15 @@ INVERTER_CONFIG_T* ConfigurationClass::getFreeInverterSlot() return NULL; } +INVERTER_CONFIG_T* ConfigurationClass::getInverterConfig(uint64_t serial) +{ + for (uint8_t i = 0; i < INV_MAX_COUNT; i++) { + if (config.Inverter[i].Serial == serial) { + return &config.Inverter[i]; + } + } + + return NULL; +} + ConfigurationClass Configuration; \ No newline at end of file diff --git a/src/MqttPublishing.cpp b/src/MqttPublishing.cpp index f297d21..9bc73b0 100644 --- a/src/MqttPublishing.cpp +++ b/src/MqttPublishing.cpp @@ -83,6 +83,12 @@ void MqttPublishingClass::loop() // Loop all channels for (uint8_t c = 0; c <= inv->Statistics()->getChannelCount(); c++) { + if (c > 0) { + INVERTER_CONFIG_T* inv_cfg = Configuration.getInverterConfig(inv->serial()); + if (inv_cfg != nullptr) { + MqttSettings.publish(inv->serialString() + "/" + String(c) + "/name", inv_cfg->channel[c - 1].Name); + } + } for (uint8_t f = 0; f < sizeof(_publishFields); f++) { publishField(inv, c, _publishFields[f]); }