Display a Variable 'Word' in Dashboard as individual bit LED's

@edje11 @gerry Thank you both for the help, it is gratefully received and unfroze my brain freeze!

I have now looked at my original function and decided the best course of action was to create the Status Word and an array of colours at the same time concat'ing the colours array and feeding that into a LED bar template I had found previously. This is the result.

[
    {
        "id": "4b2c35400318c2ac",
        "type": "ping",
        "z": "ee0fd918dab89122",
        "protocol": "IPv4",
        "mode": "triggered",
        "name": "Ping Group",
        "host": "XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXXX, XX.XXX.XXX.XXX",
        "timer": "20",
        "inputs": 1,
        "x": 310,
        "y": 280,
        "wires": [
            [
                "79c943bdfe2e655f"
            ]
        ]
    },
    {
        "id": "42646dca62aed2b7",
        "type": "inject",
        "z": "ee0fd918dab89122",
        "name": "Shelly Lights",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payloadType": "str",
        "x": 130,
        "y": 280,
        "wires": [
            [
                "4b2c35400318c2ac"
            ]
        ]
    },
    {
        "id": "79c943bdfe2e655f",
        "type": "join",
        "z": "ee0fd918dab89122",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "5",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 470,
        "y": 280,
        "wires": [
            [
                "f5ac4b576f382216"
            ]
        ]
    },
    {
        "id": "93233b26b4bce3e1",
        "type": "ping",
        "z": "ee0fd918dab89122",
        "protocol": "IPv4",
        "mode": "triggered",
        "name": "Ping Group",
        "host": "XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXXX",
        "timer": "20",
        "inputs": 1,
        "x": 310,
        "y": 320,
        "wires": [
            [
                "b36d0ebf907d55b1"
            ]
        ]
    },
    {
        "id": "b36d0ebf907d55b1",
        "type": "join",
        "z": "ee0fd918dab89122",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "4",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 470,
        "y": 320,
        "wires": [
            [
                "37422c92098f6fb3"
            ]
        ]
    },
    {
        "id": "68168aaa6ccae55c",
        "type": "ping",
        "z": "ee0fd918dab89122",
        "protocol": "IPv4",
        "mode": "triggered",
        "name": "Ping Group",
        "host": "XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX",
        "timer": "20",
        "inputs": 1,
        "x": 310,
        "y": 360,
        "wires": [
            [
                "cf7d32ce2c356362"
            ]
        ]
    },
    {
        "id": "cf7d32ce2c356362",
        "type": "join",
        "z": "ee0fd918dab89122",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "3",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 470,
        "y": 360,
        "wires": [
            [
                "eee04ccbbca784a0"
            ]
        ]
    },
    {
        "id": "05d006d36707cf84",
        "type": "ping",
        "z": "ee0fd918dab89122",
        "protocol": "IPv4",
        "mode": "triggered",
        "name": "Ping Group",
        "host": "XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX",
        "timer": "20",
        "inputs": 1,
        "x": 310,
        "y": 400,
        "wires": [
            [
                "f9d49f59851ba486"
            ]
        ]
    },
    {
        "id": "f9d49f59851ba486",
        "type": "join",
        "z": "ee0fd918dab89122",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "3",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 470,
        "y": 400,
        "wires": [
            [
                "43d64236567895cc"
            ]
        ]
    },
    {
        "id": "8565b12ac7f59f4d",
        "type": "ping",
        "z": "ee0fd918dab89122",
        "protocol": "IPv4",
        "mode": "triggered",
        "name": "Ping Group",
        "host": "XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXX, XXX.XXX.XXX.XXXX",
        "timer": "20",
        "inputs": 1,
        "x": 310,
        "y": 440,
        "wires": [
            [
                "7623bf4ea4ad90bf"
            ]
        ]
    },
    {
        "id": "7623bf4ea4ad90bf",
        "type": "join",
        "z": "ee0fd918dab89122",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "4",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 470,
        "y": 440,
        "wires": [
            [
                "5abc019a95358832"
            ]
        ]
    },
    {
        "id": "f5ac4b576f382216",
        "type": "function",
        "z": "ee0fd918dab89122",
        "name": "",
        "func": "let connectWiFiMask0 = 0;\nlet connectWiFiMaskX = 0;\nlet colours = [];\nlet arrLengthOld = 0;\nconnectWiFiMask0 = global.get('connectWiFiMask0');\nlet array = Object.entries(msg.payload);\narray = array.sort();\nglobal.set('arrLength', array.length);\n\nfor(let i=0; i<array.length; i++){\n    if(array[i][1] !== false){\n        var mask =  1 << i; // gets the 'i'th bit\n        if ((connectWiFiMaskX & mask) === 0) {\n            connectWiFiMaskX |= mask;\n        }\n        array[i][2] = 1;\n        colours[i] = \"#33ff55\";\n    } else {\n        array[i][2] = 0;\n        colours[i] = \"#FF3333\";\n    }\n}\n\nconnectWiFiMask0 = connectWiFiMask0 + connectWiFiMaskX;\nglobal.set('connectWiFiMask0', connectWiFiMask0);\nglobal.set('colours', colours);\nmsg.colours = colours;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 620,
        "y": 280,
        "wires": [
            [
                "93233b26b4bce3e1"
            ]
        ]
    },
    {
        "id": "ae532e202ea57897",
        "type": "inject",
        "z": "ee0fd918dab89122",
        "name": "KingArt, PZEM",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payloadType": "str",
        "x": 140,
        "y": 320,
        "wires": [
            [
                "93233b26b4bce3e1"
            ]
        ]
    },
    {
        "id": "c9c9fd6928164f45",
        "type": "inject",
        "z": "ee0fd918dab89122",
        "name": "Sockets",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payloadType": "str",
        "x": 110,
        "y": 360,
        "wires": [
            [
                "68168aaa6ccae55c"
            ]
        ]
    },
    {
        "id": "61b51c448c97a6cc",
        "type": "inject",
        "z": "ee0fd918dab89122",
        "name": "Relays",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payloadType": "str",
        "x": 110,
        "y": 400,
        "wires": [
            [
                "05d006d36707cf84"
            ]
        ]
    },
    {
        "id": "9d31a333ae66b297",
        "type": "inject",
        "z": "ee0fd918dab89122",
        "name": "Sensors",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payloadType": "str",
        "x": 120,
        "y": 440,
        "wires": [
            [
                "8565b12ac7f59f4d"
            ]
        ]
    },
    {
        "id": "3689acf3743bbff1",
        "type": "ui_template",
        "z": "ee0fd918dab89122",
        "group": "c37aa1af20fe7b5e",
        "name": "",
        "order": 0,
        "width": 0,
        "height": 0,
        "format": "<style>\n.dot {\n  height: 8px;\n  width: 8px;\n  background-color: #bbb;\n  border-radius: 50%;\n  display: inline-block;\n}\ndiv.container {\n    width:98%; \n    height:98%; \n    margin:1%;\n  }\n  table#table1 {\n    text-align:center;\n    vertical-align: middle;\n    margin-left:auto; \n    margin-right:auto; \n    width:40px;\n    height:35px;\n  }\n  tr,td {\n    text-align:center;\n    vertical-align: middle;\n  }\n</style>\n<div class=\"container\">\n<table id = \"table1\">\n<tr>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[0]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[1]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[2]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[3]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[4]}}\"></div></td>\n<td></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[5]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[6]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[7]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[8]}}\"></div></td>\n<td></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[9]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[10]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[11]}}\"></div></td>\n<td></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[12]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[13]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[14]}}\"></div></td>\n<td></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[15]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[16]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[17]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[18]}}\"></div></td>\n<td><div class=\"dot\" style=\"background-color:{{msg.colours[19]}}\"></div></td>\n</tr>\n</table>\n</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "x": 780,
        "y": 440,
        "wires": [
            []
        ]
    },
    {
        "id": "37422c92098f6fb3",
        "type": "function",
        "z": "ee0fd918dab89122",
        "name": "",
        "func": "let connectWiFiMaskX = 0;\nlet arrLengthOld = global.get('arrLength');\nlet connectWiFiMask0 = global.get('connectWiFiMask0');\nlet coloursExist = global.get('colours');\nlet colours = [];\nlet array = Object.entries(msg.payload);\narray = array.sort();\nglobal.set('arrLength', array.length + arrLengthOld);\n\nfor(let i=0; i<array.length; i++){\n    if(array[i][1] !== false){\n        var mask =  1 << i; // gets the 'i'th bit\n        if ((connectWiFiMaskX & mask) === 0) {\n            connectWiFiMaskX |= mask;\n        }\n        array[i][2] = 1;\n        colours[i] = \"#33ff55\";\n    } else {\n        array[i][2] = 0;\n        colours[i] = \"#FF3333\";\n    }\n}\nconnectWiFiMaskX = connectWiFiMaskX << arrLengthOld;\nconnectWiFiMask0 = connectWiFiMask0 + connectWiFiMaskX;\nglobal.set('connectWiFiMask0', connectWiFiMask0);\nlet coloursNow = coloursExist.concat(colours);\nglobal.set('colours', coloursNow);\nmsg.colours = coloursNow;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 620,
        "y": 320,
        "wires": [
            [
                "68168aaa6ccae55c"
            ]
        ]
    },
    {
        "id": "eee04ccbbca784a0",
        "type": "function",
        "z": "ee0fd918dab89122",
        "name": "",
        "func": "let connectWiFiMaskX = 0;\nlet arrLengthOld = global.get('arrLength');\nlet connectWiFiMask0 = global.get('connectWiFiMask0');\nlet coloursExist = global.get('colours');\nlet colours = [];\nlet array = Object.entries(msg.payload);\narray = array.sort();\nglobal.set('arrLength', array.length + arrLengthOld);\n\nfor(let i=0; i<array.length; i++){\n    if(array[i][1] !== false){\n        var mask =  1 << i; // gets the 'i'th bit\n        if ((connectWiFiMaskX & mask) === 0) {\n            connectWiFiMaskX |= mask;\n        }\n        array[i][2] = 1;\n        colours[i] = \"#33ff55\";\n    } else {\n        array[i][2] = 0;\n        colours[i] = \"#FF3333\";\n    }\n}\nconnectWiFiMaskX = connectWiFiMaskX << arrLengthOld;\nconnectWiFiMask0 = connectWiFiMask0 + connectWiFiMaskX;\nglobal.set('connectWiFiMask0', connectWiFiMask0);\nlet coloursNow = coloursExist.concat(colours);\nglobal.set('colours', coloursNow);\nmsg.colours = coloursNow;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 620,
        "y": 360,
        "wires": [
            [
                "05d006d36707cf84"
            ]
        ]
    },
    {
        "id": "43d64236567895cc",
        "type": "function",
        "z": "ee0fd918dab89122",
        "name": "",
        "func": "let connectWiFiMaskX = 0;\nlet arrLengthOld = global.get('arrLength');\nlet connectWiFiMask0 = global.get('connectWiFiMask0');\nlet coloursExist = global.get('colours');\nlet colours = [];\nlet array = Object.entries(msg.payload);\narray = array.sort();\nglobal.set('arrLength', array.length + arrLengthOld);\n\nfor(let i=0; i<array.length; i++){\n    if(array[i][1] !== false){\n        var mask =  1 << i; // gets the 'i'th bit\n        if ((connectWiFiMaskX & mask) === 0) {\n            connectWiFiMaskX |= mask;\n        }\n        array[i][2] = 1;\n        colours[i] = \"#33ff55\";\n    } else {\n        array[i][2] = 0;\n        colours[i] = \"#FF3333\";\n    }\n}\nconnectWiFiMaskX = connectWiFiMaskX << arrLengthOld;\nconnectWiFiMask0 = connectWiFiMask0 + connectWiFiMaskX;\nglobal.set('connectWiFiMask0', connectWiFiMask0);\nlet coloursNow = coloursExist.concat(colours);\nglobal.set('colours', coloursNow);\nmsg.colours = coloursNow;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 620,
        "y": 400,
        "wires": [
            [
                "8565b12ac7f59f4d"
            ]
        ]
    },
    {
        "id": "5abc019a95358832",
        "type": "function",
        "z": "ee0fd918dab89122",
        "name": "",
        "func": "let connectWiFiMaskX = 0;\nlet arrLengthOld = global.get('arrLength');\nlet connectWiFiMask0 = global.get('connectWiFiMask0');\nlet coloursExist = global.get('colours');\nlet colours = [];\nlet array = Object.entries(msg.payload);\narray = array.sort();\nglobal.set('arrLength', array.length + arrLengthOld);\n\nfor(let i=0; i<array.length; i++){\n    if(array[i][1] !== false){\n        var mask =  1 << i; // gets the 'i'th bit\n        if ((connectWiFiMaskX & mask) === 0) {\n            connectWiFiMaskX |= mask;\n        }\n        array[i][2] = 1;\n        colours[i] = \"#33ff55\";\n    } else {\n        array[i][2] = 0;\n        colours[i] = \"#FF3333\";\n    }\n}\nconnectWiFiMaskX = connectWiFiMaskX << arrLengthOld;\nconnectWiFiMask0 = connectWiFiMask0 + connectWiFiMaskX;\nglobal.set('connectWiFiMask0', connectWiFiMask0);\nlet coloursNow = coloursExist.concat(colours);\nglobal.set('colours', coloursNow);\nmsg.colours = coloursNow;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 620,
        "y": 440,
        "wires": [
            [
                "3689acf3743bbff1"
            ]
        ]
    },
    {
        "id": "c37aa1af20fe7b5e",
        "type": "ui_group",
        "name": "Bargraph",
        "tab": "33f5df14a5341315",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "33f5df14a5341315",
        "type": "ui_tab",
        "name": "Home",
        "icon": "dashboard",
        "disabled": false,
        "hidden": false
    }
]