Thursday, November 9, 2017

Why MQTT use has increased, and why I'm hating on a certain ZWave IP owner

I ran across the this post during my daily perusal of tech news. It's both interesting and a bit limited, in that it only looks at protocol use and doesn't dig into why.

I believe that the "why" for the increased MQTT/MQTTS use is: hobbyists and developers. Tools like HomeAssistant and Node-Red have experienced a large growth in the home automation area. Both tools can use locally implemented protocols (Zigbee, ZWave, etc.) but tend to focus on use of MQTT for over-the-netwrok communications. Although they've been around for about 5 years, prices for Linux-based automation hubs, like Samsung's Artik boards, have decreased recently (mostly due to increases competition[1]). Couple this with free (for hobbyist) Internet-based MQTT(S) servers (list here) and it's easy to see why use of the protocol has expanded.

That's not to say that everything is sunshine and roses. Example: I have some reservations about Samsung's Artik series boards, it's mostly due to third party licensing for the Z-Wave interface. To explain, the Artik 5 board can be acquired for less than $100 and has interfaces for Wi-Fi, Bluetooth, Zigbee, and a few other not-so-popular wireless protocols. While the board does have a ZWave chipset, its use requires a separate purchase of firmware and a license from the intellectual property owner of the ZWave technology. The bad news is that said third party requires that you purchase a $1500 development kit, just to acquire the firmware. This greed effectively kills[2] just about every hobbyist-driven ZWave project and will likely create a market for alternative protocols and solutions.

In defense of the Artik 5 board, it's a nice piece of kit. Simply put, it's an ARM board that comes with the Fedora 22 distro[3] pre-installed. It has multiple antennas for the supported wireless technologies[4] and also has the ability to interface with Arduino boards. Of serious value is the USB-based serial interface (separate from the power supply connector) which allows for operating system access[5] without having the network configured.

For now, I'm stuck with working around the no-ZWave limitation by using getting automation software on the Artik 5 to talk to the same software running on a Raspberry Pi, which hosts a HUSBZB-1 dongle[6]. To tie in the opening of this post, such is achieved via use of Node-Red, using MQTT and/or MQTTS for over-the-network comms (rule of thumb: develop with MQTT, put into productions with MQTTS).

For anyone that wants to experiment with Samsung's offerings, I'd recommend the Artik 7 or 10 series boards. They come with a USB host interface (which the Artik 5 lacks) that allows for use of ZWave via the addition of a HUSBZB-1 or Anteon dongle. I'm also taking a look at using USB2IP, but such requires cross-compiling because the Artik 5 doesn't have enough storage to support installation of the tool chain needed to compile the code. In any case, it's not much of a shortcoming for me as I only have 3 ZWave outlets and 2 Zigbee bulbs. Moving off of ZWave, should I ever do it[7], will not be a major financial hit. I'll just continue experimenting with the other protocols.

Notes:

[1] Manufacturers have no one to blame but themselves. Being first out of the gate doesn't justify exorbitant pricing. That just leads to having your lunch eaten in the time it takes for an engineer to design a similar product (these days, it's down to weeks).
[2] I learned about the licensing problem after I'd received the Artik 5 board for my birthday.
[3] I've managed to update the board to both Fedora 24 and the current Fedora 25. I've also managed to run Ubuntu 16.04 LTS from the SD card. (Note: the Artik 5 board does not support installation of Ubuntu, though the Artik 7 and 10 does.)
[4] It also has an antenna jack for ZWave, should you ever get around to adding it.
[5] On Linux, the easiest method for accessing the serial interface amounts to: screen /dev/ttyUSB0 115200
[6] Both Node-Red and HomeAssistant also work with the ZWave interface provided by the RaZberry daughterboard.
[7] I originally used the SmartThing's hub, with a MQTT interface to control those but I didn't like the need to have Internet connectivity to control the lights. We live in an older (Internet-wise) neighborhood and connectivity can best be described as "intermittent during damp weather".