涂鸦 Homebridge 插件使用及品类扩展教程

更新时间2021-05-10 08:56:06

概况

本文介绍如何在 macOS 上使用涂鸦官方 Homebridge 插件连接智能设备以及扩展品类。

什么是 HomeKit

HomeKit 是苹果 2014 年发布的智能家居平台。借助 HomeKit,用户可以使用苹果设备控制家里所有标有“Works with Apple HomeKit”(兼容 Apple HomeKit)的设备。这些设备包括灯、锁、恒温器和智能插头等。

什么是 Homebridge

Homebridge 是一个轻量级的 NodeJS 服务器,可以在家庭网络上运行。它模拟了 iOS HomeKit API,支持 Homebridge 插件,提供了各种第三方智能家居设备 API 和 HomeKit 之间的桥梁。
您可以轻松地通过 Homebridge 来把第三方智能设备接入 HomeKit。在使用和开发 Homebridge 插件之前,建议查看 Homebridge 官方介绍

受众人群/潜在群体

Homebridge 插件开发适合家里有比较多的智能设备的智能家居爱好者,以及爱折腾、爱玩电子设备且有一定的技术能力(通过简单的技术教程,会安装和使用)的用户。

物料清单

硬件 (4)软件 (2)
  • 苹果电脑

    数量:1

    用于安装插件和启动服务。

  • iOS 设备

    数量:1

    可以是苹果手机、平板或手表,用于控制 HomeKit。

  • 智能家居设备

    数量:1

    可以使用智能彩灯、开关、插座等,用于演示控制效果。

  • 安卓设备

    数量:1

    用于安装 IoT 配网工具对设备进行配网。

步骤

  • 第 1 步:开始前准备

    注册信息准备

    涂鸦应用注册信息会在将来用到。
    请参考 tuya-iot-app-sdk-python 中的 BeforeUse 章节, 在涂鸦 IoT 平台 上注册账号,创建对应的云开发项目,最后创建该账号下的资产、用户和云应用,获取到对应的用户名、密码、Access ID 和 Access Secret。

    硬件准备

    硬件 说明
    PC、树莓派或服务器 用于安装插件和启动服务。本文以苹果电脑为例进行演示。
    智能设备 用于演示智能设备的接入和控制。
    iOS 设备 用于控制 HomeKit。

    软件准备

    软件 说明
    命令行工具 用户自行选择。本文使用 macOS 自带的 终端
    配网工具 IoT App 配网工具 或 微信小程序(搜索关键词“涂鸦智能配网”)。
  • 第 2 步:安装

    1. 打开终端工具。
    2. 参考 Homebridge 官方文档 安装 Homebridge。
    3. 安装 Tuya Homebridge 插件。

      注意:如果在安装过程中遇到问题,可尝试在命令行之前加上 sudo,将执行命令角色权限变更为管理员。

      1. 安装插件。

        npm install homebridge-tuya-platform
        
      2. 等待安装完成,判断是否安装成功。详细过程可以参考下面的视频。

  • 第 3 步:配置

    在使用之前,需要先配置 Homebridge 插件中的 config.json 文件。

    1. 进入 homebridge-tuya-platform 目录。
      cd ./node_modules/homebridge-tuya-platform
      
    2. 进入 config 目录。
      cd ./config 
      
    3. 编辑 config.json 文件。
      vim config.json
      
    4. options 中填入注册信息准备过程中获取到的用户名、密码、Access ID 和 Access Secret。其中,lang 默认为 en,endPoint 为当前 Tuya open API 服务的域名。
      区域 endPoint
      美国 https://openapi.tuyaus.com
      中国 https://openapi.tuyacn.com
      欧洲 https://openapi.tuyaeu.com
      印度 https://openapi.tuyain.com
      美国东部 https://openapi-ueaz.tuyaus.com
      西欧 https://openapi-weaz.tuyaeu.com
      编辑注册信息
    5. 保存并退出编辑。
  • 第 4 步:启动 Tuya Homebridge 插件

    1. 回到 homebridge-tuya-platform 根目录。
      cd ..
      
    2. 启动插件。
      homebridge -D -U ./config/ -P ./ 
      
  • 第 5 步:使用

    打开苹果设备,在 App Store 中安装苹果官方“家庭” 应用软件,通过扫描启动插件步骤中的二维码,或者输入 8 位数字的 Pin 值(Pin 值也可在 Config.json 文件中找到)来添加配件。

  • 第 6 步:开发插件与贡献代码

    您可以 fork 仓库代码分支,按照安装、配置、使用 tuya 插件的步骤,将代码启动起来。

    开发环境搭建

    —-VSCode
    —-engines
        "node": “>=0.12.0”
        "homebridge": ">=0.2.0"
    —-dependencies
        "axios": “^0.21.1",
        "crypto-js": “^4.0.0”, 
        "mqtt": “^4.2.6",
        "uuid": "^8.3.2"
    

    品类扩充

    一、插件的实现部分的原理简介

    7f02e6c5e6654a882713361ae88a679c

    二、需要关注的 js 文件

    • 入口文件 index.js。在 addAccessory() 函数中新增你的品类,并创建对应的 xx_accessory.js 文件。
      7f02e6c5e6654a882713361ae88a679c

    • 文件xx_accessory.js。在xx_accessory.js中,只需在 refreshAccessoryServiceIfNeed() 函数中遍历你所新增品类支持的 function,以及根据支持的 function 生成 Service 对应的 Characteristic。
      7f02e6c5e6654a882713361ae88a679c

    • 文件tuyaopenapi.js:设备相关接口。

    • 文件tuyamqttapi.js:支持 MQTT 服务。

    FAQ

    常见安装问题

    请见 Homebridge Common Issues。

    Tuya Open API

    • login(username, password) 登录
    • getDeviceList() 获取账号资产下的所有设备(设备对应Accessory)
    • get_assets() 获取人员可操作资产列表
    • getDeviceIDList(assetID) 查询资产下的设备ID列表
    • getDeviceFunctions(deviceID) 获取设备指令集
    • getDeviceInfo(deviceID) 获取单个设备信息
    • getDeviceListInfo(devIds = []) 批量获取设备信息
    • getDeviceStatus(deviceID) 获取单个设备状态
    • getDeviceListStatus(devIds = []) 批量获取设备状态
    • sendCommand(deviceID, params) 下发设备命令

    MQTT

    • start() 启动mqtt
    • stop() 停止mqtt
    • addMessageListener(listener) 添加回调函数
    • removeMessageListener(listener) 移除回调函数