子设备设置属性不生效

Blade 未结 1 32
lutw
lutw 剑侠 19小时前

一、该问题的重现步骤是什么?
我根据这个写的
image.png
这是我的逻辑代码

image.png
1. 官网测试平台设备模拟中,进行设备下发指令调试数据不更新,也不生效(本地环境也不行)
https://links.bladex.cn/iot/device/deviceSimulator
image.png

2. 

3.


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


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


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


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

1条回答
  • 属性下发是发到你的虚拟网关服务的,网关服务监听topic后能接收到数据么?如果能接受,那后续给自设备设置属性就是网关的事了,和平台本身没太大关系。平台只是向一个标准格式的topic发送一段json数据而已,具体怎么生效还得看你网关服务的实现逻辑。

    关于现有平台的功能是没问题的,你可以看下面的截图

    CleanShot20260127125947@2x.png

    作者追问:16小时前

    这个是我的网关逻辑,网关能监听到下发的属性设置/blade/sys/UOTafGNO4che/1302000100/thing/service/property/set

    2026-01-27 14:08:02.120  INFO 74966 --- [   biz-worker-3] o.s.protocol.mqtt.LHMqttClientService    : 网关接收属性设置参数:,topic:/blade/sys/UOTafGNO4che/1302000100/thing/service/property/set payload:{"id":"84f06658ee21f22e277ee0049c089342","version":"1.0","sys":{"ack":0},"method":"thing.service.property.set","params":{"pump_status":0}}

    并且网关向平台回复了消息     设置属性响应:/blade/sys/UOTafGNO4che/1302000100/thing/service/property/set_reply

    2026-01-27 14:08:02.122  INFO 74966 --- [   biz-worker-3] o.s.protocol.mqtt.LHMqttClientService    : 设置属性响应:/blade/sys/UOTafGNO4che/1302000100/thing/service/property/set_reply 发布消息:{"id":"84f06658ee21f22e277ee0049c089342","version":"1.0","sys":{"ack":0},"params":{"pump_status":0}}

    image.png

    broker的日志,日志中监听到了下发的属性设置,并且监听到了,网关的回复topic,但是平台的值没有变化

    ================  Request Start  ================

    ===> POST: /blade-broker/device/mqtt/property/set Parameters: {"tenantId":null,"productKey":"UOTafGNO4che","params":{"pump_status":0},"deviceName":"1302000100"}

    ===Headers===  referer : http://192.168.0.6:2888/iot/device/detail/UOTafGNO4che/1302000100?activeKey=tsl

    ===Headers===  blade-auth : bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJpc3N1c2VyIiwiYXVkIjoiYXVkaWVuY2UiLCJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsInVzZXJfbmFtZSI6ImFkbWluIiwidG9rZW5fdHlwZSI6ImFjY2Vzc190b2tlbiIsImRlcHRfaWQiOiIxMTIzNTk4ODEzNzM4Njc1MjAxIiwiYWNjb3VudCI6ImFkbWluIiwiY2xpZW50X2lkIjoiaW90IiwiZXhwIjoxNzY5NDk3NTg3LCJuYmYiOjE3Njk0OTM5ODd9.iKPiIOc1fLZHWftlDxAqxPRq6cfpiMRQlCks1BJqVnc

    ===Headers===  accept-language : zh-CN,zh;q=0.9

    ===Headers===  cookie : 

    ===Headers===  origin : http://192.168.0.6:2888

    ===Headers===  Connection : Keep-Alive

    ===Headers===  X-Forwarded-Proto : http

    ===Headers===  accept : application/json, text/plain, */*

    ===Headers===  authorization : Basic aW90OmlvdF9zZWNyZXQ=

    ===Headers===  host : 127.0.0.1:8888

    ===Headers===  X-Forwarded-For : 127.0.0.1

    ===Headers===  content-type : application/json

    ===Headers===  Content-Length : 82

    ===Headers===  accept-encoding : gzip, deflate

    ===Headers===  user-agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36

    ================  Request End   ================


    2026-01-27 14:11:35.934  INFO 74927 --- [  XNIO-1 task-2] o.s.core.boot.logger.RequestLogAspect    : 


    ================  Response Start  ================

    ===Result===  {"code":200,"success":true,"data":null,"msg":"操作成功"}

    <=== POST: /blade-broker/device/mqtt/property/set (4 ms)

    =================  Response End   ================


    2026-01-27 14:11:35.947 DEBUG 74927 --- [  biz-worker-16] o.s.i.b.l.l.BladeMqttMessageListener     : clientId:000001111 topic:/blade/sys/UOTafGNO4che/1302000100/thing/service/property/set_reply payload:{"id":"4027d6fe6f0fa45dd858a0c164885f59","version":"1.0","sys":{"ack":0},"params":{"pump_status":0}}

    2026-01-27 14:11:35.948 DEBUG 74927 --- [  biz-worker-16] o.s.i.b.l.listener.MqttMessageListener   : clientId:000001111 username:bladexiot ip:127.0.0.1 port:62295

    2026-01-27 14:11:35.949  INFO 74927 --- [  biz-worker-16] o.s.i.d.c.f.s.PropertySetReplyFunction   : topic: /blade/sys/UOTafGNO4che/1302000100/thing/service/property/set_reply, topicVariables: {productKey=UOTafGNO4che, deviceName=1302000100}

    2026-01-27 14:11:36.052  INFO 74927 --- [pool-3-thread-1] o.s.i.t.tdengine.dao.TDEngineTemplate    : TdEngine saveBatch sql:INSERT INTO `device_logger_uotafgno4che_1302000100` USING `device_logger` TAGS ('UOTafGNO4che', '1302000100') (`time`, `topic`, `message`) VALUES (?, ?, ?) `device_logger_uotafgno4che_1302000100` USING `device_logger` TAGS ('UOTafGNO4che', '1302000100') (`time`, `topic`, `message`) VALUES (?, ?, ?); paras:[1769494295933, /blade/sys/UOTafGNO4che/1302000100/thing/service/property/set, {"id":"4027d6fe6f0fa45dd858a0c164885f59","version":"1.0","sys":{"ack":0},"method":"thing.service.property.set","params":{"pump_status":0}}, 1769494295949, /blade/sys/UOTafGNO4che/1302000100/thing/service/property/set_reply, {"id":"4027d6fe6f0fa45dd858a0c164885f59","version":"1.0","sys":{"ack":0},"params":{"pump_status":0}}] updated count:2

    2026-01-27 14:11:47.129  WARN 74927 --- [imerTaskService] o.tio.server.task.ServerHeartbeatTask    : 


    image.png


    回答: 16小时前

    set_reply 只是像平台回复一个设置成功的消息,并不会入库。正常情况下设备设置成功后会在下次心跳的时候上报最新数据(property.post),这样平台就能看到。如果你要立马看到,那么在设置set_reply后,网关还需要再上报一次属性,也就是立马触发一次常规的数据上报流程。

    0 讨论(0)
提交回复