Home Assistant + 树莓派:强大的智能家居系统 · 设备接入篇
相信大家通过之前的 安装篇 已经成功安装了 Home Assistant (HASS) 和 Homebridge,在这篇文章中,我将带领大家接入智能家居设备。
大多数人初接触 HASS 的时候经常一头雾水,原因是 HASS 的配置体系十分混乱,一个设备的完美接入需要涉及多个配置文件。实际上,系统架构不清晰也是 HASS 的最大缺点,因此,在开始配置教程前,我先帮助大家捋一捋 HASS 的配置框架。
HASS 配置框架
HASS 的核心配置围绕 configuration.yaml
文件展开, 在这里你可以进行时区、度量单位、开发者模式、主题选择等等基础配置。当然,最为重要的,你将在该文件内完成所有设备的接入。这也是本篇教程的重点。
HASS 的运行依赖于一个个相对独立的功能组件(Components),比如小米米家平台就可以视作一个组件。有些时候,部分设备或者功能仍未得到 HASS 的官方支持,你必须在主目录下新建自定义组件custom_components
文件夹,添加相关的设备支持文件。
完成上述的文件修改,加上 HB 的配置,你就可以自如控制所有智能家居设备了。
然而,使用一段时间后,你可能会觉得设备太多显示凌乱,想给界面换个风格,或者configuration.yaml
文件看起来要炸了。此时,你会考虑把部分配置剥离出去形成独立的文件,以满足你的强迫症。例如你开启了“设备追踪功能”(Device Tracker),那么 HASS 将在主文件下自动生成 known_devices.yaml
文件,你将在这里配置需要追踪的设备。本篇教程也将涉及相关内容。至于主题设置、群组设置等其他非功能性设置,我将在之后的”个性化配置“中详细介绍。
主文件设置
上一篇教程中我们已经打开了树莓派的 SMB 服务,现在我们通过 SMB 打开 HASS 主目录。
(macOS 在 FInder 左侧栏“共享的”接入,Windows 在 计算机-地址栏 里直接输入 //树莓派地址
即可跳转)
打开configuration.yaml
,文件默认包含如下内容,我们按需修改:
homeassistant:
#经纬度
latitude: 32.87336
longitude: 117.22743
#海拔
elevation: 430
#度量单位,默认米
unit_system: metric
#时区
time_zone:Asia/Shanghai
#系统昵称,显示在主界面顶部
name: Home
正常情况下,剩下的部分便无须变动了。现在添加雅虎天气服务小试牛刀一下吧:
weather:
- platform: yweather
woeid:2151849
其中,woeid是城市代码,打开雅虎天气官网输入城市后搜索,url的最后几位数字便是
woeid
保存,重启 HASS。
恭喜你,接入了第一个 HASS 组件~ 现在你大概明白 HASS 是怎么个操作原理了,HASS 支持上千款智能家居设备,你可以到此寻找你的设备按上述方法接入。
如果你是果家用户,需要 Homekit 服务,那么我们还需要转到 Homebridge 进行相关设置。
Homebridge 设置
执行指令前,请先运行一次 Homebridge。注意:如果添加了开机自启任务,勿重复运行 Homebridge,否则会出现端口占用错误。
Homebridge - homeassistant 插件版本为 2.3.0 以上的,特别注意添加最后一行配置,否则家庭 app 内设备为空。
cd /home/pi/.homebridge
sudo nano config.json
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30", //树莓派 mac 地址
"port": 51826, //运行端口
"pin": "123-45-678" //连接密码,自行设定
},
"platforms": [
{
"platform": "HomeAssistant",
"name": "HomeAssistant",
"host": "http://127.0.0.1:8123", //HA 运行的网址,可以是 ip 也可以是域名
"password": "raspberry", //HA 的 api_password,及密码,如有设置请添加
"supported_types": ["automation", "binary_sensor", "climate", "cover", "device_tracker", "fan", "group", "input_boolean", "light", "lock", "media_player", "remote", "scene", "sensor", "switch"],
"default_visibility": "visible" //特别注意此项
}
]
}
ctrl+x,y,回车。之后清除 Homebridge 的缓存:
sudo rm -rf /home/pi/.homebridge/persist/
请大家记住此步指令,今后若出现重新配置 HA、HB 导致 iOS 设备无法识别新设备或树莓派的,大部分情况均可以使用此指令解决。
这样我们就完成了 Homebridge 的设置,重启Homebridge:
sudo systemctl restart homebridge
经过上述设置,我相信你的智能家居设备已经在 HA 和 HB 里稳定运转了,现在不妨尝试使用 Siri 操控你的设备。
鹬蚌相争?
在之前的 安装篇 中我们知道 Homebridge 本身可以通过安装插件的方式将智能设备接入 Apple Home 平台,有的时候设备同时支持 HA 和 Apple Homekit 2 个平台,这时我们就面临平台选择。
首先,这个问题只存在 iOS 以及未来的 macOS 用户身上,因为只有你们可以使用 Siri,才可以痛并快乐着。 对于其他终端系统的用户而言,要么和设备厂家的 app 斗智斗勇,要么享受 HA 网页操控的快感,至于语音控制,就还需等待了。
其次,以米家设备为例,同是网关,HA 可以控制夜灯功能,获取光感数据,Homekit 则不能;而针对扫地机器人,HASS 的接入方法十分复杂,且现阶段只能实现开关功能,HB 的插件安装配置更为容易,且可以控制吸力……可以说两个平台之间没有绝对的胜者,都需要具体情况具体分析。个人认为大多数情况下,HA 对设备的支持更好,并且基于社群支持,跟进速度也更快。
在这里再次提醒初学者:二者必取其一,同一设备请通过一个平台接入,否则未经『自定义设置』将产生冲突。
对于已经将设备通过 HB 接入,但想转入 HA 平台的派友,这里提供如下兼容方案:
- 在 HA 接入相关设备,详见上文。
- 在 HA 主页面侧边栏,点击下方 “<>”,获取设备的 entity ID:
States 面板 - 在 HA
configuration.yaml
配置文件中添加如下设置:
设备个性化
则该设备将在 Homebridge 中被隐藏,重启后不会被 家庭 App 重复识别添加。
此时,你可以通过 Apple Homekit 和 Hass 平台同时控制该设备。
设备追踪设置
HA 可以追踪同一路由器内网设备联网状态,我们转换一下思路,便可以利用这个系统判断家人是否在家等,非常方便。
家人追踪
我的路由器是 ASUS AC66U-B1,HASS 原生支持大部分品牌的路由器,包括小米路由器、TP-LINK 等。不同的路由器对应配置方法不同,具体请大家前往 官网 查询。设置前需要打开路由器的 SSH 模式,请大家设置好密码等,保护数据安全。建议设置仅限 LAN 用户拥有 SSH 权限。
打开configuration.yaml
文件,末尾添加:
device_tracker:
- platform: asuswrt (按需填写,小米为“xiaomi”,Netgear为“netgear”,TP-LINK为“tplink”)
host: 192.168.xx.1 #路由器Ip
username: ***** #管理员账号
password: ****** #管理员密码
track_new_devices: no #是否自动添加新设备
不出意外,重启 HASS 后,主文件夹下便会自动生成 known_devices.yaml
文件,打开之后你会发现,系统已经自动为嗅探到的连接到路由器的设备添加了默认配置:
devicename:
name: Friendly Name #昵称
mac: EA:AA:55:E7:C6:94 #mac地址
picture: https://home-assistant.io/images/favicon-192x192.png #图片icon: mdi:human-female #图标,和图片取一个设置
track: yes #是否追踪
hide_if_away: no #离开后是否自动隐藏
在接下来的教程中,我将指导大家如何进行自动化配置,真正实现人工智能,摆脱遥控的束缚、更换主题,展现个性、设置简洁大方的控制面板等等等等
HADashboard
Home Assistant + 树莓派:强大的智能家居系统 · 设备接入篇的更多相关文章
- Home Assistant + 树莓派:强大的智能家居系统 · 安装篇
Home Assistant + 树莓派:强大的智能家居系统 · 安装篇 转载:Home Assistant + 树莓派:强大的智能家居系统 · 安装篇 目录 1. 初始安装 3. Homebridg ...
- 树莓派安装开源智能家居系统 Domoticz
前言 最近闲来无事开始折腾自己的智能家居系统,对比了几种比较流行的开源智能家居系统,觉得 Domoticz 更适合,Domoticz的官方中文文档,虽然不是很完善但还是可以参考一下.需要注意的是下文用 ...
- 智能家居系统 Home Assistant 系列 --安装系统之Windows
Home Assistant 是一个成熟完整的基于 Python 的智能家居系统. 首先得安装Python环境.在浏览器中访问Python官网 www.python.org 进入Downloads中的 ...
- 智能家居系统 Home Assistant 系列 --介绍篇
一. HomeAssistant 是什么? HomeAssistant是构建智慧空间的神器.是一个成熟完整的基于 Python 的智能家居系统,设备支持度高,支持自动化(Automation).群组化 ...
- 个人智能家居系统 - MQTT服务器搭建(centOS7.3)
个人智能家居系统 - MQTT服务器搭建(centOS7.3) 0x00 参考 在CentOS7 上安装mosquitto1.4.1服务器,实现MQTT信息推送功能并增加websocket功能 mos ...
- DIY智能家居——零基础入门篇
概要 本文主要根据笔者从零开始接触硬件,以小白视角开启IoT探索,根据相关资料DIY一个温湿度传感器.后经过探索发现新大陆--Home Assistant&Homebridge,最终实现了一个 ...
- 实例源码--Android智能家居系统源码
下载源码 技术要点: 1.Android应 用开发基础框架 2.SQLITE数据库的 使用 3.网络通信 4.GOOGLE地图模块 5.源码带有非常详 细的中文注释 ...... 详细介绍: ...
- 基于Linux的智能家居的设计(2)
1 系统整体设计方案 智能家居系统的是一个实时查询家庭的温湿度.照明控制.自己主动控制的设定.集家庭娱乐.智能安防为一体,大量数据快处理.可靠的系统,因此在硬件和软件上都有非常大的要求,因此在这里进 ...
- wumei-smart智能家居开原项目
一.项目简介 物美智能(wumei-smart)]是一套开源的软硬件系统,可用于二次开发和学习,快速搭建自己的智能家居系统. 硬件工程师可以把自己的设备集成到系统:软件工程师可以使用项目中的设备熟悉软 ...
随机推荐
- Css设置img属性让图片水平居中/居左/居右的写法
图片的居中显示css有很多方法,但在很多情况下有的方法无效,无意发现这个系统的官方处理图片居中,居左,居右的css写法,喜欢的朋友可以收藏下哦 图片的居中显示css有很多方法,但在很多情况下有的方法无 ...
- python的面向对象-实例(对象)的相关知识、实例化
1.对象就是实例,什么是实例 类运行的过程就是实例化的过程,实例化产生的结果就是产生了一个实例 class的牛逼之处就是不用手动的return,他会加载完函数之后,自动return __init__ ...
- CSS 设置网页中选中文字的背景色
在样式文件中增加如下代码: ::selection { background: hsla(5, 92%, 76%, 0.8); color: #fff;}
- JAVA记录-Servlet RequestDispatcher请求转发
RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是servlet协作的一种方式. 在Requ ...
- ifconfig不显示网卡eth0
参考资料:http://blog.itpub.net/25851087/viewspace-1700568/ 在/etc/sysconfig/network-script/ifcfg-eth0网卡配置 ...
- mybatis入门基础----高级映射(一对一,一对多,多对多)
阅读目录 一:订单商品数据模型 二.一对一查询 三.一对多查询 四.多对多查询 回到顶部 一:订单商品数据模型 1.数据库执行脚本 创建数据库表代码: CREATE TABLE items ( id ...
- bzoj千题计划247:bzoj4903: [Ctsc2017]吉夫特
http://uoj.ac/problem/300 预备知识: C(n,m)是奇数的充要条件是 n&m==m 由卢卡斯定理可以推出 选出的任意相邻两个数a,b 的组合数计算C(a,b)必须是奇 ...
- ASP.NET MVC学习笔记-----Filter(2)
接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用,它需要实现IActionFilter接口: public ...
- js 正则学习小记之匹配字符串字面量优化篇
昨天在<js 正则学习小记之匹配字符串字面量>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯后用 [^"] 才能匹配成功 ...
- [BZOJ 2257][JSOI2009]瓶子和燃料 题解(GCD)
[BZOJ 2257][JSOI2009]瓶子和燃料 Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了. 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子 ...