Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [paho-dev] Offline buffering in Python3 Paho MQTT client
  • From: Lars Noodén <lars.nooden@xxxxxxxxx>
  • Date: Wed, 7 Oct 2020 18:02:04 +0300
  • Autocrypt: addr=lars.nooden@xxxxxxxxx; keydata= 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 bg==
  • Delivered-to: paho-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/paho-dev>
  • List-help: <mailto:paho-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/paho-dev>, <mailto:paho-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/paho-dev>, <mailto:paho-dev-request@eclipse.org?subject=unsubscribe>
  • User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

On 10/7/20 4:02 PM, Greg Troxel wrote:
> Lars Noodén writes:
>> I am trying to have a Python3-based Paho MQTT client do offline
>> buffering during longer intervals when there is no network connectivity.
>> ...
> You say "buffering", but once you talk about offline then this veers
> into database sync.  I think it's an important use case.
> ...

Thanks.  I am unsure of the right terminology but buffering seems to be
closest concept.  Some systems are without networking for minutes or
hours at a time yet still able to measure and have plenty of RAM in that
context.  This data is still useful to have even when it comes in very
late.

For this project, several systems feed timestamped temperature
measurements into a broker.  A database saves those incoming messages
whenever they happen to arrive.  Separately, another script does a
database query for GNUplot for visualizations.  Yet another script
subscribes to MQTT and updates an e-paper display with the latest
measurements.  On the e-paper display different colors mark the
staleness of the data, if it is not obvious from a discrepancy between
the current time and the timestamp it displays.  The e-paper does not
benefit from the held MQTT messages, but the GNUplot rendering and other
after-the-fact analysis can still use the data.

> In the case of reporting temperatures once a minute, persistence makes
> sense, but to me at least, only if you include timestamps.

For this particular project, that is the first of the three fields.

> Do you think this sort of offline/retransmission schemes need to
> preserve ordering?

Ordering would be useful but not necessary, at least for me, at least at
the moment.  However, I don't count on it.  Due to device and network
latency, which can be several seconds, even when all the devices are
online at the same time, I have to use timestamps in the MQTT messages.

Anyway, I tried adding QoS when publishing,

   mqttclient.publish("temperatures", qos=2, payload=msg)

but that does not seem to send a backlog of data after the longer
outages finish.

Regards,
Lars


Back to the top