MQTT RPC channel allows invoking RPC calls via MQTT.
When rpc.mqtt.enable
is true (default), device subscribes to rpc.mqtt.sub_topic
(default: ${device.id}/rpc
, e.g. esp8266_DA7E15/rpc
in the example).
Responses are published to ${src}/rpc
, where ${src}
is taken from the request's frame, so requests for which a response is expected must include src
.
Published to esp8266_DA7E15/rpc
:
{ "id": 123, "src": "foo", "method": "Sys.GetInfo"}
Response will be published to foo/rpc
.
mos
tool supports RPC over MQTT via the mqtt
port schema:
$ mos --port mqtt://iot.eclipse.org/esp8266_DA7E15 call Sys.GetInfo
For brokers that require TLS, mqtts
should be used:
$ mos --port mqtts://iot.eclipse.org/esp8266_DA7E15 call Sys.GetInfo
For brokers that require TLS client authentication (e.g. AWS), cert and file should be supplied:
$ mos --port mqtts://XXXXXXXX.iot.REGION.amazonaws.com/esp8266_DA7E15 --cert-file mycert.pem --key-file mykey.pem call Sys.GetInfo