树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit

通过本篇教程,你将完成对 Home Assistant 的初步配置,接入小米智能家居设备,并在安装配置 Home Bridge 插件后,实现 HomeKit 功能,即在 iOS 家庭 App 中控制这些设备。

如同很多开源项目,Home Assistant 对新手十分不友好,它更像是 Geek 们的玩物,你需要去阅读大量的英文文档,在编辑器里编辑自己的配置文件、手动添加智能设备、自定义每一个细节,这巨大的工作量使人望而却步。而 Hass.io 就是在这样一个背景下推出,它拥有了全新的可视化安装配置界面,能够轻松的安装与升级(不要在意那些网络细节),更重要的是依托于 Docker 技术,Hass.io 提供了插件(Add-ons)功能,你能够非常方便的安装与管理一些之前需要在命令行环境下部署的功能。如果你随同上一篇文章安装好了自己的 Hass.io,那么今天,我们将一起让它真正工作起来。

一、初步配置 Home Assistant

  1. 插件的安装

▲安装插件

点击左边栏 Hass.io 选项,于右上方进入插件商店。

插件(Add-ons)扩展了 Home Assistant 的功能,官方提供了 Duck DNS、Google Assistant、SSH Server、Samba 等插件,用户还可以通过简单的操作,安装第三方插件,实现更多功能。

▲插件商店

安装 Samba 插件

Samba 是 SMB/CIFS 网络协议的重新实现, 它作为 NFS 的补充使得在 Linux 和 Windows 系统中进行文件共享、打印机共享更容易实现。

Smaba 服务是必装的一个插件,Hass.io 通过它与局域网内的其他设备进行文件共享,是之后编辑 Hass.io 配置文件的前提。在插件商店找到 Smaba Share,点击进入安装界面,点击 INSTALL 进行安装。

▲Smaba

安装结束后(耐心等待)进入 Info 及 Options 界面,打开自动更新,点击 Start,SMB服务就启动了。

▲配置 Smaba

{ /*配置说明*/"workgroup": "WORKGROUP", /*用户组(可选),默认值 WORKGROUP。*/"name": "hassio", /*用户名(可选),默认值 hassio。*/"guest": true, /*(可选)是否允许客人用户(无用户名无密码)默认值 true。*/"map": {      /*开放文件夹(可选),可选有 config,addons,share,backup,ssl。*/"config": true,"addons": true,"ssl": false,"share": true,"backup": true},"username": "", /*登录用户名(可选)。*/"password": "", /*登录密码(可选)*/"interface": "eth0" /*开放接口(可选),有线网连接使用 eth0,无线网连接使用 wlan0。*/}

安装 SSH server 插件

