找回密码
 立即注册

微信扫码登录

搜索
查看: 109550|回复: 548

[新奇玩法] 获取路由器运行参数,哪用那么麻烦

 火... [复制链接]

20

主题

530

回帖

3611

积分

元老级技术达人

积分
3611
金钱
3021
HASS币
210

教程狂人突出贡献

发表于 2021-7-23 01:11:49 | 显示全部楼层 |阅读模式
本帖最后由 involute 于 2022-6-21 20:45 编辑

@囧 老大的帖子梅林路由器CPU和无线芯片温度接入Home Assistant 介绍了如何获取路由器的运行参数

我这里介绍一个更简单的办法获取:

先看能获取哪些信息
router.png

其实能获取的信息远不止这些,学会了方法,一通百通。

不是我不想让大家直接看内容,是大部分人看了连个贴都不回,我只能设回帖可见了,抱歉。

下面开始

安装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返回的信息变成传感器数值,不限于路由器,大家可以自行发掘

另外
游客,如果您要查看本帖隐藏内容请回复




评分

参与人数 4金钱 +54 收起 理由
firewater + 10 感谢楼主分享!
windgo + 16 厉害了word楼主!
my12005 + 8 厉害了word楼主!
+ 20 厉害了word楼主!

查看全部评分

回复

使用道具 举报

20

主题

530

回帖

3611

积分

元老级技术达人

积分
3611
金钱
3021
HASS币
210

教程狂人突出贡献

 楼主| 发表于 2021-7-28 11:28:55 | 显示全部楼层
siri10086 发表于 2021-7-28 09:28
正有这个需求,大佬这2个命令 应该怎么写进去?
sudo /etc/init.d/sxxxs stop
sudo /etc/init.d/sxxxs st ...

你这个是开关的功能了,不是传感器的。

用传感器实现不了,你找找github上有没有ssh switch之类的
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-7-16 20:27 , Processed in 0.125666 second(s), 13 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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