Lazy loaded image
智能家居(软件)
字数 4302阅读时长 11 分钟
2024-11-1
2024-12-29
type
Post
status
Published
date
Nov 1, 2024
summary
智能家居
slug
tags
实用教程
推荐
网络
category
技术分享
icon
password
 
 

Home Assistant下插件的安装

  1. 下载插件包
  1. 上传到config\custom_components目录(整个文件夹)
  1. 重启HA
  1. 添加集成(以国家电网插件为例) 配置–>设备与服务–>添加集成:搜索国家电网
 

简介

根据官网介绍,HomeAssistant是将本地控制和隐私放在首位的开源家庭自动化应用。由全球修补匠和 DIY 爱好者社区提供支持。非常适合在 Raspberry Pi 或本地服务器上运行。
Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.
相信不用多介绍,既然你看到这篇文章,说明是想要了解或者准备使用家庭智能,那么这篇文章对于初学者来说,还是非常值得一看的,尤其是网上的教程又非常少,我也走了一些弯路,接下来我们就从头开始搭建以及学习如何方便的使用。

功能

这边简洁介绍一下其功能,很多初学者可能稍微了解后不是很了解它具体能做什么,有些设备它能不能接入,以及关联HomeKit等等。
假设此时家中有各种品牌的设备(小米、绿米、涂鸦以及Apple TV等等),正常情况下,各个厂商都会让你下载它们品牌的App,通过其App进行控制,或者顺便要买个它们的网关中枢系统通过语音控制,那么家中就会显得比较杂乱,各种品牌,各种呼出语言,这个时候,就轮到HomeAssistant登场了~
我们可以将上面提到的各种智能家居统一添加到HomeAssistant中,以后就可以通过HomeAssistant应用进行控制,再之后通过添加 Apple Bridge 集成来实现将所有设备桥接到苹果的HomeKit中,实现通过“嘿,Siri”呼出控制。(由于家里没有Andriod手机,就不讨论安卓设备了)
是不是很酷?

收获

写收获,是因为智能家居,是以家庭为基础来讨论的,如果看完这篇文章让你学以致用了,那么从精神层面来说,肯定是收获了家人的敬佩以及各种夸赞,老婆的鼓励和肯定,朋友的一句句“牛X”;从物质层面来说,对比智能家居店的整套报价来说,可以省下很大一部分钱。
PS:我老婆一个月前独自一个人去看的某线下智能家居店,昨天讨论的时候她把报价发我看了一下,就差几个字写在脸上:冤大头
在报价中,智能控制大类分:
  1. 中枢系统(也就是网关)
  1. 语音控制(Siri音箱,Homepod这种)
  1. 智能面板、窗帘、灯具这些
  1. 传感器(包含安防传感)
就这几项,报价15k。。。关键是还有 25%产品原价的服务费!注意是产品原价。而且,细化方案的话,还要交2k-3k的方案费。
其中设备的型号暂且不说,算它是正常价格,我们讨论如果自行安装使用HomeAssistant的情况下,能够帮我们省哪些费用:中枢系统以及语音控制 这两大类是不用的;服务费和方案费也是可以去掉的。也就是,就算面板这类从店里直接购买,最起码也能省3k-5k。何乐而不为呢?~
因此,无论怎么看,只要是已经打算使用智能家居的情况下,花几天时间学习一下HomeAssistant,物超所值,是时候提升一下家庭位了!

声明

这篇文章应该会比较长,真正想要自己完成的话,就要耐心一步步看完,可能还要联系我前几篇文章一起看,但是可以保证的是不难!只要肯学,就算什么基础都没有,一个星期时间也能学会了。

前提

必备条件:家庭服务器或者树莓派、NAS、ESXI、PVE等等可用于搭建HomeAssistant的设备
最简单的方法:通过一台废弃的笔记本安装VMware,通过VMware安装HomeAssistant。

安装

建议安装HomeAssistant OS,这个方法的优点是:1.独立运行、稳定,基本不存在NAS等主机崩溃的情况下影响Docker容器运行 2.随时创建快照,备份还原方便。
  1. 新建虚拟机
    1. notion image
  1. 自定义设置,硬盘这些都删除,只保留CPU、内存、网络适配器、显卡
notion image
  1. 添加现有硬盘
notion image
  1. 创建目录(名称任意),上载下载的系统镜像文件
notion image
  1. 在硬盘选项,控制器位置选择 IDE控制器0
