阿里云MQTT报文--2

  • 14.DISCONNECT-------断开连接
    E0 00
    在这里插入图片描述

发送后断开连接,设备呈现离线状态

  • 12.PING:
    C0 00
    之前连接报文中00 64 是100秒的保护时间,在100秒时间内没有有效数据要发送,防止被服务器踢下来就要在100秒时间内发送一个PING包
    在这里插入图片描述
    在这里插入图片描述
    回复D0 00
  • 8.SUBSCRIBE -------订阅主题
    等级0:
    82 35 00 0A 00 30 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74 00
    等级1:
    82 35 00 0A 00 30 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74 01
    在这里插入图片描述
    82 ?? 00 0A
    报文标识符相当于一个ID,以便服务器确定身份。
    在这里插入图片描述
    在这里插入图片描述
    把对应的设备名字改好之后转换为16进制表示。前面在加上16进制的长度
    /sys/grioBm0cRmf/D001/thing/service/property/set

/sys/grioBm0cRmf/D001/thing/service/property/set
00 30 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74

82 ?? 00 0A 00 30 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74
SUBSCRIBE 等级0----------------后面添00
82 ?? 00 0A 00 30 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74 00
SUBSCRIBE 等级1----------------后面添01
82 ?? 00 0A 00 30 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74 01
在求出剩余长度
注意:0A相当于身份,改成1C服务器返回相应的也是1C
允许的返回码值:
0x00 - 最大QoS 0
0x01 - 成功 - 最大QoS 1
0x02 - 成功 - 最大QoS 2
0x80 - Failure 失败
在这里插入图片描述

  • 10.UNSUBSCRIBE-------取消订阅
    A2 34 00 0A 00 30 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74
    取消没有等级(没有最后一个字节),所以对应前面剩余长度改为34
    取消为A2

  • 调试

在这里插入图片描述
点击设置后发送指令
在这里插入图片描述
8E 01是剩余长度
00 30是长度,十进制为48个字节。数48个字节为2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74
再转换成16进制后为
/sys/grioBm0cRmf/D001/thing/service/property/set
剩下的就是数据7B 22 6D 65 74 68 6F 64 22 3A 22 74 68 69 6E 67 2E 73 65 72 76 69 63 65 2E 70 72 6F 70 65 72 74 79 2E 73 65 74 22 2C 22 69 64 22 3A 22 36 33 33 32 31 34 37 37 36 22 2C 22 70 61 72 61 6D 73 22 3A 7B 22 4F 4E 22 3A 30 7D 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 22 7D
转换为16字符串为
{“method”:“thing.service.property.set”,“id”:“633214776”,“params”:{“ON”:0},“version”:“1.0.0”}
方法就在产品功能定义的物模型里面
在这里插入图片描述
在这里插入图片描述
一会我们要给服务器上报的方法应该是
thing.event.property.post
id可以改变位数一样
{“method”:“thing.event.property.post”,“id”:“000000001”,“params”:{“ON”:0},“version”:“1.0.0”}
这个属于上报,比如服务器让你关,我要post上报我已经关了

以下为开始构建:

  • 3.PUBLIC--------------发布 等级0
    30 8C 01 00 2F 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 65 76 65 6E 74 2F 70 72 6F 70 65 72 74 79 2F 70 6F 73 74 7B 22 6D 65 74 68 6F 64 22 3A 22 74 68 69 6E 67 2E 65 76 65 6E 74 2E 70 72 6F 70 65 72 74 79 2E 70 6F 73 74 22 2C 22 69 64 22 3A 22 30 30 30 30 30 30 30 30 31 22 2C 22 70 61 72 61 6D 73 22 3A 7B 22 4F 4E 22 3A 30 7D 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 22 7D
    在这里插入图片描述
    固定包头30 剩余长度先用?? ??表示

