『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 34208|回复: 32

[经验分享] 让 HA 实时监控华硕路由器芯片温度

[复制链接]

2

主题

17

帖子

130

积分

论坛技术达人

积分
130
金钱
108
HASS币
20
发表于 2019-4-16 23:26:14 | 显示全部楼层 |阅读模式
本帖最后由 qgy18 于 2019-4-17 00:09 编辑

最近玩 HA 过程中,把家里能接入的设备倒腾了个遍。我用的是 ASUS AC86U 路由器,官方提供有 asuswrt 组件,可以用来收集路由器上传下载等数据,还可以作为 device tracker,监控一些设备的在线情况(比如统计谁在家)。

但是官方组件里缺乏路由器温度监控,我最终采用了一种非常简便的方法实现了该功能,供大家参考。

照例先上图(路由器状态是官方组件提供的,温度是本文要讨论的):

1.jpg

AC86U 系统本质是一个 linux,可以通过一些命令获取芯片温度,例如:

# CPU 温度,需除以 1000
cat /sys/class/thermal/thermal_zone0/temp
# 2.4G 网卡温度,需除以 2,再加上 20
wl -i eth5 phy_tempsense
# 5G 网卡温度,需除以 2,再加上 20
wl -i eth6 phy_tempsense


另外,linux 还有个好处,可以通过配置信任链接,让其他机器免密码登录。

所以我的解决方案就呼之欲出了:

首先,在树莓派(安装了 HA)的 homeassistant 帐号下,建立与路由器的信任链接,实现无密码登录的效果(前提是要打开路由器的 SSH 登录功能。提醒:安全没做好可能被黑,风险自担)。

然后新建一个 HA 的 Package,利用系统自带 command_line 组件,远程执行命令,拿到数据,搞定!
sensor:
  - platform: command_line
    name: asus_temperature
    command: "ssh admin(at)192.168.1.1 "cat /sys/class/thermal/thermal_zone0/temp;wl -i eth5 phy_tempsense;wl -i eth6 phy_tempsense""

  - platform: template
    sensors:
      asus_cpu_temperature:
        value_template: "{% set list = states.sensor.asus_temperature.state.split('\\n') %} {{ (list[0] | float / 1000) | round(1) }}"
        unit_of_measurement: "°C"
      asus_2_4g_temperature:
        value_template: "{% set list = states.sensor.asus_temperature.state.split('\\n') %} {{ (list[1] | regex_replace(find='\\s\\(.*', replace='') | float / 2 + 20) | round(1) }}"
        unit_of_measurement: "°C"
      asus_5g_temperature:
        value_template: "{% set list = states.sensor.asus_temperature.state.split('\\n') %} {{ (list[2] | regex_replace(find='\\s\\(.*', replace='') | float / 2 + 20) | round(1) }}"
        unit_of_measurement: "°C"

homeassistant:
  customize:
    sensor.asus_cpu_temperature:
      friendly_name: CPU Temperature
    sensor.asus_2_4g_temperature:
      friendly_name: 2.4G Temperature
    sensor.asus_5g_temperature:
      friendly_name: 5G Temperature



评分

参与人数 1金钱 +10 收起 理由
windgo + 10 大神666!

查看全部评分

回复

使用道具 举报

0

主题

167

帖子

4952

积分

论坛元老

Rank: 8Rank: 8

积分
4952
金钱
4785
HASS币
0
发表于 2019-4-16 23:53:43 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

24

帖子

93

积分

注册会员

Rank: 2

积分
93
金钱
69
HASS币
0
发表于 2019-4-17 01:14:54 | 显示全部楼层
对我帮助很大,谢谢
回复

使用道具 举报

1

主题

176

帖子

2266

积分

金牌会员

Rank: 6Rank: 6

积分
2266
金钱
2090
HASS币
0
发表于 2019-4-17 07:48:59 | 显示全部楼层
感觉比我用三个command ssh分别获取好一点
回复

使用道具 举报

40

主题

2176

帖子

8286

积分

元老级技术达人

