Skip to content

MQTT Client Service

This service allows solution to act as a MQTT client, so that you can communicate with a 3rd-party MQTT broker, eg: AWS IoT.

Operations

Events

  • message - Message received from MQTT broker

Configuration parameters

Name Type Description
host string Host address of MQTT broker
port integer Port of MQTT broker (Note: only support SSL)
Default: 8883
security object, null MQTT broker security settings
security.password string(password) Password used to login to MQTT broker
security.username string Username used to login to MQTT broker
security.sslOptions object SSL options
security.sslOptions.key string Private key pem
security.sslOptions.cert string Certificate pem
security.sslOptions.cacerts string Root CA Certificate
topics [ string ] Default topics to subscribe
advanced object, null Advanced settings
advanced.clientid string The clientid used when connecting to MQTT broker. By default, it is solution_id.

Operations

publish

Publish message to MQTT topic, need to specify topic and message

Arguments

parameters - object - Object containing service call parameters.
Name Type Description
messages [ object ] Topics and messages to be published
messages[].topic string A topic
messages[].message string A message to send to the topic

Responses

Published

Content: nil

Example

local res = Mqtt.publish({messages={ {topic="topic1", message="hello"}}})
return res

Events

message

After subscribe to a topic, the message from that topic will be received here.

Arguments

batch - [ object ] - Messages received
Name Type Description
topic string Topic of this message
payload string Message content in json string
timestamp integer Timestamp in milliseconds

Example

-- Use `event` to get the payload
local len = table.getn(batch.messages)
print("Received " .. len .. " messages")
for i=1,len do
  print("Message #" .. i .. ": topic is " .. batch.messages[i].topic)
  -- print("Message #" .. i .. ": payload is " .. batch.messages[i].payload)
  -- print("Message #" .. i .. ": timestamp is " .. batch.messages[i].timestamp)
end

Last update: May 14, 2021