本帖最后由 involute 于 2022-6-21 20:45 编辑
@囧 老大的帖子梅林路由器CPU和无线芯片温度接入Home Assistant 介绍了如何获取路由器的运行参数
我这里介绍一个更简单的办法获取:
先看能获取哪些信息
其实能获取的信息远不止这些,学会了方法,一通百通。
不是我不想让大家直接看内容,是大部分人看了连个贴都不回,我只能设回帖可见了,抱歉。
下面开始
安装SSH Sensor
SSH Sensor(https://github.com/custom-components/sensor.ssh)是HACS默认插件,如何安装不需多言了,可以在HACS中安装,也可以从github上下载放到你的custom_components目录中。
配置传感器
我以华硕路由器为例,其他路由器可能稍有不同,但大同小异。
sensor:
- platform: ssh
host: 192.168.1.1
name: 'Router 2.4G Temperature' # 2.4G温度
username: !secret router_username #路由器ssh用户名
password: !secret router_password #路由器ssh密码
command: "wl -i eth5 phy_tempsense | cut -d ' ' -f 0" #eth5是我的路由器2.4G网络,可在路由器上用sysinfo查看
value_template: >-
{%- set line = value.split("\r\n") -%}
{{ line[1] }}
unit_of_measurement: "℃"
- platform: ssh
host: 192.168.1.1
name: 'Router 5G Temperature' # 5G温度
username: !secret router_username #路由器ssh用户名
password: !secret router_password #路由器ssh密码
command: "wl -i eth6 phy_tempsense | cut -d ' ' -f 0" #eth5是我的路由器5G网络,可在路由器上用sysinfo查看
value_template: >-
{%- set line = value.split("\r\n") -%}
{{ line[1] }}
unit_of_measurement: "℃"
- platform: ssh
host: 192.168.1.1
name: 'Router CPU Temperature' # CPU温度
username: !secret router_username
password: !secret router_password
command: "cat /sys/class/thermal/thermal_zone0/temp"
value_template: >-
{%- set line = value.split("\r\n") -%}
{{ (float(line[1]) / 1000) | round(1) }}
unit_of_measurement: "℃"
- platform: ssh
host: 192.168.1.1
name: 'Router Used CPU User' # 用户CPU占用
username: !secret router_username
password: !secret router_password
command: "top -n1 | grep CPU: | cut -d ':' -f 2 | cut -d '%' -f 1"
value_template: >-
{%- set line = value.split("\r\n") -%}
{{ float(line[1]) }}
unit_of_measurement: "%"
- platform: ssh
host: 192.168.1.1
name: 'Router Used CPU Sys' # 系统CPU占用
username: !secret router_username
password: !secret router_password
command: "top -n1 | grep CPU: | cut -d 'r' -f 2 | cut -d '%' -f 1"
value_template: >-
{%- set line = value.split("\r\n") -%}
{{ float(line[1]) }}
unit_of_measurement: "%"
- platform: ssh
host: 192.168.1.1
name: 'Router Used CPU NIC' # 网络CPU占用
username: !secret router_username
password: !secret router_password
command: "top -n1 | grep CPU: | cut -d 'c' -f 2 | cut -d '%' -f 1"
value_template: >-
{%- set line = value.split("\r\n") -%}
{{ float(line[1]) }}
unit_of_measurement: "%"
其中的command命令参数取决于你在路由器执行top命令时,CPU行是如何显示信息的
在我的路由器上,CPU行为 “CPU: 0.0% usr 3.1% sys 0.0% nic 96.8% idle 0.0% io 0.0% irq 0.0% sirq”
如果CPU行跟我的不一样,自己又不会写command的参数,可以跟帖贴出你的CPU行,我可以帮你写cut参数
SSH Sensor可以将一切能用SSH返回的信息变成传感器数值,不限于路由器,大家可以自行发掘
另外
|