Skip to content

米家参数

Sky233ml edited this page Apr 9, 2024 · 5 revisions

米家参数

部分解释参考来源于小米IOT设备规范v2

由于项目特殊性, 并不会将规范中的内容完整搬过来, 你可以选择阅读原文

Urn

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
    注:这个字段只有在设备实例定义里出现。
    

实例ID

Instance ID, 简称iid, 用于指定某个实例, 用整数表示

在不同的设备实例中, 为了区分不同实例, 特定iid只会指向一个特定实例

并且一个iid在同一级是唯一的

在下文提到的 siid, aiid, piid 都属于特定的iid

Service(服务)

在一个设备实例下, 会有许多不同的 Service

Service的设备实例简称为siid

例如

  • Light
  • Fan

Service 是指在设备实例中代表的不同的功能板块

而在Service之下还有PropertyAction两类

具体

例如风扇灯就是一种将风扇照明两种功能结合起来的智能设备

为了方便区分和适配, 将其分成了两个服务

Property(属性)

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(动作)

Action的设备实例简称为 aiid

一般来说, 执行设备的动作并不需要输入参数, 可以直接执行, 例如米家扫拖机器人全局清扫

但也有特殊情况, 例如宠物喂食机喂食计划

需要传入数据用于返回特定的数据

in传入数据 out返回数据

返回和输入都是字符串, 需要自行解析


小米定义了很多Property、Action、Event、Service、Device。从www.miot-spec.org 使用标准HTTP/GET请求可以读取规范定义。

Type列表

具体Type定义

Clone this wiki locally