import os, subprocess, signal, sys
import paho.mqtt.client as paho # need to be installed: sudo pip3 install paho-mqtt
# ---------------------------------------------------------------------- MQTT Callback Functions
def on_connect(client, userdata, flags, rc):
print("Connected to the cloud!")Run
# start publishing to the cloud
startPublishTemperature()
def on_log(client, userdata, level, buf):
def on_message(client, userdata, message):
topic = str(message.topic)
payload = str(message.payload.decode("utf-8"))
print('MQTT new message received.')
print('Payload: ' + payload)
payloadJson = json.loads(payload)
def startPublishTemperature():
print("I'm about to publish!")
message = { "data": "YOUR-DATA", "data_stream_id": "YOUR-DEVICE-DATA-STREAM-ID", "client_id": client_id}
jsonMessage = json.dumps(message)
client.publish('YOUR-DATA-STREAM-MQTT-TOPIC', jsonMessage)
print("Just published a message to the cloud!")
threading.Timer(2, startPublishTemperature).start() # Publish every 2 seconds
# ---------------------------------------------------------------------- Main Function
client_id = "YOUR-DEVICE-CLIENT-ID"
# Defining the mqtt connection
client.on_message = on_message
client.on_connect = on_connect
# Setting the username password
client.username_pw_set(username=client_id, password='YOUR-DEVICE-CLIENT-ID-PASSWORD')
# Connecting to the broker
client.tls_set(cert_reqs=ssl.CERT_NONE, tls_version=ssl.PROTOCOL_TLS)
client.connect("mqtts.connect.iotflows.com", 443, 60)
client.loop_forever() #Continue publishing forever
if __name__== "__main__":