thomassorensen2650 / node-red-contrib-mqtt-sparkplug-plus

A node that makes it simple to implement MQTT Sparkplug in Node-Red
23 stars 7 forks source link

Store & Forward - different behaviours for Device & out nodes #61

Open industrialinternet opened 5 months ago

industrialinternet commented 5 months ago

Firstly a big thanks for you Sparkplug nodes.

I'm sure this is a misunderstanding on my part I have a [Device node] & [Out node]. Both share the same Broker connection. The broker connection has the Store Forward when primary application is offline "checked" The [Device node] does NOT have Store Forward when not connected "checked"

When the primary application is offline The [Device node] status shows "destination offline" The [Out node] shows "connected".

I inject X no of messages into The [Device node] when offline, then set primary application status to "ONLINE" All X messages are delivered.

I inject X no of messages into The [Out node] when offline, then set primary application status to "ONLINE" Only 1 message is delivered, this is the first to arrive when the primary application status was set to "OFFLINE"

The [Device node] doesn't quite fit my use case but the [Out node] does but I need store and forward. Is this expected behaviour ?

Thanks Lawrence

thomassorensen2650 commented 4 months ago

I need to do some testing but the out node is not buffing by design.

Here is the rationale:

The Device node can produces data other client can subscribe to. It makes sense to have an option to store-forward this data when the device is offline, so that historical data is not lost.

The out node is normally used to set values or turn on/off something. store-forward of this type of messages does not make much sense and can have unexpected effects (e.g. you send a command to do something, and then the command is executed hours or days later).

Not sure why you see a message from the out node when state changes to online, something I will look into.