I have tried a bunch of different Smart Home products over the last few years …
The author ended up with nearly two baskets full of functional but useless electronics, after just a few years. My “dumb” lightbulbs should live for at least 5 years before I have to replace them (hopefully longer than that). So, one thing I learned is that “smart home” is mostly good at producing electronic waste.
I think ‘smart’ home products are ultimately wasteful per se because they have shorter lifespans and/or use more resources than simpler components. Additionally, many of them reduce one’s security and/or privacy.
While I do appreciate many of their features (it is cool to be able to turn one’s air conditioning on on the ride home from the æroport!), ultimately I believe that they are a mistake.
I have to agree. All this waste reminds me of the waste associated with switching from wired headphones (which require no electronics, just electrics) to Bluetooth.
One thing the author seemingly hasn’t tried is using a manufacturer-independent gateway for Zigbee like https://www.zigbee2mqtt.io. This approach uses a USB-to-Zigbee adapter and makes all Zigbee devices from all vendors talk to each other. Run on a Raspberry Pi together with HomeAssistant (general-purpose home automation) or Homebridge (to bridge to Apple HomeKit), this setup provides a great user experience (for me).
It also opens two common and documented APIs for interfacing with the devices: HomeAssistant (high-level) and MQTT (lower-level, still easy).
I personally run Zigbee2mqtt with HomeBridge and control everything from the Apple ecosystem. It works flawlessly for me and my family. From the nerd-side, I stream all MQTT messages as JSON to a Postgres database and use Grafana to plot various metrics from sensors and devices.
Personally, I don’t like zigbee2mqtt. However, it is the best solution for vendor-independent gateway.
I’m looking on zigbee-lua that uses Lua instead of Javascript and other alternatives.
I agree - the amount of code and complexity of the Javascript in zigbee2mqtt is staggering. Thanks for pointing me to zigbee-lua - looks great.
In an ideal world, there would be a standardised mqtt protocol definition with zigbee2mqtt and others implementing that protocol. From a short look it’s not entirely clear if zigbee-lua tries to be wire-compatible with zigbee2mqtt.
As far as I get it right, the main complexity of zigbee2mqtt are quirks for different Zigbee devices that doesn’t conform to Zigbee specification. For interaction with Zigbee devices, z2m uses zigbee-herdsman-converters to parse messages to and from devices. Adding support of a new Zigbee device to z2m is actually an implementation of a new converter that understands and processes messages from the new device.
There is alternative of zigbee-herdsman-converters written in Python - zha-device-handlers. It uses zigpy for access to Zigbee messages, and it is used by Zigbee plugin for Home Assistant. zha-device-handlers contains a huge number of quirks for Zigbee devices, see subdirectories in the zhaquirks directory. zha-device-handlers has a great explanation of quirks for Zigbee devices and it is worth to read it - https://github.com/zigpy/zha-device-handlers#what-the-heck-is-a-quirk
I’d never heard of zigbee-lua, but it looks pretty stale compared
to
zigbee2mqtt. I don’t find the implementation language anything
more than
a implementation detail, especially not when typically running in
a
container.
I’ve used z2m on a raspberry pi and homeassistant on another. I
moved to
ZHA (the native Home assistant implementation) only by accident
and was
too lazy to start over again. But I’ll go back to z2m again after
moving
houses soon.
I have tried using a USB-to-zigbee adapter, but with custom software and not zigbee2mqtt.
Maybe the experience would have been better with zigbee2mqtt, but I generally like building my own stuff. From that perspective, the zigbee stack is not great, and my USB-to-zigbee interfered with the IKEA tradfri gateway pairing process.
I hope more modern smart home standards result in better ecosystems, but I’ll stick to the vendor gateways for now :)
The software mine came with was absolutely horrendous - which is usually the case for such systems. I updated the stick’s software and then uninstalled it :-)
The great thing is, that Zigbee2mqtt makes building your own stuff incredibly nice - you just start at a different level - MQTT instead of the stick’s serial interface. Zigbee2mqtt is the gateway and provides an API (via MQTT) to control devices in your Zigbee network.
That it will interfere with other gateway’s when both are open for devices to join is expected - but that’s expected. Multiple separate zigbee networks in the same house work fine. Devices just get confused which network to join when multiple gateways are in pairing mode.
In my use case the only gateway used is the usb stick used by zigbee2mqtt, which removes the need for all other Gateways, thus freeing you from having to use a different gateway for each vendor, and putting you much more in control of the stack.
Well, there’s always Matter which should come out sometime this
year. I’ll keep on using Home Assistant until Matter makes sense to
switch to - and then maybe. Home Assistant is pretty nice, not having to
care what ecosystem my stuff is in and just interact with all of them
instead.
The author ended up with nearly two baskets full of functional but useless electronics, after just a few years. My “dumb” lightbulbs should live for at least 5 years before I have to replace them (hopefully longer than that). So, one thing I learned is that “smart home” is mostly good at producing electronic waste.
I think that’s not a problem of Smart Home products per se, but rather of me switching from system to system.
This is also one of the motivations to publish this article: so that others can avoid e waste by jumping straight to the system they like! :)
Oh, I should probably also add that I didn’t throw the hardware away. I sold or gifted all old hardware, so it’s not (yet) waste.
I think ‘smart’ home products are ultimately wasteful per se because they have shorter lifespans and/or use more resources than simpler components. Additionally, many of them reduce one’s security and/or privacy.
While I do appreciate many of their features (it is cool to be able to turn one’s air conditioning on on the ride home from the æroport!), ultimately I believe that they are a mistake.
I have to agree. All this waste reminds me of the waste associated with switching from wired headphones (which require no electronics, just electrics) to Bluetooth.
One thing the author seemingly hasn’t tried is using a manufacturer-independent gateway for Zigbee like https://www.zigbee2mqtt.io. This approach uses a USB-to-Zigbee adapter and makes all Zigbee devices from all vendors talk to each other. Run on a Raspberry Pi together with HomeAssistant (general-purpose home automation) or Homebridge (to bridge to Apple HomeKit), this setup provides a great user experience (for me).
It also opens two common and documented APIs for interfacing with the devices: HomeAssistant (high-level) and MQTT (lower-level, still easy).
I personally run Zigbee2mqtt with HomeBridge and control everything from the Apple ecosystem. It works flawlessly for me and my family. From the nerd-side, I stream all MQTT messages as JSON to a Postgres database and use Grafana to plot various metrics from sensors and devices.
Personally, I don’t like zigbee2mqtt. However, it is the best solution for vendor-independent gateway. I’m looking on zigbee-lua that uses Lua instead of Javascript and other alternatives.
I agree - the amount of code and complexity of the Javascript in zigbee2mqtt is staggering. Thanks for pointing me to zigbee-lua - looks great.
In an ideal world, there would be a standardised mqtt protocol definition with zigbee2mqtt and others implementing that protocol. From a short look it’s not entirely clear if zigbee-lua tries to be wire-compatible with zigbee2mqtt.
Absolutely agree.
As far as I get it right, the main complexity of zigbee2mqtt are quirks for different Zigbee devices that doesn’t conform to Zigbee specification. For interaction with Zigbee devices, z2m uses zigbee-herdsman-converters to parse messages to and from devices. Adding support of a new Zigbee device to z2m is actually an implementation of a new converter that understands and processes messages from the new device.
There is alternative of zigbee-herdsman-converters written in Python - zha-device-handlers. It uses zigpy for access to Zigbee messages, and it is used by Zigbee plugin for Home Assistant. zha-device-handlers contains a huge number of quirks for Zigbee devices, see subdirectories in the zhaquirks directory. zha-device-handlers has a great explanation of quirks for Zigbee devices and it is worth to read it - https://github.com/zigpy/zha-device-handlers#what-the-heck-is-a-quirk
I’d never heard of zigbee-lua, but it looks pretty stale compared to zigbee2mqtt. I don’t find the implementation language anything more than a implementation detail, especially not when typically running in a container.
I’ve used z2m on a raspberry pi and homeassistant on another. I moved to ZHA (the native Home assistant implementation) only by accident and was too lazy to start over again. But I’ll go back to z2m again after moving houses soon.
I have tried using a USB-to-zigbee adapter, but with custom software and not zigbee2mqtt.
Maybe the experience would have been better with zigbee2mqtt, but I generally like building my own stuff. From that perspective, the zigbee stack is not great, and my USB-to-zigbee interfered with the IKEA tradfri gateway pairing process.
I hope more modern smart home standards result in better ecosystems, but I’ll stick to the vendor gateways for now :)
The software mine came with was absolutely horrendous - which is usually the case for such systems. I updated the stick’s software and then uninstalled it :-)
The great thing is, that Zigbee2mqtt makes building your own stuff incredibly nice - you just start at a different level - MQTT instead of the stick’s serial interface. Zigbee2mqtt is the gateway and provides an API (via MQTT) to control devices in your Zigbee network.
That it will interfere with other gateway’s when both are open for devices to join is expected - but that’s expected. Multiple separate zigbee networks in the same house work fine. Devices just get confused which network to join when multiple gateways are in pairing mode.
In my use case the only gateway used is the usb stick used by zigbee2mqtt, which removes the need for all other Gateways, thus freeing you from having to use a different gateway for each vendor, and putting you much more in control of the stack.
Well, there’s always Matter which should come out sometime this year. I’ll keep on using Home Assistant until Matter makes sense to switch to - and then maybe. Home Assistant is pretty nice, not having to care what ecosystem my stuff is in and just interact with all of them instead.