R4S软路由搭建HomeAssistant
目录
HomeAssistant简介
环境配置
搭建步骤
安装HomeAssistant镜像
安装HACS
内网穿透配置
反向代理配置
安装后配置项
外网访问出现400 Bad Request
反向代理访问登录页面出现Unable to connect to Home Assistant.报错
接入HomeKit后重启网络连接失败
HomeAssistant简介
Home Assistant 是一款在 Python 3 上运行的家庭自动化平台。能够跟踪和控制家庭中的所有设备,并提供自动化控制平台。
环境配置
上海地域公网服务器,CentOS,已安装宝塔、LAMP环境
R4S软路由,支持Docker、FRP内网穿透
搭建步骤
安装HomeAssistant镜像
在软路由上进入Docker镜像页,输入homeassistant/home-assistant拉取最新的HomeAssistant镜像
在容器页面,参考如下配置,创建出新的容器
1 |
|
创建完成后,使用http://软路由内网IP:8123,可以进入HomeAssistant首次配置页面
创建用户名密码、国家、地区等基本信息后,后续即可通过内网地址访问。
安装HACS
HACS是HA的应用商店,由于HA的自带导入设备局限性比较大,HACS商店中的各种接入组件弥补了支持设备少的问题
HACS安装过程更新中…
内网穿透配置
外网服务器安装FRP内网穿透服务端,将软路由的8123端口转发至外网IP的端口,后续可以通过http://外网IP:8123在外网访问
反向代理配置
安装后配置项
解决代理访问报错400:Bad Request的问题
配置白名单允许代理IP访问HomeAssistant
1.使用内网IP进入HomeAssistant页面,点击左栏>配置>系统>日志,检查proxy代理相关报错,记住报错中的IP
2.进入容器内/config对应的本地挂载目录,打开configuration.yaml,添加如下配置,允许下列IP访问:
1 |
|
解决访问登录页面,登录时报错Unable to connect to Home Assistant.问题。
该报错原因是Home Assistant登录时会用到websocket,宝塔默认的反向代理未添加websocket支持。
注意点:
1.搜索引擎中的方案大部分是针对Nginx的,对于Apache相关配置介绍较少。
2.直接参考大部分文档中的配置,仍然无法转发Home Assistant的登录请求
经过测试,如下配置可以正确转发Home Assistant的websocket请求
1 |
|
接入HomeKit后重启网络连接失败
1.进入Home Assistant后台左栏,选择配置>系统>网络,找到局域网选项,打开自动配置,勾选软路由所在网段
配置快捷指令实现siri调整加湿器模式
调用HomeAssistant应用中的humidifier.set_mode并传入服务所需数据:
强力模式:
{“mode”:”Strong”,”entity_id”: “humidifier.leshow_jsq3_77a2_humidifier”}
睡眠模式:
{“mode”:”Sleep”,”entity_id”: “humidifier.leshow_jsq3_77a2_humidifier”}
其中entity_id指实体ID,humidifier.leshow_jsq3_77a2_humidifier是家里加湿器的ID。