zigpy是一個獨立於硬體的Zigbee 協定堆疊整合項目,用於將Zigbee標準規範實作為 Python 3 函式庫。
透過 zigpy 進行 Zigbee 整合可讓您使用與 zigpy 相容的可用 Zigbee 無線電庫模組之一來連接許多現成的 Zigbee 協調器適配器之一,以控制基於 Zigbee 的裝置。目前支援控制 Zigbee 設備類型,例如二進位感測器(例如運動和門感測器)、感測器(例如溫度感測器)、燈、開關、按鈕、蓋子、風扇、氣候控制設備、鎖和入侵者警報系統設備。請注意,目前不支援 Zigbee Green Power 設備。
許多不同硬體晶片製造商的 Zigbee 堆疊和硬體均透過無線電庫獲得支持,這些無線電庫將其專有通訊協定轉換為通用 API,該 API 在所有 zigpy 無線電庫之間共享。如果 zigpy 尚不支援其他製造商的某些 Zigbee 堆疊或 Zigbee 協調器硬件,則任何獨立開發人員都可以為 zigpy 開發新的無線電庫,將其專有通訊協定轉換為 zigpy 可以理解的通用 API 。
zigpy 包含實作 ZCL(Zigbee 叢集庫)和 ZDO(Zigbee 設備物件)應用程式狀態管理的通用程式碼,該程式碼被各種無線電庫使用,實現與不同製造商的無線電模組的實際介面。單獨的無線電庫使用不同的本機 UART 串聯協定透過 USB 和 GPIO 與無線電硬體適配器/模組連接。
Home Assistant 的 ZHA 整合元件、Domoticz 的 Zigbee 外掛程式和 Jeedom 的 Zigbee 外掛程式(競爭性開源家庭自動化軟體)都使用 zigpy 庫作為依賴項,因此,如果查看的話,它們可以用作不同實現的參考將Zigbee 解決方案整合到您的應用程式中。
zigpy 能夠下載並執行 Zigbee 裝置韌體的 Zigbee OTAU(無線更新)。 Zigbee OTA 更新韌體映像檔應符合標準 Zigbee OTA 格式,並且需要發布 OTA 提供者來源 URL 以供公眾使用。也支援從本地 OTA 更新目錄進行更新,如果用戶自己提供正確的 Zigbee OTA 格式的韌體文件,則可以將其用作離線韌體更新的選項。
目前,僅支援 IKEA、Inovelli、LEDVANCE/OSRAM、SALUS/Computime 和 SONOFF/ITEAD 設備從 zigpy OTA 提供者代碼中的現有線上 OTA 提供者自動下載。如果設備製造商公開發布其韌體映像並且開發人員為其提供所需的下載代碼,則 zigpy 將來可能會添加對其他製造商設備的其他 OTA 提供者的支援。
有關如何安裝和測試 zigpy 或向該專案貢獻錯誤報告和程式碼的具體說明,請參閱 CONTRIBUTING.md 檔案中的指南:
此 CONTRIBUTING.md 檔案將包含有關使用 zigpy、測試新版本、故障排除和錯誤報告的信息,以及面向開發人員的庫 + 代碼說明等。該文件還包含簡短的摘要以及直接或間接依賴 zigpy 庫的其他相關項目的連結。
您可以作為最終用戶、測試人員(貢獻建設性問題/錯誤報告的高級用戶)或作為貢獻程式碼的開發人員為該專案做出貢獻。
zigpy 的無線電庫是獨立的項目,擁有自己的存儲庫,包括波紋管(用於與 Silicon Labs 基於 EmberZNet 的無線電通信)、 zigpy-deconz (用於與 Dresden Elektronik 的基於 deCONZ 的無線電通信)和zigpy- xbee (用於與基於 XBee 的無線電通信) Zigbee 無線電)、 zigpy-zigate用於與基於 ZiGate 的無線電通信, zigpy-znp或zigpy-cc用於與具有Z-Stack ZNP 協調器固件的德州儀器(TI ) 無線電通訊。
筆記! zigpy 是否支援 Zigbee 3.0 主要取決於您的 Zigbee 協調器硬體及其韌體。某些 Zigbee 協調器硬體支援 Zigbee 3.0,但可能附帶不支援 Zigbee 3.0 的舊韌體,在這種情況下,您可能需要自己手動升級韌體。其他一些Zigbee 協調器硬體可能根本不支援支援Zigbee 3.0 的韌體,但仍然可以完全滿足您的需求,(這種情況很常見,因為許多(如果不是大多數)Zigbee 設備尚未支援Zigbee 3.0 或正在支援Zigbee 3.0。作為一般規則,較新發布的 Zigbee 協調器硬體通常可以支援 Zigbee 3.0 固件,並且由其製造商提供此類韌體。
新的標記版本包也透過 PyPI 上的「zigpy」專案發布
PyPI 上的「zigpy-homeassistant」專案中仍提供較舊的標記版本包
無線電庫的標記版本包透過 PyPI 上的單獨項目發布