-
Notifications
You must be signed in to change notification settings - Fork 27
米家参数
部分解释参考来源于小米IOT设备规范v2
由于项目特殊性, 并不会将规范中的内容完整搬过来, 你可以选择阅读原文
URN表达式遵循URN语法规范(RFC2141),6个字段,最后一个字段为可选:
<URN> ::= "urn:"<namespace>":"<type>":"<name>":"<value>[":"<vendor-product>":"<version>]
-
urn
第一个字段必须为urn,否则视为非法urn。
-
namespace
如果是小米定义的规范为miot-spec-v2,蓝牙联盟定义的规范为bluetooth-spec。
-
type
SpecificationType (类型,简写为: type),只能是如下几个:
- template
- property
- action
- event
- service
- device
-
name
有意义的单词或单词组合(小写字母),多个单词用"-"间隔,比如:
- temperature
- current-temperature
- device-name
- battery-level
-
value
16进制字符串,使用UUID前8个字符,如:
- 00002A06
- 00002A00
-
vendor-product
厂家+产品代号,有意义的单词或单词组合(小写字母),用"-"间隔,比如:
- philips-moonlight
- yeelink-c300
- zhimi-vv
- benz-c63
注:这个字段只有在设备实例定义里出现。
-
version
版本号,只能是数字,如:
- 1
- 2
- 3
注:这个字段只有在设备实例定义里出现。
Instance ID, 简称iid, 用于指定某个实例, 用整数表示
在不同的设备实例中, 为了区分不同实例, 特定iid
只会指向一个特定实例
并且一个iid
在同一级是唯一的
在下文提到的 siid
, aiid
, piid
都属于特定的iid
在一个设备实例下, 会有许多不同的 Service
Service
的设备实例简称为siid
例如
- Light
- Fan
Service
是指在设备实例中代表的不同的功能板块
而在Service
之下还有Property和Action两类
具体
例如风扇灯
就是一种将风扇
和照明
两种功能结合起来的智能设备
为了方便区分和适配, 将其分成了两个服务
Property
的设备实例简称为piid
属性包含了下面的内容
勾选的功能是必须存在的
-
type
描述
Property
属性的Urn表达式:urn:miot-spec-v2:property:color-temperature:0000000F
-
description
简短的
Property
描述 -
format
常见数据格式
数据格式 描述 bool 布尔值: true/false 或 1/0 uint8 无符号8位整型 uint16 无符号16位整型 uint32 无符号32位整型 int8 有符号8位整型 int16 有符号16位整型 int32 有符号32位整型 int64 有符号64位整型 float 浮点数 string 字符串 -
access
可访问方式
值 描述 read 读 write 写 notify 通知 -
value-range
对取值范围进行约束,可选字段
当format为整型或浮点数,可定义value-range,比如:
最小值 最大值 步长 16 32 0.5 用JSON数组表示:
[16, 32, 0.5]
-
value-list (对取值范围进行约束,可选字段)
当format为整型,可定义"value-list",每个元素都包含:
- value
- description
用JSON数组表示,如:
[ {"value": 1, "description": "Monday"}, {"value": 2, "description": "Tuesday"}, {"value": 3, "description": "Wednesday"}, {"value": 4, "description": "Thursday"}, {"value": 5, "description": "Friday"}, {"value": 6, "description": "Saturday"}, {"value": 7, "description": "Sunday"} ]
-
unit (单位,可选字段)
当format为整型或浮点型,可定义unit值:
值 描述 percentage 百分比 celsius 摄氏度 seconds 秒 minutes 分 hours 小时 days 天 kelvin 开氏温标 pascal 帕斯卡(大气压强单位) arcdegrees 弧度(角度单位) 在表格外还有部分单位没有计入, 可以之间用于展示, 如
pm2.5
的单位
Action
的设备实例简称为 aiid
一般来说, 执行设备的动作并不需要输入参数, 可以直接执行, 例如米家扫拖机器人
的全局清扫
但也有特殊情况, 例如宠物喂食机
的喂食计划
需要传入数据用于返回特定的数据
in
指 传入数据
out
指 返回数据
返回和输入都是字符串, 需要自行解析
小米定义了很多Property、Action、Event、Service、Device。从www.miot-spec.org 使用标准HTTP/GET请求可以读取规范定义。
-
读取所有的PropertyType
-
读取所有的ActionType
-
读取所有的EventType
-
读取所有的ServiceType
-
读取所有的DeviceType
-
读取一个PropertyType的具体定义
http://miot-spec.org/miot-spec-v2/spec/property?type=urn:miot-spec-v2:property:on:00000006
-
读取一个ActionType的具体定义
http://miot-spec.org/miot-spec-v2/spec/action?type=urn:miot-spec-v2:action:play:0000280B
-
读取一个ServiceType的具体定义
http://miot-spec.org/miot-spec-v2/spec/service?type=urn:miot-spec-v2:service:fan:00007808
-
读取一个DeviceType的具体定义
http://miot-spec.org/miot-spec-v2/spec/device?type=urn:miot-spec-v2:device:light:0000A001