likes
comments
collection
share

带你了解智能家居开源项目:智汀家庭云与Home Assistant之插件初步配置

作者站长头像
站长
· 阅读数 30

简介

我们在日常使用中,部分智能设备本身支持接入HomeKit,也就是说用户可以通过苹果手机的“家庭”将该设备进行接入、控制。但这种操作存在明显的局限性,安卓手机无法使用,而且无法与不支持接入HomeKit的设备进行联动。比如用iPhone远程开关家里的灯;

就拿Home Assistant来说,是一款基于Python的智能家居开源系统,能够支持接入众多品牌智能设备,然而在一定程度上也存在优劣势:第一方面优势是具有集中化的管理;另一方面劣势是它只能够在局域网内访问,无法通过外网远程控制;

在此很多人还不知道,国内首个采用智能家居各厂商软件特点的全面开源协议,它凭借着可以离线运行在局域网内,并且通过绑定到智汀云来获取更强大的功能,崛起的新秀。运行在局域网环境时,用户可以通过智汀APP发现与管理智汀家庭云,安装插件来对设备进行管理与控制。

带你了解智能家居开源项目:智汀家庭云与Home Assistant之插件初步配置

其次,通过智汀云帐号,将智汀家庭云设备关联到云端,然后通过云端中转的方式支持在外网对设备进行控制。带你了解智能家居开源项目:智汀家庭云与Home Assistant之插件初步配置

同时提供设备直接接入云端虚拟家庭的功能,方便无智汀家庭云设备的用户使用;智汀云也提供虚拟家庭数据迁移到实体家庭的接口。

带你了解智能家居开源项目:智汀家庭云与Home Assistant之插件初步配置

对于关联到云端的家庭,智汀云提供云对云接入功能,用户可授权小度,天猫精灵,Google Nest 等智能音箱直接对设备进行控制。

带你了解智能家居开源项目:智汀家庭云与Home Assistant之插件初步配置

二、安装第三方插件

智汀家庭云运行在 Linux 主机下,通过 Docker 来对其中的服务进行部署与资源隔离。其中部分核心服务容器需要预先配置,并且随系统启动自动运行;而插件(plugin)类服务则是由 SA 调用 docker API 的方式进行管理。带你了解智能家居开源项目:智汀家庭云与Home Assistant之插件初步配置

插件启动后会运行一个 gRPC 服务以及一个可选的 HTTP 服务,SA 通过 docker API 监听插件运行状态,通过 gRPC 接口获取插件信息,关于插件实现教程实现的示例插件;参考该文献:golang | 智汀科技开发文档

开发范例1. 镜像编译和部署

暂时仅支持以镜像方式安装插件,调试正常后,编译成镜像提供给SA

  • Dockerfile示例参考
FROM golang:1.16-alpine as builder
RUN apk add build-base
COPY . /app
WORKDIR /app
RUN go env -w GOPROXY="goproxy.cn,direct"
RUN go build -ldflags="-w -s" -o demo-plugin
 
FROM alpine
WORKDIR /app
COPY --from=builder /app/demo-plugin /app/demo-plugin
 
# static file
COPY ./html ./html
ENTRYPOINT ["/app/demo-plugin"]
  • 编译镜像
docker build -f your_plugin_Dockerfile -t your_plugin_name
  • 运行插件
docker run -net=host your_plugin_name
//注意:-net=host 参数只有linux环境才有用。

而对比HomeBridge:是一个动态插件,主要作用是可以让homekit识别到Home Assistant接入的设备相当于一个桥的作用。

Homebridge的安装需要npm,树莓派下安装npm有点麻烦,这里就不详细描述。安装好npm后只需按顺序输入下面语句即可安装homebridge及其相关依赖包。

sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
cd /usr/local/lib/node_modules/homebridge/
sudo npm install --unsafe-perm bignum
cd /usr/local/lib/node_modules/hap-nodejs/node_modules/mdns
sudo node-gyp BUILDTYPE=Release rebuild

接下来可以安装homebridge-mqtt了。

npm install -g homebridge-mqtt

在树莓派上,Homebridge 的配置主要是编辑「/home/pi/.homebridge」下的「config.json」文件。下面是homebridge-mqtt 配置示例。

{
"bridge": {
"name": "Homebridge",
"username": "12:34:56:78:90:AB",
"port": 38960,
"pin": "123-45-678"
},
    "platforms": [{
 "platform": "mqtt",
    "name": "mqtt",
    "url": "mqtt://127.0.0.1",
    "port": 61613,
    "topic_type": "multiple",
    "topic_prefix": "homebridge",
    "username": "admin",
    "password": "password",
    "cert": "/path/to/certificate.pem",
    "key": "path/to/key.pem",
    "ca": "/path/to/ca_certificate.pem"
}]