Difference between revisions of "V2/Integrate/Others/MQTT"

From Senfi Docs
Jump to: navigation, search
Line 17: Line 17:
 
; Username: ''<Your integration key>''
 
; Username: ''<Your integration key>''
 
; Password: ''<Your integration secret>''
 
; Password: ''<Your integration secret>''
; MQTT topic: ingestor/1/0/live/text/array/ems/''<your integration key>/<your measurement code>''
+
; MQTT topic: ingestor/2/0/live/text/array/''<your integration key>/<your measurement code>''
  
 
=== Message Format ===
 
=== Message Format ===

Revision as of 10:20, 12 August 2021

Publish to MQTT

To start sending data to Senfi, you need to do the following:

  1. Create an integration key/secret pair in the CMS.
  2. Design and create a measurement in the CMS.
  3. Write a program to read from your system and send it to Senfi's MQTT Endpoint.

A typical integration follows this pattern:

External system --> Your application --> Senfi MQTT endpoint

Either the external system you are monitoring pushes to your application, or your application polls the external system for its current values. Either way, once your application has the values of its measurement, you can prepare to send it to Senfi's MQTT endpoint.

MQTT Endpoint

Host
mqtt.senfi.io
Port
1883
Username
<Your integration key>
Password
<Your integration secret>
MQTT topic
ingestor/2/0/live/text/array/<your integration key>/<your measurement code>

Message Format

The message body should be in valid JSON format.

Single measurement

 {
   "data": [
     {
       "tm_source": xxxxxxxxxx,
       "site_id" xxxxxxxx,
       "tag1": "xxxxxxxx",
       "tag2": "xxxxxxxx",
       "metric1": xxxxxxxxx,
       "metric2": xxxxxxxxx
       ...
     }
 }

Multiple measurements

 {
   "data": [
     {
       "tm_source": xxxxxxxxxx,
       "site_id" xxxxxxxx,
       "tag1": "xxxxxxxx",
       "tag2": "xxxxxxxx",
       "metric1": xxxxxxxxx,
       "metric2": xxxxxxxxx
       ...
     },
     {
       "tm_source": xxxxxxxxxx,
       "site_id" xxxxxxxx,
       "tag1": "xxxxxxxx",
       "tag2": "xxxxxxxx",
       "metric1": xxxxxxxxx,
       "metric2": xxxxxxxxx,
       ...
     }
   ]
 }

You must indicate which Site the measurement is meant for. Hence, you need to include the site ID (site_id) in your MQTT message. If your measurement has other tags, you must send them in the message as well.

Note: All tags and metrics must be sent in your message body, or they will be treated as invalid data and discarded.

Sample Application

You can take a look at this GitHub repository for a sample application to send data to Senfi's MQTT endpoint.