From cbdb15050f8d0ff619af2ce16918dffc26aa76d8 Mon Sep 17 00:00:00 2001 From: lumapu Date: Sun, 6 Aug 2023 13:33:20 +0200 Subject: [PATCH] 0.7.26 release fix MqTT `last_success` --- src/CHANGES.md | 18 ++---------------- src/defines.h | 2 +- src/publisher/pubMqtt.h | 12 ++---------- src/publisher/pubMqttIvData.h | 5 +++++ 4 files changed, 10 insertions(+), 27 deletions(-) diff --git a/src/CHANGES.md b/src/CHANGES.md index 0f2b7640..a25a800c 100644 --- a/src/CHANGES.md +++ b/src/CHANGES.md @@ -1,17 +1,3 @@ -Changelog v0.7.25 +Changelog v0.7.26 -* ✨ added 'HMS' and 'HMT' support with 'CMT2300A' radio module and `ESP32` -* improved MqTT -* added more display types -* changed maximum number of inverters: ESP32: `16`, ESP8266: `4` -* added option to connect to hidden SSID WiFi -* AP password is configurable now -* add option to communicate with inverters even if no time sync is possible -* add option to reboot Ahoy perodically at midnight -* add time, date and Ahoy-Version number to JSON export -* changed date-time format to ISO format in web UI -* added inverter state machine to archive better its state -* added for NTP sync more info to web UI about the sync itself -* increased to latest library versions (MqTT, RF24 and JSON) -* minor UI improvements -* several bug fixes +* fix MqTT `last_success` diff --git a/src/defines.h b/src/defines.h index 01b58936..a6d4bfa9 100644 --- a/src/defines.h +++ b/src/defines.h @@ -13,7 +13,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 7 -#define VERSION_PATCH 25 +#define VERSION_PATCH 26 //------------------------------------- typedef struct { diff --git a/src/publisher/pubMqtt.h b/src/publisher/pubMqtt.h index 2b3b008a..b821ed34 100644 --- a/src/publisher/pubMqtt.h +++ b/src/publisher/pubMqtt.h @@ -465,13 +465,12 @@ class PubMqtt { return (pos >= DEVICE_CLS_ASSIGN_LIST_LEN) ? NULL : stateClasses[deviceFieldAssignment[pos].stateClsId]; } - bool processIvStatus() { + bool processIvStatus() { // returns true if any inverter is available bool allAvail = true; // shows if all enabled inverters are available bool anyAvail = false; // shows if at least one enabled inverter is available bool changed = false; Inverter<> *iv; - record_t<> *rec; for (uint8_t id = 0; id < mSys->getNumInverters(); id++) { iv = mSys->getInverterByPos(id); @@ -480,17 +479,10 @@ class PubMqtt { if (!iv->config->enabled) continue; // skip to next inverter - rec = iv->getRecordStruct(RealTimeRunData_Debug); - // inverter status iv->isProducing(); // recalculate status - if (InverterStatus::OFF < iv->status) { + if (InverterStatus::OFF < iv->status) anyAvail = true; - - snprintf(mSubTopic, 32 + MAX_NAME_LENGTH, "%s/last_success", iv->config->name); - snprintf(mVal, 40, "%d", iv->getLastTs(rec)); - publish(mSubTopic, mVal, true); - } else // inverter is enabled but not available allAvail = false; diff --git a/src/publisher/pubMqttIvData.h b/src/publisher/pubMqttIvData.h index 8de300ca..4d9bce32 100644 --- a/src/publisher/pubMqttIvData.h +++ b/src/publisher/pubMqttIvData.h @@ -101,6 +101,11 @@ class PubMqttIvData { mPos = 0; if(found) { + record_t<> *rec = mIv->getRecordStruct(mCmd); + snprintf(mSubTopic, 32 + MAX_NAME_LENGTH, "%s/last_success", mIv->config->name); + snprintf(mVal, 40, "%d", mIv->getLastTs(rec)); + mPublish(mSubTopic, mVal, true); + mIv->isProducing(); // recalculate status mState = SEND_DATA; } else if(mSendTotals && mTotalFound)