{"id":149,"date":"2017-06-10T07:48:00","date_gmt":"2017-06-10T07:48:00","guid":{"rendered":"http:\/\/www.arvisc.info\/?p=149"},"modified":"2017-06-10T07:48:00","modified_gmt":"2017-06-10T07:48:00","slug":"zigbee-with-python","status":"publish","type":"post","link":"https:\/\/www.arvisc.info\/?p=149","title":{"rendered":"Zigbee with Python"},"content":{"rendered":"<p>With my custom made devices I&#8217;m using custom data structures and ZigBee is used only as a data transport protocol. However, having more and more standard ZigBee devices available, I started to look for some standard ZigBee features implementation in Python. Unfortunately wasn&#8217;t really able to find anything which would fit the purpose &#8211; ZigBee feature implementation decoupled from manufacturer specific elements and covering ZDO\/ZCL processing\/parsing as per ZigBee standard.<\/p>\n<p>There are usually three groups of references coming up in search results:<\/p>\n<ul>\n<li><a href=\"https:\/\/pypi.python.org\/pypi\/XBee\">XBEE <\/a>python package, which provides a tool which handles XBEE api, however has nothing to do with ZigBee as such. I&#8217;m already using this library with slight modifications today to handle XBEE api in my application.<\/li>\n<li><a href=\"https:\/\/github.com\/rcloran\/bellows\">bellows <\/a>python package, which gets really close to what I&#8217;m looking for, but is very much linked with specific manufacturer device api.<\/li>\n<li>custom implementations of specific ZigBee ZCL\/ZDO requests for specific devices as part of some project.<\/li>\n<\/ul>\n<p>So I decided to look a bit more into bellows package. Quite quickly I was able to simulate parsing of ZCL\/ZDO messages, but few of the general concepts were not exactly matching my expectations. So to make it work for me either I had to implement EZSP uart protocol in my coordinator device, or rewrite several parts of library which would anyway require quite good understanding of ZDO\/ZCL stuff. Unfortunately neither was looking as a quick and simple option.<\/p>\n<p>The only option left was to dig into ZigBee ZDO\/ZCL details and create some kind of prototype library by myself to get better understanding what I can get out of standard features, the complexity of implementation, and then decide to have another look on bellows package or continue with own library creation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With my custom made devices I&#8217;m using custom data structures and ZigBee is used only as a data transport protocol. However, having more and more standard ZigBee devices available, I started to look for some standard ZigBee features implementation in &hellip; <a href=\"https:\/\/www.arvisc.info\/?p=149\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-149","post","type-post","status-publish","format-standard","hentry","category-automation"],"_links":{"self":[{"href":"https:\/\/www.arvisc.info\/index.php?rest_route=\/wp\/v2\/posts\/149"}],"collection":[{"href":"https:\/\/www.arvisc.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.arvisc.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.arvisc.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arvisc.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=149"}],"version-history":[{"count":3,"href":"https:\/\/www.arvisc.info\/index.php?rest_route=\/wp\/v2\/posts\/149\/revisions"}],"predecessor-version":[{"id":153,"href":"https:\/\/www.arvisc.info\/index.php?rest_route=\/wp\/v2\/posts\/149\/revisions\/153"}],"wp:attachment":[{"href":"https:\/\/www.arvisc.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.arvisc.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.arvisc.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}