-
Notifications
You must be signed in to change notification settings - Fork 11
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
[GSoC Project Proposal]: Add MQTT support to ERDDAP™ #93
Comments
Hey @ChrisJohnNOAA |
@div-dev123 I generally recommend doing a small issue in ERDDAP. You can see the issues listed here: https://github.com/ERDDAP/erddap/issues The goal is for me to get a better sense of your abilities and for you to get a sense of what working in the ERDDAP code would be like. One issue that would introduce you to code of one of our current dataset types is this one: ERDDAP/erddap#38 You can use Jetty for local development: https://github.com/ERDDAP/erddap/tree/main/development/jetty |
Okay thanks a lot ! I'll look through it! |
Hi @ChrisJohnNOAA had some questions about this:
|
Hi @ayushsingh01042003 , answers inline below.
The main reason to have ERDDAP able to be a broker is to enable creating datasets from remote sensors without the need for running another server. Somebody with an existing MQTT setup would already have a broker, but ERDDAP as a broker would enable somebody to get started collecting remote sensing data (from an MQTT client) without needing to start running yet another server. For a user trying to create datasets from MQTT sensors, ERDDAP being a broker would allow them to have one server that is responsible for collecting the data and turning it into a dataset, I think there are possibilities for other features to be built on top of this integration. For example being able to subscribe to dataset changes as MQTT messages (instead of emails or webhooks) which could enable new integrations.
I believe the intent of cross-platform there is working on all (common) operating systems (Windows, Linux, MacOS). |
Some more question:
Thanks! |
@ayushsingh01042003 answers inline below.
Yes.
In the long term, yes. That said I think it's a stretch goal for the GSoC project. The priorities for the GSoC project are 1) being able to subscribe to events from a broker to contribute to a dataset and 2) being able to act as a broker to directly connect to sensors. Publishing dataset updates as MQTT events would be a great feature, however I think the way ERDDAP currently updates datasets that will be a significant undertaking and not just because of the MQTT side of things.
I don't know at this time. I can see how they might be similar, but it's also possible that to take full advantage of MQTT there will be changes needed that necessitate a new dataset type.
I have not done an evaluation of potential libraries yet. If there is one that is open source with a compatible license and has a good implementation of both broker and client that sounds good.
Yes, auth should be implemented.
|
Project Description
Add support for MQTT to ERDDAP™.
MQTT is a message protocol which was in particular designed to be lightweight and used by remote/IoT devices.
The project can be done in stages, with the first stage to implement the ability for ERDDAP™ to be a MQTT client. This would include connecting to an existing broker and building datasets based on events from them.
The next stage would be integrating an MQTT broker into ERDDAP™.
For both MQTT client and MQTT broker there are a variety of libraries available, so this project is mostly about integrating the selected library(ies) into ERDDAP™ and properly handling the provided data.
Expected Outcomes
MQTT support in ERDDAP™ that allows datasets to be defined based on subscribing to MQTT events. This will enable new datasets to be included in ERDDAP™ as well as enable near real-time data to be made available. MQTT Broker support would simplify the process of a new project being able to collect data from MQTT enabled sensors.
Skills Required
Java
Additional Background/Issues
ERDDAP/erddap#37
Mentor(s)
Chris John (@ChrisJohnNOAA)
Mentor Contact Email(s)
[email protected]
Expected Project Size
350 hours
Project Difficulty
Intermediate
The text was updated successfully, but these errors were encountered: