智能家居开源生态——智汀家庭云的WebSocket API 消息定义

56 篇文章 0 订阅
1 篇文章 0 订阅
本文探讨了WebSocket协议在智能家居中的应用,特别是在智汀家庭云中的消息定义。内容包括消息ID、设备状态变更、设备发现、设备属性的获取与设置,以及插件安装等操作的WebSocket交互。
摘要由CSDN通过智能技术生成

WebSocket 是一种网络传输协议,可在单个 TCP 连接上进行全双工通信,位于 OSI 模型的应用层。WebSocket 协议在 2011 年由 IETF 标准化为 RFC 6455,后由 RFC 7936 补充规范。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。本文主要跟大家分享一下智汀家庭云的WebSocket API 消息定义。

  1. 消息定义

通常,一个 WebSocket 消息格式如下:

{
  "id": 1,
  "domain": "",
  "service": "",
  "service_data": {
    "device_id": 1
  }
}

·id: 消息ID,必填,服务端会返回对应 ID 的结果

·domain: plugin或者插件id

  1. 设备相关命令

2.1插件设备状态变更

{
  "type": "attribute_change",
  "identity": "2762071932",
  "instance_id": 2,
  "attr": {
    "attribute": "power",
    "val": "on",
    "val_type": "string"
  }
}

2.2发现设备

请求:Request

{
  "id": 1,
  "service": "discover"
}

响应:Response

{
    "id": 1,
    "type": "",
    "result": {
        "device": {
            "name": "zhiting_M1",
            "identity": "hijklmn",
            "model": "M1",
            "manufacturer": "zhiting",
            "plugin_id": "demo"
        }
    },
    "success": true
}

2.3获取设备属性

请求:Request

{
  "id": 1,
  "domain": "zhiting",
  "service": "get_attributes",
  "identity": "2762071932"
}

响应:Response

{
  "id": 1,
  "result": {
    "identity": "2762071932",
    "device": {
      "name": "",
      "identity": "2762071932",
      "instances": [
        {
          "type": "light_bulb",
          "instance_id": 0,
          "attrs": [
            {
              "attribute": "power",
              "val": "on",
              "val_type": "string"
            },
            {
              "attribute": "brightness",
              "val": 55,
              "val_type": "int"
            },
            {
              "attribute": "color_temp",
              "val": 3500,
              "val_type": "int"
            }
          ]
        }
      ]
    }
  },
  "success": true
}

2.4 设置设备属性

请求:Request

{
  "id": 1,
  "domain": "zhiting",
  "service": "set_attributes",
  "identity": "2762071932",
  "service_data": {
    "attributes": [
      {
        "instance_id": 1,
        "attribute": "power",
        "val": "on"
      }
    ]
  }
}

响应:Response

{
  "id": 1,
  "type": "response",
  "success": true,
  "error": "error"
}

3.安装插件

{
  "id": 1,
  "domain": "plugin",
  "service": "install",
  "service_data": {
    "plugin_id": "plugin_id"
  }
}

{
  "id": 1,
  "success": true
}

以上,感谢大家观看,感兴趣可以在评论区给小编留言哦。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值