{ /*配置说明*/"authorized_keys": [], # 公钥,与下一个选项二选一,两种登陆方式"password": "1234567"  # 填入SSH登陆密码}

通过 SSH 登录的用户名是 root。

  1. Home Assistant 配置框架

在 Windows 或 macOS 的网络共享中找到并打开 hassio,(如果在 Windows 网络中不显示,在资源管理器中输入“ HASSIO” 回车后进入)config 文件夹内的 configuration.yaml,是我们配置的主文件,通过编辑此文件来设置 Hass.io、添加组件、个性化配置系统。

▲ HASSIO 文件结构

你必须重新启动 Home Assistant 才能使更改后的 configuration.yaml 生效。

YAML 是一个可读性高,用来表达资料序列的编程语言。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822,是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。

需要注意的是 YAML 是一个对缩进以及空格等元素敏感的编程语言,而 configuration.yaml 的语法错误会造成 Hass.io 无法正常运行。

YAML 基本语法规则:

大小写敏感

使用缩进表示层级关系

缩进时不允许使用Tab键,只允许使用空格。

缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

推荐使用 Sublime 或者 Atom 编辑 configuration.yaml 文件,你可以使用 YAMLLint 检查您的YAML语法是否正确。

下面是典型的 configuration.yaml 文件。

 homeassistant:# 后面的文字是注释,被系统忽略。# 智能家居系统的名字,显示在主界面顶部。name: Home# 下面填入纬度和经度,计算太阳升起和设定时间所需位置,越精确越好。latitude: 30.169813longitude: 114.192472# 海拔高度用于修正天气参数和日出日落时间参数 (默认单位是:米)。elevation: 37# 度量衡单位制式(metric)是公制,(imperial)是英制。unit_system: metric# 时区,从这里选择你的:http://en.wikipedia.org/wiki/List_of_tz_database_time_zones,一般不需要修改。time_zone: Asia/Shanghai#下面这个区域,用于自定义设备属性,后期文章会有涉及。customize: !include customize.yaml#在网页界面的首页显示简介(那一大段英文),不想看到的话,请在前面加上#号。introduction:# 是否使用默认的“首页”frontend:http:# 给系统网页的登录加上一个密码,先去掉下面这行的#号,然后把PASSWORD改成你想要的密码。api_password: raspberry# 升级提示,当 HomeAssitant 有新版本发布的时候,“日出日落”图标会变成(Updater)字样updater:# 系统自动发现新的设备discovery:# 启动浏览器的语音命令conversation:# 在系统数据库中保存“历史数据”history:# 在logbook查看所有的“已发生事项”logbook:# 设置config:# Hass.iohassio:# 太阳“跟踪器”,也就是“日出日落时间”sun:# 小米智能网关xiaomi:gateways:- mac: xxxxxxkey: xxxxxxsensor: !include sensors.yamlgroup: !include groups.yamlautomation: !include automations.yaml
  1. 添加第一个设备/服务
    在 Home Assistant 中,所有接入设备或者服务,只需要将相关组件写入 configuration.yaml 文件中即可。

组件(Components)是 Home Assistant 的设备/服务接入形式,官方支持了 700 多种设备(虚拟设备)的接入,在 0.50 版本中,支持了小米智能家居的多种设备。通过自定义组件以及第三方组件,能够实现更多设备的接入。

示例:添加 Denon 功放

Home Assistant 对组件进行了分类,同品牌的设备会归于一个平台。根据官方文档,在 configuration.yaml 文件中添加以下内容。

 # 天龙功放media_player: # 设备类型- platform: denon # 所属平台host: 192.168.1.13 # IP地址

重启 Home Assistant 服务。

重启 Home Assistant 服务的几种方法:

在 Advanced Settings 中,还可以直接重启树莓派。

是不是很贴心,再加上 SSH 连接下的命令行重启,Home Assistant 为我们展示了服务重启的五种方法,这个知识点大家一定要牢记,必考题。初步配置 Home Assistant 并连接小米设备与 HomeKit

刷新浏览器,Marantz NR1504 设备就显示在 Home Assistant 首页上了。

▲关闭状态

▲开启状态

▲点击右下进入控制面板

二、小米设备接入 Home Assistant

小米设备众多,我仅选择官方原生支持接入的作为初级教程内容,

智能家居是一个系统化的工程,设备之间的通信就是基础建设。消费级智能家居硬件设备的爆发,使得我们能够轻松的搭建个人智能家居系统,而平台与产品的多样性也带来了多种的通信方式,诸如 Zigbee、蓝牙、WiFi、LAN。

小米生态链企业绿米联创生产的米家智能家庭组合使用的就是网关+子设备的模式,网关通过 WiFi 连入家庭网络,子设备通过 Zigbee 与网关连接。这可能是目前最适入手的智能家居模式了,体积小、功耗低、无需布线、不干扰 WiFi 设备,这也是我选择小米平台的一个主要原因。

小米旗下生态链企业众多,不同的产品也需要不同的连接方式。一般采用 Zigbee 技术的设备需要网关支持,在 Home Assistant 中只需要接入网关,就可以控制网关下的所有设备,而其他独立入网的设备,如米家扫地机器人等,需要单独接入。0.50 之后版本的 Home Assistant 提供的原生组件,支持了部分小米平台的设备。

▲Home Assistant 小米组件

小米多功能网关

第一代小米多功能网关无法接入。

我们需要准备小米多功能网关的 mac 地址和局域网通信协议密码 key。

在米家 App 中打开小米多功能网关,按图示获得相关信息。

▲获取 mac & key

▲获取 mac & key

iOS 与 Android 显示或有不同。

在 configuration.yaml 文件中添加如下代码:

 xiaomi:gateways:- mac: 你的网关mac,不含冒号key: 你的局域网通信协议key(注意空格与缩进)多个网关,格式如下:xiaomi:gateways:- mac: xxxxxxxxxxxxkey: xxxxxxxxxxxxxxxx- mac: xxxxxxxxxxxxkey: xxxxxxxxxxxxxxxx

重启 Home Assistant 服务后即可识别相关设备。

小米路由器

在 configuration.yaml 文件中添加如下代码:

 device_tracker:- platform: xiaomihost: 路由器 IPpassword: 路由器 密码

Yeelight

Home Assistant 支持 Yeelight 以下型号产品。

· YLDP01YL: LED Bulb (White)

· YLDP02YL: LED Bulb (Color)

· YLDP03YL: LED Bulb (Color) - E26

·YLDD02YL: Lightstrip (Color)

首先你需要 Yeelight App 中打开“极客模式”,在 configuration.yaml 文件中按以下模板添加代码:

如果你在 configuration.yaml 中开启了 discovery: 功能,那么在开启极客模式后,重启 Home Assistant,系统会自动添加相关灯具。

 light:- platform: yeelightdevices:192.168.1.25: #改为你的 Yeelight 相应IP地址。name: Living Roomtransition: 1000use_music_mode: True #(音乐随动模式,默认关闭)save_on_change: False #(记忆设置,默认开启)192.168.1.13: #多个 Yeelight 接入。name: Front Door

三、Home Bridge 插件

Home Bridge 是前苹果员工的作品,基于 NodeJS,模拟 iOS HomeKit API。有如其名,作为“桥”来连接 iOS 设备,使得本不支持 HomeKit 的设备能够接入。

在 Hass.io 中安装第三方插件 Home Bridge
打开侧边栏 Hass.io,点击进入插件商店

▲安装 Home Bridge 插件

添加插件地址:后保存。(换行后可添加多个地址)

▲安装 Home Bridge 插件

在页面底部找到新的 Home Bridge 插件,进入安装。

▲安装 Home Bridge 插件

▲安装 Home Bridge 插件

由于网络原因,安装可能较慢,不要着急,睡一觉起来它肯定安装好了。初步配置 Home Assistant 并连接小米设备与

配置 Home Bridge 插件
打开 HASSIOconfighomebridgeconfig.json 文件,按以下模板修改:

 {"bridge": {"name": "Home Assistant","pin": "123-45-678", /*随意八位pin码*/"port": 51826,"username": "XX:XX:XX:XX:XX:XX" /*你的树莓派mac地址*/},"description": "Homebridge for Home Assistant","platforms": [{"platform": "HomeAssistant","name": "HomeAssistant","host": "http://192.168.1.11:8123", /*你的 Home Assistant 地址*/"password": "raspberry", /*你的 Home Assistant 密码*/"supported_types": ["fan", "binary_sensor", "sensor", "garage_door", "input_boolean", "light", "lock", "media_player", "rollershutter", "scene", "switch"],"default_visibility": "visible","logging": true}]}

重启 Home Assistant,并在 Hass.io 中开启 Home Bridge 插件。

▲ Home Bridge 插件

整体而言,除了网络的问题之外,Hass.io 的安装还是很方便的,如果你曾经折腾过 Home Bridge 的话,Hass.io 使你不用费心搭建环境、设置启动、手动调试,一切都在 Hass.io 页面中就可以完成了。初步配置 Home Assistant 并连接小米设备与

如果你有其他的 Home Bridge 插件需要安装,按以下格式在 Options 内添加。

 {"debug": false,"plugins": ["homebridge-dummy --registry=https://registry.npm.taobao.org","homebridge-mysmartlock --registry=https://registry.npm.taobao.org"]}

四、设置 iOS 设备中的“家庭”App

此节 Android 用户可略过。

▲家庭 App

▲场景

有了家庭 App,你就可以轻松安全地掌控各种 HomeKit 配件。比如通过 iPhone 让 Siri 帮你关灯,或者从 iPad 上看看门口是谁。家庭 App 能让你连接的各种设备,更高效、智能地为你工作。

家庭 App 会按照房间将配件分组,让你只需轻点一下,就可轻松控制家中任何角落的装置。你甚至可以对 Siri 说“关掉卧室的灯”或是“打开楼上的空调”。而通过 3D Touch,按住一个图标,就能执行调暗灯光或是调节恒温器之类更复杂的任务。

家庭 App 能让你设置多种场景,从而通过一个指令让多个配件联合工作。比如,你可以创建一个名为“我出门了”的场景,便可关闭灯光,锁好房门,以及调低恒温器的温度。

Apple 官方页面,以及设置教程。

在家庭 App 中添加 “桥”

Home Assistant 结合 Home Bridge 插件,使得原本不支持 HomeKit 的设备也能够接入 iOS 的家庭 App,Home Bridge 插件启动后,打开家庭 App 进行以下操作:

▲接入家庭 App

▲接入家庭 App

手动输入 PIN 码,就是在配置文件中任意写入的那个,你就可以通过这个“桥”连接到 Home Assistant 内的设备了。然后按照官方设置教程进行进一步命名设备。

自动化和远程访问 HomeKit 配件
你可以将 iPad 或 Apple TV(第 4 代)设置为家居中枢,以便在 iOS 设备上实现对 HomeKit 配件的自动化和进行远程控制。设为家居中枢的设备必须留在家中、连接到家中 Wi-Fi 网络且处于开机状态。

▲自动化和远程访问 HomeKit 配件

将 iPad 设置为家居中枢:

在“设置”>“iCloud” 中打开“iCloud 钥匙串”和“家庭”,前往“设置”>“家庭”并打开“将此 iPad 用作家庭中枢”

将 Apple TV 设置为家居中枢:

在 iOS 设备或 Mac 上,为您的 Apple ID 设置双重认证。然后,前往 iCloud 并确保“iCloud 钥匙串”已开启。在 Apple TV 上,前往“设置”>“帐户”并确保已登录到 iCloud,且使用的 Apple ID 与 iOS 设备上的相同。登录到 iCloud 后,Apple TV 会自动被设置为家居中枢。要检查家居中枢的状态,请前往“设置”>“帐户”>“iCloud”,然后在“HomeKit”下查看家居中枢是否已连接。

五、下节预告
完成设备的接入,智能家居系统开始有点像样了。我想你们肯定还存在很多问题,“我的设备怎么在 Home Assistant 里重新命名?”“如何分组?”“有些设备我不想加入 HomeKit 里。”“我想要更炫酷的界面!”“这不就是个遥控器嘛,我不需要。”诸如此类。下节教程将对 Home Assistant 进行进一步配置,实现个性化布局,同时对 Home Assistant 的自动化(Automations)做入门讲解。

  1. Home Assistant 进阶设置

  2. Home Assistant 自动化

树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit相关推荐

  1. 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant

    树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant 通过本篇教程,你将完成对 Home Assistant 的进一 ...

  2. 树莓派开发笔记(三)搭建智能家居系统(2) — Home Bridge + Home Assistant

    搭建智能家居系统 搭建智能家居系统(2) 添加设备 Command Line 传感器组件 Scrape Sensor 组件 小米设备接入 Zigbee 设备(网关类设备) Yeelight 灯具 Wi ...

  3. Home Assistant + 树莓派:强大的智能家居系统

    项目介绍:制作一个智能家居系统,可以通过web软件界面或天猫精灵控制家里的灯.空调等设备. 硬件:Raspberry Pi 4B 4GB.ESP8266.Grove Arduino Beginner ...

  4. 毕业设计:基于STM32与机智云平台的远程控制智能家居系统

    该项目实现一个智能家居系统,采用STM32为主控,并连接云平台-机智云作为远程控制的云服务器,同时用到手机APP作为控制终端,整个系统包括硬件端.云平台.手机APP,是一套完整的物联网智能家居系统. ...

  5. Home Assistant-开源智能家居系统

    Home Assistant(以下简称HA) 它是个开源的智能家居平台,一个系统平台软件,像TB 1.它把家中的智能家居设备整合到HA中,它能够接入的设备非常的多比如小米.博联.易微联.飞利浦.特斯拉 ...

  6. 基于AIOT的智能家居系统

    基于AIOT的智能家居系统 1.总体框架 AIOT是2017年在小米开发者大会上提出的一个概念,主要指把物联网和人工智能联系起来产生更加深远的影响力,其中AIOT在智能家居的应用是各大厂商都角逐的一块 ...

  7. 一套智能家居控制系统多少钱,智能家居系统是怎么配置的?

    随着智能家居概念的不断落地,越来越多的消费者已经开始从认识智能家居走向使用智能家居,那么如何做好住宅智能家居系统的配置和价格预算就成为了很多用户所关心的问题.智能家居控制系统多少钱一套?如何配置智能家 ...

  8. osgi框架 android,基于Android的OSGi框架智能家居系统的设计与实现

    摘要: 随着科技和经济的发展,人们开始追求安全舒适,信息化程度高,节能智能的家居环境.智能家居系统正是利用计算机,嵌入式,传感器,网络通信以及自动控制等技术集成家居设备,提供安全,智能以及舒适的家居环 ...

  9. 搭建开源智能家居系统Domoticz

    官方网站https://www.domoticz.com/ 中文站https://www.domoticz.cn/ 介绍 Domoticz是一个开源的智能家居系统,通过它你可以监测和控制各种设备比如: ...

最新文章

  1. 超过80%的自媒体月收入不足万元,2017年做自媒体还有赚钱的机会吗?
  2. ng2中router-outlet用法
  3. UVA 10245 The Closest Pair Problem
  4. pandas describe函数_SQL和Pandas同时掉到河里,你先救谁?
  5. Noip 2013 练习
  6. U盘安装BackTrack5,提示Could not find kernel image: linux
  7. 【MyBatis】Mybatis的java对象名和数据库表名不同怎么办?
  8. centos6.5下搭建oracle 11g
  9. 实现机器学习的循序渐进指南III——朴素贝叶斯
  10. linux svn 设置propertise
  11. python异常和错误的区别_python中错误和异常有什么区别
  12. java 汉字转拼音_java实现汉字转拼音
  13. WSO2 ESB 5.0.0 配置消息存储
  14. 树上战争 HDU - 2545
  15. js:获取今天是星期几
  16. 连接请求被计算机拒绝访问,Windows 10共享打印机解决方案被拒绝访问
  17. Python中使用MySQL
  18. android 利用数据库实现历史搜索记录功能
  19. 2022年全球市场特种淀粉总体规模、主要生产商、主要地区、产品和应用细分研究报告
  20. 滴滴司机给我上了一课,“创业亏损400万,我收获了这些”

热门文章

  1. 玩转华为数据中心交换机系列 | 配置VLAN内协议报文透传示例
  2. Android获取局域网所有设备的ip地址
  3. apmserv php升级方法,APMServ5.2.6 升级php5.2 到 5.3版本,及Memcache升级
  4. No current assignment for partition 解决
  5. SQL Server2008安装:应用程序中发生了无法处理的异常
  6. Codeforces Round 1133(Div.3)题解
  7. Stata | 简单操作2(display)
  8. python中元组常识,以及for 与 range 的用法!
  9. NLP专题直播 | Transformer, BERT, ALBERT, XLNet全面解析(ALBERT第一作者亲自讲解)
  10. 大snbsp;汪小菲nbsp;闪婚