MQTT last will with uptime

This commit is contained in:
geronet1 2022-10-15 21:20:20 +02:00
parent 7f4417716d
commit ba91e905ce
2 changed files with 10 additions and 4 deletions

View file

@ -834,8 +834,10 @@ void app::setupMqtt(void) {
if(mMqttActive) {
mMqtt.sendMsg("version", mVersion);
if(mMqtt.isConnected())
if(mMqtt.isConnected()) {
mMqtt.sendMsg("device", mSysConfig.deviceName);
mMqtt.sendMsg("uptime", "0");
}
/*char topic[30];
for(uint8_t i = 0; i < MAX_NUM_INVERTERS; i ++) {

View file

@ -92,10 +92,14 @@ class mqtt {
// da ein MQTT_CONNECTION_LOST -3 die Werte zerstört hat.
mClient->setServer(mCfg->broker, mCfg->port);
mClient->setBufferSize(MQTT_MAX_PACKET_SIZE);
char lwt[MQTT_TOPIC_LEN + 7 ]; // "/uptime" --> + 7 byte
snprintf(lwt, MQTT_TOPIC_LEN + 7, "%s/uptime", mCfg->topic);
if((strlen(mCfg->user) > 0) && (strlen(mCfg->pwd) > 0))
resub = mClient->connect(mDevName, mCfg->user, mCfg->pwd);
resub = mClient->connect(mDevName, mCfg->user, mCfg->pwd, lwt, 0, false, "offline");
else
resub = mClient->connect(mDevName);
resub = mClient->connect(mDevName, lwt, 0, false, "offline");
// ein Subscribe ist nur nach einem connect notwendig
if(resub) {
char topic[MQTT_TOPIC_LEN + 13 ]; // "/devcontrol/#" --> + 6 byte