Я не думаю, что это возможно. Вы говорите: «Когда приходят новые данные ...» Именно поэтому вам нужно подписаться и использовать функцию обратного вызова. Это в основном «тяга, когда что-то действительно есть».
Просто чтобы понять, как это должно работать: вы отправляете это сообщение json через MQTT, верно? И вы повторно отправляете его, когда он меняется?
Но вам не нужно хранить их все в оперативной памяти. Вы можете использовать сохраненное сообщение в сочетании с фиксированным topi c (без идентификатора) и отправить идентификатор в сообщении.
Если вы используете сохраненные сообщения с идентифицированными темами, это может заполнить память.
Что означает идентификатор? Уникальный ie номер? Что-то вроде отметки времени? А га sh? Отправитель?
Я думаю, что вы можете решить эту проблему, четко разделив свои вещи, например, в data
и message
, где data
- это то, что вы поддерживаете в Python (например, база данных или что-то в ОЗУ), а message
- это то, что вы фактически отправляете / получаете через MQTT.
Затем вы можете добавить / отправить / обновить data
в зависимости от того, что получено в MQTT, и вам не нужно отправлять / обновлять полный набор.