diff --git a/src/ebusd/mainloop.cpp b/src/ebusd/mainloop.cpp index 6f1c062f..bcc0c0a8 100644 --- a/src/ebusd/mainloop.cpp +++ b/src/ebusd/mainloop.cpp @@ -265,7 +265,7 @@ string MainLoop::executeRead(vector &args) if (!hasCache || (message != NULL && message->getLastUpdateTime() > cacheMessage->getLastUpdateTime())) cacheMessage = message; // message is newer/better - if (cacheMessage != NULL && cacheMessage->getLastUpdateTime() + maxAge > now) { + if (cacheMessage != NULL && (cacheMessage->getLastUpdateTime() + maxAge > now || cacheMessage->isPassive())) { result_t ret = cacheMessage->decodeLastData(result, verbose, fieldIndex==-2 ? NULL : fieldName.c_str(), fieldIndex); if (ret != RESULT_OK) return getResultCode(ret);