I’m looking for a way to trigger a rule on an arrived Modbus frame.
My point is that I want to digitally filter some values from Modbus. So the rule must be executed even if the corresponding value has not changed. For example, I would send a value through the filter every 5 seconds directly after reading the Modbus. Another time-triggered rule would then process the filtered value asynchronously e.g. every 60 seconds.
Now you could read the Modbus quickly, e.g. every second, and blindly start the filter every three seconds. But I don’t like that, because of the chaos.
Is there a common solution?
You can get the same effect by;
Carefully configuring one of your channels/Items so that it updates on every poll.
Linking an Item to the lastReadUpdate timestamp channel of one data Thing
Triggering a rule from that update - but pausing a short time, probably just 50mS, to allow other channels/Items from the same poll to complete their updates.
The timestamp idea is great! I will try this.