Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ZigbeeNet is a community project #167

Closed
Mr-Markus opened this issue Sep 11, 2021 · 0 comments
Closed

ZigbeeNet is a community project #167

Mr-Markus opened this issue Sep 11, 2021 · 0 comments

Comments

@Mr-Markus
Copy link
Owner

How ZigbeeNet started

This project was started by me in 2018, because I searched for a solution to control my light bulbs, window and temperature sensors. After a short time I found Zigbee as a standard that is cross manufacturer supported (so I thought). I read more about Zigbee and liked the concept behind it. So I looked which hardware I will need and found the Texas Instrument CC2531 USB dongle which is very cheap and easy to get. But because the hardware only is not enough I looked how I can use it and develop an software with it. So I found the Texas Instruments UNPI protocol and started to implement it. Because during this time I mostly developed with Microsoft .NET Standard and Core it was clear that I use this programming language or technology.

UNPI

At first I created an .NET implementation of the Texas Instruments UNPI protocol, so that I was able to send and receive messages from my CC2531 USB dongle. I decided to split it into an own repository unpi-net, because it is independently from Zigbee.

First steps

After a short time I was able to send and receive messages from the CC2531, but this were no Zigbee, but only hardware specific messages. So I started to read Zigbee documents and learned how it works and messages are build. With this information I created my first Zigbee classes, but was not able to control my light bulb, because at first it was necessary to implement some infrastructure code for e.g. build up a Zigbee network with my coordinator and pair my device. This took a lot of time and I was programming a while without any success, because my light bulb was still off. Then I realized how much work and time I was invest just to turn a light bulb on and off (crazy).

First successes

After a few weeks of work (luckily it was winter) I was able to turn on my light bulb and was so happy about that. Wow, now I was able to turn a light bulb on and off (lol). But this was a huge success for me, because I implemented a world wide standard from ground up by my self during my free time.

Why open source

I already realized that it was the beginning of a bigger project, because the infrastructure makes it possible to implement more Zigbee clusters and control so many devices from many different customers. So I invested more time in reading documents and searched for other Zigbee devices. The european market is very clear if you search for Zigbee devices for all that available clusters, but I thought if I don't own them, maybe anybody else will and is also looking for an library to control them by him or her self. This was the point I decided to think about make my code public to share this great core code with other developers all over the world.
I have never done this before so it was my first open source project. When i published the repository to the public world on GitHub I received the first issues and feedback to my project. During this time I learned so much new things about the open source world and processes. This pushed me so much that I continued to work on this project.

More hardware support

With the first issues I was asked about adding support for other manufacturer hardware. Because I started with one specific hardware my solution was not very flexible and I had to change the architecture. So I tried some different approaches and looked for other hardware implementations until I found a Java Implementation from @cdjackson and @zsmartsystems here which has a modular architecture that I liked. I began to understand this project, used their concepts and convert some code it into .NET. At this point I would say thank you to @nicolaiw who supported me so much with this process.
We also opened an issue at this repository here to say thank you, but unfortunately didn't received any answer to it.

After this work was done ZigbeeNet was able to support any hardware, but because there are so many manufactures out there I am not able to buy all of them, so I asked for some help and received the first Pull Requests for further hardware. With this possibilities the popularity grew more and more, but also the issues.

Current situation

Because I could not own and understand all different hardware it is not possible for me to help you all like I would. Also I think that you expect more help if you create an issue here.

At this point I would make an appeal to other developers to help other developers with their problems.

My thoughts about Zigbee's future

I started this project about four years ago and Zigbee is still popular around the world. But more for lightning and some simpler sensors like door or temperature than it has potential (motors, heat pumps, etc). Also the manufacturers like Philips with their Hue system are implementing so much individual stuff that they are not always compatible with other manufacturers and devices. For me this is a missing of the Zigbee Alliance (As of May 11, 2021, the Zigbee Alliance has been rebranded to Connectivity Standards Alliance (CSA) ). The CSA should better control the manufacturers so that the core concept of Zigbee is covered. Also there are not enough Zigbee devices on the market that it will be interesting for bigger projects. Even if there will be Matter as a new standard technology in the future I am not sure if it will solve this problems, because Zigbee was able to do that in the past, but hasn't aimed it. All bigger players like Google, Amazon or Apple which are part of the CSA only aim one target for me: Do the best for their individual solution (like Alexa)

Future of ZigbeeNet

Because of that concerns and also my personal use needs more devices as Zigbee or better say the manufacturer provide on the market I will use other technologies like KNX in the future, too. This will cause that I will not invest too much time in implementing new features into this project. But I will always look excited at your issues and pull requests. So feel free to use this library, share your thoughts and code, because it will help other developers, too.

Cheers!

@Mr-Markus Mr-Markus pinned this issue Sep 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant