I tracked down the function that was causing this loop with the new bounds message.
[
{
"id": "488c966fd330b21d",
"type": "tab",
"label": "Flow 1",
"disabled": false,
"info": ""
},
{
"id": "d61c8a1eccdb83b0",
"type": "worldmap in",
"z": "488c966fd330b21d",
"name": "",
"path": "/worldmap",
"events": "all",
"x": 60,
"y": 260,
"wires": [
[
"17314806.c732c8",
"01f6d95612cf3cc9"
]
]
},
{
"id": "cea88ba6ea332f01",
"type": "worldmap",
"z": "488c966fd330b21d",
"name": "",
"lat": "",
"lon": "",
"zoom": "",
"layer": "",
"cluster": "",
"maxage": "",
"usermenu": "show",
"layers": "show",
"panit": "false",
"panlock": "false",
"zoomlock": "false",
"hiderightclick": "false",
"coords": "none",
"showgrid": "false",
"allowFileDrop": "false",
"path": "/worldmap",
"mapname": "",
"mapurl": "",
"mapopt": "",
"mapwms": false,
"x": 620,
"y": 260,
"wires": []
},
{
"id": "17314806.c732c8",
"type": "debug",
"z": "488c966fd330b21d",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 310,
"y": 360,
"wires": []
},
{
"id": "01f6d95612cf3cc9",
"type": "function",
"z": "488c966fd330b21d",
"name": "switch-button function",
"func": "\nmsg.payload = { command :\n{button :\n { name:\"switch-button\",\n icon: \"fa-exchange\", \n position:\"bottomright\"\n } \n}\n}; \n\nnode.send(msg);\n\nmsg.payload = { command :\n{button :\n { name:\"clear-button\",\n icon: \"fa-trash\", \n position:\"bottomright\",\n \n } \n}\n}; \n\nnode.send(msg);",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 320,
"y": 260,
"wires": [
[
"cea88ba6ea332f01"
]
]
}
]
I have put it behind a if connected function now, so that solved the problem.
[
{
"id": "488c966fd330b21d",
"type": "tab",
"label": "Flow 1",
"disabled": false,
"info": ""
},
{
"id": "d61c8a1eccdb83b0",
"type": "worldmap in",
"z": "488c966fd330b21d",
"name": "",
"path": "/worldmap",
"events": "all",
"x": 60,
"y": 260,
"wires": [
[
"f1c7c2f7345e9d37",
"cc9fc1d10ed7792f",
"deaa8eef7672854e",
"88a09b78235a26df",
"6edc3271cd520e71",
"17314806.c732c8"
]
]
},
{
"id": "cea88ba6ea332f01",
"type": "worldmap",
"z": "488c966fd330b21d",
"name": "",
"lat": "",
"lon": "",
"zoom": "",
"layer": "",
"cluster": "",
"maxage": "",
"usermenu": "show",
"layers": "show",
"panit": "false",
"panlock": "false",
"zoomlock": "false",
"hiderightclick": "false",
"coords": "none",
"showgrid": "false",
"allowFileDrop": "false",
"path": "/worldmap",
"mapname": "",
"mapurl": "",
"mapopt": "",
"mapwms": false,
"x": 1940,
"y": 160,
"wires": []
},
{
"id": "f1c7c2f7345e9d37",
"type": "function",
"z": "488c966fd330b21d",
"name": "if start",
"func": "if (msg.payload.action == \"button\") {\n\n if (msg.payload.name == \"start-button\")\n {\n global.set('blink_delay', 1000);\n return msg; \n }\n \n} \n\n\n\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 250,
"y": 60,
"wires": [
[
"e3ee327ba5ebd234",
"6d58eb1c27a1878c"
]
]
},
{
"id": "b069d203ebad146c",
"type": "function",
"z": "488c966fd330b21d",
"name": "start-button function",
"func": "msg.payload = { command :\n{button :\n { name:\"start-button\",\n icon: \"fa-play\", \n position:\"bottomright\"\n } \n}\n}; \n\nreturn msg;\n\n\n\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1060,
"y": 160,
"wires": [
[
"cea88ba6ea332f01"
]
]
},
{
"id": "01f6d95612cf3cc9",
"type": "function",
"z": "488c966fd330b21d",
"name": "switch-button function",
"func": "\nmsg.payload = { command :\n{button :\n { name:\"switch-button\",\n icon: \"fa-exchange\", \n position:\"bottomright\"\n } \n}\n}; \n\nnode.send(msg);\n\nmsg.payload = { command :\n{button :\n { name:\"clear-button\",\n icon: \"fa-trash\", \n position:\"bottomright\",\n \n } \n}\n}; \n\nnode.send(msg);",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1060,
"y": 200,
"wires": [
[
"cea88ba6ea332f01"
]
]
},
{
"id": "8d88da192ccd97ab",
"type": "worldmap-tracks",
"z": "488c966fd330b21d",
"name": "track",
"depth": "100000",
"layer": "single",
"smooth": false,
"x": 1470,
"y": 220,
"wires": [
[
"cea88ba6ea332f01"
]
]
},
{
"id": "e3ee327ba5ebd234",
"type": "function",
"z": "488c966fd330b21d",
"name": "remove start - add others",
"func": "\nmsg.payload = { command :\n{button :\n { \n name:\"start-button\",\n } \n}\n}; \nnode.send(msg);\n\nmsg.payload = { command :\n{button :\n { name:\"ff-button\",\n icon: \"fa-fast-forward\", \n position:\"bottomright\"\n } \n}\n}; \nnode.send(msg);\n\n\nmsg.payload = { command :\n{button :\n { name:\"nf-button\",\n icon: \"fa-step-forward\", \n position:\"bottomright\"\n } \n}\n}; \nnode.send(msg);\n\n\nmsg.payload = { command :\n{button :\n { name:\"replay-button\",\n icon: \"fa-repeat\", \n position:\"bottomright\"\n } \n}\n}; \nnode.send(msg);\n\n\nmsg.payload = { command :\n{button :\n { name:\"stop-button\",\n icon: \"fa-stop\", \n position:\"bottomright\"\n } \n}\n}; \nnode.send(msg);\n\n\nmsg.payload = { command :\n{button :\n { name:\"pause-button\",\n icon: \"fa-pause\", \n position:\"bottomright\"\n } \n}\n}; \nnode.send(msg);\n\n\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1070,
"y": 40,
"wires": [
[
"cea88ba6ea332f01"
]
]
},
{
"id": "cc9fc1d10ed7792f",
"type": "function",
"z": "488c966fd330b21d",
"name": "if replay",
"func": "if (msg.payload.action == \"button\") {\n\n if (msg.payload.name == \"replay-button\")\n {\n global.set('blink_delay', 1000);\n return msg; \n }\n \n} \n\n\n\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 260,
"y": 100,
"wires": [
[
"6d58eb1c27a1878c"
]
]
},
{
"id": "deaa8eef7672854e",
"type": "function",
"z": "488c966fd330b21d",
"name": "if pause",
"func": "if (msg.payload.action == \"button\") {\n var rate = global.get('rate_pause')||600;\n if (msg.payload.name == \"pause-button\")\n {\n if(rate == 10000000)\n {\n rate = 600;\n global.set('blink_delay', 1000);\n }\n else\n {\n rate = 10000000;\n global.set('blink_delay', 2000);\n }\n msg.rate = rate\n global.set('rate_pause', rate);\n return msg; \n }\n \n} \n\n\n\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 260,
"y": 140,
"wires": [
[]
]
},
{
"id": "88a09b78235a26df",
"type": "function",
"z": "488c966fd330b21d",
"name": "if stop",
"func": "if (msg.payload.action == \"button\") {\n var rate = global.get('rate_pause')||300;\n if (msg.payload.name == \"stop-button\")\n {\n if(rate == 10000000)\n {\n rate = 150;\n global.set('blink_delay', 1000);\n }\n else\n {\n rate = 10000000;\n global.set('blink_delay', 2000);\n }\n msg.rate = rate\n global.set('rate_pause', rate);\n \n return msg; \n }\n \n} \n\n\n\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 250,
"y": 180,
"wires": [
[
"b069d203ebad146c",
"62d2d1501d6bd267",
"6d58eb1c27a1878c"
]
]
},
{
"id": "62d2d1501d6bd267",
"type": "function",
"z": "488c966fd330b21d",
"name": "remove buttons",
"func": "msg.payload = { command :\n{button :\n { \n name:\"replay-button\",\n } \n}\n}; \nnode.send(msg);\n\nmsg.payload = { command :\n{button :\n { \n name:\"ff-button\",\n } \n}\n}; \nnode.send(msg);\n\nmsg.payload = { command :\n{button :\n { \n name:\"nf-button\",\n } \n}\n}; \nnode.send(msg);\n\nmsg.payload = { command :\n{button :\n { \n name:\"stop-button\",\n } \n}\n}; \nnode.send(msg);\n\nmsg.payload = { command :\n{button :\n { \n name:\"pause-button\",\n } \n}\n}; \nnode.send(msg);\n\n//return [msg1, msg2, msg3, msg4, msg5];",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1040,
"y": 120,
"wires": [
[
"cea88ba6ea332f01"
]
]
},
{
"id": "6d58eb1c27a1878c",
"type": "function",
"z": "488c966fd330b21d",
"name": "clear map",
"func": "msg.payload = { command :\n\n { \n \n clear:\"height control\"\n } \n\n}; \nnode.send(msg);\n\nglobal.set('marker_id', 0);\n\nmsg.payload = { command :\n\n { \n \n clear:\"Tracks\"\n } \n\n}; \nnode.send(msg);\n\nmsg.payload = { command :\n\n { \n \n clear:\"tracks\"\n } \n\n}; \n\nnode.send(msg);\n\nmsg.payload = { command :\n\n { \n clear:\"boundary points\"\n } \n\n}; \n\nnode.send(msg);",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1020,
"y": 80,
"wires": [
[
"8d88da192ccd97ab",
"cea88ba6ea332f01"
]
]
},
{
"id": "17314806.c732c8",
"type": "debug",
"z": "488c966fd330b21d",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 310,
"y": 320,
"wires": []
},
{
"id": "6edc3271cd520e71",
"type": "function",
"z": "488c966fd330b21d",
"name": "if connected",
"func": "if(msg.payload.action == \"connected\")\n{\n return msg;\n}",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 650,
"y": 200,
"wires": [
[
"b069d203ebad146c",
"01f6d95612cf3cc9"
]
]
}
]
A way to turn that off might be an option as it does highten the load with information that is not always needed.
I have a flow that has the possibility to replay a saved geojason file. it splits all the coordinates into separate messages and plots them on the map connected with a line on a regular interval that is adjustable with the buttons. So every plotted coordinate is making the map move and gives me an additional bounds message. (my testfile contains almost 7000 points)
Node red is running in balena with a few other containers, so every time I do an adjustment in the dockerfile of node-red, the latest releases are being build (unless I start to specify the versions in the dockerfile) and this can reveal some badly made function nodes like it did now.
If I want to post the whole flow with additional files, I have to inform first cause I'm bound by a nda. (student doing an internship)
But conclusion is I found the problem that conflicted with the new bounds message.
Thanks for pointing me in the right direction.