HomeAssistant入门之系统安装

匿名用户 2022-08-26 20:10:50 53点赞 573收藏 27评论

Home Assistant 介绍

官方网址:https://www.home-assistant.io/
Home Assistant 诞生于 2013 年,是一款基于 Python 开发的智能家居开源系统,他的主要功能就是可以将不同品牌的智能家居设备连接起来互联互通。
这个开源项目已经发展了已经快十年了,同时期的其他类似项目都已经雨打风吹去了,目前看 Home Assistant 更新还是很频繁的,每个月都有好几个版本发布。
之前我只有几个 WiFi 插座,厂家还不一样,用 Home Assistant 是没有必要的。现在我想将家里的所有灯开关都换成 ZigBee,部分插座也换成 ZigBee 来控制。
所以我买了 SOFFON ZigBee USB Dongle Plus (93元)作为协调器,京鱼座四件套(99元)设备,还买了涂鸦的 ZigBee 零火开关单开(60元)来进行测试。
简单说下 ZigBee,网络中有三种设备,一个协调器,多个路由器,多个终端,比如在我的这些测试设备中,USB dongle 是协调器,插座,开关这种一直通电的设备都是路由,其他电池的设备都是终端。现在支持 ZigBee 3.0 版的协议不同厂家的产品是可以互通的,所以后续我可以继续购买不同厂家的 ZigBee产品,选择的范围就大了,方便我找性价比最高的。
为什么不用 WiFi 呢,主要是 WiFi 设备多了后对路由器要求高了,而且家里有的地方可能是 WiFi 死角,而 ZigBee 是自组网,网络中还有路由,在家里基本不可能出现无法联网的设备,而且对无线路由器没有任何妨碍不用升级。最重要的是 ZigBee 设备不依赖云端,而 WiFi 产品加入 Home Assistant 时都要 localkey,现在获取越来越难了,我的涂鸦的 WiFi 插座需要在厂家开发者网站上申请 key,目前可以延期半年,我不知道半年后还能不能用,要每个月交钱就没那必要了。
所以打算组建智能家居网络的朋友,我推荐使用 ZigBee。
我在 x86 设备安装后测试了大概两个月了,也算是有了一定的了解。以下的内容都是基于上面的硬件,我在测试过程中搜索后加上自己的理解,如有错误请留言指出。

Home Assistant 安装

只建议两种安装方式:docker 和独立硬件 OS。
上篇博客 https://post.smzdm.com/p/awzexo3p 提到捡了一个鸡肋 x86 设备,我就直接安装了 HAOS。非常简单,我就大概写一下:

  1. 下载 OS;
    到这来找适合硬件最新的版本:https://无法描述/home-assistant/operating-system/releases/

  2. 将系统文件写入启动盘,推荐使用 Balena Etcher;
    打算用 U 盘启动就写到 U 盘;
    有内置存储就先用 WePE 启动后再写入;

  3. 设备连接网线,开机启动;

  4. 找台局域网内的电脑,打开浏览器输入:homeassistant.local:8123 或者 IP:8123

  5. 即可看到新鲜的 HAOS,登录;

不管是官方还是网络上,都有大把的安装教程:https://www.home-assistant.io/installation,我就不细说了。

名词解释

