In this chapter, we will write JavaScript code to control home automation with MQTT messages. We will write code that will be able to run on web browsers. In addition, we will use Node.js to write code that runs on IoT boards, receives MQTT messages and controls devices wired to the boards. We will:
Understand the requirements to control home automation with MQTT and WebSockets
Define the topics and commands to control home automation
Enable WebSockets for a Mosquitto server
Understand the Eclipse Paho JavaScript asynchronous client
Create an HTML 5 web page to control LEDs
Publish messages to target remote devices in JavaScript
Process the received messages in JavaScript
Work with WebSockets to connect to the MQTT server
Subscribe to topics in JavaScript
Process commands that interact with LEDs in Node.js
Run the home automation web application
Debug the home automation web application
Secure MQTT over WebSockets with TLS