Xbee vs Zigbee integrations

Hya,

there are Xbee and Zigbee integrations. What is the difference, if any?

Thx in advance.

Xbee works with XBee chips, Zigbee works with Silicon labs chips, TI chips, Xbee chips, Conbee and Zigate and is more mature.

1 Like

The Xbee integration is more for those developing their own custom Xbee based DIY Zigbee devices.

https://www.home-assistant.io/integrations/xbee/

ZHA is easier to use but might be harder to customize the actual integration for DIY Zigbee devices.

https://www.home-assistant.io/integrations/zha

You can however also use Xbee based DIY Zigbee devices with the ZHA integration too but then you might also need to write your own custom quirk if it is not just made to be a standard Zigbee device.

https://www.home-assistant.io/integrations/zha#zha-exception-and-deviation-handling

FYI, the ZHA integration is based on zigpy libraries which depend on radio libraries like zigpy-xbee:

https://github.com/zigpy/

https://github.com/zigpy/zigpy-xbee

As such it has radio libraries that act as hardware abstraction layers for each type of supported radio.

thank you for the answers. can Xbee and Zigbee run side by side?

Yes as long as you have two separate Zigbee Coordinator adapters. One for ZHA and one for XBee.

may the sonoff dongle be used for XBee as well, so one sonoff dongle for Zigbee and other sonoff dongle for XBee?

No. XBee only supports an XBee Zigbee coordinator hardware flashed with XBee’s own Zigbee stack.

https://www.home-assistant.io/integrations/xbee/

Different “Zigbee coordinator” chips do not use a unified standard with one common open API.

Each manufacturer of Zigbee radio chips uses its own proprietary Zigbee stack with its own unique API.

That is main reason why ZHA depends on zigpy as it uses an architecture with separate radio libraries supporting different Zigbee coordinator manufacturers, converting those to a common radio API.

https://www.home-assistant.io/integrations/zha

https://github.com/zigpy/zigpy/blob/8d7886d04c2c5715934725c67a9afdc625e9fa8b/README.md

Each separate radio library for zigpy translate proprietary Zigbee stacks into an open zigpy radio API.

https://github.com/zigpy/

https://github.com/zigpy/zigpy

https://github.com/zigpy/zigpy-cli

https://github.com/zigpy/zigpy-znp

https://github.com/zigpy/zigpy-xbee

https://github.com/zigpy/zigpy-zigate

https://github.com/zigpy/zigpy-deconz

https://github.com/zigpy/bellows

If you want to use two Itead Sonoff Zigbee coordinators for two separate Zigbee network then an optional alternative is to install the ZHA integration with one and use the other with Zigbee2MQTT via MQTT.

https://www.home-assistant.io/integrations/zha with one seperate Itead Sonoff Zigbee coordinator.

https://www.zigbee2mqtt.io with one separate Itead Sonoff Zigbee coordinator via https://www.home-assistant.io/integrations/mqtt/ in Home Assistant to access and control the entities of both.

You could even install separate instances of https://www.zigbee2mqtt.io as long as they each have their own Zigbee coordinator adapter. And each Zigbee coordinator will have its own Zigbee network.

So is Xbee dead under Home Assistant

homeasistant.io/intgrations/xbee/

This link ends up here.

Removed integration

Yes, XBee integration was been deprecated and removed. Recommend use ZHA integration instead:

https://www.home-assistant.io/integrations/zha

That “Zigbee Home Assistant” is now the only native Zigbee gateway solution that is natively integrated in Home Assistant and it is also the only one that that officially supported and promoted by Nabu Casa.

https://analytics.home-assistant.io/integrations/

ZHA integration does however support using an Xbee-based adapter as a Zigbee Coordinator. Read:

https://www.home-assistant.io/integrations/zha#introduction

and

https://www.home-assistant.io/integrations/zha#other-supported-but-not-recommended-zigbee-radio-adapters-or-modules

If you are not just using Xbee as a Zigbee Coordinator but rather want to develop your own DIY Zigbee End Device or Zigbee Router device based on XBee then might need to also make custom ZHA device handlers for that device in order for all its entities to be seen inside the ZHA integration, or at least if you are using custom Zigbee clusters and attributes in your device firmware.

Zigbee devices that do not only use standard configuration and parameters (default ZCL clusters and attributes) but instead also implement custom manufacturer clusters and attributes (also known as “quirks”) will need a custom handler/converter/parser/translator as Python script code in the upstream “ZHA Device Handlers” library repository to extend custom manufacturer device “quirk” support for specific non-standard ZCL clusters and attributes (which Zigbee gateway implementations that depends on zigpy and the ZHA Device Handlers library, like Home Assistant s ZHA integration, then can make use of).

https://github.com/zigpy/zha-device-handlers/#readme

If you can not code that Python script code yourself to write the needed custom handler/converter/parser/translator for adding that specific device to the “ZHA Device Handlers” repository/library then suggest submitting a “device support request” (with device signature and diagnostic information) as new issues → https://github.com/zigpy/zha-device-handlers/issues

Without a “device support request” as a new issue posted to the “ZHA Device Handlers” repository/library requesting support for an unsupported device or device feature with Device signature and Diagnostic information the ZHA integration developers will not even know about the device unless they by random chance happened to have bought it themselves.

The reason is why non-standard devices need a custom handler/converter/translator is explained in ZHA integration documentation here → https://www.home-assistant.io/integrations/zha#zha-exception-and-deviation-handling

Zigbee devices that use clusters and attributes that are standard in the official ZCL (Zigbee Cluster Library) do not need custom handlers/converters/translators as explained in the ZHA integration documentation here → https://www.home-assistant.io/integrations/zha#knowing-which-devices-are-supported

PS: Off-topic but FYI, this also works kind of similarly for Zigbee2MQTT which also requires a custom handlers/converters/parsers/translators for specific devices → https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html

1 Like

Great info, thanks.

I already had my own non-standard DIY way of doing things with XBee (before I used HA – weather station, garage opener, etc) and I ended up integrating that with HA via MQTT using my own coordinator code. If I had to start from scratch, I’d go with ZHA and use your guidance regarding custom handlers, etc.