安装系统是很简单的,使用起来还是很麻烦的,首先要理解系统里和各种教程里的一些名词,虽然我列的不是很多,但入门应该是可以了:
Core(核心)、Container(容器)、Supervised(监管)、OS(操作系统)
这四个词应该最先碰到,我觉得理不理解都无所谓,反正都是系统安装相关的。
选择容器的方式 ,可以在 NAS 或者 openwrt 等系统上 Docker 安装。
选择全新的独立硬件设备,那就直接下载 HAOS img 文件写到硬盘启动就完了,这个最简单,官方支持各种硬件设备安装,推荐。
Intergrations 集成
还有一个词叫 Component 组件,集成和组件其实就是一回事,应该是不同时期的叫法。官方有一千多个集成,靠这些集成来支持不同智能家居厂家的设备,实现各种功能;
Custom Component 定制组件,一些高手自己开发的,用来实现官方不支持的功能或设备;
这些集成都是基于 Python 开发,Core,集成,配置文件这三者组成了一个完整的 HAOS;
Device 设备
Device,就是指我们智能家居里面物联网的物理设备;
Entity 实体
Entity,这个很难理解。我觉得实体不就应该是设备吗?实际上不是,一个设备可以有多个实体,比如说开关,off 是一个实体,on 是一个实体,电量还有一个实体。而且,只有软件功能的集成也可以是一个实体。所以我觉得实体应该是指系统实现一个功能的最小单元。
每个实体均有 Unique ID,该ID不能被用户更改,否则造成数据不一致情况。
Area 区域
Area,就是指卧室,厨房,客厅等。
Scene 场景
Scene,好理解,就是使用的场景,很多智能家居都有这个,比如家庭影院的场景,执行时会自动拉上窗帘,关闭顶灯,打开投影,音箱等。
Scripts 脚本
Scripts,我的理解是自行创建一个实体,这个实体可以关联几个设备,做不同的操作,可以加上延迟等待或条件判断等。这个实体可以加到自动化里用。
Automations 自动化
Automations,就是一个 if 语句,通过设置各种条件,满足后执行动作。这个和脚本还是有差异的。
Home Assistant 的自动化相当强大,应该说是智能家居的灵魂。
blueprint 蓝图
blueprint,可重复使用的自动化,可以共享,直接从社区获取了使用,据说也是一个鸡肋功能。
Add-on 加载项
也有的叫插件,从英文名 Plus-in 来说有差异,但对用户来讲,不就是个插件吗?还有插件商店。
实际上,官方为什么叫加载项,我想可能是因为运行机制不一样吧。加载项是通过 Docker 容器的方式运行来实现各种功能的。
Lovelace
前端界面,可以理解为主题。
Mosquitto broker
一个加载项,实现 MQTT 协议的开源代理工具。主要是配合 Zigbee2MQTT 来使用。
Samba share
加载项,将 Home Assistant 的配置文件通过 SMB 共享在局域网内,直接在系统里新建或修改 config 文件。
Terminal & SSh
加载项,主要功能就是 web 界面终端。
Zigbee2MQTT
加载项,简称 Z2M。它是将 ZigBee 协议转化成 MQTT 的桥接工具,硬件设备可以作为网关来控制所有的 ZigBee 智能家居产品。
推荐设备:
基于 TI CC2652 芯片的一些 USB dongle,我买的是 SONOFF ZigBee 3.0 Dongle Plus;
闲鱼上也有一些其他类似的 USB Coordinator;
动手能力强的话可以直接购买 ebyte 的 CC2652 模块自己画板焊接,网上有公开的教程;
官方支持设备列表:https://www.zigbee2mqtt.io/guide/adapters/#recommended
ZHA
即 Zigbee Home Automation。ZHA 是 Home Assistant 自带的 Zigbee 集成,它与 Zigbee2MQTT 一样,将 Zigbee 设备作为网关来控制所有 ZigBee 智能家居的设备。
和 Zigbee2MQTT 相比,ZHA 是自带组件,不用安装什么软件,插上硬件就会弹出硬件选择项,即可食用;但 ZHA 对 ZigBee 设备支持的没有 Z2M 丰富。
推荐设备:
一样是基于 TI CC2652 芯片的一些 USB dongle;
官方支持设备列表:https://www.home-assistant.io/integrations/zha/
ESPHome
ESP8266/ESP32 的 WiFi 模块连接到 HA 来控制设备。
Node-RED
Node-RED 是一种编程工具,用于以新颖有趣的方式将硬件设备、API 和在线服务连接在一起。本质上也是一个执行自动化的工具,但是据说入门比较困难,我就不参与了。
HomeBridge
HA 与 HB 是两个完全独立的系统,各自可以独立运行。HB 的主要目的是通过模拟 iOS HomeKit API,架设一个桥梁,使得不支持 HomkeKit 的智能设备接入 HomeKit。桥接完成后我们可以通过 iOS 家庭进行管理,或者接入 HA 自动化管理。
现在可以直接安装 HomeKit 的集成,我没有 iPhone,也没有相关的家居设备,所以就不能测试了。
HACS(Home Assistant Community Store)
一个非官方的定制组件商店,有主题界面的也有支持设备的组件。
安装对网络要求比较高,只要能穿越互联网,按照官方步骤做就没问题:
hacs.xyz/docs/configuration/basic

