Home Assistant 折腾记录

起因

折腾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