b-parasite-esp32/code/nrf-connect/samples/zigbee
2022-12-10 15:45:22 +01:00
..
media/power-profile Add docs 2022-12-10 15:45:22 +01:00
src Make the LED flash while pairing 2022-12-10 15:14:01 +01:00
.gitignore Zigbee sample works with nRF52840dk + zigbee2mqtt 2022-12-07 20:10:51 +01:00
b-parasite.js Add illuminance cluster & reporting 2022-12-10 10:47:16 +01:00
CMakeLists.txt Add battery percentage computation 2022-12-09 19:02:55 +01:00
Kconfig Add GitHub action 2022-12-09 20:01:46 +01:00
prj.conf Add GitHub action 2022-12-09 20:01:46 +01:00
README.md Add docs 2022-12-10 15:45:22 +01:00
zigbee.code-workspace Links prstlib and restructures project to match other samples 2022-12-07 20:10:52 +01:00

Zigbee firmware sample

This sample is adapted from the zigbee_template from the nRF Connect SDK.

Clusters

These clusters are defined in the sample:

Cluster ID Name
0x0001 Power Configuration
0x0400 Illuminance Measurement
0x0402 Temperature Measurement
0x0405 Relative Humidity Measurement
0x0408 Soil Moisture Measurement

Pairing Mode

The sample will first boot and start looking for a Zigbee coordinator - in pairing mode. The onboard LED will be flashing once a second while in this mode. Once a suitable network is found, the LED will briefly flash 3 times and remain off.

Factory Reset

Most Zigbee devices provide a physical button to "factory reset" it - causing it to forget its joined network and look for a new one.

b-parasite has no physical buttons, and the implemented work around is to distinguish between two reset modes:

Power up mode

The device enters this mode when it is powered. For example, swapping an old battery or connecting to eternal power. This is the "usual" reset mode, and joined networks will be remembered.

Reset pin mode

If the device's RESET pin is briefly grounded, the device will effectively be factory reset. The device will leave its previous network and start looking for a new one.

Configs

Available options in Kconfig. Notable options:

  • CONFIG_PRST_ZB_SLEEP_DURATION_SEC: amount of time (in seconds) the device sleeps between reading all sensors and updating its clusters
  • CONFIG_PRST_ZB_PARENT_POLL_INTERVAL_SEC: amount of time (in seconds) the device waits between polling its parent for data

Zigbee2MQTT & Home Assistant

This firmware sample has only been tested with Zigbee2MQTT, an open source Zigbee bridge that connects seamlessly with Home Assistant.

The b-parasite.js file contains a converter that can be installed to Zigbee2MQTT to suppoort this sample. See Support new devices for instructions.

Battery Life

While sleeping, the device consumes around 2 uA: sleeping current In the active cycle, it averages around 370 uA for 2.6 seconds: active current