Я пытаюсь читать сообщения MQTT, используя Python. В целях отладки я уменьшил программу до минимума.
import paho.mqtt.client as mqtt
import json
def on_connect(client, userdata, flags, rc):
print("Connected with code " + str(rc))
client.subscribe("temperature")
def on_message(client, userdata, message):
if message.topic == "temperature":
print("New message received")
dhtreadings_json = json.loads(message.payload)
temperature = dhtreadings_json['temperature']
print(temperature)
mqttc = mqtt.Client()
mqttc.username_pw_set("user","password")
mqttc.on_connect = on_connect
mqttc.on_message = on_message
mqttc.connect("192.168.1.133",1883,60)
mqttc.loop_forever()
Под Python 2 все отлично работает:
В Python3 я получил сообщение об установлении соединения, и мне сообщили, что получено новое сообщение, и это все. Больше этого нет другого выхода после:
Среда: Последняя версия Raspbian на Raspberry Pi 3B +
Как и предполагалось, я заменил на печать («Новое сообщение получено», message.payload).
Message.payload одинаков в Python2 и Python3.
python2:
Python3:
Спасибо!