1. What is MQTT

MQTT is an open-source pub/sub communication protocol. It is efficient in its utilization of bandwidth and system resources. As a result, it is popular in use cases ranging from low-powered embedded systems to cloud-native micro services.

The pub/sub model is at the core of MQTT communication. Information is organized by topics. Client devices can publish data to a topic to send messages to any subscribers. Similarly, clients can subscribe to a topic to be notified when a message is published.

implement. These characteristics make it widely applicable.

2. MQTT Topics on the Camera

There are 5 Topics on the camera:

  •  Snapshot Topic
  •  Status Topic
  •  Alarm Topic
  •  Remote Configure Topic
    •  Configuration Request Topic
    •  Configuration Respond Topic
  •  Wake Topic (No shown on the page)

Note: Except the “Wake Topic”, all topic on the web page is customizable and has default value as shown below:

3. Application on the Camera

  • 1. Enable the “Enable Post” , then the MQTT application functions.
  • 2. Check the “Post Content” option , then the camera will send corresponding topic data. 

For instance, if you want receive snapshots from the camera, you MUST check the “Snapshot” option, and set the “Snapshot Topic”.

  • 3. “Configure Request Topic” and “Configure Respond Topic” are for remote configuration, after setting the topic, they function always.
  • 4. Client subscribe the topic to receive and send data.

Note: All data is in JSON format.


4.Topic Description

1. Snapshot Topic 

Client subscribes the “Snapshot Topic” .

Camera publish snapshot data to the “Snapshot Topic”.

After receiving snapshot data, the client needs to decode the data and transform it to an image file.

Data sample:

{

  "ts": 1682336818966,

  "values": {

    "devName": "4G Solar-powered ANPR Camera",

    "devMac": "5CC5638AE729",

    "file": "debug_202304240745431198T",

    "time": 1682336743,

    "imageSize": 20941,

    "image": "data:image/jpeg;base64,/9j/4AA...."

  }

2. Status Topic

Client subscribes the “Status Topic”.

Each time when the camera wakes up, it sends status data to the “Status Topic”. 

The Heartbeat mechanism keeps the camera sending status data per hour.

Data sample:

{

  "ts": 1689238041244,

  "values": {

    "devName": "4G Solar-powered ANPR Camera",

    "devMac": "1CC3164126A2",

    "battery": {

      "soc": 91,

      "capacity": 5682,

      "voltage": 4052,

      "healthy": 100,

      "chargeCurrent": 0,

      "chargeStat": 0,

      "chargeVoltage": 10560,

      "powerGoodStat": 0

    },

    "radar": {

      "enable": 1

    },

    "gps": {

      "latitude": "24.62493",

      "longtitude": "118.03077",

      "altitude": "59.8"

    },

    "cellular": {

      "connectStatus": "4G Connected",

      "simStatus": "Valid",

      "signalStrength": 0,

      "imei": "868444050582056",

      "imsi": "460115211076172",

      "iccid": "89860322245922526572",

      "ipAddr": "10.33.177.77",

      "subMask": "255.255.255.252",

      "gateway": "10.33.177.78",

      "dns": "114.114.114.114",

      "dataMonthly": 6107722

    }

  }

}

3. Alarm Topic

Client needs to subscribe to the “Alarm Topic”.

Camera sends active alarms to this topic.

Client parses the content after receiving it.

Data sample:

{

  "ts": 1682336818966,

  "values": {

    "devName": "4G Solar-powered ANPR Camera",

    "devMac": "5CC5638AE729",

    "alarm": "Low power" 

  }

}


4.Remote Configure Topic

For more information about the API, please refer to the API document.


(1) Configure Request Topic

Client send message to the “Configure Request Topic”

Get request sample:

{

"api": "get.sys.info",

"devMac": 1CC3164171FE"

}



Set request sample:


{

"api": "set.sys.info",

"devMac": 1CC3164171FE",

“data”: {

 “deviceName”: “MQTT Test”

}

}

(2) Configure Response Topic

Client subscribes the “Configure Response Topic”

Get response sample:

{

"devName": "4G Solar-powered ANPR Camera”,

"devMac": "1CC3164171FE",

"api": "get.sys.info",

"data": {

"deviceName": “4G Solar-powered ANPR Camera",

"model": "SC211-AU",

"hardware": "V1.0”,

"software": "C21.1.0.4",

"mac": "1C:C3:16:41:71:FE",

"sn": "264922455YG0”

}

}


Set response sample:


{

“devName”: “MQTT Test”,

“devMac”: “1CC3164171FE”,

“api”: “set.sys.info”,

“data”: {

 “code”: 0,

 “result”: “OK”

}

}


5. Wake

When the camera is in sleep mode, Client sends any content to the “Wake Topic”, “4GSolarCam/Wake/5CC5638AE24C”, of which "5CC5638AE24C" is MAC address, to wake up the corresponding camera.

  • After the camera wakes up, it will automatically turn on 4G cellularthen you can log in the web page.