@Colin Thanks for the pointer. Pretty new here and haven't figured out the canonical way to share code.
Here is the flow where the two branches trigger Join only once with and every subsequent message
checked.
[
{
"id": "1233464d307d0b5d",
"type": "tab",
"label": "Flow 2",
"disabled": false,
"info": ""
},
{
"id": "2d2bac86c2596d2a",
"type": "inject",
"z": "1233464d307d0b5d",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "src topic",
"payload": "src payload",
"payloadType": "str",
"x": 140,
"y": 260,
"wires": [
[
"dbcd4dcc8463be89",
"2228e402fba9335e"
]
]
},
{
"id": "dbcd4dcc8463be89",
"type": "change",
"z": "1233464d307d0b5d",
"name": "",
"rules": [
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 340,
"y": 200,
"wires": [
[
"0e33f1ccdbae667f"
]
]
},
{
"id": "2228e402fba9335e",
"type": "change",
"z": "1233464d307d0b5d",
"name": "",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "topic",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 340,
"y": 340,
"wires": [
[
"0e33f1ccdbae667f"
]
]
},
{
"id": "0e33f1ccdbae667f",
"type": "join",
"z": "1233464d307d0b5d",
"name": "",
"mode": "custom",
"build": "object",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": true,
"timeout": "",
"count": "2",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "num",
"reduceFixup": "",
"x": 490,
"y": 260,
"wires": [
[
"9755c5d1a90b74b0"
]
]
},
{
"id": "9755c5d1a90b74b0",
"type": "debug",
"z": "1233464d307d0b5d",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 610,
"y": 260,
"wires": []
}
]
Please take a look.