起因
折腾ESP8266的时候,感觉通信比较啰嗦,想到了Home Assistant,顺便把小爱音箱也接入Home Assistant,方便语音控制。
安装
其实很早之前装过,但是没怎么把玩。这次想docker安装,尽量保持它持久运行。直接上 compose.yaml 如下:
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:latest"
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
network_mode: host
environment:
TZ: Asia/Shanghai
HACS
docker版的缺点之一就是没有内置HACS,直接在docker容器里执行命令安装
wget -O - https://get.hacs.xyz | bash -
实际因为会跳到github的原因,我还是挂了一下代理
# export http_proxy=http://a.b.c.d:port
# export https_proxy=http://a.b.c.d:port
curl -o getha -L https://get.hacs.xyz
# unset http_proxy
# unset https_proxy
bash getha
装上后,HA会提示重启,重启后就可以在HA的集成中看到HACS了。
首次登录HACS会要求github授权,这边访问不了会报could_not_register,日志中有
homeassistant | 2026-08-05 14:44:07.496 ERROR (MainThread) [custom_components.hacs] Timeout of 20 reached while waiting for https://github.com/login/devi
ce/code
homeassistant | Traceback (most recent call last):
homeassistant | File "/config/custom_components/hacs/config_flow.py", line 98, in async_step_device
homeassistant | response = await self.device.register()
homeassistant | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
homeassistant | File "/usr/local/lib/python3.14/site-packages/aiogithubapi/device.py", line 103, in register
homeassistant | response = await self._client.async_call_api(
homeassistant | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
homeassistant | ...<9 lines>...
homeassistant | )
homeassistant | ^
homeassistant | File "/usr/local/lib/python3.14/site-packages/aiogithubapi/client.py", line 147, in async_call_api
homeassistant | raise GitHubConnectionException(
homeassistant | ...<2 lines>...
homeassistant | ) from None
homeassistant | aiogithubapi.exceptions.GitHubConnectionException: Timeout of 20 reached while waiting for https://github.com/login/device/code
之后就可以在HACS中安装各种插件了。
Xiaomi Miot
下载Xiaomi Miot这个三方插件,会要求输入小米ID和密码,服务器是中国大陆,自动模式,就可以在HA中看到小爱音箱了。
Midea AC LAN
下载Midea AC LAN这个三方插件。添加集成需要空调的设备编号,新版本v3协议的还需要Token和Key,v2老版是不需要的。
此时要依赖另一个python项目 msmart-ng,使用discover命令可以扫描到空调的设备编号,但是需要自己注册一下 NetHome Plus 这个海外版美的空调App。
然后在discover命令中使用自己的账号密码就能得到设备的token和key了。内置的账号估计没用了。
拿到后到HA中添加集成,选择Midea AC LAN,输入设备编号、协议版本,如果v3再添上token和key,就可以控制空调了。
Tesla Custom Integration
集成Tesla的话,内置的Tesla集成不支持大陆地区,因为API地址不一样,插件里是写死的。只能使用三方修改插件 Tesla Custom Integration。
但是这个插件用的老API,需要获取Token,使用Auth For Tesla获取,标称是安全且开源的。如果集成Fleet API,需要再跑一个 Fleet API Proxy来中转。
最后修改于 2026-08-11