Thats something similar to what we are doing...
* Local RPI / Container connects to message queue in cloud * Web User inputs request to Web UI (cloud) * Local RPI / Container retrieves request via queue and access final device * Reports status back to queue which is then reported by Web UI
Basically the local device is your router using whatever message queue you want.