So I might have a pseudo answer to your problem, but it will still be utilizing the split node.
What I do is put all of my switches into a group. I name it specifically group.inovelli_switches. From there, I use a get entities node to pull all entities from within group.inovelli_switches, then a split node to split out all the different entities behind the scene. I only have I believe 9 switches in my house, but this method works perfectly for me. There’s a slight delay as it goes in order of the switches within the group, but I’m able to set the color on all switches at once with only four nodes. If you had the interest in doing this approach as well, it should cut out solidly 90% of your flow above I’d think.
Here’s one of my subflows as an example. As is, I use this subflow to set all my switches to a blue chase indefinite effect if I reboot my server, (I then use another one to set them all green, then back to normal effect once the servers back up). I like subflows as it helps to hide a lot of the background work in one single node, but this could be exported to work outside of the subflow itself. You’ll just have to either name your group “group.inovelli_switches”, or edit the group name defined in the get entity node to whatever name you choose.
[{"id":"fc7f72fe.f3105","type":"subflow","name":"Blue Chase All Switches","info":"","category":"","in":[{"x":100,"y":180,"wires":[{"id":"9ed32b87.b1b338"}]}],"out":[{"x":1080,"y":180,"wires":[{"id":"b1b53c57.d7c328","port":0}]}],"env":[],"color":"#DDAA99","status":{"x":220,"y":60,"wires":[{"id":"ec8d58dc.26a628","port":0}]}},{"id":"ec8d58dc.26a628","type":"status","z":"fc7f72fe.f3105","name":"","scope":null,"x":100,"y":60,"wires":[[]]},{"id":"886328ff.d513e","type":"split","z":"fc7f72fe.f3105","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":410,"y":180,"wires":[["16ef46d0.4d3799"]]},{"id":"16ef46d0.4d3799","type":"change","z":"fc7f72fe.f3105","name":"Set Node Id in Payload","rules":[{"t":"set","p":"payload.node_id","pt":"msg","to":"payload.attributes.node_id","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":600,"y":180,"wires":[["b1b53c57.d7c328"]]},{"id":"b1b53c57.d7c328","type":"api-call-service","z":"fc7f72fe.f3105","name":"Set Blue Chase Effect indefinitely","server":"497693ef.d5e6bc","version":1,"debugenabled":false,"service_domain":"ozw","service":"set_config_parameter","entityId":"","data":"{\t \"node_id\":msg.payload.node_id,\t \"parameter\":16,\t \"value\":50268842\t}","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":880,"y":180,"wires":[[]]},{"id":"9ed32b87.b1b338","type":"ha-get-entities","z":"fc7f72fe.f3105","server":"497693ef.d5e6bc","name":"Get all Switches","rules":[{"property":"entity_id","logic":"in_group","value":"group.inovelli_switches","valueType":"str"}],"output_type":"array","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":240,"y":180,"wires":[["886328ff.d513e"]]},{"id":"497693ef.d5e6bc","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true},{"id":"5cd41354.33b19c","type":"subflow:fc7f72fe.f3105","z":"f1e1b905.e9a56","name":"","x":980,"y":140,"wires":[[]]}]
Here is a screenshot of the flow on my end:
I added in arrows as I don’t believe the status, input or output imports in as is. Just in case you need it Let me know if you have questions, I’ve been using a lot of these types of automations with my red switches.