作者:admin于 2018年09月16日 发布在分类 / 产品相关 / 通讯模块 / 接入规范与标准 下,并于 2018年09月16日 编辑
    2018-09-16 17:33:56版本: MIOC 标准接入协议 通讯模组与云端-红外宝V1.0
    历史版本

    修改日期 修改人 备注
    2018-09-28 18:10:33[当前版本] admin 完善协议
    2018-09-25 15:35:56 admin 格式调整
    2018-09-16 17:33:56 admin CREAT

    一、建立与MIOC-TCP服务器的连接

    请先使用测试服地址完成接入测试,再修改为正式服地址

    测试服

    HOST  mioto-service.imwork.net

    PORT  40252

    正式服

    HOST  tcp.9iot.cn

    PORT  9995


    USERNAME  2yS992iUXqEvI0j8iGXa

    PASSWORD  1D6847E292C9440B848F7AE37C4A4B53


    CLIENT ID  请根据设备情况,写入设备全球唯一标识。一般为设备/WIFI 模块MAC地址。 16字节,不足末尾补零。



    二、指令说明。


    1)协议结构说明

    字段

    大小(byte)

    描述

    协议头

    version

    2

    版本号

    length

    2

    数据包大小

    header_crc

    2

    协议头校验码

    协议体

    body

    Length - 8

    数据体

    body_crc

    2

    数据体校验码










    Version 版本号(公有协议 0001 开始,私有协议 0501开始)

    Length 完整协议包大小

    Header_crc  协议头校验码。采用的多项式为CRC-16/CCITT16位循环校验码


    Body 数据体,以下为数据体结构定义


    字段

    大小(byte)

    描述

    PackageType

    1

    协议包类型

    Command

    2

    应用命令字

    Data

    不定长

    数据


    PackageType :协议包类型,用于应用层消息逻辑处理方式。以下为协议包类型值约定:


    字节值

    描述

    0x00

    Message,无需回复协议包类型

    0x01

    Get,需回复协议包类型,用于请求获取数据回复

    0x02

    Set,需回复协议包类型,用于设置数据需返回设置成功与否

    0x03

    Result,无需回复协议包类型,用于set/get类型正确回复包,序列号与set和get包相同

    0x04

    Error,无需回复协议包类型,用于set/get类型错误回复包,序列号与set和get包相同


    Command  应用命令字,以下为值约定:


    数据包类型

    command

    source数据来源

    设备登录认证

    0x0001

    设备

    设备数据上传

    0x0002

    设备

    发送设备控制指令

    0x0003

    Server

    时间同步

    0x0004

    Server

    心跳包

    0xFFFF

    设备




    2)设备与服务端建立连接之后,应首先发送设备认证数据包。以下为设备认证指令说明与实例:


    分类

    描述

    长度[字节]

    字段名

    数据样例

    Header

    2

    VERSION/版本

    0001

    2

    LENGTH/长度

    0000

    2

    Header_CRC/头部校验码

    0000

    PayLoad

    1

    PackgeType   / 协议包类型

    01

    2

    Command / 数据包类型

    0001



    16 MAC ADDRESS /设备标识 00000000000000010000(不足末尾补零)

    20

    USERNAME / 用户名对应APPID

    [BG73ivJHX6OFxxxxXXXX]

    ASCII

    16

    PASSWORD / 密码对应PRODUCT_ID

    5D31FF4CA98943E9955A025C9CAC23F3

    1

    Device Type / 设备类型

    33

    2

    PayLoad_CRC / 数据体校验码

    0000

    RES:


    分类

    描述

    长度

    字段名

    数据样例

    Header

    2

    version

    0001

    2

    length

    0000

    2

    header_crc

    0000

    Payload

    Defination

    1

    PackageTypeee

    03

    2

    Command

    0001

    Date


    1

    RES

    00(成功) 01(认证失败)

    Tail

    2

    CRC

    0000











    设备(Device Type)类型说明:

    设备

    标识(1byte)

    红外宝

    0x33






    3)设备认证通过之后,应根据实际持续情况上报心跳包:

    此处应结合接入设备和上层应用的实际情况,合理选择心跳包上传频率及方案。一般情况下,如设备在接受云端指令之外的动作触发(如机械或者红外等方案),应即时通过心跳方式将当前状态上报上来。

    如设备某些参数时刻变化,如传感器类设备,则建议按一定时间间隔上报最新状态。


    分类

    描述

    长度[字节]

    字段名

    数据样例

    Header

    2

    VERSION/版本

    0001

    2

    LENGTH/长度

    0000

    2

    Header_CRC/头部校验码

    0000

    PayLoad

    1

    PackgeType   / 协议包类型

    00

    2

    Command / 数据包类型

    FFFF

    1

    Device Type / 设备类型

    0x33

    不定长

    结合实际情况,一般可将设备当前状态值上报上来,若无则为空

    0000

    2

    PayLoad_CRC / 数据体校验码

    0000



    心跳发送约定

    1、设备上电入网,认证通过,立即发送至少一次心跳

    2、设备状态改变(包括且不限于,MIOC系统控制/外界条件触发/传统渠道如遥控、功能按钮),立即发送至少一次

    3、一定时间间隔,如60s




    4)云端接受各客户终端的控制请求,向设备发送控制指令:


    分类

    描述

    长度[字节]

    字段名

    数据样例

    Header

    2

    VERSION/版本

    0001

    2

    LENGTH/长度

    0000

    2

    Header_CRC/头部校验码

    0000

    PayLoad

    1

    PackgeType   / 协议包类型

    02

    2

    Command / 数据包类型

    0003

    1

    Device Type / 受控设备类型


    单品类型:02



    16 Suite ID / 套件标识

    00000000000000000000000000000000



    1 Control Type / 控制类型 01

    2

    Control Value / 控制设值

    0001

    2

    PayLoad_CRC / 数据体校验码

    0000


    设备应反馈控制结果:


    分类

    描述

    长度[字节]

    字段名

    数据样例

    Header

    2

    VERSION/版本

    0001

    2

    LENGTH/长度

    0000

    2

    Header_CRC/头部校验码

    0000

    PayLoad

    1

    PackgeType   / 协议包类型

    03

    2

    Command / 数据包类型

    0002

    1

    Control Type / 控制类型

    01

    1

    Control Value / 控制设值

    00

    1

    RESULT / 控制结果

    00[SUCCESS]

    0X[FAILD]

    2

    PayLoad_CRC / 数据体校验码

    0000

    MIOTO WIKI-V3.2.0