Recently, both Zigbee and Z-wave tend to be the most commonly used protocol to communicate between Internet of Things (IoT) devices. Most of these IoT devices tend to have a combination of mechanical or optical related transducer or actuator device component coupled with a micro-controller and respective software stack. What are the major differences between Zigbee 3.0 and Z-Wave in relation to communication between IoT devices?
I will leave the main part of the previous answer below, as it contains more information about the differences between several radio protocols.
As for the differences between Zigbee 3.0 and Z-Wave, let's do a side by side comparison:
- Frequency: Zigbee uses the 2.4GHz band, while Z-wave uses the 868MHz band in Europe and the 900MHz ISM band in the US (see the frequency coverage here)
- OSI Layers: Zigbee is based on the IEEE 802.15.4 spec for the PHY/MAC Layers, where Z-Wave is based on ITU-T G.9959 rPHY/MAC. The Z-Wave protocol stack was developed by Sigma Designs (and the standard is maintained by the Z-Wave Alliance), whereas Zigbee is developed by the Zigbee Alliance. Both networks have mesh capabilities
- Ecosystem: Z-Wave claims to have "more than 1200 products" on the market, Zigbee claims a similar figure.
- Documentation: Zigbee 3.0 spec is (for now) only available to Alliance members (the other Zigbee standards can be downloaded after entering some information (which can be bogus if you somehow want to stay anonymous)). Z-Wave requires you to buy the development kit or join the Alliance to access the spec.
- Certification: Both protocols will require a certification to be fully certified and to be able to use the protocol logo.
More generally, here is what you need to take into account when choosing a protocol:
- Frequency: The protocols you named all uses the 2.4GHz band, but a lot of other protocols uses the 868MHz, the 915MHz, the 433MHz band. The idea is the lower the frequency, the lower the energy use and greater the range. At least in theory. One also have to consider the physical size of the antenna (the lower the frequency, the bigger the antenna).
- OSI Layers used: Some of the "protocols" out there only implements one layer of the OSI model, and you will need to have another layer implemented to be able to communicate
- Ease of use of protocol: some protocols are very easy to use (for example EnOcean), some are more complicated (Zigbee, BLE). They differ in their capabilities and the freedom you have to send the information
- Bitrate, frame size, useful payload: How much information you can send in a given timeframe. Depending on your use, you may need to send a lot of data, where different protocols may or may not behave well with this.
- Collision and packet collision avoidance: how does the protocol manages the band use and prevent packet collision (two objects sending at the same time).
- Ecosystem: Are there a lot of other devices out there using this protocol? What do you want to connect your object to (smartphone directly? Internet directly? Something else)? Do you need a local gateway to access internet?
- Documentation availability: Is all the information necessary freely available? Is it locked (does it require membership to an association to be read)? Is it behind a paywall?
- Last but not least: Cost of use. To be implemented and sold in your products, some protocols will require you to join the Alliance so you can certify your product compliance with the protocol. This often cost a lot of money (depends on the protocol).
I thinks this pretty much sums it all, and should give good pointers to the right direction to look for more information.