Как передать значение между Django и MQTT
У меня есть django graph, который будет отображать некоторое случайное значение. Я подписался на тему mqtt и интегрировал в мое django приложение. Но проблема в том, как я могу прочитать msg.payload
в моем views.py? Я хочу, чтобы мой график показывал значение, опубликованное из MQTT. Для справки, я создал py файл для хранения моего MQTT соединения и зациклил его в моем init.py
.
Views.py
from django.shortcuts import render
import random
from paho.mqtt import client as mqtt_client
def showdata(request):
context = '''Here is where i need to put the (MQTT VALUE: msg.payload )'''
return render(request, 'index.html', {'data': context})
MQTT.py
import paho.mqtt.client as mqtt
global test
# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
# Subscribing in on_connect() means that if we lose the connection and
# reconnect then subscriptions will be renewed.
client.subscribe("Wind")
# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
test = msg.payload
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("localhost", 1883, 60)
Init .py
from . import mqtt
mqtt.client.loop_start()