Skip to main content

React Dashboard for MQTT

Wanchai, Hongkong

WIP

Create React App

npx create-react-app mqtt-dashboard

Edit src/App.js

import React, { useState, Fragment } from 'react';
import './App.css';

var mqtt = require('mqtt');
var options = {
    protocol: 'ws',
    username: 'admin',
    password: 'instar',
    // clientId uniquely identifies client
    // choose any string you wish
    clientId: 'mqttjs_' + Math.random().toString(16).substr(2, 8),
};
var client  = mqtt.connect('ws://192.168.2.111:8885', options);

// cameras/ws is the MQTT topic
client.subscribe('cameras/ws');

function App() {
  var note;
  client.on('message', function (topic, message) {
    note = message.toString();
    // Updates React state with message 
    setMsg(note);
    console.log(note);
    client.end();
    });

  // Sets default React state 
  const [msg, setMsg] = useState(<Fragment><em>...</em></Fragment>);

  return (
    <div className="App">
      <header className="App-header">
        <h1>Hello MQTT in React</h1>
        <p>The message payload is: {msg}</p>
      </header>
    </div>
  );
}

export default App;

Install Dependencies

MQTT.js

cd mqtt-dashboard
npm install mqtt

Run the App

npm start
mosquitto_pub -t 'cameras/ws' -h '192.168.2.111' -m 'Hey!' -p 1885 -u admin -P instar