zigpy — это аппаратно-независимый проект интеграции стека протоколов Zigbee для реализации стандартных спецификаций Zigbee в виде библиотеки Python 3.
Интеграция Zigbee через zigpy позволяет подключить один из множества имеющихся в наличии адаптеров координатора Zigbee, используя один из доступных модулей радиобиблиотеки Zigbee, совместимых с zigpy, для управления устройствами на базе Zigbee. В настоящее время поддерживается управление типами устройств Zigbee, такими как бинарные датчики (например, датчики движения и дверей), датчики (например, датчики температуры), освещение, переключатели, кнопки, крышки, вентиляторы, оборудование климат-контроля, замки и система охранной сигнализации. устройства. Обратите внимание, что устройства Zigbee Green Power в настоящее время не поддерживаются.
Стеки и оборудование Zigbee от многих различных производителей аппаратных чипов поддерживаются через библиотеки радиосвязи, которые преобразуют их собственный протокол связи в общий API, который используется всеми библиотеками радиосвязи для zigpy. Если какое-либо оборудование Zigbee стека или Zigbee координатора для других производителей еще не поддерживается zigpy, любой независимый разработчик может разработать новую радиобиблиотеку для zigpy, которая преобразует его собственный протокол связи в общий API, понятный zigpy. .
zigpy содержит общий код, реализующий управление состоянием приложений ZCL (Zigbee Cluster Library) и ZDO (Zigbee Device Object), который используется различными радиобиблиотеками, реализующими реальный интерфейс с радиомодулями разных производителей. Отдельные радиобиблиотеки взаимодействуют с адаптерами/модулями радиооборудования через USB и GPIO, используя различные собственные последовательные протоколы UART.
Компонент интеграции ZHA для Home Assistant , плагин Zigbee для Domoticz и плагин Zigbee для Jeedom (конкурирующее программное обеспечение для домашней автоматизации с открытым исходным кодом) используют библиотеки zigpy в качестве зависимостей, поэтому их можно использовать в качестве ссылок на различные реализации, если посмотреть для интеграции решения Zigbee в ваше приложение.
zigpy имеет возможность загружать и выполнять Zigbee OTAU (беспроводные обновления) прошивок устройств Zigbee. Файлы изображений прошивки обновления Zigbee OTA должны соответствовать стандартному формату Zigbee OTA, а исходные URL-адреса поставщиков OTA должны быть опубликованы для публичного доступа. Обновления из локального каталога обновлений OTA также поддерживаются и могут использоваться в качестве опции для автономных обновлений прошивки, если пользователь сам предоставит правильные файлы прошивки в формате Zigbee OTA.
Поддержка автоматической загрузки от существующих онлайн-провайдеров OTA в коде поставщика zigpy OTA в настоящее время доступна только для устройств IKEA, Inovelli, LEDVANCE/OSRAM, SALUS/Computime и SONOFF/ITEAD. Поддержка дополнительных поставщиков OTA для устройств других производителей может быть добавлена в zigpy в будущем, если производители устройств опубликуют общедоступные образы своих прошивок, а разработчики предоставят для них необходимый код загрузки.
Конкретные инструкции по установке и тестированию zigpy или добавлению отчетов об ошибках и кода в этот проект см. в инструкциях в файле CONTRIBUTING.md:
Этот файл CONTRIBUTING.md будет содержать информацию об использовании zigpy, тестировании новых выпусков, устранении неполадок и отчетах об ошибках, а также инструкции по библиотеке и коду для разработчиков и многое другое. Этот файл также содержит краткие описания и ссылки на другие связанные проекты, которые прямо или косвенно зависят от библиотек zigpy.
Вы можете внести свой вклад в этот проект либо в качестве конечного пользователя, тестировщика (продвинутый пользователь, вносящий конструктивные отчеты о проблемах/об ошибках), либо в качестве разработчика, вносящего свой код.
Радиобиблиотеки для zigpy представляют собой отдельные проекты со своими собственными репозиториями и включают в себя сильфоны (для связи с радиостанциями Silicon Labs на базе EmberZNet), zigpy-deconz (для связи с радиостанциями на базе deCONZ от Dresden Elektronik) и zigpy-xbee (для связи с радиостанциями на базе XBee). Zigbee Radios), zigpy-zigate для связи с радиостанциями на базе ZiGate, zigpy-znp или zigpy-cc для связь с радиостанциями на базе Texas Instruments, имеющими прошивку координатора Z-Stack ZNP.
Примечание! Поддержка или отсутствие Zigbee 3.0 в zigpy зависит в первую очередь от оборудования вашего координатора Zigbee и его прошивки. Некоторое оборудование координатора Zigbee поддерживает Zigbee 3.0, но может поставляться со более старой прошивкой, которая ее не поддерживает, и в этом случае вам может потребоваться обновить прошивку вручную. Некоторое другое оборудование координатора Zigbee может вообще не поддерживать прошивку, поддерживающую Zigbee 3.0, но при этом быть полностью функциональной и иметь полный набор функций для ваших нужд (это очень распространенная ситуация, поскольку многие, если не большинство устройств Zigbee, еще не поддерживают Zigbee 3.0 или уже поддерживают ее. обратно совместим с профилем Zigbee, который поддерживается вашим аппаратным обеспечением координатора Zigbee и его прошивкой). Как правило, новое выпущенное оборудование координатора Zigbee обычно может поддерживать прошивку Zigbee 3.0, и производитель должен сделать такую прошивку доступной для них.
Новые пакеты версий с тегами также выпускаются через проект zigpy на PyPI.
Старые пакеты версий с тегами по-прежнему доступны в проекте «zigpy-homeassistant» на PyPI.
Пакеты тегированных версий радиобиблиотек выпускаются через отдельные проекты на PyPI.