notion image
6. 虚拟机选项,引导界面取消 UEFI安全引导
notion image
  1. 启动虚拟机,按照界面的IP地址登陆
  1. 等待安装完成,这个时间根据自身网络环境而定,可能远远不止20分钟,耐心等待即可 安装完成之后会跳转到注册界面,正常注册即可。

加载项

推荐几个加载项,比较实用,可以先行安装。
来到主界面-【配置】-【加载项】,点击右下角的【加载项商店】。
  1. Advanced SSH & Web Terminal
    1. 在HASS界面即可运行SSH。打开其配置界面,填写 username 和 password 的值,然后保存,回到信息界面点击启动即可。
      notion image
  1. Samba share SMB共享,可以局域网访问其资源,用于上传文件以及更改配置。打开其配置界面,填写 username 和 password 的值,然后保存,回到信息界面点击启动即可。
  1. Studio Code Server 在HASS界面即可查看、修改文件,非常实用。 当然还有一些其他的加载项也比较实用,比如 Node-RED 以及 Mosquitto broker 等,可以等需要的时候自行下载。

添加HACS集成(非常实用)

OS/Supervised:(本文的安装方法) 启动上面安装过的加载项:Advanced SSH & Web Terminal,(勾选【在侧边栏显示】),打开侧边栏的Terminal项,输入以下命令:
安装好之后,来到【配置】-【设备与服务】-【添加集成】,搜索 HAC,在弹出界面全部勾选或者只勾选前4个:
由于我一不小心安装好了,借用几张官网的图片
此时会跳转到一个界面,有个8位数的Code,打开上面的链接,登陆Github账号,输入8位Code完成授权。
此时,左侧会出现HACS栏目,即安装成功了。
可以添加其他库的资源接入统一管理。HASC-->Custom Repositories-->输入网址(例如:https://github.com/hass-box/state-grid)-->下面选择接口。

UI界面

UI界面这一部分只能简单介绍一下,里面涉及到的卡片,按钮,滑块等等非常复杂,就像建立一个网站,可以直接通过UI界面进行页面布局,也可以纯代码方式手搓,这边给两个方案:
一:Mushroom(强烈建议新手使用!) Mushroom可以理解为可以通过UI界面进行设置的程序,安装它之后,就可以直接在页面端添加各种卡片。 安装方式:在HACS中搜索 Mushroom 安装。 安装完成后,务必在【配置】-【仪表盘】-右上角【...】-【资源】确认mushroom模块有没有正确添加,如果没有添加的话自行添加进去: 这一步非常重要!
二:UI-Lovelace-Minimalist(新手强烈不建议!) UI-Lovelace-Minimalist 就是纯代码编辑的方式来管理界面。 安装方式:在HACS中搜索 UI-Lovelace-Minimalist 安装。 安装完成后,在【配置】-【设备与服务】-【添加集成】-搜索 ui,进行添加。 目录结构如下,完全通过编辑 ui-lovelace.yaml 文件来进行页面设置。
此方式的话,尽量多参考官方文档。
以上两种方案二选一即可。下文我们将使用 Mushroom 来进行页面操作。

使用

请确认在以上步骤都没问题的情况下进行!
打开【配置】-【仪表盘】-【添加仪表盘】-【从头开始的新仪表盘】,自行设置即可。

添加天气模块

打开【HACS】-搜索【天气预报】,进行安装。
这是一款比较接地气的天气模块,适合国内,使用教程参考:https://mp.weixin.qq.com/s/_4aFbsb40qPgII-kYB3phA
简单来说,就是安装完成后,来到【配置】-【设备与服务】-【添加集成】,搜索 天气预报,添加后【服务器域】内容填写 weather.com.cn,【地点】就填写自己城市。
图片来源于上述教程链接内
然后来到刚刚创建的新仪表盘,点击右上角的【编辑】图标,右下角【添加卡片】,下拉找到【天气预报】,在弹出的设置界面内,选择【实体】就行。
这个【实体】就是你需要显示内容的ID,可以理解:HASS接入了一个开关,这个开关会有一个ID,输入这个ID的意思就是可以关联控制这个开关。

添加Tuya温湿度计

我这边有个涂鸦的温湿度计,先操作温湿度计连上局域网,然后来到【配置】-【设备与服务】-【添加集成】,搜索 Tuya,接下来按照弹出的界面进行操作,我选择【账号关联】的方式,输入Tuya的账号以及ID,没问题的话就会添加相关的设备:
回到仪表盘添加卡片,可以选择【实体】卡片,或者【传感器】卡片,选取对应的【实体】即可:

添加米家智能开关

首先在【HACS】中搜索 Xiaomi Miot Auto 并下载,然后在【配置】-【设备与服务】-【添加集成】- 搜索Xiaomi Miot Auto ,还是选择【账号集成】,登陆米家账号,选择【包含】,勾选自己的设备,我这边勾选的是智能开关。
然后来到主界面,添加【按钮】卡片,操作上来说已经没问题了,但是美观程度就不敢恭维。
我们搞复杂一点,自定义一下,在【HACS】中的搜索 Slider Button Card 并安装,由于其本身自带UI界面,因此我们不需要通过代码编辑器进行设置,只需在仪表盘中添加【Slider button】卡片,看下效果:
是不是很酷炫了,褪去了原本那种土里土气的样子,立马变成高富帅~
这个智能开关还有功率检测等功能,也可以展示,同样添加自己想要的卡片,选择对应的实体即可。相关有多少个实体可以添加到卡片,可以在【集成】-【Xiaomi Miot Auto】中查看: 我们再增加点难度,在【HACS】中搜索 mini-graph-card ,安装这个显示模块,这个模块是没有UI界面的,因此只能通过纯代码编辑的方式添加,此时要详细阅读该界面的使用方法。
这边就不深入展开了,我们简单设置一下,通过它的介绍,可以看到最简单的方法为:
因此,直接将智能插座的实体ID复制过来即可,更新上述配置文件为:
来到主界面,添加 【mini-graph-card卡片】,将上述代码复制到编辑器区域内,成功显示:
但是我还是不满足!再美化一下:
算了,不折腾了,大致就是这样,基础的配置在模块介绍页找就行,根据自己的情况套上去,看不懂就多看几次。不是很难的。

其他添加

添加不同的卡片,有不同的效果,各种卡片可以在 【HACS】 中搜索,各类卡片都能找到。

特别注意事项

在 【HACS】 中安装的js模块,一般会自动添加到【仪表盘】的【资源】中,如果没有添加,到时候会出现找不到js模块的情况。
如果出现这个问题,首先查看Mushroom的资源路径是否正确,一般是:/hacsfiles/lovelace-mushroom/mushroom.js
由于之前固有思维,【HACS】安装的目录是 hacs,导致我填写的资源路径都是 /hacs/.../xx.js,全都加载不出来,这是个大坑。

桥接HomeKit

来到【配置】-【设备与服务】-【添加集成】,搜索 Apple,添加【HomeKit Bridge】,【要包含的域】可以全部打勾,建议是勾选自己设备需要控制的几项就行。
之后会在左下角【通知】中显示二维码和一串Code,打开手机的【家庭】扫描,选择【仍然添加】,之后逐个添加按钮或者卡片。
【家庭】显示的详细程度不如HomeAssistant,看不到插座的功率等情况,但是已经可以通过 “嘿,Siri” 控制开关这些了。

远程访问

方案一:IPv6 DDNS

这一部分我是依赖本地Ubuntu Server搭建的Nginx反向代理解决的,感兴趣的小朋友可以参考我之前的《从零开始使用Ubuntu Server搭建家用NAS服务器》系列,如果是群晖(已经在第三方套件内安装并使用DDNS-Go的情况下,直接在控制面板的登陆界面,找到反向代理,将反向代理的地址设置为HomeAssistant的本地访问地址。

方案二:ZeroTier或者Tailscale

在【配置】-【加载项】-【加载项商店】中有这两个应用,安装后将手机以及HomeAssistant接入到相应的ID内即可。

方案三:cpolar

官方文档:https://cpolar.com/docs#linux-system-installation-cpolar
在SSH中输入以下命令安装cpolar:
登录cpolar官网后台,点击左侧的验证,查看自己的认证 token,复制其值。
回到SSH界面,输入:
添加并启动服务:
登录后台,查看隧道在线状态
PS:此方法未测试,不保证其可靠性,猜测应该没问题
 

安装

notion image

使用

界面说明

notion image

配置打通HA

  1. Node-Red界面右上角三条杠-->节点管理-->安装-->搜索homeassistant。
  1. HA模块随便选一个,找到server匹配HA。
  1. 因为是docker安装,所以,需要添加对应HA的IP。
  1. HA配置-->集成-->添加集成-->搜索nodered,安装。

示例

notion image
notion image
notion image
notion image
最后一步就是部署。 如果想根据传感器状态自动调整推送内容,则需要用到function/switch等模块,帮助设置更智能的设备。

配置企业微信推送消息

notion image
上一篇
智能家居(硬件)
下一篇
Python虚拟环境配置-Conda