乐趣区

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

简介

咱们在日常应用中,局部智能设施自身反对接入 HomeKit,也就是说用户能够通过苹果手机的“家庭”将该设施进行接入、管制。但这种操作存在显著的局限性,安卓手机无奈应用,而且无奈与不反对接入 HomeKit 的设施进行联动。比方用 iPhone 近程开关家里的灯;

就拿 Home Assistant 来说,是一款基于 Python 的智能家居开源零碎,可能反对接入泛滥品牌智能设施,然而在肯定水平上也存在优劣势:第一方面劣势是具备集中化的治理;另一方面劣势是它只可能在局域网内拜访,无奈通过外网近程管制;

在此很多人还不晓得,国内首个采纳智能家居各厂商软件特点的全面开源协定,它凭借着能够离线运行在局域网内,并且通过绑定到智汀云来获取更弱小的性能,崛起的新秀。运行在局域网环境时,用户能够通过智汀 APP 发现与治理智汀家庭云,装置插件来对设施进行治理与管制。

其次,通过智汀云帐号,将智汀家庭云设施关联到云端,而后通过云端直达的形式反对在外网对设施进行管制。

同时提供设施间接接入云端虚构家庭的性能,不便无智汀家庭云设施的用户应用;智汀云也提供虚构家庭数据迁徙到实体家庭的接口。

对于关联到云端的家庭,智汀云提供云对云接入性能,用户可受权小度,天猫精灵,Google Nest 等智能音箱间接对设施进行管制。

二、装置第三方插件

智汀家庭云运行在 Linux 主机下,通过 Docker 来对其中的服务进行部署与资源隔离。其中局部外围服务容器须要事后配置,并且随系统启动主动运行;而插件(plugin)类服务则是由 SA 调用 docker API 的形式进行治理。

插件启动后会运行一个 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"
}]
退出移动版