Find a file
Koen Kanters e06848db8c
Some checks failed
ci / tests (18, ubuntu-latest) (push) Successful in 58s
ci / ci (push) Successful in 1m6s
ci / tests (20, ubuntu-latest) (push) Successful in 57s
ci / tests (22, ubuntu-latest) (push) Successful in 1m4s
merge-master-to-dev / merge_master_to_dev (push) Failing after 2s
ci / tests (22, windows-latest) (push) Has been cancelled
ci / tests (22, macos-latest) (push) Has been cancelled
ci / tests (20, windows-latest) (push) Has been cancelled
ci / tests (20, macos-latest) (push) Has been cancelled
ci / tests (18, windows-latest) (push) Has been cancelled
ci / tests (18, macos-latest) (push) Has been cancelled
chore(dev): release 1.40.2 (#23885)
2024-10-01 21:30:57 +02:00
.github chore: fix cedc0623f7 2024-09-16 22:46:37 +02:00
data chore: apply prettier to whole repo 2024-07-29 21:21:24 +02:00
docker fix: Add OCI labels to image (#23578) 2024-08-11 21:59:44 +02:00
images chore: optimized svg logo (#21874) 2024-03-21 20:10:33 +01:00
lib fix: Fix Home Assistant Invalid state message error when state is too long (#24045) 2024-09-21 00:06:44 +02:00
scripts fix: Enforce TS strict type checking (#23601) 2024-09-07 11:40:50 +00:00
test fix(ignore): update zigbee-herdsman-converters to 20.21.0 (#24172) 2024-10-01 21:27:13 +02:00
.dockerignore Enable TypeScript (#8074) 2021-07-21 19:35:14 +02:00
.gitignore fix: Enforce no floating promises (#22880) 2024-06-04 20:05:39 +02:00
.npmignore fix: Enable incremental TSC builds (#19293) 2023-10-14 08:22:35 +02:00
.npmrc Add .npmrc 2018-07-03 18:57:36 +02:00
.prettierignore chore: apply prettier to whole repo 2024-07-29 21:26:33 +02:00
.prettierrc fix(ignore): Migrate to eslint 9 (#23800) 2024-09-08 14:26:18 +02:00
.release-please-manifest.json chore(dev): release 1.40.2 (#23885) 2024-10-01 21:30:57 +02:00
babel.config.js chore: apply prettier to whole repo 2024-07-29 21:21:24 +02:00
CHANGELOG.md chore(dev): release 1.40.2 (#23885) 2024-10-01 21:30:57 +02:00
cli.js Implement cli version of z2m (#5034) 2020-11-21 16:02:49 +01:00
CODE_OF_CONDUCT.md chore: apply prettier to whole repo 2024-07-29 21:21:24 +02:00
CONTRIBUTING.md chore: apply prettier to whole repo 2024-07-29 21:21:24 +02:00
eslint.config.mjs fix(ignore): Sync eslint settings from zhc (#23951) 2024-09-12 19:36:57 +00:00
index.js fix: Update watchdog delays (#23757) 2024-08-27 20:50:24 +02:00
LICENSE Initial commit 2017-09-27 16:38:22 +03:00
package-lock.json chore(dev): release 1.40.2 (#23885) 2024-10-01 21:30:57 +02:00
package.json chore(dev): release 1.40.2 (#23885) 2024-10-01 21:30:57 +02:00
README.md chore: apply prettier to whole repo 2024-07-29 21:21:24 +02:00
release-please-config.json chore: apply prettier to whole repo 2024-07-29 21:21:24 +02:00
tsconfig.json fix: Enforce TS strict type checking (#23601) 2024-09-07 11:40:50 +00:00
update.sh chore: Improve update.sh (#22395) 2024-05-02 21:18:25 +02:00



Zigbee2MQTT 🌉 🐝

Allows you to use your Zigbee devices without the vendor's bridge or gateway.

It bridges events and allows you to control your Zigbee devices via MQTT. In this way you can integrate your Zigbee devices with whatever smart home infrastructure you are using.

Getting started

The documentation provides you all the information needed to get up and running! Make sure you don't skip sections if this is your first visit, as there might be important details in there for you.

If you aren't familiar with Zigbee terminology make sure you read this to help you out.

Integrations

Zigbee2MQTT integrates well with (almost) every home automation solution because it uses MQTT. However the following integrations are worth mentioning:

Home Assistant


Homey


Domoticz


Gladys Assistant

  • Integration implemented natively in Gladys Assistant (documentation).

IoBroker


Architecture

Architecture

Internal Architecture

Zigbee2MQTT is made up of three modules, each developed in its own Github project. Starting from the hardware (adapter) and moving up; zigbee-herdsman connects to your Zigbee adapter and makes an API available to the higher levels of the stack. For e.g. Texas Instruments hardware, zigbee-herdsman uses the TI zStack monitoring and test API to communicate with the adapter. Zigbee-herdsman handles the core Zigbee communication. The module zigbee-herdsman-converters handles the mapping from individual device models to the Zigbee clusters they support. Zigbee clusters are the layers of the Zigbee protocol on top of the base protocol that define things like how lights, sensors and switches talk to each other over the Zigbee network. Finally, the Zigbee2MQTT module drives zigbee-herdsman and maps the zigbee messages to MQTT messages. Zigbee2MQTT also keeps track of the state of the system. It uses a database.db file to store this state; a text file with a JSON database of connected devices and their capabilities. Zigbee2MQTT provides a web-based interface that allows monitoring and configuration.

Developing

Zigbee2MQTT uses TypeScript (partially for now). Therefore after making changes to files in the lib/ directory you need to recompile Zigbee2MQTT. This can be done by executing npm run build. For faster development instead of running npm run build you can run npm run build-watch in another terminal session, this will recompile as you change files.

Supported devices

See Supported devices to check whether your device is supported. There is quite an extensive list, including devices from vendors like Xiaomi, Ikea, Philips, OSRAM and more.

If it's not listed in Supported devices, support can be added (fairly) easily, see How to support new devices.

Support & help

If you need assistance you can check opened issues. Feel free to help with Pull Requests when you were able to fix things or add new devices or just share the love on social media.