|
|
@ -390,7 +390,7 @@ void app::processPayload(bool retransmit) { |
|
|
|
// MQTT send out
|
|
|
|
if(mMqttActive) { |
|
|
|
record_t<> *recRealtime = iv->getRecordStruct(RealTimeRunData_Debug); |
|
|
|
char topic[32 + MAX_NAME_LENGTH], val[10]; |
|
|
|
char topic[32 + MAX_NAME_LENGTH], val[32]; |
|
|
|
float total[4]; |
|
|
|
memset(total, 0, sizeof(float) * 4); |
|
|
|
for (uint8_t id = 0; id < mSys->getNumInverters(); id++) { |
|
|
@ -411,10 +411,31 @@ void app::processPayload(bool retransmit) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if(iv->isProducing(mTimestamp, rec)){ |
|
|
|
snprintf(topic, 32 + MAX_NAME_LENGTH, "%s/available_text", iv->name); |
|
|
|
snprintf(val, 32, DEF_MQTT_IV_MESSAGE_INVERTER_AVAIL_AND_PRODUCED); |
|
|
|
mMqtt.sendMsg(topic, val); |
|
|
|
snprintf(topic, 32 + MAX_NAME_LENGTH, "%s/available", iv->name); |
|
|
|
snprintf(val, 32, "2"); |
|
|
|
mMqtt.sendMsg(topic, val); |
|
|
|
} else { |
|
|
|
snprintf(topic, 32 + MAX_NAME_LENGTH, "%s/available_text", iv->name); |
|
|
|
snprintf(val, 32, DEF_MQTT_IV_MESSAGE_INVERTER_AVAIL_AND_NOT_PRODUCED); |
|
|
|
mMqtt.sendMsg(topic, val); |
|
|
|
snprintf(topic, 32 + MAX_NAME_LENGTH, "%s/available", iv->name); |
|
|
|
snprintf(val, 32, "1"); |
|
|
|
mMqtt.sendMsg(topic, val); |
|
|
|
} |
|
|
|
|
|
|
|
snprintf(topic, 32 + MAX_NAME_LENGTH, "%s/last_success", iv->name); |
|
|
|
snprintf(val, 48, "%i", iv->getLastTs(rec) * 1000); |
|
|
|
mMqtt.sendMsg(topic, val); |
|
|
|
|
|
|
|
yield(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// total values (sum of all inverters)
|
|
|
@ -446,6 +467,20 @@ void app::processPayload(bool retransmit) { |
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if(mMqttActive) { |
|
|
|
record_t<> *rec = iv->getRecordStruct(RealTimeRunData_Debug); |
|
|
|
char topic[32 + MAX_NAME_LENGTH], val[32]; |
|
|
|
if (!iv->isAvailable(mTimestamp, rec) && !iv->isProducing(mTimestamp, rec)){ |
|
|
|
snprintf(topic, 32 + MAX_NAME_LENGTH, "%s/available_text", iv->name); |
|
|
|
snprintf(val, 32, DEF_MQTT_IV_MESSAGE_NOT_AVAIL_AND_NOT_PRODUCED); |
|
|
|
mMqtt.sendMsg(topic, val); |
|
|
|
snprintf(topic, 32 + MAX_NAME_LENGTH, "%s/available", iv->name); |
|
|
|
snprintf(val, 32, "0"); |
|
|
|
mMqtt.sendMsg(topic, val); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
yield(); |
|
|
|
} |
|
|
|
} |
|
|
|