uplink icon indicating copy to clipboard operation
uplink copied to clipboard

feat: support actions on new topics

Open de-sh opened this issue 1 year ago • 0 comments

Closes #

Changes

Why?

Broker will soon send action on specifically named topics of the format: /tenants/{tenant_id}/devices/{device_id}/actions/{action_name} Uplink is expected to respond to these actions on special topics of the format: /tenants/{tenant_id}/devices/{device_id}/action_status/{action_name}

Trials Performed

Tested with the following commands:

mosquitto_sub -h stage.bytebeam.io -p 1883 -t /tenants/demo/devices/1002/action_status/lock
... # in another terminal
mosquitto_pub -h stage.bytebeam.io -t /tenants/demo/devices/1002/actions/lock -m '{ "action_id": "1", "kind": "process", "name": "lock", "payload": "{}" }'

It was observed that actions was received and responded to by uplink appropriately:

[{"action_id":"1","sequence":0,"timestamp":1700289329194,"state":"Received","progress":0,"errors":[]}]
[{"action_id":"1","sequence":1,"timestamp":1700289329194,"state":"in_progress","progress":13,"errors":[]}]
[{"action_id":"1","sequence":2,"timestamp":1700289329195,"state":"in_progress","progress":26,"errors":[]}]
[{"action_id":"1","sequence":3,"timestamp":1700289330195,"state":"in_progress","progress":36,"errors":[]}]
[{"action_id":"1","sequence":4,"timestamp":1700289331195,"state":"in_progress","progress":46,"errors":[]}]
[{"action_id":"1","sequence":5,"timestamp":1700289332195,"state":"in_progress","progress":50,"errors":[]}]
[{"action_id":"1","sequence":6,"timestamp":1700289333195,"state":"in_progress","progress":60,"errors":[]}]
[{"action_id":"1","sequence":7,"timestamp":1700289334195,"state":"in_progress","progress":77,"errors":[]}]
[{"action_id":"1","sequence":8,"timestamp":1700289335194,"state":"in_progress","progress":87,"errors":[]}]
[{"action_id":"1","sequence":9,"timestamp":1700289336195,"state":"in_progress","progress":96,"errors":[]}]
[{"action_id":"1","sequence":10,"timestamp":1700289337195,"state":"Completed","progress":100,"errors":[]}]

Similar behavior is observed in the case of sending to old topic and subscribing to older response topic:

mosquitto_sub -h stage.bytebeam.io -p 1883 -t /tenants/demo/devices/1002/action/status
... # in another terminal
mosquitto_pub -h stage.bytebeam.io -t /tenants/demo/devices/1002/actions -m '{ "action_id": "1", "kind": "process", "name": "lock", "payload": "{}" }'

Uplink uses old topic to respond:

[{"action_id":"1","sequence":0,"timestamp":1700289329194,"state":"Received","progress":0,"errors":[]}]
[{"action_id":"1","sequence":1,"timestamp":1700289329194,"state":"in_progress","progress":13,"errors":[]}]
[{"action_id":"1","sequence":2,"timestamp":1700289329195,"state":"in_progress","progress":26,"errors":[]}]
[{"action_id":"1","sequence":3,"timestamp":1700289330195,"state":"in_progress","progress":36,"errors":[]}]
[{"action_id":"1","sequence":4,"timestamp":1700289331195,"state":"in_progress","progress":46,"errors":[]}]
[{"action_id":"1","sequence":5,"timestamp":1700289332195,"state":"in_progress","progress":50,"errors":[]}]
[{"action_id":"1","sequence":6,"timestamp":1700289333195,"state":"in_progress","progress":60,"errors":[]}]
[{"action_id":"1","sequence":7,"timestamp":1700289334195,"state":"in_progress","progress":77,"errors":[]}]
[{"action_id":"1","sequence":8,"timestamp":1700289335194,"state":"in_progress","progress":87,"errors":[]}]
[{"action_id":"1","sequence":9,"timestamp":1700289336195,"state":"in_progress","progress":96,"errors":[]}]
[{"action_id":"1","sequence":10,"timestamp":1700289337195,"state":"Completed","progress":100,"errors":[]}]

de-sh avatar Nov 17 '23 12:11 de-sh