Saturday, December 31, 2022

Zigbee Home Assistant Migration from SmartThings


In this previous post, I mentioned the Home Assistant SkyConnect USB stick for Zigbee devices.  I started the migration of my Zigbee devices from SmartThings to Home Assistant and wanted to write about some of the steps that worked for me, and some of the challenges that I have encountered.

USB extension

When I first started to attempt to pair devices with Home Assistant, none of them were discovered.  The SkyConnect includes a USB extension cable, that I initially connected between the SkyConnect and my Intel NUC. I figured that either the included cable isn't shielded or long enough, so I got a 3.3ft cable, and that allowed the Zigbee devices to be discovered.

Migration steps

Once the Zigbee devices were discovered, I started the migration process.  Since Zigbee devices can only be connected to a single controller at a time, and these devices have been configured in existing Home Assistant automations, the migration process is a little more involved than with a new Zigbee device

  1. In SmartThings, remove the Zigbee device in the SmartThings application. 

    Removing the devices from SmartThings doesn't remove them from Home Assistant, so there isn't a concern about losing data from the setup in Home Assistant
  2. Now, put the devices in pairing mode, and select "+ Add Device" from the SkyConnect integration in Home Assistant.

    Once the device is discovered, add it to a room and rename it to something appropriate.
  3. For each of the Home Assistant Automations, Scripts, or, Helpers that referenced the device or one of the entities from the SmartThings instance of the device, switch them to the new device or entity from native Zigbee integration.
  4. Once the device integrations have been migrated, then the versions of the device from the SmartThings integrations can be disabled.  (And the entities from the device can be deleted)
With these changes, the devices can be controlled, and data from the sensors access directly.  One important benefit of this integration is that all of this happens locally, and there is a richer set of data that is available through this integration.

Zigbee Routers

Many (if not all) powered Zigbee devices are also Zigbee routers.  Routers are responsible for routing traffic between different nodes.  This is useful for extending the range of Zigbee networks, especially for battery-powered devices.

In my SmartThings setup, I have several powered devices that implement Zigbee routers.  These are primarily smart plugs.  These increased the reliability of Zigbee devices on the SmartThings platform.

While migrating the Zigbee devices from SmartThings, I intentionally made sure that I migrated some of the powered devices along with the battery-powered sensors.

Challenges

This migration wasn't as smooth as I would have liked. There are several problems.

Smart plugs light controls

For the SmartThings smart plugs that I migrated, the controls that they exported are of the "light" type, regardless of the appliance that is plugged into it. 

Even though Home Assistant supports converting switch devices to lights, it doesn't support converting from light types to switch types.

This causes problems, as when integrated with voice assistants contextual commands may behave unexpectedly. For example, if you say"Turn off the lights in room X", whatever is plugged into these outlets may turn off, even if they are not lights. I have temporarily worked around this by only plugging lights into these outlets.

I will look into changing the device type of these devices, which may require manual editing of the devices, as described on this page.

No comments:

Post a Comment

Unlocking Raspberry Pi Potential: Navigating Network Booting Challenges for Enhanced Performance and Reliability

I've set up several Raspberry Pis around our house for various projects, but one recurring challenge is the potential for SD card failur...