zigpy est un projet d'intégration de pile de protocole Zigbee indépendant du matériel pour implémenter les spécifications standard Zigbee en tant que bibliothèque Python 3.
L'intégration de Zigbee via zigpy vous permet de connecter l'un des nombreux adaptateurs de coordinateur Zigbee disponibles dans le commerce à l'aide de l'un des modules de bibliothèque radio Zigbee disponibles compatibles avec zigpy pour contrôler les appareils basés sur Zigbee. Il existe actuellement une prise en charge pour contrôler les types d'appareils Zigbee tels que les capteurs binaires (par exemple, les capteurs de mouvement et de porte), les capteurs (par exemple, les capteurs de température), les lumières, les interrupteurs, les boutons, les couvercles, les ventilateurs, les équipements de climatisation, les serrures et le système d'alarme anti-intrusion. appareils. Notez que les appareils Zigbee Green Power ne sont actuellement pas pris en charge.
Les piles Zigbee et le matériel de nombreux fabricants de puces matérielles sont pris en charge via des bibliothèques radio qui traduisent leur protocole de communication propriétaire en une API commune partagée entre toutes les bibliothèques radio pour zigpy. Si une pile Zigbee ou un matériel de coordinateur Zigbee pour d'autres fabricants n'est pas encore pris en charge par zigpy, il est possible pour tout développeur indépendant d'intensifier et de développer une nouvelle bibliothèque radio pour zigpy qui traduit son protocole de communication propriétaire en API commune que zigpy peut comprendre. .
zigpy contient du code commun implémentant la gestion de l'état des applications ZCL (Zigbee Cluster Library) et ZDO (Zigbee Device Object) qui est utilisé par diverses bibliothèques radio implémentant l'interface réelle avec les modules radio de différents fabricants. Les bibliothèques radio distinctes s'interfacent avec des adaptateurs/modules matériels radio via USB et GPIO en utilisant différents protocoles série UART natifs.
Le composant d'intégration ZHA pour Home Assistant , le plugin Zigbee pour Domoticz et le plugin Zigbee pour Jeedom (logiciel domotique open source concurrent) utilisent tous des bibliothèques zigpy comme dépendances, en tant que telles, elles pourraient être utilisées comme références de différentes implémentations si vous recherchez pour intégrer une solution Zigbee dans votre application.
zigpy a la possibilité de télécharger et d'effectuer des mises à jour Zigbee OTAU (Over-The-Air Update) du micrologiciel des appareils Zigbee. Les fichiers image du micrologiciel de mise à jour Zigbee OTA doivent être conformes au format standard Zigbee OTA et les URL sources du fournisseur OTA doivent être publiées pour être accessibles au public. Les mises à jour à partir d'un répertoire de mise à jour OTA local sont également prises en charge et peuvent être utilisées comme option pour les mises à jour du micrologiciel hors ligne si l'utilisateur fournit lui-même les fichiers de micrologiciel au format Zigbee OTA corrects.
La prise en charge du téléchargement automatique à partir des fournisseurs OTA en ligne existants dans le code du fournisseur OTA zigpy n'est actuellement disponible que pour les appareils IKEA, Inovelli, LEDVANCE/OSRAM, SALUS/Computime et SONOFF/ITEAD. La prise en charge de fournisseurs OTA supplémentaires pour les appareils d'autres fabricants pourrait être ajoutée à zigpy à l'avenir, si les fabricants d'appareils publient publiquement leurs images de micrologiciel et que les développeurs fournissent le code de téléchargement nécessaire pour eux.
Pour des instructions spécifiques sur la façon d'installer et de tester zigpy ou de contribuer aux rapports de bogues et au code de ce projet, veuillez consulter les directives dans le fichier CONTRIBUTING.md :
Ce fichier CONTRIBUTING.md contiendra des informations sur l'utilisation de zigpy, le test des nouvelles versions, le dépannage et le rapport de bogues, ainsi que des instructions de bibliothèque + code pour les développeurs et plus encore. Ce fichier contient également de courts résumés et des liens vers d'autres projets connexes qui dépendent directement ou indirectement des bibliothèques zigpy.
Vous pouvez contribuer à ce projet soit en tant qu'utilisateur final, testeur (utilisateur avancé contribuant à des problèmes/rapports de bogues constructifs) ou en tant que développeur contribuant au code.
Les bibliothèques radio pour zigpy sont des projets distincts avec leurs propres référentiels et incluent soufflet (pour communiquer avec les radios basées sur EmberZNet de Silicon Labs), zigpy-deconz (pour communiquer avec les radios basées sur deCONZ de Dresden Elektronik) et zigpy-xbee (pour communiquer avec les radios basées sur XBee). radios Zigbee), zigpy-zigate pour communiquer avec les radios basées sur ZiGate, zigpy-znp ou zigpy-cc pour communiquer avec les radios basées sur Texas Instruments dotées du micrologiciel du coordinateur Z-Stack ZNP.
Note! La prise en charge ou non de Zigbee 3.0 dans zigpy dépend principalement du matériel de votre coordinateur Zigbee et de son firmware. Certains matériels de coordinateur Zigbee prennent en charge Zigbee 3.0 mais peuvent être livrés avec un firmware plus ancien qui ne le fait pas, auquel cas vous souhaiterez peut-être mettre à niveau le firmware manuellement vous-même. Certains autres matériels de coordinateur Zigbee peuvent ne pas prendre en charge un micrologiciel compatible avec Zigbee 3.0, mais peuvent toujours être entièrement fonctionnels et complets pour vos besoins (cela est très courant car de nombreux, sinon la plupart, des appareils Zigbee ne sont pas encore Zigbee 3.0 ou sont rétrocompatible avec un profil Zigbee pris en charge par votre matériel coordinateur Zigbee et son micrologiciel). En règle générale, le nouveau matériel de coordinateur Zigbee publié peut normalement prendre en charge le micrologiciel Zigbee 3.0 et il appartient à son fabricant de mettre ce micrologiciel à leur disposition.
De nouveaux packages de versions balisées sont également publiés via le projet "zigpy" sur PyPI
Les anciens packages de versions étiquetées sont toujours disponibles sur le projet "zigpy-homeassistant" sur PyPI
Les packages de versions balisées des bibliothèques radio sont publiés via des projets distincts sur PyPI