通过 Home Assistant 的 Synology 集成我们已经可以让群晖的CPU温度显示在 Homekit 上,我使用的 NanoPi R2S 路由器 CPU 发热很严重,为了方便查看路由器温度决定尝试下看看能不能接入 Home Assistant。
Home Assistant 官方有 OpenWrt 集成,可惜那个只能追踪设备。搜了下确实有成功把路由器温度接入 Home Assistant 的案例,一个是 K3 官改固件一个是梅林固件,并没有 OpenWrt 的。
[进阶教程] 梅林路由器CPU和无线芯片温度接入Home Assistant
我参考第一个链接通过 Command Line 成功让软路由的温度显示在 Home Assistant 和 Homekit 上。

方法如下:
- 打开 Home Assistant 的终端,以我通过群晖 Docker 安装的 Home Assistant 为例,打开 Docker 应用的容器选项,找到 Home Assistant 的容器,点上面的详情,再切换终端机,新建 bash,进入终端界面了。
- 输入 ssh-keygen 回车创建密钥,输入密钥的名字,然后回提示你设置密码,密码留空直接回车两下就创建完成了。
我这里的私钥 id_rsa (图上名字填错)和公钥 id_rsa.pub 都存在 /config 目录下。
ssh-keygen

- 输入 cat id_rsa.pub 回车查看公钥,拷贝里面的内容。
cat id_rsa.pub
在 OpenWrt 界面的 系统 – 管理权 – SSH密钥 中粘贴并应用。

- 在 Home Assistant 的终端输入下面的命令测试,成功会输出温度数字。如果失败,尝试赋予 id_rsa 私钥文件 700 权限。
chmod -R 700 id_rsa
ssh -o StrictHostKeyChecking=no -i /config/id_rsa root@路由器IP cut -c1-2 /sys/class/thermal/thermal_zone0/temp
- 在 Home Assistant 的 configuration.yaml 配置文件添加下面的配置并重启 Home Assistant 服务,就能在 Home Assistant 和 Homekit 里看到路由器温度的传感器了。
homekit:
sensor:
- platform: command_line
name: R2S CPU 温度
command: "ssh -o StrictHostKeyChecking=no -i /config/id_rsa root@路由器IP cut -c1-2 /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
scan_interval: 300