Author
|
MatrixTSL
|
Version
|
0.1
|
Category
|
Comms
|
MQTT Client component
A component providing access to MQTT IoT client. The client can connect to a MQTT server such as ThingSpeak via WebSockets. Allows IoT type data to be published and read back.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_WEBEXP_MQTT.fcsx
Please click here to view the component source code (Beta): FC_Comp_Source_WEBEXP_MQTT.fcsx
Detailed description
Please note this component currently only supports Web Sockets and must be connected to the Web Socket enabled port of the broker.
Examples
Temperature and Humidity
Here is an example MQTT project showing how to collect data from a remote device using MQTT.
The heater and fan buttons have onclick event macros that encode JSON data and send to a MQTT topic named mtx_demo_switchdata.
The OnMqttConnected event macro subscribes to MQTT topics named mtx_demo_sensedata which contains the embdeeded temperature and humidity data and mtx_demo_switchdata which contains the current fan and heater output states.
MQTT Web App Client Demo
Here is a corresponding ESP32 project that samples a temperature and humidity sensor and sends the data.
MQTT ESP32 Client Demo
Temperature and Humidity HTTPS
Here is the temperature and humidity example again but this time set to use HTTPS so that it can be ran from a enabled HTTPS webserver.
MQTT Web App Client HTTPS Demo
An example of this can be seen via the URL: https://flowcode.co.uk/example/index.htm
Macro reference
Connect
|
Connect
|
Connects to the MQTT server (returns false if already connected)
|
- BOOL
|
Return
|
Disconnect
|
Disconnect
|
Disconnect from the MQTT server (returns false if client is already disconnected)
|
- BOOL
|
Return
|
GetClientId
|
GetClientId
|
Returns the unique identifier currently used when communicating with the server.
|
- STRING
|
Return
|
Publish
|
Publish
|
Publish a message to the MQTT server (returns false in the client is not connected)
|
- STRING
|
Topic
|
The name of the topic for the message
|
- STRING
|
Message
|
The message to publish
|
- BYTE
|
QoS
|
The quality of service used to deliver the message (0, 1 or 2)
|
- BOOL
|
Retained
|
If true. the message is to be retained by the server and delivered to future subscribers as well as current ones
|
- BOOL
|
Return
|
PublishBuffer
|
PublishBuffer
|
Publish an array of bytes to the MQTT server (returns false in the client is not connected)
|
- STRING
|
Topic
|
The name of the topic for the message
|
- HANDLE
|
Buffer
|
The message to publish (as an array buffer)
|
- BYTE
|
QoS
|
The quality of service used to deliver the message (0, 1 or 2)
|
- BOOL
|
Retained
|
If true. the message is to be retained by the server and delivered to future subscribers as well as current ones
|
- BOOL
|
Return
|
Subscribe
|
Subscribe
|
Subscribe to messages from the MQTT server (returns false in the client is not connected)
|
- STRING
|
Topic
|
A filter for the topic name(s) to receive
|
- BYTE
|
QoS
|
The quality of service used to deliver the message (0, 1 or 2)
|
- BYTE
|
Timeout
|
The number of seconds to wait before assuming this operation failed
|
- BOOL
|
Return
|
Unsubscribe
|
Unsubscribe
|
Unsubscribe from messages from the MQTT server (returns false in the client is not connected)
|
- STRING
|
Topic
|
A filter for the topic name(s) to stop receiving
|
- BYTE
|
Timeout
|
The number of seconds to wait before assuming this operation failed
|
- BOOL
|
Return
|
Property reference
|
Properties
|
|
Host
|
The address of the messaging server, as a fully qualified WebSocket URI, as a DNS name or dotted decimal IP address
|
|
Port
|
The port number to connect to
|
|
Directory
|
An optional subdirectory off the host address (e.g. "/mqtt")
|
|
Client Id
|
A unique identifier for this client, between 1 and 23 characters in length
|
|
Advanced
|
|
Use SSL
|
Use a secure (SSL) connection
|
|
Use authentication
|
Use authentication
|
|
Connection timeout
|
If connection has not succeeded within this time (in seconds), it is deemed to have failed
|
|
Keep Alive Interval
|
The server will disconnect this client if there is no activity for this time period (in seconds)
|
|
Clean Session
|
If true, a non-persistent connection is created, meaning subscription information and undelivered messages are not retained when this connection ends
|
|
Reconnect
|
If true, this client will attempt to reconnect to the server if the connection is lost
|
|
Send LWT
|
Send a 'Last Will and Testament' message if unexpected disconnection occurs
|
|
MQTT Version
|
Which version of MQTT to use
|
|
Debug
|
Determines if additional logging information is sent to the JavaScript console
|
|
Callbacks
|
|
OnSuccess
|
Called when an MQTT operation is successful
|
|
OnFailure
|
Called when an MQTT operation is unsuccessful
|
|
OnConnected
|
Called when an MQTT connection is successfully made to the server
|
|
OnConnectionLost
|
Called when an MQTT connection has been lost
|
|
OnMessageDelivered
|
Called when an MQTT message has been delivered
|
|
OnMessageArrived
|
Called when an MQTT message has arrived at this client
|