当前位置: 首页 > Web前端 > HTML

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

时间:2023-04-02 11:50:58 HTML

带你了解智能家居开源项目:智听家庭云和家庭助手插件的初始配置访问和控制设备。不过这个操作有明显的局限性,不能使用安卓手机,也不能和不支持接入HomeKit的设备进行联动。比如用iPhone远程开关家里的灯;以HomeAssistant为例,它是一个基于Python的智能家居开源系统,可以支持接入众多品牌的智能设备,但在一定程度上也有优缺点:第一个优点是集中管理;另一方面,缺点是只能在局域网内访问,不能通过外网进行远程控制;很多人不知道,它是国内第一个综合开源的协议,采用了各个智能家居厂商的软件特性。它是一个冉冉升起的新秀,因为它可以在局域网中离线运行,并通过绑定智听云获得更强大的功能。在局域网环境下运行时,用户可以通过智庭APP发现和管理智庭家庭云,安装插件对设备进行管控。其次,通过智听云账号,将智听家庭云设备关联到云端,进而支持通过云端传输方式从外网控制设备。同时提供设备直连云端虚拟家庭功能,方便没有智听家庭云设备的用户使用;智庭云还提供了将虚拟家庭数据迁移到实体家庭的接口。针对接入云端的家庭,智听云提供了云到云的接入功能,用户可以授权小度、天猫精灵、谷歌Nest等智能音箱直接控制设备。2、安装Linux主机下运行的第三方插件智听家庭云,通过Docker部署服务和隔离资源。部分核心服务容器需要预先配置,随系统启动自动运行;而插件(plugin)服务则由SA调用dockerAPI进行管理。插件启动后,会运行一个gRPC服务和一个可选的HTTP服务。SA通过dockerAPI监控插件运行状态,通过gRPC接口获取插件信息。关于插件实现教程实现的示例插件;参考这个文档:golang|智庭科技开发文档开发实例1、镜像编译部署暂时只支持镜像方式安装插件。调试正常后,编译成镜像提供给SADockerfileexamplereferenceFROMgolang:1.16-alpineasbuilderRUNapkaddbuild-baseCOPY。/appWORKDIR/appRUNgoenv-wGOPROXY="goproxy.cn,direct"RUNgobuild-ldflags="-w-s"-odemo-pluginFROMalpineWORKDIR/appCOPY--from=builder/app/demo-plugin/app/demo-plugin#staticfileCOPY./html./htmlENTRYPOINT["/app/demo-plugin"]编译镜像dockerbuild-fyour_plugin_Dockerfile-tyour_plugin_namerunplugindockerrun-net=hostyour_plugin_name//注意:-net=host参数只对linux环境有用。与HomeBridge相比:它是一个动态插件,主要功能是让homekit识别连接到HomeAssistant的设备相当于一个网桥。Homebridge的安装需要npm。在树莓派上安装npm有点麻烦,这里就不详细介绍了。安装完npm后,只需输入以下语句即可安装homebridge及其相关依赖项。sudonpminstall-g--unsafe-permhomebridgehap-nodejsnode-gypcd/usr/local/lib/node_modules/homebridge/sudonpminstall--unsafe-permbignumcd/usr/local/lib/node_modules/hap-nodejs/node_modules/mdnssudonode-gypBUILDTYPE=Releaserebuild接下来就可以安装homebridge-mqtt了。npminstall-ghomebridge-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":"密码","cert":"/path/to/certificate.pem","key":"path/to/key.pem","ca":"/path/to/ca_certificate.pem"}]