Skip to main content

A library for zigpy which communicates with Nordic nRF52 radios

Project description

zigpy-zboss

zigpy-zboss is a Python library project that adds support for common Nordic Semiconductor nRF modules to zigpy (a open source Python Zigbee stack project) and other Network Co-Processor radios that uses firmware based on ZOI (ZBOSS Open Initiative) by DSR.

Together with the zigpy library and a home automation software application with compatible Zigbee gateway implementation, (such as for example the Home Assistant's ZHA integration component), you can directly control Zigbee devices from most product manufacturers, like; IKEA, Philips Hue, Inovelli, LEDVANCE/OSRAM, SmartThings/Samsung, SALUS/Computime, SONOFF/ITEAD, Xiaomi/Aqara, and many more.

Back-story and use cases

This is currently an 'as-is' independent and unofficial implementation radio library for zigpy, as such should be considered experimental and you should only expect best-effort support from volunteers in the open-source community!

Zigbee NCP support for ZOI (ZBOSS Open Initiative) based Zigbee radios compatible with ZBOSS NCP firmware for zigpy based Zigbee gateway implementation is still in very early development.

Development is initially focused on Zigbee Coordinator functionality Nordic Semiconductor's development kit hardware which has been tested to be compatible. Those also officially recognized as Zigbee-Compliant platforms by the CSA (Connectivity Standards Alliance, formerly the Zigbee Alliance), of which both DSR Cooperation and Nordic Semiconductor are board and promoter members of.

Hardware requirements

Nordic Semi USB adapters or development kits/boards based on either the nRF52840 (nRF52 series) SoC or the nRF5340 (nRF53 series) SoC:

Note! Only nRF52840 SoC has been used for development and tested as reference hardware by the developers of the zigpy-zboss project.

Firmware

Development and testing in zigpy-zboss project is done with a firmware image built using the ZBOSS NCP Host sample from Nordic Semi:

  • nrf-zboss-ncp - Compiled ZBOSS NCP Host firmware image required to be flash on a compatible nRF52840 or nRF5340 device.

Releases via PyPI

Tagged versions will also be released via PyPI

External links, documentation, and other development references

Other radio libraries for zigpy to use as reference projects

Note! The initial development of the zigpy-zboss radio library for zigpy stems from information learned from the work in the zigpy-znp project.

zigpy-znp

The zigpy-znp zigpy radio library for Texas Instruments Z-Stack ZNP interface and has been the primary reference to base the zigpy-zboss radio library on. zigpy-znp is very stable with TI Z-Stack 3.x.x, (zigpy-znp also offers some stand-alone CLI tools that are unique for Texas Instruments hardware and Zigbee stack).

zigpy-deconz

The zigpy-deconz is another mature radio library for Dresden Elektronik's deCONZ Serial Protocol interface that is used by the deconz firmware for their ConBee and RaspBee seriies of Zigbee Coordinator adapters. Existing zigpy developers previous advice has been to also look at zigpy-deconz since it is somewhat similar to the ZBOSS serial protocol implementation.

zigpy deconz parser

zigpy-deconz-parser allow developers to parse Home Assistant's ZHA component debug logs using the zigpy-deconz radio library if you are using a deCONZ based adapter like ConBee or RaspBee.

bellows

The bellows is made Silicon Labs EZSP (EmberZNet Serial Protocol) interface and is another mature zigpy radio library project worth taking a look at as a reference, (as both it and some other zigpy radio libraires have some unique features and functions that others do not).

How to contribute

If you are looking to make a code or documentation contribution to this project suggest that you try to follow the steps in the contributions guide documentation from the zigpy project and its wiki:

Also see:

Related projects

zigpy

zigpy is a Zigbee protocol stack integration project to implement the Zigbee Home Automation standard as a Python library. Zigbee Home Automation integration with zigpy allows you to connect one of many off-the-shelf Zigbee adapters using one of the available Zigbee radio library modules compatible with zigpy to control Zigbee devices. There is currently support for controlling Zigbee device types such as binary sensors (e.g. motion and door sensors), analog sensors (e.g. temperature sensors), lightbulbs, switches, and fans. Zigpy is tightly integrated with Home Assistant's ZHA component and provides a user-friendly interface for working with a Zigbee network.

zigpy-cli (zigpy command line interface)

zigpy-cli is a unified command line interface for zigpy radios. The goal of this project is to allow low-level network management from an intuitive command line interface and to group useful Zigbee tools into a single binary.

ZHA Device Handlers

ZHA deviation handling in Home Assistant relies on the third-party ZHA Device Handlers project (also known unders zha-quirks package name on PyPI). Zigbee devices that deviate from or do not fully conform to the standard specifications set by the Zigbee Alliance may require the development of custom ZHA Device Handlers (ZHA custom quirks handler implementation) to for all their functions to work properly with the ZHA component in Home Assistant. These ZHA Device Handlers for Home Assistant can thus be used to parse custom messages to and from non-compliant Zigbee devices. The custom quirks implementations for zigpy implemented as ZHA Device Handlers for Home Assistant are a similar concept to that of Hub-connected Device Handlers for the SmartThings platform as well as that of zigbee-herdsman converters as used by Zigbee2mqtt, meaning they are each virtual representations of a physical device that expose additional functionality that is not provided out-of-the-box by the existing integration between these platforms.

ZHA integration component for Home Assistant

ZHA integration component for Home Assistant is a reference implementation of the zigpy library as integrated into the core of Home Assistant (a Python based open source home automation software). There are also other GUI and non-GUI projects for Home Assistant's ZHA components which builds on or depends on its features and functions to enhance or improve its user-experience, some of those are listed and linked below.

ZHA Toolkit

ZHA Toolkit is a custom service for "rare" Zigbee operations using the ZHA integration component in Home Assistant. The purpose of ZHA Toolkit and its Home Assistant 'Services' feature, is to provide direct control over low level zigbee commands provided in ZHA or zigpy that are not otherwise available or too limited for some use cases. ZHA Toolkit can also; serve as a framework to do local low level coding (the modules are reloaded on each call), provide access to some higher level commands such as ZNP backup (and restore), make it easier to perform one-time operations where (some) Zigbee knowledge is sufficient and avoiding the need to understand the inner workings of ZHA or Zigpy (methods, quirks, etc).

ZHA Device Exporter

zha-device-exporter is a custom component for Home Assistant to allow the ZHA component to export lists of Zigbee devices.

ZHA Network Visualization Card

zha-network-visualization-card was a custom Lovelace element for Home Assistant which visualize the Zigbee network for the ZHA component.

ZHA Network Card

zha-network-card was a custom Lovelace card for Home Assistant that displays ZHA component Zigbee network and device information in Home Assistant

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zigpy_zboss-1.2.0.tar.gz (80.0 kB view details)

Uploaded Source

Built Distribution

zigpy_zboss-1.2.0-py3-none-any.whl (75.5 kB view details)

Uploaded Python 3

File details

Details for the file zigpy_zboss-1.2.0.tar.gz.

File metadata

  • Download URL: zigpy_zboss-1.2.0.tar.gz
  • Upload date:
  • Size: 80.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for zigpy_zboss-1.2.0.tar.gz
Algorithm Hash digest
SHA256 3e504abc17430f7ea76fc6da83f26870a6dbd1fabfb29315a5e7408519df347f
MD5 7216fa3ed90bc617c78b38e85576aa02
BLAKE2b-256 a844b1fd8774b646b8ae456576c766c0cf74809e093450ae6fbcee4a03866dcf

See more details on using hashes here.

File details

Details for the file zigpy_zboss-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: zigpy_zboss-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for zigpy_zboss-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45cfc49ef7cdd44889b838e7c278294f21ee1ef3e9bdbca35bd0001b2e6da90a
MD5 537e4ffd8b15889bda6161d764bdaa30
BLAKE2b-256 ebe819dace8cefe7f4fc438f69abda41d1ed48d910b86d20a114ef0861d05af5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page