一些参考网站:
如何玩转智能家居1:https://deepzz.com/post/homeassistant-concept.html
如何玩转智能家居2:https://deepzz.com/post/homeassistant-introduce.html
Hassbian 论坛:https://bbs.hassbian.com/

Home Assistant 常用加载项安装

推荐安装的加载项:
Samba share
Terminal & SSh
Mosquitto broker
Zigbee2MQTT
前两个就不用说了,直接在加载项商城点击安装就完了。
Samba share 安装后可以 SMB 访问 HA 文件,比如 config 文件夹,就是用来存放所有配置文件的:

├── autotions.yaml # 自动化├── blueprints # 蓝图│ └── autotion │ └── homeassistant │ ├── motion_light.yaml │ └── notify_leaving_zone.yaml ├── configuration.yaml # 主配置文件├── deps # 相关依赖├── groups.yaml # 分组├── home-assistant_v2.db # sqlite3数据库├── scenes.yaml # 场景├── scripts.yaml # 脚本├── secrets.yaml # 密钥└── tts # 文字转语音记录

着重说一下后两个。
Mosquitto broker 安装:

  1. 配置->加载项,点击进入;


  2. HomeAssistant入门之系统安装

  3. 加载商店;


  4. HomeAssistant入门之系统安装

  5. 找到 Mosquitto broker 点击安装;


  6. HomeAssistant入门之系统安装

  7. 信息:自启动,守护,自动更新都选上;


  8. HomeAssistant入门之系统安装

  9. 安装和设置说明;


  10. HomeAssistant入门之系统安装

  11. 配置;


  12. HomeAssistant入门之系统安装

  13. 也可以直接以 YAML 编辑;


  14. HomeAssistant入门之系统安装

  15. 我的配置;


    logins: - username: mqtt #设置用户名和密码 password: mqtt require_certificate: false certfile: fullchain.pem keyfile: privkey.pem customize: active: false folder: mosquitto anonymous: false

  16. HomeAssistant入门之系统安装

  17. 配置完成后返回 配置 ->集成,即可看到 Mosquitto broker;
    MQTT 服务其实系统自带了一个组件,可以直接搜索安装,但是建议采用加载项的方式安装,我觉得灵活度更大,而且是基于容器运行,不会影响其他组件。

Zigbee2MQTT 安装
我为什么用 Zigbee2MQTT 不用自带的 ZHA 呢,因为 ZHA 对京鱼座的几个设备支持不太好,而我又不会改代码,换成 Zigbee2MQTT 就好用了。

  1. 同样是到加载项商店,添加仓库;


  2. HomeAssistant入门之系统安装

  3. 输入:https://不可描述/zigbee2mqtt/hassio-zigbee2mqtt 添加;


  4. HomeAssistant入门之系统安装

  5. 搜索 Zigbee2MQTT 安装,还有一个 Zigbee2MQTT Edge 属于开发尝鲜版,看自己需要了;

  6. 安装后的信息;


  7. HomeAssistant入门之系统安装

  8. 配置;


  9. HomeAssistant入门之系统安装

  10. 同样可以 YAML 编辑,我的配置;



  11. data_path: /config/zigbee2mqtt socat: enabled: false ster: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777 slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5 options: "-d -d" log: false mqtt: base_topic: zigbee2mqtt server: mqtt://192.168.10.103:1883 #实际 MQTT 的 IP 地址和 MQTT 的端口 user: mqtt #上面 Mosquitto broker 里设置的用户名和密码 password: mqtt serial: port: /dev/ttyUSB0 #这个要根据实际插入的 USB 设备设置,可在终端里面 cd /dev 查看 permit_join: true frontend: true advanced: transmit_power: 20 #设置 ZigBee 无线发射功率,默认 5,CC2652P 最大可以设置 20 dBm



  12. HomeAssistant入门之系统安装

    至于如何添加 ZigBee 设备且看下回分解。

  13. HomeAssistant入门之系统安装

个人感想

我做电子硬件十几年,对软件也稍有点研究,但没想到 HomeAssistant 发展了快十年易用性还是这么差,搜索了很久才慢慢入门。
系统安装是很简单,但作为一个智能家居的管理软件,打开后第一步不就应该是添加设备吗?而我的第一感觉是不知所措。各种名词太多太混乱,比如实体和设备我就搞不清楚为什么要分开,对开发者来说不一样,但对用户来讲,我只关心设备,我只控制设备,其他你就不要放到前端来。
各大智能家居厂家的协议无法互通这是没法改变的事实,HomeAssistant 支持各大厂家的集成基本都有,但有些添加还是比较麻烦的,当然这和那些厂家故意制造的壁垒也有一定关系。可能开源软件就是这样吧,差一个好的产品经理,如果国内有个公司能做个本地化应该就好用了。
目前看 HomeAssistant 还是少数人的玩具,想入坑的朋友需要一定的毅力。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
27评论

  • 精彩
  • 最新
  • 楼主有没有搞头图这个NFC读卡器

    校验提示文案

    提交
    没有,偷的官方网站的图

    校验提示文案

    提交
    收起所有回复
  • 我就想知道N1咋个变成这货?家里小米百度等乱七八糟的牌子太多了!要整合一下,找到了个N1

    校验提示文案

    提交
    n1这么普遍应该很容易吧,搜下看看

    校验提示文案

    提交
    docker直接装

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 最近想研究一下HA,哪里能查到具体支持哪些硬件,还是需要一个个的去试,比如是否支持连接早期USB阿里网关的那些硬件??

    校验提示文案

    提交
    可以到官网查支持的硬件,我感觉具体还是得自己试试才知道

    校验提示文案

    提交
    收起所有回复
  • 1.HomeAssistant入门之系统安装
    2.HomeAssistant入门之设备管理控制
    写了第二篇,不过就不在这发布了,有兴趣的可以搜索一下

    校验提示文案

    提交
  • 易用性确实差。自己还能搞,家人就不会弄了。

    校验提示文案

    提交
  • 加载项和插件不同的讨论那里本来看的津津有味,然后看到“Plus-in”,什么鬼 [喜极而泣]

    校验提示文案

    提交
  • ***很神奇的事情,一个开发网站居然不能在这里写出来。
    好吧,我这几年也就写了十几篇文章,这应该是我在zdm最后一篇匿名文章了,还是写自己的博客吧,再见了各位

    校验提示文案

    提交
    嗯,毕竟这也不是技术类网站,这是个购物分享网站,但确实聚集着一些爱玩爱折腾的技术人,这个很好,毕竟有热爱才有生活

    校验提示文案

    提交
    怎么找你的博客呢?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 用ha设置了设备上下线,辅助散热自动开关。其实也能把设备芯片温度和外部风扇转速关联。其他有正经用的还没想好干啥,想把指纹锁接到ha,需要485转mqtt之类的,奈何技术不行 [喜极而泣] [喜极而泣]

    校验提示文案

    提交
    8月的更新据介绍升级了蓝牙的功能,可以通过蓝牙连接智能锁,还有homekit不再需要控制中心了,如果没有苹果设备,HA就可以。我没有智能锁没法试。

    校验提示文案

    提交
    收起所有回复
  • 同意作者的观点,ha的易用性没这么好

    校验提示文案

    提交
    目前你还有别的选择么,另一个基于linux的,生态更差

    校验提示文案

    提交
    收起所有回复
  • 科普贴,支持一下!

    校验提示文案

    提交
  • 支持楼主,目前国内HA的教程太少,学习成本很高 [皱眉] [皱眉] [皱眉]

    校验提示文案

    提交
  • 现在玩HA的确需要毅力,在使用过程中需要解决各种各样的问题,对于喜欢折腾的人,这的确是一种乐趣,可偏向于使用这种场景,坑还是太深。不知道新出的matter会不会改变这一生态

    校验提示文案

    提交
  • 学习了,就缺这么一篇扫盲文章,非常仔细,思路清晰,赞一个。

    校验提示文案

    提交
  • 不错,很细致

    校验提示文案

    提交
  • 其实很简单搞个软路由openwrt装个docker 安装ha非常简单

    校验提示文案

    提交
  • 我的没有加载项商店。。为什么呢,这下就安装不了HACS了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
573
扫一下,分享更方便,购买更轻松