Publish string names via MQTT

This commit is contained in:
Thomas Basler 2022-11-15 19:55:53 +01:00
parent d0d8be9c05
commit 134db887c0
3 changed files with 18 additions and 0 deletions

View File

@ -98,6 +98,7 @@ public:
CONFIG_T& get();
INVERTER_CONFIG_T* getFreeInverterSlot();
INVERTER_CONFIG_T* getInverterConfig(uint64_t serial);
};
extern ConfigurationClass Configuration;

View File

@ -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;

View File

@ -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]);
}