Zigbee Home Automation (ZHA)
ZHA is a versatile and hardware-independent Zigbee gateway implementation, designed to replace proprietary Zigbee gateways, bridges, hubs, and controllers. With ZHA, you can create a unified Zigbee network, allowing you to easily pair and connect a wide range of Zigbee-based devices for home automation and lighting.
Key Features
- Hardware Independence: ZHA is not tied to any specific hardware, giving you the freedom to choose the Zigbee radio that best suits your needs.
- Compatibility: ZHA supports a vast array of Zigbee-based devices, ensuring seamless integration with popular home automation and lighting solutions.
- Unified Zigbee Network: By utilizing ZHA, you can establish a single Zigbee network, simplifying device management and enhancing interoperability.
- Low-Bandwidth Communication: Zigbee operates on a low-bandwidth communication protocol, utilizing small, low-power digital radios to connect devices within local Zigbee wireless private area networks.
Getting Started With Development
To bootstrap a development environment for ZHA, follow these steps:
-
Clone the project from the zigpy organization:
git clone https://github.com/zigpy/zha.git
-
Navigate to the
scriptdirectory:cd zha/script
-
Run the setup script to install the necessary dependencies:
./setup
The
setupscript sets up a virtual environment, installs necessary packages and dependencies, and configures pre-commit hooks for the project. It helps ensure a consistent and controlled development environment for the project, saving you time and effort.Script Overview
The
setupscript in thezha/scriptdirectory performs the following actions:-
curl -LsSf https://astral.sh/uv/install.sh | sh: This command uses curl to download a shell script from the specified URL (https://astral.sh/uv/install.sh) and then pipes it to the sh command to execute it. This script is responsible for installing a tool called "uv" (short for "universal virtualenv") which helps manage Python virtual environments. -
uv venv venv: This command uses the "uv" tool to create a new Python virtual environment named "venv" in the current directory. A virtual environment is an isolated Python environment that allows you to install packages and dependencies specific to your project without affecting the global Python installation. -
. venv/bin/activate: This command activates the newly created virtual environment. When a virtual environment is activated, any subsequent Python-related commands will use the Python interpreter and packages installed within that environment. -
uv pip install -U pip setuptools pre-commit: This command uses the "uv" tool to upgrade the "pip" package manager, as well as install or upgrade the "setuptools" and "pre-commit" packages. "pip" is the default package manager for Python, "setuptools" is a library that facilitates packaging Python projects, and "pre-commit" is a tool for managing and enforcing pre-commit hooks in a Git repository. -
uv pip install -r requirements_test.txt: This command uses the "uv" tool to install the Python packages listed in the "requirements_test.txt" file. This file typically contains a list of dependencies required for running tests in the project. -
uv pip install -e .: This command uses the "uv" tool to install the project itself in editable mode. The dot (.) represents the current directory, so this command installs the project as a package in the virtual environment. -
pre-commit install: This command installs Git pre-commit hooks for the project. Pre-commit hooks are scripts that run before each commit is made in a Git repository, allowing you to enforce certain checks or actions before committing changes.
-
-
If creating new entities or modifying existing ones, unit tests that use device diagnostic files will fail. You can regenerate existing device diagnostic JSON files to incorporate the new entities:
python -m tools.regenerate_diagnostics
License
ZHA is released under the Apache 2.0 License. Please refer to the LICENSE file for more details
Release files for zha 2.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zha-2.2.2.tar.gz | 273.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zha-2.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 477.7 kB
Release files / zha-2.2.2.tar.gz
| Download URL | zha-2.2.2.tar.gz |
|---|---|
| Size | 273.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6027cf6f78dd784d94d627cfabbc646081b714a83ce71ee4a7d89dd9cc48883d
|
|
BLAKE2b-256 checksum How to use checksums |
cbc2fd51cafcfd6d268a2c72c8885002148ec8bf6563bc191064d22835d67c02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / zha-2.2.2-py3-none-any.whl
| Download URL | zha-2.2.2-py3-none-any.whl |
|---|---|
| Size | 204.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8f9171630bf66dd8f05d8b6cd90bcb59b4a5850c3ba3c2bec771ad0a2f4393e0
|
|
BLAKE2b-256 checksum How to use checksums |
4f89a8332f9ace60b85bc534cbb89dd3d0f5a5b37fbc44435b19fb5a3a19a0d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|