You haven’t shown the configuration of the join node, but it will usually always be affected by missing messages, either by delays due to timeouts or by getting multiple messages from one source to fulfill its numbers, which thereby lowers the output frequency.
Here is an example with a flow variable and 5 devices.
[{"id":"114a7ae5045996a7","type":"inject","z":"be03f9025a1f137a","name":"Device 1 on","props":[{"p":"device","v":"dev1","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":235,"y":1275,"wires":[["fa84615b93eb060f"]]},{"id":"398d06976f05284f","type":"inject","z":"be03f9025a1f137a","name":"Device 2 on","props":[{"p":"device","v":"dev2","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":235,"y":1320,"wires":[["fa84615b93eb060f"]]},{"id":"3c99b3ef3a437638","type":"inject","z":"be03f9025a1f137a","name":"Device 3 on","props":[{"p":"device","v":"dev3","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":235,"y":1365,"wires":[["fa84615b93eb060f"]]},{"id":"cbdd9d360acb2976","type":"inject","z":"be03f9025a1f137a","name":"Device 4 on","props":[{"p":"device","v":"dev4","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":235,"y":1410,"wires":[["fa84615b93eb060f"]]},{"id":"c94618de9f9e8c2c","type":"inject","z":"be03f9025a1f137a","name":"Device 5 on","props":[{"p":"device","v":"dev5","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":235,"y":1455,"wires":[["fa84615b93eb060f"]]},{"id":"599d95cff1452efa","type":"inject","z":"be03f9025a1f137a","name":"Device 1 off","props":[{"p":"device","v":"dev1","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":235,"y":1515,"wires":[["9b08427b7f0ffc15"]]},{"id":"1b89babfb82edacf","type":"inject","z":"be03f9025a1f137a","name":"Device 2 off","props":[{"p":"device","v":"dev2","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":235,"y":1560,"wires":[["9b08427b7f0ffc15"]]},{"id":"535070a9f3f24ec7","type":"inject","z":"be03f9025a1f137a","name":"Device 3 off","props":[{"p":"device","v":"dev3","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":235,"y":1605,"wires":[["9b08427b7f0ffc15"]]},{"id":"066c26154394e06f","type":"inject","z":"be03f9025a1f137a","name":"Device 4 off","props":[{"p":"device","v":"dev4","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":235,"y":1650,"wires":[["9b08427b7f0ffc15"]]},{"id":"dc80311b3ceb7b10","type":"inject","z":"be03f9025a1f137a","name":"Device 5 off","props":[{"p":"device","v":"dev5","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":235,"y":1695,"wires":[["9b08427b7f0ffc15"]]},{"id":"f9fdba740aa50451","type":"inject","z":"be03f9025a1f137a","name":"Device 2 unavialable","props":[{"p":"device","v":"dev2","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":255,"y":1800,"wires":[["431d6dc6f7e40095"]]},{"id":"55886f1fa55a42e6","type":"inject","z":"be03f9025a1f137a","name":"Device 1 unavialable","props":[{"p":"device","v":"dev1","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":255,"y":1755,"wires":[["431d6dc6f7e40095"]]},{"id":"62e0038607921cfc","type":"inject","z":"be03f9025a1f137a","name":"Device 3 unavialable","props":[{"p":"device","v":"dev3","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":255,"y":1845,"wires":[["431d6dc6f7e40095"]]},{"id":"2014c1cfc88fadac","type":"inject","z":"be03f9025a1f137a","name":"Device 4 unavialable","props":[{"p":"device","v":"dev4","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":255,"y":1890,"wires":[["431d6dc6f7e40095"]]},{"id":"718d4d327be3f900","type":"inject","z":"be03f9025a1f137a","name":"Device 5 unavialable","props":[{"p":"device","v":"dev5","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":255,"y":1935,"wires":[["431d6dc6f7e40095"]]},{"id":"fa84615b93eb060f","type":"function","z":"be03f9025a1f137a","name":"Set a random load for a device in a flow variable","func":"flow.set(msg.device, (Math.random() * 7) + 4) // the (Math.random() * 7)+4 just creates a random number between 4 and 11.\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":585,"y":1365,"wires":[["74821bb01ed319bc"]]},{"id":"9b08427b7f0ffc15","type":"function","z":"be03f9025a1f137a","name":"Set a load of 0 for a device in a flow variable","func":"flow.set(msg.device, 0)\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":575,"y":1605,"wires":[["74821bb01ed319bc"]]},{"id":"431d6dc6f7e40095","type":"function","z":"be03f9025a1f137a","name":"Set the load to \"unavaialable\" for a device in a flow variable","func":"flow.set(msg.device, \"unavailable\")\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":625,"y":1845,"wires":[["74821bb01ed319bc"]]},{"id":"74821bb01ed319bc","type":"function","z":"be03f9025a1f137a","name":"Calculate load","func":"msg.load1 = flow.get(\"dev1\")||0;\nif (isNaN(msg.load1)) {msg.load1=0;}\nmsg.load2 = flow.get(\"dev2\")||0;\nif (isNaN(msg.load2)) { msg.load2 = 0; }\nmsg.load3 = flow.get(\"dev3\")||0;\nif (isNaN(msg.load3)) { msg.load3 = 0; }\nmsg.load4 = flow.get(\"dev4\")||0;\nif (isNaN(msg.load4)) { msg.load4 = 0; }\nmsg.load5 = flow.get(\"dev5\")||0;\nif (isNaN(msg.load5)) { msg.load5 = 0; }\nmsg.totalLoad = msg.load1 + msg.load2 + msg.load3 + msg.load4 + msg.load5;\nmsg.availableLoad = 20 - msg.totalLoad;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":985,"y":1605,"wires":[["feb29022f5b1f6bc"]]},{"id":"feb29022f5b1f6bc","type":"debug","z":"be03f9025a1f137a","name":"debug 22","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1155,"y":1605,"wires":[]}]