Home Assistant
Home Assistant 安装
Home Assistant
Docker-Home Assistant
群晖VM-Home Assistant(Supervisor)
Supervisor
Supervisor-无插件
Hacs 家庭助理社区商店
Hacs-和风天气
无法下载
自定义储存库灰色
MQTT
MQTT-红外接收
Tasmota(免编程智能家居)
Tasmota 简易使用
Tasmota 常见指令
Tasmota 重置设备
Tasmota-MQTT
Tasmota-Rules(规则)
Tasmota-Web控制
其它未测试项目
本文档使用 MrDoc 发布
-
+
首页
Home Assistant
## Hass OS HASS有4种安装方式,这里选用的是OS形式,Docker形式的基本上Liunx都可以安装,但是OS形式会多一个Supervisor,可以实现快照和安装插件以及系统监控  系统在官方下载并烧录 [Home Assistant](https://www.home-assistant.io/installation) 烧录完成后启动设备,等待一会就可以访问 http://[设备IP]:8123 进行访问,注意,使用谷歌可访问,其他浏览器不一定 系统会在线安装Hass,等待一段时间 安装完成后根据情况设置一下就可以进入 ~~## Hass IO安装~~ ### 系统需求: Raspberry Pi OS Lite测试版本Raspberry Pi OS Lite 2020年12月2日通过 Ubuntu测试版本12.04 LTS测试通过。 Debian测试版本> = 10最小化版本测试通过。 以root身份运行以下命令 ``` $ wget https://code.aliyun.com/neroxps/hassio_install/raw/master/install.sh $ chmod a + x install.sh $ ./install.sh ``` 注意:如果chmod无法更改权限,可以使用FinalShell直接文件修改权限 ### 安装 Hassio 设定 1. 出国环境(如果没有VPN并且用不了那就需要修改出国环境,IP为上游网关) 2. 切换清华源(如果无法自动切换,那就手动切换清华源) 3. 是否更新系统软件(根据需求,一般来说镜像较新就不需要) 4. 是否将用户添加Docker用户组(添加非root用户) 5. 切换Docker源至国内(一般是,不行可手动切换Docker源) 6. 设备类型(根据需求跟,香澄派可能会失败,选用通用arm设备可以解决) 7. Hassio数据路径(一般无需更改) 8. 是否优化hosts(别问,肯定是,除非有VPN) 执行完后,等返回提示成功即可,`http://[IP]:8123`访问 #### 修改出国环境检测 有的无法直接使用,并且没有外网环境的,修改`install.sh` ``` $ vi install.sh / $ nano install.sh ``` ``` # 检查出国旅游连通性(更改为www.baidu.com) check_proxy_status(){ info "正在通过访问 www.youtube.com 检查旅游环境" if ! wget -q --connect-timeout 20 --tries 1 --retry-connrefused https://www.baidu.com -O /tmp/baidu ;then warn "旅游失败,请检查出国旅游环境." return 1 fi return 0 } ``` 把原有的`www.youtube.com`和`/tmp/youtube`更改为`baidu`的 #### 手动切换清华源 ``` $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - $ echo "deb [arch=armhf] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \ $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list ``` (该项为debian的,其他的查看官方手册) #### 手动切换Docker源 ``` $ sudo mkdir -p /etc/docker $ sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://94p53uk1.mirror.aliyuncs.com"] } EOF $ sudo systemctl daemon-reload $ sudo systemctl restart docker ``` 最后两条报错不影响,`sudo ls /etc/docker/` 可检测成功退回有无daemon.json ### Hass 安装 [Github官网](https://github.com/home-assistant/supervised-installer) ### Hassio服务命令 ``` //停止(但重启依然会自启动) $ systemctl stop hassio-supervisor.service //重启 $ systemctl restart hassio-supervisor.service //禁用自启动 $ systemctl disable hassio-supervisor.service //启用自启动 $ systemctl enable hassio-supervisor.service //查询当前启动状态 $ systemctl status hassio-supervisor.service //查询当前是否自启动 $ systemctl is-enabled hassio-supervisor.service //查询 hassio 日志 $ docker logs -f hassio_supervisor //查询 hassio 日志最新20行信息 $ docker logs -f hassio_supervisor --tail 20 //查询 ha 日志 $ docker logs -f homeassistant //查询 ha 日志最新20行信息 $ docker logs -f homeassistant --tail 20 ``` ## 其他配置 ### 安装 SSH 和 Samba  在Supervisor中的商店进行安装,如果没有找到,在用户(左下用户名)——打开高级模式 还是没有,右上角三个点,重新加载 #### SSH  SHH需要配置,使用公共秘钥或是密码(常用),端口也需要设置,不然无法访问该项服务,用户名为root #### Samba  Samba 设定,需要设定密码,不设定密码无法访问,用户名也可根据需求更改,使用`\\homeassistant.local`或是`\\[设备IP]`进行访问 ### 安装File editor(在线编辑器) supervisor——商店——File editor 启用,勾选侧边栏显示,可全部勾选  ### 安装HACS应用商店 [HACS 官网](https://hacs.xyz/docs/installation/installation/) 使用SHH登录,运行 ``` $ wget -q -O - https://install.hacs.xyz | bash - ``` 然后重启容器,在配置——服务控制中重启,比在supervisor(整个设备重启)中要快很多 配置——集成,点击右下+号,搜索HACS,安装集成(要确保和Github的网络正常)  随后会有个提示,全部勾就行了  Github授权,点击上方的链接,登录Github帐号,然后输入下方的代码,进行授权到HACS(老版本的是在Github私人中找Tokeb) 然后就添加完成,分配区域可以不需要分配 左侧会多个HACS的选项,图标刷新下就可以出来了   刚安装后会在Github中下载内置的软件,需要比较长的时间进行下载,等一会就好了,HACS is starting up这一项就会消失 后面就可以通过HACS——integrations 进行安装所需要的插件了(右下+号) ### 更新 HASS  当有可更新时,Supevisor中会提示,可以点击更新,更新过程中没有任何提示,更新成功后会自动重启 ### 优化Docker的Github下载 `重启后失效,需再次优化` 在Portainer——Contalners中进入容器的命令提示符  Homeassistant和hassio_supervisor的`都需要更改`  点击Connect连接命令提示符 输入: ``` $ vi /etc/hosts ``` 在hosts最后空一行追加下列内容 ``` 151.101.76.133 raw.githubusercontent.com 140.82.114.4 github.com 140.82.114.9 nodeload.github.com 1140.82.114.5 api.github.com 140.82.112.18 training.github.com 140.82.113.10 codeload.github.com 185.199.108.153 assets-cdn.github.com 185.199.108.153 documentcloud.github.com 185.199.108.154 help.github.com 185.199.108.153 githubstatus.com 199.232.69.194 github.global.ssl.fastly.net 199.232.68.133 raw.github.com 199.232.68.133 raw.githubusercontent.com 199.232.68.133 cloud.githubusercontent.com 199.232.68.133 gist.githubusercontent.com 199.232.68.133 marketplace-screenshots.githubusercontent.com 199.232.68.133 repository-images.githubusercontent.com 199.232.68.133 user-images.githubusercontent.com 199.232.68.133 desktop.githubusercontent.com 199.232.68.133 avatars0.githubusercontent.com 199.232.68.133 avatars1.githubusercontent.com 199.232.68.133 avatars2.githubusercontent.com 199.232.68.133 avatars3.githubusercontent.com 199.232.68.133 avatars4.githubusercontent.com 199.232.68.133 avatars5.githubusercontent.com 199.232.68.133 avatars6.githubusercontent.com 199.232.68.133 avatars7.githubusercontent.com 199.232.68.133 avatars8.githubusercontent.com ``` 保存并退出,`ESC`,输入英文:,输入`wq`,`回车` ### Portainer 容器管理 在supervisor——商店中进行安装(高级模式才有)  关闭保护模式,启动,点击左侧Portainer进行访问(进不去多点几次) 如果需要外部也可访问,就在配置中设定端口  正常应该会看到很多容器,如果没有看到,可能是被隐藏了  在设置中,隐藏容器这里点击容器后面的Remove,一般来说不需要所有的都显示,只显示主要的homeassistant和supervisor即可 ### 设置简体中文  点击用户名可进入用户设置,语言,密码,长期访问令牌都在这 ### ZeroTier One(内网穿透) Supervisor——商店——ZeroTier One安装 配置:  在networks: 下面填写即可,可同时接入多个 格式:`- af415e486f70777d` 设置完保存——启用(开关前两个自动启动开启) ### Frp内网穿透 查看架构 ``` $ sudo arch ``` 下载frp ``` $ wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_arm.tar.gz $ tar -zxvf frp_0.36.2_linux_arm.tar.gz $ cp -r frp_0.36.2_linux_arm frp $ cd frp ``` 修改frpc配置文件 ``` $ vi frpc.ini [common] server_addr = 121.37.157.118 #服务器地址 server_port = 7000 #服务器frp端口 token = 12356789 #秘钥 user = HASS #设备名称,方便区分 [range:ssh] #类别名称,实际会是设备名称+类别名称 type = tcp #通讯协议,tcp/udp local_ip = 127.0.0.1 #穿透设备IP,可以给任何你能访问到的设备进行中转代理 local_port = 22 #服务端口 remote_port = 20022 #映射端口 [range:hass] #多个类别也可以 type = tcp local_ip = 127.0.0.1 local_port = 8123,9000,6052 #主机端口,可以同时代理多个端口,但是映射的要一一对应 remote_port = 8123,9000,6052 #服务器端口,如果两端的端口对应端口未启用或是被占用则无效 ``` 测试服务 ``` $ ./frpc -c frpc.ini ``` 后台运行 ``` $ nohup ./frpc -c frpc.ini & ``` //可使用jobs进行查看 #### 设置frp开机自启 创建并编辑服务文件 ``` $ sudo vim /etc/systemd/system/frpc.service [Unit] Description=Frp Client After=network.target Wants=network.target [Service] Restart=on-failure RestartSec=5 ExecStart=/root/frp/frpc -c /root/frp/frpc.ini //填写实际命令,需要精确到具体位置 [Install] WantedBy=multi-user.target ``` frp服务控制 ``` #启动服务 $ systemctl start frpc //重启restart/停止stop #设置开机自启 $ systemctl enable frpc //关闭开机自启disable #查看日志 $ systemctl status frpc ``` ## HASS 使用 ### 安装温湿度(GPIO) 树莓派可直接调用板载GPIO,其他主控根据实际更改 接线,正负极正常接,OUT连接对应GPIO口 ``` sensor: - platform: dht #dht系列设备 sensor: DHT11 #DHT型号,22的就改成DHT22 name: "温湿度" #设备名称 pin: 4 #GPIO口 temperature_offset: 2.1 #此处可选项,根据实际情况可以调整温度误差 humidity_offset: -3.2 #此处可选项,根据实际情况可以调整湿度误差 monitored_conditions: - temperature - humidity ``` ### 添加高德地图 HACS——Frontend 右下+号,搜索Gaode Map card 并进行安装(Show beta versions是测试版,不推荐勾选) 然后在首页编辑模式,右下+号添加卡片中就可以找到 高德地图的API_KEY是需要申请的,自用:`f87e0c9c4f3e1e78f963075d142979f0` 配置——地点中设置,还可以添加手机之类的,[坐标查询](https://lbs.qq.com/getPoint/)  ### ESPHome ESPHome官方:`https://www.esphome.io/index.html` (可查询官方支持硬件手册) 在Supervisor——商店——ESPHome安装 配置中启用端口方便访问(默认6052即可)  启用,可以全部勾选 第一次使用的设备需要通过USB连接到主机  连接后右上会多个选项,选择他,OTA为云升级 点击右下进行添加新ESPHome设备 根据要求填写: 1. 节点名称,及设备名称,仅允许小写+字符+_和- 2. 设备类型,主要支持ESP8266和ESP32,根据实际选择(01有512k的) 3. WIFI名称和密码,以及密钥(OTA升级和连接用的,可以不填) 4. 完成  未连接上方为红色 点击编辑,进行配置  api和ota中分别为连接和升级的密码,未配置就会为空 sensor这一栏为主配置,以下为温湿度配置可以参考(跟在yaml文件中配置的类似) ``` esphome: name: esp8266 platform: ESP8266 board: esp01 #主控型号 wifi: ssid: "WIFI233" password: "12356789" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp8266 Fallback Hotspot" #这些内容是生成的 password: "d8E0CtXl6HVO" captive_portal: # Enable logging logger: # Enable Home Assistant API api: password: "773203918" #连接密码 ota: password: "773203918" #OTA更新密码 sensor: - platform: dht #使用的是DHT系列的传感器,所以平台必须为dht pin: GPIO2 #连接引脚,根据选择的主控型号不同,可用引脚也不同 #根据实际填写,可填Dx,也可GPIOx,或是直接x,有的无效换用GPIOx可解决 temperature: name: "温度" humidity: name: "湿度" model: AUTO_DETECT update_interval: 20min #更新时间,s,min,h ``` 配置完成后点击右下`SAVE`保存,`CLOSE`返回 再次确认右上角选中的设备是你要上传的,点击UPLOAD上传  第一次使用会自动在线下载一些文件,可能要等一会,之后就快了  出现SUCCESS就证明烧录成功了,后面再刷新的内容就是实际执行的内容了,点击右下的STOP按钮停止就行了 之后就可以断开连接了,以后更改只需要在ESPHome中修改使用OTA云升级就行了 在配置——集成中会自动搜索到一个新ESPHome设备  添加完成后就可以正常调用了 #### ESPHome温湿度 ``` sensor: - platform: dht #使用的是DHT系列的传感器,所以平台必须为dht pin: GPIO2 #连接引脚,根据选择的主控型号不同,可用引脚也不同 #根据实际填写,可填Dx,也可GPIOx,或是直接x,有的无效换用GPIOx可解决 temperature: name: "温度" humidity: name: "湿度" model: AUTO_DETECT update_interval: 20min #更新时间,s,min,h ``` #### ESPHome超声波 ``` sensor: - platform: ultrasonic trigger_pin: D1 echo_pin: D2 name: "超声波测距" update_interval: 60 #间隔时间s(可选) ``` #### 解决ESPHome编译时卡死 对于内存小的设备,在编译时会出现卡死,SSH可连接无内容,HASS页面直接无响应 这种是设备的内存不够用,虚拟内存也爆满造成的,扩展虚拟内存可解决 ``` //创建swap文件 $ mkdir /opt/swap //新建个目录用于存放,可自行修改存放位置 $ cd /opt/swap //进入目录 $ dd if=/dev/zero of=swapfile bs=1M count=1024 //新建名为swapfile的文件,bs块大小,count块数量,空间为bs*count,创建时间比较久 //转换swap文件 $ mkswap swapfile //挂载swap文件 $ swapon /opt/swap/swapfile //swapoff为卸载 //添加开机自动挂载 $ vi /etc/fstab /opt/swap/swapfile swap swap defaults 0 0 //查看swap分区 $ free -m //-m是以M的单位进行查看空间,不加就是K ``` ### 设备追踪 #### Ping追踪 `configuration.yaml` ``` device_tracker: #设备跟踪器 - platform: ping #追踪方式ping hosts: pc1: 192.168.10.90 #追踪IP(需要设备有一个固定IP) phoen1: 192.168.10.150 #抬头名称可以任意写,方便区分,但是不能有大写 interval_seconds: 30 #间隔时间s consider_home: 180 #持续时间s,180s内都正常即在家 new_device_defaults: #新设备(省略) track_new_devices: true #跟踪新设备(省略) ``` #### nmap追踪 (MAC形式,可在历史中查看所有设备在线状态) ##### 安装nmap ``` $ sudo apt-get install nmap ``` `configuration.yaml` ``` device_tracker: #设备跟踪器 - platform: nmap_tracker #追踪方式nmap hosts: 192.168.1.0/24 #追踪网段 home_interval: 10 #追踪间隔s exclude: #排除的设备 - 192.168.1.12 - 192.168.1.13 consider_home: 180 #持续时间s,180s内都都正常即在家 ``` ##### 两者方式可以共存 修改过后,重启hass 配置——服务控制——重启 配置——人员 添加刚配置的设备,一个人员可以同时拥有多个设备 ### 天猫精灵接入 #### HassLife接入 `简单,要外网,但要给长期密钥安全性低` 1. [HassLife注册](https://hass.blear.cn) 2. 绑定长期密钥(在HASS用户中获取) 3. 根据需求添加设备 4. 天猫精灵APP搜索`HassLife`并绑定 5. 添加查询设备状态支持 地址:https://gitee.com/blear/HassLife 6. 下载homelife文件夹,保存在`<homeassistant配置目录>/custom_components/`目录中,若custom_components目录不存在则自行创建 7. 编辑`<homeassistant配置目录>/configuration.yaml`文件 ``` hasslife: username: test # HassLife上注册的用户名 password: 123456 # 注册的密码 ```
造物者W
2022年1月11日 18:44
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码