边缘计算是否可以订阅设备在线离线的状态?

Blade 已结 2 106
hou52127
hou52127 剑圣 2024-11-08 09:30

一、该问题的重现步骤是什么?

  1. 边缘计算是否可以订阅设备在线离线的状态?

    image.png

2. 

3.


二、你期待的结果是什么?实际看到的又是什么?

通过订阅设备在线离线状态,推送到其他mqtt服务器


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

物联网平台,最新版本,window

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  •  admin
    admin (最佳回答者)
    2024-11-08 10:31

    有专门的上下线topic(系统提供,但是为了性能没有默认集成),需要自己拓展一下。把设备上下线的逻辑加入topic,然后node-red就可以进行监听这些topic来获取状态了。

    CleanShot20241108102919@2x.png

    作者追问:2024-11-08 10:31

    我调试状态下,上线只走了MqttConnectStatusListener ,未经过上面的mqtt主题,这是因为啥?


    回答: 2024-11-08 10:31

    (系统提供,但是为了性能没有默认集成),需要自己拓展一下。


    你可以在监听类增加上下线topic发布,或者自定义任何topic均可,这样就能在nodered监听到

    作者追问:2024-11-08 10:31

    能具体说一下位置吗?这些已经存在了啊image.png

    直接增加到iot_topic表中是否就可以了image.png

    回答: 2024-11-08 10:31

    举个例子,在 MqttConnectStatusListener 有online和offline两个方法,你在这两个方法里可以定义任意逻辑。

    比如你走mqtt的模式,online和offline的时候都调用对应的topic,这个topic可以自己定义,传递的参数也可以自己定义。

    定义好之后,设备上下线就会自动调用你的逻辑了,然后node-red再来监听你定义的topic,参数也可以根据你定义的格式获取,这样node-red是不是就实时监听到你所需要的设备上下线信息啦。

    当然其他的比如走tcp、http也都可以,node-red都可以监听到,具体看你的需求来定义。

    作者追问:2024-11-08 10:31

    我在MqttConnectStatusListener中这样写的,但是没有推送mqtt登录消息,我在边缘计算中监听的是红框内的topicimage.png

    image.png



    回答: 2024-11-08 10:31

    login和logout是用于非直连设备,用自定义账号(https://iot.bladex.cn/feature/mqtt/account.html)连接平台的时候使用的。

    你现在是用了自定义账号连接后,发送了login和logout两个topic,但是node-red无法监听到么?

    作者追问:2024-11-08 10:31

    我的配置是这样的image.png用户名用的是默认的image.png昨天一直没见debugger区域有信息,是不是写的方法不对?


    1 讨论(1)
  • 2024-11-09 08:46

    已解决,因为我订阅的mqtt服务器不对造成的,真是麻烦了

    0 讨论(0)
提交回复