I have always found the join node to be particularly difficult to get to work as I want.
The secret, I believe, is in getting the settings exactly right when using the manual mode. This is especially important when trying to create a key/value object, using the msg.topic field.
The manual join can be after a number of parts.
- so counting 3 means that 3 different messages with different topics must arrive
- the node will queue inbound messages, wait until 3 have arrived, and then fire, clearing its queue
The timeout join can be a after a number of seconds (it’s seconds, not minutes)
- so timeout of 1 second means that 1 second will elapse from the arrival of the first message to firing
- after firing, the node clears its queue
Now, the problem I have found by experimenting is that these two settings can conflict unless it is exactly one or the other.
You have ‘and every subsequent message’ ticked, which seems to turn on the after message parts (even though nothing is set in the count box) and prevents the timeout from working correctly after the first fire.
To make this node work, you MUST either set number of parts, and leave timeout blank, or set message parts and leave timeout blank. That includes the ‘every subsequent message’ as well.
So, if you are using timeout, then all three sensors must change within the 1 second for all three to be joined. I would suggest increasing this a bit, and turn off ‘every subsequent message’. It should then work.
However, the parts may be a better option for you. Using 3 parts means the node waits for 3 messages. Usually this would get out of sync - say two fire, then nothing happens until the third fires which could be much later. This is where the ‘every subsequent message’ might work really well for you.
If you set
- After a number of message parts to 3
- and every subsequent message TICKED
then, the node will first fire when 3 (different topic) messages have arrived
and, then it will fire for every single new message, with all three messages combined, using the new message plus the most recent other two.
Hope this fixes it for you !