diff --git a/MqttClient.cpp b/MqttClient.cpp index 87985cf..4e64997 100644 --- a/MqttClient.cpp +++ b/MqttClient.cpp @@ -199,7 +199,7 @@ Metro secondTick = Metro(1000); MqttClient::MqttClient(RequestSender *meterBusMaster) : m_mqttConfig(this), m_client(), m_meterBusMaster(meterBusMaster), m_mqttClient(m_client), m_disconnectState(3), m_disconnectTime(millis()), m_uptime(0), m_deviceIdx(0), - m_enabled(true) + m_enabled(true), m_errorCount(0) { } @@ -245,6 +245,7 @@ void MqttClient::sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLe void MqttClient::sendError(uint8_t code, uint16_t count, uint8_t token, char *name) { String msg = String("{ \"metadata\": { \"device\": \"MeterbusHub\", \"error\": ") + code + String(", \"count\": ") + count + String(", \"token\": ") + token + String(", \"name\": ") + String(name) + String(" }, \"data\": { \"uptime\": ") + m_uptime + String("}}"); + m_errorCount = count; if (m_disconnectState == 0) { //Serial << "publishing " << msg << endl; //Serial << "length: " << msg.length() << endl; @@ -334,7 +335,7 @@ void MqttClient::exec() { } byte wdogCnt = WDOG_RSTCNT; - String msg = String("{ \"metadata\": { \"device\": \"MeterbusHub\" }, \"data\": { \"uptime\": ") + m_uptime + String(", \"watchdogCnt\": ") + wdogCnt + String("}}"); + String msg = String("{ \"metadata\": { \"device\": \"MeterbusHub\" }, \"data\": { \"uptime\": ") + m_uptime + String(", \"errCnt\": ") + m_errorCount + String(", \"watchdogCnt\": ") + wdogCnt + String("}}"); if (m_disconnectState == 0) { m_mqttClient.publish("IoT/Heartbeat/MeterbusHub", (char*)msg.c_str()); } else { diff --git a/MqttClient.h b/MqttClient.h index 63c9180..b7644ae 100644 --- a/MqttClient.h +++ b/MqttClient.h @@ -58,6 +58,7 @@ private: uint32_t m_uptime; uint8_t m_deviceIdx; bool m_enabled; + uint16_t m_errorCount; mbusDevTuple_t m_mbusDevTuple[NUM_OF_DEVICES]; };