积分
8286
金钱
6095
HASS币
110
发表于 2019-4-17 08:40:50 | 显示全部楼层
被黑这个怎么破  楼主这个方案其实之前有人用了  我一直没敢用...
回复

使用道具 举报

2

主题

17

帖子

130

积分

论坛技术达人

积分
130
金钱
108
HASS币
20
 楼主| 发表于 2019-4-17 09:28:03 | 显示全部楼层
ghostist 发表于 2019-4-17 08:40
被黑这个怎么破  楼主这个方案其实之前有人用了  我一直没敢用...

安全是个系统工程,三言两语说不清,如果不是非常有经验,建议不要开启路由器 SSH,也不要开启路由器的远程控制。毕竟路由器是家庭网络大门,被黑了就不好玩了。

本文其实是想说 HA 的 command_line 组件很有用。把获取温度的脚本放在路由器,用 crontab 跑,提供一个 http 服务出来,HA 用 rest 组件去获取数据,也可以达到同样的目的,安全性也更好一些。
回复

使用道具 举报

75

主题

1976

帖子

8179

积分

元老级技术达人

积分
8179
金钱
6153
HASS币
430

活跃会员教程狂人

发表于 2019-4-17 16:20:36 | 显示全部楼层
大佬看看M大当初做的插件,能不能修改一下适应一下新版本(0.90以上),多谢。

帖子地址:

https://bbs.hassbian.com/thread-3697-1-1.html


所有过往,皆为序章。
回复

使用道具 举报

2

主题

17

帖子

130

积分

论坛技术达人

积分
130
金钱
108
HASS币
20
 楼主| 发表于 2019-4-17 17:21:25 | 显示全部楼层
咸味土豆 发表于 2019-4-17 16:20
大佬看看M大当初做的插件,能不能修改一下适应一下新版本(0.90以上),多谢。

帖子地址:

现在用不了吗?变动不会太大,改一下应该很容易。我的 HA 是 0.91.1,我晚上看下。
回复

使用道具 举报

2

主题

17

帖子

130

积分

论坛技术达人

积分
130
金钱
108
HASS币
20
 楼主| 发表于 2019-4-17 21:25:40 | 显示全部楼层
咸味土豆 发表于 2019-4-17 16:20
大佬看看M大当初做的插件,能不能修改一下适应一下新版本(0.90以上),多谢。

帖子地址:

批注 2019-04-17 211826.jpg

按照新版规范稍微调整了下,名字我先改成了 asuswrt2,package 里配置 platform 同步改成 asuswrt2,其它都不用动,我这里可以用。

如果温度取不到,代码里的命令要改下,例如我的路由器网卡是 eth5 和 eth6,我不确定是不是所有人都这样,请自行修改:

_CMD_CPUTEMP = "cat /proc/dmu/temperature |sed -e 's/[^0-9]//g'"
_CMD_24GTEMP = "wl -i eth1 phy_tempsense |awk '{print $1 / 2 + 20}'"
_CMD_5GTEMP = "wl -i eth2 phy_tempsense |awk '{print $1 / 2 + 20}'"
_CMD_24GTXPWR = 'wl -i eth1 txpwr_target_max'
_CMD_5GTXPWR = 'wl -i eth2 txpwr_target_max'


下载解压后的目录放在 your_config/cust_components/ 目录下,版权归原作者所有。 asuswrt2.zip (13.42 KB, 下载次数: 206)



评分

参与人数 1金钱 +10 收起 理由
咸味土豆 + 10 大神666!

查看全部评分

回复

使用道具 举报

2

主题

160

帖子

2586

积分

金牌会员

Rank: 6Rank: 6

积分
2586
金钱
2426
HASS币
0
发表于 2019-4-17 22:25:00 | 显示全部楼层
qgy18 发表于 2019-4-17 21:25
按照新版规范稍微调整了下,名字我先改成了 asuswrt2,package 里配置 platform 同步改成 asuswrt2,其 ...

请问一下,密匙路径是不是填  .ssh/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 10:25 , Processed in 0.060916 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表