首页 > 解决方案 > MQTT 和 Python - 继续发送消息

问题描述

我正在使用 ESP32 运行 MicroPython 代码,它在启动时会发送一条 MQTT 消息。

现在这个设备已经关闭(没有插上电源!!),但我仍然收到它连接到代理的消息。

1)为什么会发生?

2)我需要什么来阻止它?

3) 最后一次尝试是使用 QOS=1 或 2,也许这是导致问题的原因?仍然如何阻止它?

盖伊

EDIT1 - 添加调试输出:

guy@lab_pi:~ $ mosquitto_sub -d -t HomePi/Dvir/# 
Client mosqsub/2800-lab_pi sending CONNECT
Client mosqsub/2800-lab_pi received CONNACK
Client mosqsub/2800-lab_pi sending SUBSCRIBE (Mid: 1, Topic: HomePi/Dvir/#, QoS: 0)
Client mosqsub/2800-lab_pi received SUBACK
Subscribed (mid: 1): 0
Client mosqsub/2800-lab_pi received PUBLISH (d0, q0, r1, m0, 'HomePi/Dvir/Windows/ESP32', ... (4 bytes))
Down
Client mosqsub/2800-lab_pi received PUBLISH (d0, q0, r1, m0, 'HomePi/Dvir/Windows/Sonoff1', ... (36 bytes))
[HomePi/Dvir/Windows/All][down] D000
Client mosqsub/2800-lab_pi received PUBLISH (d0, q0, r1, m0, 'HomePi/Dvir/Messages', ... (69 bytes))
[HomePi/Dvir/Windows/Sonoff1] Connected to MQTT server: 192.168.2.113
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi received PUBLISH (d0, q0, r0, m0, 'HomePi/Dvir/Messages', ... (91 bytes))
[2018-08-27 19:14:25.00] Topic: [HomePi/Dvir/Windows/ESP32_3] Message: Button Switch: [OFF]
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi received PUBLISH (d0, q0, r0, m0, 'HomePi/Dvir/Messages', ... (91 bytes))
[2018-08-27 19:25:03.00] Topic: [HomePi/Dvir/Windows/ESP32_3] Message: Button Switch: [OFF]
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi received PUBLISH (d0, q0, r0, m0, 'HomePi/Dvir/Messages', ... (90 bytes))
[2018-08-27 19:26:46.00] Topic: [HomePi/Dvir/Windows/ESP32_3] Message: Button Switch: [UP]
Client mosqsub/2800-lab_pi received PUBLISH (d0, q0, r0, m0, 'HomePi/Dvir/Messages', ... (91 bytes))
[2018-08-27 19:26:47.00] Topic: [HomePi/Dvir/Windows/ESP32_3] Message: Button Switch: [OFF]
Client mosqsub/2800-lab_pi received PUBLISH (d0, q0, r0, m0, 'HomePi/Dvir/Messages', ... (92 bytes))
[2018-08-27 19:26:47.00] Topic: [HomePi/Dvir/Windows/ESP32_3] Message: Button Switch: [DOWN]
Client mosqsub/2800-lab_pi received PUBLISH (d0, q0, r0, m0, 'HomePi/Dvir/Messages', ... (91 bytes))
[2018-08-27 19:26:48.00] Topic: [HomePi/Dvir/Windows/ESP32_3] Message: Button Switch: [OFF]
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP
Client mosqsub/2800-lab_pi sending PINGREQ
Client mosqsub/2800-lab_pi received PINGRESP

标签: pythonmqtt

解决方案


推荐阅读