zigpy es un proyecto de integración de pila de protocolos Zigbee independiente del hardware para implementar las especificaciones estándar de Zigbee como una biblioteca Python 3.
La integración de Zigbee a través de zigpy le permite conectar uno de los muchos adaptadores Zigbee Coordinator disponibles en el mercado utilizando uno de los módulos de biblioteca de radio Zigbee disponibles compatibles con zigpy para controlar dispositivos basados en Zigbee. Actualmente existe soporte para controlar tipos de dispositivos Zigbee, como sensores binarios (por ejemplo, sensores de movimiento y de puerta), sensores (por ejemplo, sensores de temperatura), luces, interruptores, botones, cubiertas, ventiladores, equipos de control de clima, cerraduras y sistemas de alarma contra intrusos. dispositivos. Tenga en cuenta que los dispositivos Zigbee Green Power actualmente no son compatibles.
Las pilas Zigbee y el hardware de muchos fabricantes de chips de hardware diferentes son compatibles a través de bibliotecas de radio que traducen su protocolo de comunicación patentado en una API común que se comparte entre todas las bibliotecas de radio para zigpy. Si alguna pila Zigbee o hardware Zigbee Coordinator de otros fabricantes aún no es compatible con zigpy, es posible que cualquier desarrollador independiente avance y desarrolle una nueva biblioteca de radio para zigpy que traduzca su protocolo de comunicación patentado a la API común que zigpy pueda comprender. .
zigpy contiene código común que implementa la gestión del estado de la aplicación ZCL (Zigbee Cluster Library) y ZDO (Zigbee Device Object) que está siendo utilizado por varias bibliotecas de radio que implementan la interfaz real con los módulos de radio de diferentes fabricantes. Las bibliotecas de radio independientes interactúan con módulos/adaptadores de hardware de radio a través de USB y GPIO utilizando diferentes protocolos serie UART nativos.
El componente de integración ZHA para Home Assistant , el complemento Zigbee para Domoticz y el complemento Zigbee para Jeedom (software de automatización del hogar de código abierto de la competencia) utilizan bibliotecas zigpy como dependencias, como tales, podrían usarse como referencias de diferentes implementaciones si se busca. para integrar una solución Zigbee en su aplicación.
zigpy tiene la capacidad de descargar y realizar Zigbee OTAU (actualizaciones inalámbricas) del firmware de dispositivos Zigbee. Los archivos de imagen del firmware de actualización de Zigbee OTA deben ajustarse al formato estándar de Zigbee OTA y las URL de origen del proveedor de OTA deben publicarse para su disponibilidad pública. Las actualizaciones desde un directorio de actualizaciones OTA local también son compatibles y se pueden usar como una opción para actualizaciones de firmware fuera de línea si el usuario proporciona ellos mismos los archivos de firmware con formato Zigbee OTA correctos.
Actualmente, la compatibilidad con la descarga automática de proveedores OTA en línea existentes en código de proveedor OTA en zigpy solo está disponible para dispositivos IKEA, Inovelli, LEDVANCE/OSRAM, SALUS/Computime y SONOFF/ITEAD. Se podría agregar a zigpy soporte para proveedores OTA adicionales para dispositivos de otros fabricantes en el futuro, si los fabricantes de dispositivos publican públicamente sus imágenes de firmware y los desarrolladores contribuyen con el código de descarga necesario para ellas.
Para obtener instrucciones específicas sobre cómo instalar y probar zigpy o contribuir con informes de errores y código a este proyecto, consulte las pautas en el archivo CONTRIBUTING.md:
Este archivo CONTRIBUTING.md contendrá información sobre el uso de zigpy, prueba de nuevas versiones, solución de problemas e informes de errores, así como biblioteca + instrucciones de código para desarrolladores y más. Este archivo también contiene breves resúmenes y enlaces a otros proyectos relacionados que dependen directa o indirectamente de las bibliotecas zigpy.
Puede contribuir a este proyecto como usuario final, tester (usuario avanzado que contribuye con informes de errores/problemas constructivos) o como desarrollador que contribuye con código.
Las bibliotecas de radio para zigpy son proyectos separados con sus propios repositorios e incluyen fuelles (para comunicarse con radios basadas en Silicon Labs EmberZNet), zigpy-deconz (para comunicarse con radios basadas en deCONZ de Dresden Elektronik) y zigpy-xbee (para comunicarse con radios basadas en XBee). radios Zigbee), zigpy-zigate para comunicarse con radios basadas en ZiGate, zigpy-znp o zigpy-cc para comunicarse con radios basadas en Texas Instruments que tienen firmware del coordinador Z-Stack ZNP.
¡Nota! La compatibilidad o no con Zigbee 3.0 en zigpy depende principalmente del hardware de su coordinador Zigbee y su firmware. Algunos hardware del coordinador Zigbee son compatibles con Zigbee 3.0, pero es posible que se envíen con un firmware anterior que no lo admite, en cuyo caso es posible que desee actualizar el firmware manualmente usted mismo. Es posible que algún otro hardware coordinador Zigbee no admita un firmware que sea compatible con Zigbee 3.0, pero aun así puede ser completamente funcional y tener todas las funciones necesarias para sus necesidades (esto es muy común ya que muchos, si no la mayoría, de los dispositivos Zigbee aún no tienen Zigbee 3.0 o no lo son). compatible con versiones anteriores con un perfil Zigbee compatible con el hardware de su coordinador Zigbee y su firmware). Como regla general, el hardware coordinador Zigbee más nuevo lanzado normalmente puede admitir el firmware Zigbee 3.0 y depende de su fabricante poner dicho firmware a su disposición.
También se lanzan nuevos paquetes de versiones etiquetadas a través del proyecto "zigpy" en PyPI.
Los paquetes más antiguos de versiones etiquetadas todavía están disponibles en el proyecto "zigpy-homeassistant" en PyPI
Los paquetes de versiones etiquetadas de las bibliotecas de radio se publican a través de proyectos separados en PyPI.