skip seen for active write messages and publish read pendant for those

This commit is contained in:
John
2022-01-30 14:51:44 +01:00
parent b7106e89a9
commit b3f474e3b8
3 changed files with 12 additions and 3 deletions
+10 -1
View File
@@ -1274,7 +1274,10 @@ void MqttHandler::run() {
for (const auto& message : messages) {
if (filterSeen) {
if (message->getLastUpdateTime()==0) {
continue; // no data ever
if (message->isPassive() || !message->isWrite()) {
// only wait for data on passive or read messages
continue; // no data ever
}
}
if (message->getDataHandlerState()==1) {
// already seen in the past, check for poll prio update
@@ -1425,6 +1428,12 @@ void MqttHandler::run() {
if (filterSeen && message->getLastUpdateTime()>message->getCreateTime()) {
// ensure data is published as well
m_updatedMessages[message->getKey()]++;
} else if (filterSeen && direction=="w") {
// publish data for read pendant of write message
Message* read = m_messages->find(message->getCircuit(), message->getName(), "", true);
if (read && read->getLastUpdateTime()>0) {
m_updatedMessages[read->getKey()]++;
}
}
}
time(&m_definitionsSince);