-
Notifications
You must be signed in to change notification settings - Fork 63
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
MQTT Device Management #754
Comments
Do we want to keep polling as a fallback mechanism? |
I think so. I wouldn't choose to rip it out straight away as we'll have a period of 'legacy' device agents out there that only know to do polling. |
@ Does this still need its own design work or can it be estimated and scheduled (tentatively) for development in 0.8? |
It does require some design work, although I think much of the unknowns are fairly well understood at this point. Happy for this to go in to 0.8 |
updated 21/7 to add From #464 we have defined the top level topic structures.
StatusThe Device status event has the form:
This is the same structure as the existing HTTP Ping - which we need to keep consistent with. We haven't properly specified the It publishes status events whenever there is a change in the local status, including:
The precise values of CommandsCommands published by the platform are JSON blobs containing the type of command and any additional meta data the particular command provides. Currently, the only command the platform may send the device is a notification there is a new project snapshot to load.
|
This is proving to be more involved than simply adding MQTT instead of HTTP. With the current topic structure design each device subscribes to its own 'command' topic. But the most common command to send is that the snapshot a device should be using has changed - and that has to be sent to all devices. This means the platform has to get a list of all devices and publish a message to each one. Having implemented it, it feels wrong - that's a lot of unnecessary work. It would be better if the platform could publish one message to notify all devices assigned to the project of any change. But to achieve that, the devices would have to subscribe to a topic specific to the project - which in turn means:
I have updated the topic table in #464 (comment) to reflect this.
Device MQTT lifecycle
|
@sammachin Can this issue be updated? I think the milestone is incorrect and it has been fully delivered? |
Epic
#464
Description
As a: User
I want: my devices to communicate with the forge application over MQTT
So that: I have a realtime channel and do not rely on polling.
This is dependent on #464 delivering the MQTT broker infrastructure.
Dependencies
Acceptance Criteria
The text was updated successfully, but these errors were encountered: