Home Assistant简易智能家居环境搭建

2020-03-15 21:47:55 49点赞 483收藏 34评论

上天我写的那篇获取小米设备token的文章,不少朋友看了之后表示一脸懵比,不知道有啥用,所以特地写了这篇把智能家电接入Home assistant入门的小文,希望能对这些朋友有所帮助。(欢迎入坑Home Assistant简易智能家居环境搭建

一、home assistant介绍

1、介绍

Home Assistant 是一款基于 Python 的智能家居开源系统,目前已经更新到0.106.6。支持小米、博联、mqtt众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。系统主要通过配置 configuration.yaml 文件以组件形式接入各类智能家居设备。

2、与苹果生态系统联动

Home Assistant原生支持苹果homekit,如果我们要启用这个功能,只需要在configuration.yaml 中键入下列一行名保存重启。

homekit:

我们的苹果手机、ipad就可以通过系统自带的“家庭”app连接控制Home Assistant里的设备,siri语音也是没问题的。具体效果见下图:

Home Assistant简易智能家居环境搭建

3、设备接入方法:

大部分的设备遵循 Home Assistant 的分类逻辑,配置时需要遵循分类原则,即

同类设备需包含在大类下,以枚举的方式加入平台。例如:


light: #灯具
- platform: yeelight #yeelight 灯
•••
- platform: xiaomi_miio #小米灯
•••
•••media_player: #媒体播放器
- platform: kodi
•••
- platform: itunes


例如要让Home Assistant支持小米智能插座,只要加入以下代码:

switch:
- platform: xiaomi_miio
name: Original Xiaomi Mi Smart WiFi Socket
host: 192.168.130.59
token: YOUR_TOKEN

这里具体解释下每行代码意思:

第一行switch:表示启用开关组件,以后如果还有“开关”这一大类的所有设备,都要写在这行下面

第二行- platform: xiaomi_miio表示使用的是switch组件下面的“小米及创米各类插座及插线板”

第三行name:后可以自定义你的设备名称,支持中文

第四行host:后输入你的设备局域网ip地址

第五行 token:后输入你的小米开插座32位token

注意:所有wifi设备接入hass都需要提前获取设备的token,小米token获取办法见我的这篇文章

智能家居 篇一:ios端简单抓包,5分钟获取小米设备token本来我的hass一切工作正常的,直到有一天被我家小子连按台灯开关n次恢复出厂值.......记住:小米设备的token每次通过app重新绑定后,token是变化的一、传统的小米token获取先说下小米的token常规获取办法,也是我第一次使用的办法:使用root过的安卓手机安装老版本的米家,连接好所sqxiaofei| 8 评论17 收藏76查看详情

好了,上面扯的有点多,下面是正文。

二、硬件和系统环境

1、硬件

斐讯N1(哪里都能看到你Home Assistant简易智能家居环境搭建

2、系统

armbian 5.94系统

刷机教程参考恩山论坛 。

N1刷入Armbian后换软件源、安装Docker并提速-斐讯无线路由器以及其它斐迅网络设备-恩山无线论坛-PoweredbyDiscuz!恩山无线论坛www.right.com.cn去看看

N1刷机资源看另外一个帖子,除了有armbian,还有安卓系统、游戏模拟器、coreelec等等刷机资源。

N1和K2P的各种玩法资源汇总-2020-3-7更新自编op和N1做主路由教程文件解决断网问题-斐讯无线路由器以及其它斐迅网络设备-恩山无线论坛-PoweredbyDiscuz!恩山无线论坛www.right.com.cn去看看

3、环境配置

安装好armbian后继续安装docker,我们选择用docker安装hass,可以省去大量的环境配置工作。docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。docker你可以理解成操作系统里的一个子系统。

docker管理是用的portriainer,这里portainer也是以容器的形式运行在docker里。

#拉取portainer镜像

docker pull portainer/portainer

#运行portainer容器,并将服务映射到主机上的9000端口,以后可以通过http://n1的ip地址:9000管理N1主机上的docker服务,具体portainer配置略。

docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer portainer/portainer

重点说一下armbian系统和上面刷机教程中更换软件源部分,不解决这个网速问题,轻则心情郁闷,严重的话想砸了电脑!

(1)armbian操作系统的源替换为 ustc中国科技大学后速度尚可。

(2)docker镜像源经我测试包括阿里云的加速功能(至少在移动家庭宽带下)没有效果!Home Assistant简易智能家居环境搭建 我的解决办法是在n1连接到单位的未批嗯上(移动企业网是固定ip,线路访问速度比家庭宽带要快),当然还有其他优化网络的办法,因为大家都找到的原因,这里就不方便说了。

三、安装Home Assistant

1、以docker模式安装Home assistant

为了降低难度,这里通过portainer以图形界面安装Home Assistant的docker

dockerhub的项目地址:https://hub.docker.com/r/homeassistant/home-assistant

(1)Containers-Add container添加新容器

Home Assistant简易智能家居环境搭建

(2)name为容器名称,随便写个容易记的。

Registry默认为Dockerhub这里不变

image里输入homeassistant/home-assistant:latest 这是ram的镜像,如果是x86主机要选其他项目,不要照抄。

Network ports configuration为里方便调试我们这里选用host模式,就不映射端口到host了。

Home Assistant简易智能家居环境搭建

(3)Volumes里我们把container中的/config映射到host主机里的指定目录,例如/home/hass/config

模式选bind。记住host目录路径需要提前创建好。

Home Assistant简易智能家居环境搭建

(4)Restartpolicy设置Always,这一步是为里每次重启N1后,hass服务会随着docker自动启动。

Home Assistant简易智能家居环境搭建

(5)以上设置完毕后,我们如下图部署容器。此步骤可能会因为你的网络问题导致失败,多试几次吧~~Home Assistant简易智能家居环境搭建

Home Assistant简易智能家居环境搭建

2、Home Assistant的设置

上面安装顺利的话,我们这时就能访问Home Assistant的网页啦,地址如下,ip地址要改成你的设备ip地址。

http://你的N1 IP地址:8123/

(1)初始化,设置用户名和密码

这个用户名密码最好记录下,如果忘记了,可以通过删除hass 配置目录中的.storage隐藏文件夹重置用户名,不影响设备配置。

进入主页面显示如下:

Home Assistant简易智能家居环境搭建

(2)配置config文件夹下configuration.yaml

我们上面docker安装hass时已经把容器的/config映射到host(就是n1)的/home/hass/config文件夹了,所以直接ssh登陆N1后修改对应文件即可

cd /home/hass/config

nano configuration.yaml


Home Assistant简易智能家居环境搭建

默认配置如下:

Home Assistant简易智能家居环境搭建

我们不要改动这些内容,直接从最下面一行开始增加配置。

四、配置home assistant,接入智能家居设备

1、小米智能插座

在configuration.yaml 加入以下代码:

switch:
- platform: xiaomi_miio
name: Original Xiaomi Mi Smart WiFi Socket
host: 192.168.130.59
token: ********此处隐藏,替换成你的设备*******

这里具体解释下每行代码意思:

第一行switch:表示启用开关组件,以后如果还有“开关”这一大类的所有设备,都要写在这行下面

第二行- platform: xiaomi_miio表示使用的是switch组件下面的“小米及创米各类插座及插线板”

第三行name:后可以自定义你的设备名称,支持中文

第四行host:后输入你的设备局域网ip地址

第五行 token:后输入你的小米开插座32位token

注意:所有wifi设备接入hass都需要提前获取设备的token,小米token获取办法见我的这篇文章

智能家居 篇一:ios端简单抓包,5分钟获取小米设备token本来我的hass一切工作正常的,直到有一天被我家小子连按台灯开关n次恢复出厂值.......记住:小米设备的token每次通过app重新绑定后,token是变化的一、传统的小米token获取先说下小米的token常规获取办法,也是我第一次使用的办法:使用root过的安卓手机安装老版本的米家,连接好所sqxiaofei| 8 评论17 收藏76查看详情


2、飞利浦智睿灯泡的代码如下:

light:

- platform: xiaomi_miio

name: light-zhirui

host: 192.168.10.41

token: ********此处隐藏,替换成你的设备*******

model: philips.light.bulb


其他设备配置,请参考这个网站。

概述-HomeAssistant中文文档home-assistant.cc去看看

Home Assistant简易智能家居环境搭建

4、配置home assistant面板显示内容

登陆hass网页,先重启服务。然后点击网页内容的右上角“。。。”,选择“配置UI”

在BADGES中依次选择配置合适的实体,然后保存。

Home Assistant简易智能家居环境搭建

5、hass网页控制实际效果

这时候我们已经可以通过网页控制设备开关了。

Home Assistant简易智能家居环境搭建

Home Assistant简易智能家居环境搭建

五、苹果系统通过Home Assistant控制设置

1、文章开头已经说了,只要增加下面这行代码,保存后,重启hass服务

homekit:

重启服务我们直接在hass网页操作:

2、登陆后在“配置-服务器配置”中,看点击“检查配置”,如果配置文件语法正确,就提示“配置有效”,否则需要根据错误提示到configuration.yaml 里面排错。

Home Assistant简易智能家居环境搭建

3、在网页最下方点击“重新启动”

Home Assistant简易智能家居环境搭建

4、等待十几秒hass服务重启完成,在网页左下角“通知”栏会有新消息,点进去会给你一个8位数字pin码,记好!

5、掏出手机,打开wifi确保和N1在同一个局域网内。打开家庭app,如下图配置输入8位pin码

点击“添加配件”

Home Assistant简易智能家居环境搭建

选“我没有或无法扫描代码”

Home Assistant简易智能家居环境搭建

点击“输入代码”

Home Assistant简易智能家居环境搭建

Home Assistant简易智能家居环境搭建

6、等待一会就可以看到你刚才添加的设备了~~hass内增加的设备,这里都会自动同步过来,不需要再此配置。

Home Assistant简易智能家居环境搭建

7、你还可以通过添加其他用户的icloud账号把上面这些设备共享给他控制,权限是一样的。如果你在家里有一个ipad,还可以通过把ipad设置为家庭中枢,实现在办公室或者外地实时控制家中的设备!

将 HomePod、Apple TV 或 iPad 设置为家居中枢 通过家居中枢,您可以远程控制您的 HomeKit 配件,给予信任的人访问权限,以及对配件进行自动化,以便在您需要的时候完成所需的操作。通过家居中枢,您可以远程控制您的 HomeKit 配件,给予信任的人访问权限,以及对配件进行自动化,以便在您需要的时候完成所需的操作。support.apple.com去看看

8、自动化设置,可以根据当日时间、您所在的位置、感应器检测等触发配件或场景。

Home Assistant简易智能家居环境搭建


总结 :

home assistant网页设置部分步骤在第一次安装时没有想起来截图,所以可能对第一次接触的朋友不是很友好,见谅!

目前接入的设备还不够多,我手里还有个斐讯m1和智能插座,都还没有搞定。以后有机会再写。

以上是我个人摸索home assistant的一些经验,希望对大家有用。

展开 收起
34评论

  • 精彩
  • 最新
  • 成功将小米那些玩意还有石头机器人,索尼电视机,智米电风扇,小米空气净化器pro接入homekit,太安逸了,米家app太复杂了,

    校验提示文案

    提交
    sony电视是怎么接进去的?我从ha接入但是在hk里看不到

    校验提示文案

    提交
    好的,我试试看

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 你好,我最近也准备写这个,不过不是主要写Home Assistant,我是通过一键脚本装入Hass的,家里的网装不了,费了不少功夫,能挂梯子应该容易点。M1和DC1配网已经配好了,hosts劫持也劫持了。因为直接替换别人写的yaml文件,Home assistant主页没显示出来,不知道什么原因。

    校验提示文案

    提交
    dc1是需要刷入第三方固件的,劫持host没有用

    校验提示文案

    提交
    应该不用的,我回去试一下,我可能文件放错位置了。

    校验提示文案

    提交
    还有9条回复
    收起所有回复
  • 请教下,群晖docker里装的HA 108.9版,启用homekit后家庭app里输入代码后搜不到中枢,偶尔收到过一次,连上后也显示设备离线

    校验提示文案

    提交
    建议网络模式改为host不要映射

    校验提示文案

    提交
    收起所有回复
  • @Dinky 您好,请教下,这个端口映射是怎么搞的?我拉的最新的镜像,进去看了下,压根没有端口。 port那里是空的。这怎么映射啊。

    校验提示文案

    提交
    新手建议使用host模式。这个服务和unifi controller一样,映射端口会导致好多莫名其妙的故障

    校验提示文案

    提交
    好的,谢谢。我再继续折腾

    校验提示文案

    提交
    收起所有回复
  • 咨询一下,这个可以让小米的设备脱离互联网使用吗?
    我家是移动宽带,各种设备经常失灵,排查后是移动网的“层”太多了,有时候数据穿透不过来。包括去年(当时是电信网)有两次全小区(还有其他小区)的长时间断网,家里设备彻底瘫痪。所以急需脱离互联网的解决方案。

    校验提示文案

    提交
    可以的,我有个小米的wifi插座,还有dc1排插,在一个无法连接互联网的vlan里,用了好几个月了,很稳的,别的设备不清楚

    校验提示文案

    提交
    收起所有回复
  • 复杂到害怕 回家我再研究研究 打赏了先

    校验提示文案

    提交
  • hassn好像挺大的 直接装在n1的emmc上会不会不够,可以装在外接的U盘上吗?

    校验提示文案

    提交
  • 准备折腾haas,学习下

    校验提示文案

    提交
  • 今天看的帖子有点多,忘记在哪看到说通过docker安装的hass,某些蓝牙功能不可用?

    校验提示文案

    提交
  • 按这个教程,一步一步来,hssa一次装完,但是用8123端口进不去呀,愁死了

    校验提示文案

    提交
    解决了,端口映射弄对,还没用macvlan模式

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

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