WebThingsIO / webthing-arduino

Simple server for ESP8266, ESP32, Ethernet, or WiFi101-compatible boards compliant with Mozilla's proposed WoT API
Mozilla Public License 2.0
206 stars 80 forks source link

W3C WoT compliant Thing Descriptions #154

Open ameerhazo opened 2 years ago

ameerhazo commented 2 years ago

Hello everyone, I'd like to make this library W3C WoT compliant by changing some parts of the code so that the Thing Descriptions that is created and served by the adapter conforms to the current W3C WoT TD specifications. Would this be beneficial for this project as the gateway is currently being developed to consume W3C WoT TDs?

Regards, Ameer Haziq Bin Osman Faculty of Information Technology University of Applied Sciences Dortmund Germany

relu91 commented 2 years ago

I would second this direction! there already some preliminary work done in #139 and #140. You may start from there

benfrancis commented 2 years ago

@ameerhazo That would be very welcome, thank you.

May I suggest you file issues for each change you intend to make and make each change in a separate PR? That will help us to make sure we're being consistent between WebThings libraries (and the gateway), and save wasted work like happened in https://github.com/WebThingsIO/webthing-arduino/pull/140

Thank you!

ameerhazo commented 2 years ago

Hey @benfrancis, @relu91 cool, I'll take a look at the code. By the way, I work as a research assistant at my faculty and we have our own implementation of W3C WoT using Eclipse Kura as our Gateway solution that consumes W3C compliant TDs for our smart devices. I look forward to see how we can improve our implementation and be able to use this library to expose and teach our students about the WoT 👍

Citrullin commented 2 years ago

Hey @benfrancis, @relu91 cool, I'll take a look at the code. By the way, I work as a research assistant at my faculty and we have our own implementation of W3C WoT using Eclipse Kura as our Gateway solution that consumes W3C compliant TDs for our smart devices. I look forward to see how we can improve our implementation and be able to use this library to expose and teach our students about the WoT 👍

Is it open source? We also work on the implementation in RIOT OS from time to time. Don't know if that is something interesting to you. Already works, there is just some weird undefined behavirour on the ESP32. (branch wot_gcoap) There is a bare how to from a plugfest we had. But mostly it's undcoumented yet. For the forked Arduino library there are some tutorials about it and a video. Happy to change them accordingly, if you get the changes merged into WebThingsIO. If you need some help, I am available on several channels. Such as Signal, Telegram and discord.

ameerhazo commented 2 years ago

Hello @Citrullin, our implementation is unfortunately not open source. We currently have our implementation of the Thing Description Directory working though. Our Gateway is also able to communicate via CoAP (using Eclipse Californium) and consume a TD of a CoAP (libcoap) based device I coded on the ESP32.

I've also tested the library and the work that you've done on the library and I think you've done a great job conforming to the WoT specs. I think we can also discuss further with @relu91 and @benfrancis on what the library still needs so that the WebThingsIO WoT Adapter on the gateway can consume the TDs later.

Regards, Ameer Haziq Bin Osman Faculty of Information Technology University of Applied Sciences Dortmund Germany

relu91 commented 2 years ago

By the way, I work as a research assistant at my faculty and we have our own implementation of W3C WoT using Eclipse Kura as our Gateway solution that consumes W3C compliant TDs for our smart devices. I look forward to see how we can improve our implementation and be able to use this library to expose and teach our students about the WoT

That's cool, we are trying to collect WoT implementers under WoT Community Group feel free to join if you want to be part of this community. Moreover, if you have some spare time it would be nice to fill out this questionnaire and insert your implementation in the dedicated question.

I think we can also discuss further with @relu91 and @benfrancis on what the library still needs so that the WebThingsIO WoT Adapter on the gateway can consume the TDs later.

Sure, there were some minor contentious changes left. Mostly regarding the content of the "@context" field. You can find the details in the PR linked above.

ameerhazo commented 2 years ago

Hi @Citrullin, I'd like to add you on Discord. Could you please PM me your Discord tag?

Regards, Ameer

Citrullin commented 2 years ago

Hi @Citrullin, I'd like to add you on Discord. Could you please PM me your Discord tag?

Regards, Ameer

397501022077190144 (citrullin#7736)