Home Automation Networks
So you want to connect all the things in your home or apartment. Good idea. Now what?
There are two options which I would like you to consider. WiFi-connected devices transmitting and receiving data though MQTT, and Cat5-connected devices transmitting and receiving data via CAN.
WiFi + MQTT
- 😀 You don’t have to lay Cat 5 wire, so it’s better if you tend to move your devices around a lot and better if you see yourself moving to a new home every once in a while.
- 🤔 Usually, you still need to plug each device into a wall wart, so it’s not really “wireless” unless you use batteries.
- 😀 MQTT is ubiquitous and it’s easy for even a novice to set up a home server. MQTT client libraries are available in literally every language.
- 😀 MQTT has high QoS levels so you can reliably command devices through it.
- 🤔 If you change a part of your central setup, you may have to upload new code to all your peripherals. MQTT relies on IP addresses, so if you buy a new router or put the MQTT server on a different computer, you may need to update all your devices to point to the MQTT server’s new IP. An alternative is to use mDNS to let each device broadcast their address, but then things start getting too complicated for tiny, stupid devices.
- 😀 WiFi + MQTT relies on stuff you probably already have: a router and an old computer.
Cat 5 + CAN
- 😀 You can provide power and data over the same Cat 5 cable. A single Cat 5 could provide data, 5V, 12V, and 48V, meaning you’ll never have to buy another wall wart again.
- 🤔 If you try to push too much current through Cat 5 you’ll burn through the cable.
- 🤔 CAN is not really ubiquitous. It stands for Controller Area Network, and is mainly used in the automotive industry.
- 😀 CAN does not rely on IP addresses, so you can change out any central storage and control computers attached to it without updating your peripherals.
- 🤔 Cat 5 + CAN is a more DIY solution, requiring you to lay a bunch of cable, attach a power supply, and terminate the CAN bus appropriately.
What do you think? Which sounds nicer to you?