zigpy é um projeto de integração de pilha de protocolos Zigbee independente de hardware para implementar especificações padrão Zigbee como uma biblioteca Python 3.
A integração Zigbee via zigpy permite que você conecte um dos muitos adaptadores Zigbee Coordinator disponíveis no mercado usando um dos módulos de biblioteca de rádio Zigbee disponíveis compatíveis com zigpy para controlar dispositivos baseados em Zigbee. Atualmente há suporte para controlar tipos de dispositivos Zigbee, como sensores binários (por exemplo, sensores de movimento e de porta), sensores (por exemplo, sensores de temperatura), luzes, interruptores, botões, tampas, ventiladores, equipamentos de controle climático, fechaduras e sistema de alarme de intrusão. dispositivos. Observe que os dispositivos Zigbee Green Power atualmente não são suportados.
Pilhas Zigbee e hardware de diversos fabricantes de chips de hardware são suportados por bibliotecas de rádio que traduzem seu protocolo de comunicação proprietário em uma API comum que é compartilhada entre todas as bibliotecas de rádio para zigpy. Se alguma pilha Zigbee ou hardware Zigbee Coordinator de outros fabricantes ainda não for suportado pelo zigpy, é possível para qualquer desenvolvedor independente intensificar e desenvolver uma nova biblioteca de rádio para o zigpy que traduza seu protocolo de comunicação proprietário na API comum que o zigpy pode entender .
zigpy contém código comum que implementa o gerenciamento de estado do aplicativo ZCL (Zigbee Cluster Library) e ZDO (Zigbee Device Object) que está sendo usado por várias bibliotecas de rádio que implementam a interface real com os módulos de rádio de diferentes fabricantes. As bibliotecas de rádio separadas fazem interface com adaptadores/módulos de hardware de rádio via USB e GPIO usando diferentes protocolos seriais UART nativos.
O componente de integração ZHA para Home Assistant , o Zigbee Plugin para Domoticz e o Zigbee Plugin para Jeedom (software de automação residencial de código aberto concorrente) estão todos usando bibliotecas zigpy como dependências, portanto, podem ser usadas como referências de diferentes implementações se você estiver procurando para integrar uma solução Zigbee em sua aplicação.
O zigpy tem a capacidade de baixar e executar Zigbee OTAU (Atualizações Over-The-Air) de firmware de dispositivos Zigbee. Os arquivos de imagem de firmware de atualização Zigbee OTA devem estar em conformidade com o formato Zigbee OTA padrão e os URLs de origem do provedor OTA precisam ser publicados para disponibilidade pública. Atualizações de um diretório de atualização OTA local também são suportadas e podem ser usadas como uma opção para atualizações de firmware offline se o próprio usuário fornecer arquivos de firmware formatados Zigbee OTA corretos.
O suporte para download automático de provedores OTA on-line existentes no código de provedor OTA zigpy está atualmente disponível apenas para dispositivos IKEA, Inovelli, LEDVANCE/OSRAM, SALUS/Computime e SONOFF/ITEAD. O suporte para provedores OTA adicionais para dispositivos de outros fabricantes poderia ser adicionado ao zigpy no futuro, se os fabricantes de dispositivos publicassem suas imagens de firmware publicamente e os desenvolvedores contribuíssem com o código de download necessário para eles.
Para obter instruções específicas sobre como instalar e testar o zigpy ou contribuir com relatórios de bugs e código para este projeto, consulte as diretrizes no arquivo CONTRIBUTING.md:
Este arquivo CONTRIBUTING.md conterá informações sobre como usar o zigpy, testar novos lançamentos, solucionar problemas e relatar erros, bem como instruções de biblioteca + código para desenvolvedores e muito mais. Este arquivo também contém breves resumos e links para outros projetos relacionados que dependem direta ou indiretamente das bibliotecas zigpy.
Você pode contribuir para este projeto como usuário final, testador (usuário avançado contribuindo com relatórios construtivos de problemas/bugs) ou como desenvolvedor contribuindo com código.
Bibliotecas de rádio para zigpy são projetos separados com seus próprios repositórios e incluem fole (para comunicação com rádios baseados em Silicon Labs EmberZNet), zigpy-deconz (para comunicação com rádios baseados em deCONZ da Dresden Elektronik) e zigpy-xbee (para comunicação com rádios baseados em XBee Rádios Zigbee), zigpy-zigate para comunicação com rádios baseados em ZiGate, zigpy-znp ou zigpy-cc para comunicação com rádios baseados na Texas Instruments que possuem firmware de coordenador Z-Stack ZNP.
Observação! O suporte do Zigbee 3.0 ou não no zigpy depende principalmente do hardware do seu coordenador Zigbee e de seu firmware. Alguns hardwares coordenadores Zigbee suportam Zigbee 3.0, mas podem ser enviados com um firmware mais antigo que não o faz; nesse caso, você mesmo pode querer atualizar o firmware manualmente. Alguns outros hardwares coordenadores Zigbee podem não suportar um firmware capaz de Zigbee 3.0, mas ainda podem ser totalmente funcionais e completos para suas necessidades (isso é muito comum, pois muitos, se não a maioria dos dispositivos Zigbee, ainda não suportam Zigbee 3.0 ou são compatível com versões anteriores com um perfil Zigbee que é suportado pelo hardware do coordenador Zigbee e seu firmware). Como regra geral, o hardware coordenador Zigbee mais recente lançado normalmente pode suportar o firmware Zigbee 3.0 e cabe ao fabricante disponibilizar esse firmware para eles.
Novos pacotes de versões marcadas também são lançados através do projeto “zigpy” no PyPI
Pacotes mais antigos de versões marcadas ainda estão disponíveis no projeto “zigpy-homeassistant” no PyPI
Pacotes de versões marcadas das bibliotecas de rádio são lançados por meio de projetos separados no PyPI