zigpy的一个库,用于与TI ZNP无线电台通信
项目描述
zigpy-znp
zigpy-znp 是一个Python库,它为Python Zigbee堆栈项目 zigpy 添加了对常见的 德州仪器 ZNP (Zigbee网络处理器) Zigbee 无线电模块的支持。
与zigpy和兼容的智能家居软件(特别是Home Assistant的ZHA (Zigbee智能家居) 集成组件)一起,您可以直接控制Philips Hue、GE、OSRAM LIGHTIFY、小米/Aqara、IKEA Tradfri、三星SmartThings等Zigbee设备。
安装
Python模块
在您的虚拟环境中安装Python模块
$ virtualenv -p python3.8 venv # if you don't already have one
$ source venv/bin/activate
(venv) $ pip install git+https://github.com/zigpy/zigpy-znp/ # latest commit from Git
(venv) $ pip install zigpy-znp # or, latest stable from PyPI
Home Assistant
当您安装ZHA组件时,zigpy-znp的稳定版本会自动安装。
使用Home Assistant Core测试 dev
在您的虚拟环境中升级软件包(需要 git
)
(venv) $ pip install git+https://github.com/zigpy/zigpy-znp/
使用命令行选项 --skip-pip
启动 Home Assistant,以防止 zigpy-znp 降级。使用此选项可能会阻止新添加的集成安装所需的软件包。
在 Home Assistant OS 上测试 dev
- 将 https://github.com/home-assistant/hassio-addons-development 添加为插件仓库。
- 安装 "自定义依赖部署" 插件。
- 将以下内容添加到您的
configuration.yaml
文件中apk: [] pypi: - git+https://github.com/zigpy/zigpy-znp/
配置
以下是顶层 Home Assistant zha:
键的默认配置。 您不需要复制此配置,仅提供参考
zha:
zigpy_config:
znp_config:
# Only if your stick has a built-in power amplifier (i.e. CC1352P and CC2592)
# If set, must be between:
# * CC1352/2652: -22 and 19
# * CC253x: -22 and 22
tx_power:
# Only if your stick has a controllable LED (the CC2531)
# If set, must be one of: off, on, blink, flash, toggle
led_mode: off
### Internal configuration, there's no reason to touch these values
# Skips the 60s bootloader delay on CC2531 sticks
skip_bootloader: True
# Timeout for synchronous requests' responses
sreq_timeout: 15
# Timeout for asynchronous requests' callback responses
arsp_timeout: 30
# Delay between auto-reconnect attempts in case the device gets disconnected
auto_reconnect_retry_delay: 5
# Pin states for skipping the bootloader
connect_rts_pin_states: [off, on, off]
connect_dtr_pin_states: [off, off, off]
工具
各种 Zigbee 命令行实用程序是 zigpy-znp 包的一部分,可以通过 python -m zigpy_znp.tools.name_of_tool
运行。更详细的文档可以在 TOOLS.md
中找到,但以下是对每个工具的简要描述
energy_scan
:执行持续的能量扫描以检查非 Zigbee 干扰。flash_read
:对于 CC2531s,从闪存中读取固件。flash_write
:对于 CC2531s,将固件.bin
写入闪存。form_network
:在通道 15 上使用随机设置形成网络。network_backup
:将网络数据和设备信息备份到人类可读的 JSON 文档中。network_restore
:将 JSON 网络备份恢复到适配器。network_scan
:主动发送信标请求以进行网络跳转。nvram_read
:将所有可能的 NVRAM 条目读取到 JSON 文档中。nvram_reset
:删除所有可能的 NVRAM 条目。nvram_write
:从 JSON 文档中写入所有 NVRAM 条目。
硬件要求
带有 TI Z-Stack 闪存的 USB 适配器、GPIO 模块和开发板与 zigpy-znp 兼容。
- CC2652P/CC2652R/CC2652RB USB 随身棒和开发板硬件
- CC1352P/CC1352R USB 随身棒和开发板硬件
- CC2538 + CC2592 USB 随身棒和开发板硬件(不推荐,旧硬件和已停产固件)
- CC2531 USB 随身棒硬件(不推荐用于拥有超过 20 个设备的 Zigbee 网络)
- CC2530 + CC2591/CC2592 USB 随身棒硬件(不推荐用于拥有超过 20 个设备的 Zigbee 网络)
提示!列出为 "与 Zigbee2MQTT 兼容的 Texas Instruments 随身棒" 的适配器也适用于 zigpy-znp。
此项目的参考硬件
这些特定的适配器被 zigpy-znp 开发者用作开发和测试的参考硬件。
- TI LAUNCHXL-CC26X2R1 运行 Z-Stack 3 固件(基于版本 4.40.00.44)。您可以使用 TI 的 UNIFLASH 闪存
CC2652R_20210120.hex
。 - Electrolama zzh CC2652R 和 Slaesh CC2652R 随身棒运行 Z-Stack 3 固件(基于版本 4.40.00.44)。您可以使用 cc2538-bsl 分别闪存
CC2652R_20210120.hex
或CC2652RB_20210120.hex
。 - 运行 Z-Stack Home 1.2 的 CC2531。如果您的随身棒已经具有串行引导加载程序,您可以直接使用
zigpy_znp
将CC2531ZNP-Prod.bin
闪存到您的随身棒:python -m zigpy_znp.tools.flash_write -i /path/to/CC2531ZNP-Prod.bin /dev/serial/by-id/YOUR-CC2531
。
德州仪器芯片产品编号
德州仪器(TI)拥有许多不同的无线MCU芯片,它们在开源Zigbee世界中都被使用/提及,如果你是初学者,可能会感到有些令人畏惧。以下是部分编号和关键特性的快速总结。
支持的较新一代TI芯片
仅2.4GHz频率的芯片
- CC2652R:仅2.4GHz的IEEE 802.15.4多协议(Zigbee、蓝牙、Thread、支持IPv6的IEEE 802.15.4g智能对象如6LoWPAN和专有系统)无线MCU。采用Cortex-M0核心用于射频栈和Cortex-M4F核心用于应用程序,拥有充足的RAM。提供来自TI的免费编译器选项。
- CC2652RB:与CC2652R引脚兼容的“无晶振”CC2652R(如果您要构建自己的zzh并省略晶振,则可以使用它),但不兼容固件。
- CC2652P:内置射频PA的CC2652R。与CC2652R/CC2652RB neither 引脚兼容也兼容固件。
多频率芯片
- CC1352R:亚1 GHz & 2.4 GHz无线MCU。本质上与CC2652R相同,但额外包含一个亚1GHz射频。
- CC1352P:内置射频PA的CC1352R。
支持的较旧一代TI芯片
- CC2538:2.4GHz Zigbee、6LoWPAN和IEEE 802.15.4无线MCU。采用ARM Cortex-M3核心,配备512kB闪存和32kB RAM。
- CC2531:内置UART/TTL到USB桥接器的CC2530。用于到处销售的廉价“Zigbee sticks”。采用Intel 8051核心,256闪存,只有8kB RAM。
- CC2530:2.4GHz Zigbee和IEEE 802.15.4无线MCU。采用Intel 8051核心,256闪存,只有8kB RAM。
辅助TI芯片
- CC2591和CC2592:2.4 GHz范围扩展器。这些不是无线MCU,只是同一封装中的辅助PA(功率放大器)和LNA(低噪声放大器),以改善任何2.4 GHz射频芯片的RF(射频)范围。
通过PyPI发布
标记版本也将通过PyPI发布
- https://pypi.ac.cn/project/zigpy-znp/
- https://pypi.ac.cn/project/zigpy-znp/#history
- https://pypi.ac.cn/project/zigpy-znp/#files
外部文档和参考
如何贡献
如果您想为此项目贡献代码或文档,我们建议您遵循以下指南中的步骤
- https://github.com/firstcontributions/first-contributions/blob/master/README.md
- https://github.com/firstcontributions/first-contributions/blob/master/github-desktop-tutorial.md
相关项目
Zigpy
zigpy 是一个将 Zigbee协议栈 集成到Python库中以实现 Zigbee智能家居 标准的项目。使用 zigpy 进行Zigbee智能家居集成,您可以使用与 zigpy 兼容的Zigbee射频库模块之一连接许多现成的Zigbee适配器,以控制Zigbee设备。目前支持控制二进制传感器(例如运动和门传感器)、模拟传感器(例如温度传感器)、灯泡、开关和风扇等Zigbee设备类型。zigpy与 Home Assistant 的 ZHA组件 紧密集成,并为与Zigbee网络一起工作提供了一个用户友好的界面。
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。