30 ?? ??
在这里插入图片描述
接着是post发布
/sys/grioBm0cRmf/D001/thing/event/property/post
转化为16进制再在前面加上长度
00 2F 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 65 76 65 6E 74 2F 70 72 6F 70 65 72 74 79 2F 70 6F 73 74
后面紧跟着数据
{“method”:“thing.event.property.post”,“id”:“000000001”,“params”:{“ON”:0},“version”:“1.0.0”}
转换为16进制
7B 22 6D 65 74 68 6F 64 22 3A 22 74 68 69 6E 67 2E 65 76 65 6E 74 2E 70 72 6F 70 65 72 74 79 2E 70 6F 73 74 22 2C 22 69 64 22 3A 22 30 30 30 30 30 30 30 30 31 22 2C 22 70 61 72 61 6D 73 22 3A 7B 22 4F 4E 22 3A 30 7D 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 22 7D
合并起来为
30 ?? ?? 00 2F 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 65 76 65 6E 74 2F 70 72 6F 70 65 72 74 79 2F 70 6F 73 74 7B 22 6D 65 74 68 6F 64 22 3A 22 74 68 69 6E 67 2E 65 76 65 6E 74 2E 70 72 6F 70 65 72 74 79 2E 70 6F 73 74 22 2C 22 69 64 22 3A 22 30 30 30 30 30 30 30 30 31 22 2C 22 70 61 72 61 6D 73 22 3A 7B 22 4F 4E 22 3A 30 7D 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 22 7D
再计算出剩余长度,?? 后面的长度为140,对128取余为12,所以?? ?? 为1000 1100 0000 0001为8C 01

  • 观测

此时发送过去后观察运行状态
开关为关
在这里插入图片描述

在这里插入图片描述
如果此时将数据改为31发送后开关状态改变为开
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结:下发数据按三段来解析,上报也按照三段来整理。格式要按照固定格式。

相同的如果要post其他数据可以一起,再参数里面增加对应的键值对(注意值的精度)
{“method”:“thing.event.property.post”,“id”:“000000001”,“params”:{“ON”:1,“curr”:8,“volt”:230,“electric_fr”:49.90},“version”:“1.0.0”}
在这里插入图片描述
前面的报文不用改变(除了剩余长度)
30 ?? ?? 00 2F 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 65 76 65 6E 74 2F 70 72 6F 70 65 72 74 79 2F 70 6F 73 74
把后面的数据进行转化
7B 22 6D 65 74 68 6F 64 22 3A 22 74 68 69 6E 67 2E 65 76 65 6E 74 2E 70 72 6F 70 65 72 74 79 2E 70 6F 73 74 22 2C 22 69 64 22 3A 22 30 30 30 30 30 30 30 30 31 22 2C 22 70 61 72 61 6D 73 22 3A 7B 22 4F 4E 22 3A 31 2C 22 63 75 72 72 22 3A 38 2C 22 76 6F 6C 74 22 3A 32 33 30 2C 22 65 6C 65 63 74 72 69 63 5F 66 72 22 3A 34 39 2E 39 30 7D 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 22 7D
合并后计算除剩余长度:
30 B4 01 00 2F 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 65 76 65 6E 74 2F 70 72 6F 70 65 72 74 79 2F 70 6F 73 74 7B 22 6D 65 74 68 6F 64 22 3A 22 74 68 69 6E 67 2E 65 76 65 6E 74 2E 70 72 6F 70 65 72 74 79 2E 70 6F 73 74 22 2C 22 69 64 22 3A 22 30 30 30 30 30 30 30 30 31 22 2C 22 70 61 72 61 6D 73 22 3A 7B 22 4F 4E 22 3A 31 2C 22 63 75 72 72 22 3A 38 2C 22 76 6F 6C 74 22 3A 32 33 30 2C 22 65 6C 65 63 74 72 69 63 5F 66 72 22 3A 34 39 2E 39 30 7D 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 22 7D
再进行发送,这样就可以发布多个参数。
如果是等级1
首字节改为32 后面多个报文标识符00 0A
32 B4 01 00 0A 00 2F 2F 73 79 73 2F 67 72 69 6F 42 6D 30 63 52 6D 66 2F 44 30 30 31 2F 74 68 69 6E 67 2F 65 76 65 6E 74 2F 70 72 6F 70 65 72 74 79 2F 70 6F 73 74 7B 22 6D 65 74 68 6F 64 22 3A 22 74 68 69 6E 67 2E 65 76 65 6E 74 2E 70 72 6F 70 65 72 74 79 2E 70 6F 73 74 22 2C 22 69 64 22 3A 22 30 30 30 30 30 30 30 30 31 22 2C 22 70 61 72 61 6D 73 22 3A 7B 22 4F 4E 22 3A 31 2C 22 63 75 72 72 22 3A 38 2C 22 76 6F 6C 74 22 3A 32 33 30 2C 22 65 6C 65 63 74 72 69 63 5F 66 72 22 3A 34 39 2E 39 30 7D 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 22 7D
其他内容可以进行补充。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值