Here is a primer I wrote a while back. I cant really discuss other platforms here due to forum rules but feel free to message me directly.
Technologies: Zwave, zigbee and insteon are “full stack” automation solutions. What that means is that communication layer, enrollment, encryption, API and device attributes are baked in. Every smart switch uses the “switch” profile and the command for “light on” is always the same. Zwave and zigbee allow for new, novel commands when new device types hit the market. They are not IP/wifi-based (they have their own network technology) .
Zwave, zigbee, and insteon use mesh radio networks. Low power, so battery friendly, and the mesh let’s them have decent range. However only mains-powered devices can act as relays. Zwave is 900Mhz (good signal penetration for power but frequency varies by country), zigbee is 2.4Ghz (which can conflict with bluetooth and wifi b). Insteon is 900Mhz and also has powerline signaling as well in a dual-path configuration that is great in concrete block/steel housing that eats RF.
Compare to wifi devices, which are wifi+tcp+ip+custom encryption+custom API+custom attributes. “Wifi” is just networking, there are several more components you need for device controls and they are very disparate. Even a “standards” based solution using MQTT as the API layer can have devices of the same type with radically different commands and attributes (lights on/off, power true/false, etc) or implement different encryption schemes. In zwave, zigbee, insteon the command for “power on/off” is clearly defined. Wifi also has security concerns as IoT devices have become prime targets for botnets.
I prefer zwave for a couple reasons. First, Zwave mandates compliance and security testing. A handful of devices with implementation flaws have slipped through over the last 15 years and then the compliance test is updated to prevent that from happening again. With Zigbee that’s optional. I also hearken from the bad old days where companies abused zigbee’ custom configuration option and made ALL commands custom (I believe Xiaomi is still bad about this as they don’t follow the officials zigbee spec). Zwave allows manufacturer specific commands but only when an existing command isn’t appropriate, and it is enforced. Lastly, zwave has more 110v devices (switches, plugs, power strips), locks, thermostats and smoke/co detectors. There are various reasons but short answer is most retailers require110v devices/smoke detectors/locks/thermostats to have UL/ETL certification which is expensive and most zigbee device manufacturers are going for low cost/low overhead.
Zigbee is great if you want a lot of battery powered sensors on the cheap. The other thing it has a lot of is bulbs, due to Hue using the LightLink flavor of zigbee. It has been chosen by IKEA as their tech standard, which may be a plus. The last thing to remember for zigbee is that you need a Zigbee3 controller. Prior to Zigbee3 you either had a ZigbeeLL (lighting products) or a ZigbeeHA (locks, sensors, etc plus lights, but not the same commands as LL) and the two didn’t talk. They still won’t talk to each other, but Zigbee3 controllers will talk to both. Eventually all the old zigbee LL/HA devices will fade from the market but it will be a while.
Insteon is sole source. Pretty gear, well made, all works together, but one supplier. I like options. But its like more Apple than Apple.
Controllers come in cloud-based and local processing flavors. What this means is a local processing controller will work without an internet-hosted service. SmartThings, for instance, loses most automations when their service is unavailable and you can’t control the devices at all when that happens as the phone app connects to the ST cloud. (They are changing some of that but also abandoning their old software APIs so lots of ST functions are going to break) a controller where all the logic runs in your house will keep doing its thing even if the internet goes down, let alone a specific web service.
Unless you are a tinkerer, I recommend using pre-built controllers. Home automation is complicated enough to get the automation logic working the way you want to also have to exert effort on getting the controller running.
There are open source software where you can build a complete system with the addition of a couple USB radios if you are the tinkerer.
I will say that all HA is expensive so cheaping out on the brains seems stupid. Like “hiring a teenager to drive your limo because you can pay them minimum wage” stupid. Don’t go lowest bidder on the thing that makes all your other gear work.