【发布时间】:2020-06-30 14:48:39
【问题描述】:
我正在尝试实现一种方法来了解特定设备何时停止向 mqtt 代理发布消息,并在这种情况下向我自己发送电子邮件。我想这样做是为了能够知道发布消息的设备是否存在问题,以便我可以检查它并重新打开它。为了尝试实现这一点,我创建了一个订阅设备发布的主题的 mqtt 客户端,例如test/device_1,然后设置为最后的遗嘱和遗嘱,我将其设置为有效负载 =“离线”的设备状态/设备_1。理想情况下,我希望能够为超过 1 台设备执行此操作,但假设我只希望在一台设备的简单情况下使用它。
我创建了另一个脚本,该脚本实现了另一个订阅主题 status/device_1 的客户端,然后在 on_message 函数上检查它是否获得了有效载荷 =“离线”,如果确实获得了它,那么我给自己发送一封电子邮件.
但是这种方法不起作用,因为当我关闭设备时,订阅主题 test/device_1 的 mqtt 客户端继续侦听但没有收到任何消息。换句话说,即使主题为空,它也不会发送最后的遗嘱。但是,当我停止订阅主题 test/device_1 的脚本时,它似乎可以工作。
我是否遗漏了什么或者无法完成我想要做的事情?任何建议表示赞赏!
【问题讨论】:
标签: python mqtt mosquitto paho