Comments (17)
Hey there,
the port of the code was really fun. And I will participate in the future too. So please let me know if help is needed.
I will leave a comment regarding the tested device on the foreseen issue.
I will close this issue if this is ok for you.
from zigbeenet.
Here the project structure I would suggest for your implementation:
We use Shared Projects for the implementation in the src folder and create a specific target framework project in targets folder which references to it, so that we can support muliptle plattfroms
from zigbeenet.
Sounds great!
I think that it would be the best way to create a PR if all work is done. Otherwise we have not-runnable code in the master branch
A short tip for the change from shared project to netstandard:
I created a new netstandard library in another directory with same name as the shared library project, copied only the new *.csproj into the same directory as the *.shproj file and replaced the reference via editor in the sln file with the new *.csproj file and removed the old *.shproj files from the project.
And that's it 😊
from zigbeenet.
Hi @Mr-Markus,
I’m almost done. I extended the playground project to be able to choose the dongle by arguments. I will commit and sync this soon. This week for sure. I already tested the digi xbee device but I still have some problems. If I start my coordinator and then switch on a router device (hue bulb) I get notified. My nodes get updated also. But if I try to switch off the light it is not working yet because of missing endpoint information. I think it is an configuration thing but I’m not sure. So I think the PR will be soon.
I will remove the old structure immediately too.
Best regards!
from zigbeenet.
Hello @Mr-Markus,
I tested my device and it works now. I found out that the reason it didn't work was the fact that the deserialization method of the ZdoCommand was commented out. The uncommenting was done with commit 5c401b2. If I commented this line in again, it worked for me. Can you please tell me why the uncommenting was done? Nevertheless i will create a PR.
from zigbeenet.
Hi @andreasfedermann
the uncommenting was done because of a bug in the CC2531 implementation. It is fixed in commit 481a6a5. Thanks for your tip.
I will check the PR and will merge or comment it if there are any questions
from zigbeenet.
Hi Andreas,
yes there are plans to implement the XBee hardware as next step, too. But we do not have a timeline for this, yet.
It should easily possible to do this, because the library is already designed for hardware seperation.
At the moment we don't have any hardware, yet so this would be the first step. We thought about buying the XStick, but until now we are not sure which hardware specific differences are between the XBee devices and what it means for the implementation.
Do you already have one and can tell us something about them?
Thanks
from zigbeenet.
I own an S2C device with the XB24C product family and form factor TH (Through Hole). I use it in conjunction with a waveshare arpi600 board which extends my Raspberry PI 3B+. I don't know what the exact differences between the XStick and Xbee devices are either. I tested the Xbee device with the X-CTU from digi to control my philips hue. That already worked. But because of the lack of existing .net libraries I paused my project some months ago.
But now its worth it to reactivate my project and test your lib. Maybe I could try to implement the Xbee hardware if you agree with it.
from zigbeenet.
Ok, I understand.
I would appreciate if you would try to implement it and would help you at any time if you need help.
As I told before the libary is still designed for further hardware implementation. Your main entry point would be a Manager or dongle class that implements the IZigBeeTransportTransmit
interface.
As an example you can use the ZigBeeDongleTiCc2531 class.
It would also be helpful for you to look here:
https://github.com/zsmartsystems/com.zsmartsystems.zigbee/tree/master/com.zsmartsystems.zigbee.dongle.xbee
https://github.com/zsmartsystems/com.zsmartsystems.zigbee/tree/master/com.zsmartsystems.zigbee.dongle.xbee.autocode
The architecture at this repo is very well and the abstraction is implemented very well too, so that we created this repo with .netstandard technology and translated it mostly from java to c#
So it should be much easier for you to understand it. Otherwise don't hesitate in contacting me 😊
from zigbeenet.
I really like that shared project approach. I only used linked files until now. But I have one question. What about other product families which are not a dongle. Shall these products be supported in the future too? Maybe they are already supported with the reference (java) implementation. I am struggling a bit with the naming of the class. The word dongle in the class name is maybe not sufficient enough. Shouldn't the name be more neutral? Maybe ZigBeeDigiXBee?
I want to provide unit tests as well. Do you prefer any unit test framework?
from zigbeenet.
Yes, I would like to get this library as flexible as possible. I already saw IP Gateways from Digi for example and it would be great if they would also be supported. Did you mean that?
I am not really sure about Xbee plattform and it's protocol but if the only difference would be the transmit then the "Dongle" class should be named more natural.
We already talked about Unit tests and prefered XUnit in issue #20 but haven't realised them until now :-)
from zigbeenet.
@andreasfedermann
How is the current status for the implementation?
Please see #44 for important changes to the project structure
from zigbeenet.
Hi Markus,
I’m currently working on the auto code project which is based on system codedom. I created a fork for that. When do you think is it appropriate to create a pull request? Should I finish the complete implementation including the digi xbee stack first?
I’ll merge the latest changes into my fork as soon as possible.
from zigbeenet.
@andreasfedermann
First at all...thank you for your effort! I just had a look at your work and just in case you didn't noticed...could you please shift your ZigBeeNet.Digi.XBee.CodeGenerator project to the src folder before sending a PR ?
Again.. Thank you!
from zigbeenet.
Hi @andreasfedermann ,
I took a look on your fork and it's code and it looks great. How much work do you think is still needed for a PR?
One thing: The path ZigbeeNet/targets/ZigBeeNet.Hardware.Digi.XBee.core2.2/ and it's content looks like remains from the old shared project structure. Please remove it before you create a PR
Many thanks!!!
from zigbeenet.
@andreasfedermann
Thank you very much for your work! Could you tell us which devices and commands you successfully tested with the Digi Xbee Hardware so we can adjust the readme and wiki pls?
Thank you
Best Regards
from zigbeenet.
I think it's ok to close this issue.
Thank you!
from zigbeenet.
Related Issues (20)
- Replace SeriLog with Microsoft.Extensions.Logging HOT 3
- Serial connection dies every 59 minutes HOT 14
- Missing cluster, but message came from device
- Conbee 2 Timeout / Unresponsive HOT 1
- Reliable way to detect dongle disconnects HOT 3
- ConBee II connected but all the values are 0 or null
- Get device state HOT 2
- Nuget packages out of date? HOT 3
- Issue in RequestKey command(send by sleepy end device) handling by coordinator for Ember hardware HOT 1
- Make the classes less private & more protected so we can extend some classes. HOT 2
- ZigBeeKey(string keyString) doesn't correctly parse hex HOT 1
- Correct settings for XBee? HOT 2
- ZigbeeNet is a community project
- How can i replace my dongle?
- Data transfer using CC2531
- Permit Join with XBee
- Sonoff zigbee 3.0 dongle not starting... HOT 2
- How to read data from CC2530?
- Can i add support for zigbee devices? HOT 1
- Support for CC2652 ? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zigbeenet.