ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

华硕路由器接入HomeAssistant:AsusRouter插件配置与自动化实战

华硕路由器接入HomeAssistant:AsusRouter插件配置与自动化实战 1. 把路由器交给HomeAssistant这件事到底解决什么问题做智能家居的人折腾到一定程度都会遇到同一个坎设备越来越多今天这个掉线、明天那个卡顿但问题到底出在哪儿是WiFi信号不行还是路由器负载过高这个时候才意识到自己缺的根本不是更多温湿度传感器而是对整个网络状态的可视化掌控。华硕路由器在国内玩家手里保有量一直不低RT系列、灵耀系列的覆盖能力和稳定性都算上乘但原厂固件的App管理界面说句实话信息量是够的可联动性几乎为零。它没法把设备在线状态、流量数据、CPU温度这些东西交给HomeAssistant去统一调度而这恰恰是智能家居平台最擅长的活。把华硕路由器接入HomeAssistant之后体验上的变化是挺直观的。你可以在HA的仪表盘上直接看到当前连接了哪些设备、每台设备的实时上下行速率、路由器CPU和内存占用、甚至某个设备是走2.4G还是5G频段。更进一步这些数据可以变成自动化触发条件比如家里最后一个人手机断开WiFi就自动执行离家模式某个设备流量异常就触发告警通知路由器温度过高自动提醒你检查散热。简单说路由器从一个“设置完就不管”的网络设备变成了智能家居体系里最底层也是最重要的数据源。这篇文章适合谁看如果你手里有一台华硕路由器并且已经在用HomeAssistant那这篇就是给你准备的。完全小白也没关系我会从最基础的准备工作讲起把插件选型、参数配置、常见坑全部拆开说清楚你只要照着做就能把路由器真正“接进”HA然后再把网络状态纳入自动化场景。整套流程下来你会发现自己对家里的网络和设备的掌控力上了一个台阶。2. 接入方案的选型对比为什么我最终选了AsusRouter插件华硕路由器接入HomeAssistant的路线并不是只有一条不同方案各有取舍。我在社群和论坛里见过不少人一上来就问“哪个插件最好用”但实际上脱离自己的需求谈方案都是耍流氓。至少有三条主流路线一是HA原生集成里自带的ASUSWRT集成二是HACS里第三方维护的AsusRouter插件三是通过SNMP协议去读取路由器信息。三者各有人群但选型逻辑要基于你的最终目标。2.1 原生ASUSWRT集成轻量但功能吃紧HomeAssistant原生集成列表里有一个叫ASUSWRT的集成很多新手会先试它因为配置入口就摆在“添加集成”的搜索框里不需要额外装插件。它的原理是走SSH登录路由器然后定期轮询获取状态。优点是配置简单不需要维护第三方仓库升级HA时兼容性风险小。但说实话功能层面比较基础主要能拿到的实体集中在设备跟踪device_tracker、少量传感器比如CPU负载、内存和开关比如LED灯控制再想要更细的流量统计、国家/地区代码、固件版本、在线时间等等就比较吃力了。另外一个隐患是原生集成对华硕路由器不同固件版本的适配参差不齐。我自己在旧款RT-AC86U上用官方最新固件测试过有些传感器会时好时坏重启路由器后状态更新偶尔会停摆。所以如果你只是想“能看到路由器在线就行”原生集成够用但如果你希望拿到更细腻的数据来搭自动化它就显得捉襟见肘。2.2 HACS版AsusRouter插件功能全面的社区主力这就是我最终的选择。AsusRouter插件是HACS商店里一个非常活跃的第三方项目它支持华硕官方固件、梅林固件以及部分基于梅林的分支比如基于梅林的某些改版固件。它的数据采集方式依然是走SSH但内部对实体建模的覆盖范围远比原生集成广从基础的设备在线状态、CPU和内存占用率到每个设备的上下行速率、各频段的客户端列表、WiFi信道的负载情况、甚至访客网络状态都能暴露成HA实体。更重要的是AsusRouter插件不是只做“读取”它还提供了大量的可写开关和修改能力比如远程控制WiFi的开启和关闭、重启路由器、修改LED灯效、控制特定设备的上网权限等。这意味着你可以在HA的自动化里直接操作路由器行为而不只是观察指标。这一点对于做智能场景来说价值很大。2.3 SNMP方案读取网络层数据的备选路线SNMP简单网络管理协议在华硕路由器上默认是关闭的需要手动去管理页面开启而且不同固件版本对SNMP支持的MIB库并不一致。这个方案更适合网络设备运维背景的玩家适合拿来做流量监控或者对接Grafana面板但对普通智能家居用户来说学习成本偏大配置维护也比较麻烦。我周围真正用SNMP接华硕设备的大多是顺便在管整个内网的其他网管型交换机、AP路由器的监控只是顺带而不是主要诉求。2.4 选型结论按需匹配别盲目跟风把这几条路线摆在一起结论就很清楚了。核心诉求如果是“数据可视化加自动化触发”AsusRouter插件是综合体验最好的选择它能提供的实体数量、可操作性和社区更新频率都遥遥领先。原生ASUSWRT集成可以作为备用方案在不想装HACS的极简环境里兜底。至于SNMP除非你有网络运维层面的需求否则不必为了接一个路由器去额外学习一套协议体系。我在多个不同型号的华硕路由器上实测过AsusRouter插件在RT-AC86U、RT-AX86U以及灵耀X D6上都工作正常实体生成完整读取响应速度也令人满意。接下来我就把从零开始的完整接入过程和配置要点一步一步拆给大家。3. 接入前置条件固件版本、HA环境与账号权限很多人在接入过程中卡住其实往往不是插件本身的问题而是前置环境没准备好。华硕路由器的固件版本、HomeAssistant的安装方式、甚至SSH登录用的账号权限都会直接影响插件能否稳定工作。这一节把准备工作一次性说清楚省得后面排错时一头雾水。3.1 华硕路由器的固件选择与基础设置AsusRouter插件对固件的要求不算苛刻华硕官方最新版固件和梅林固件都能用。但有一个前提必须先确认路由器的SSH服务必须开启。官方固件在“系统管理-系统设置”里可以把SSH设置为开启端口建议保持默认的22也可以改成自定义端口前提是接入配置里要一并填对。如果你用的是梅林软固件SSH功能默认是关闭的同样需要在管理页面开启并且建议同时启用“允许LAN访问”就好没必要把SSH暴露到广域网。另外一个容易忽略的点是路由器的管理界面登录账号密码必须是具有管理权限的账号。有些玩家喜欢单独建一个限权用户来操作路由器但从插件工作的角度来说它的很多指令需要读取系统级信息甚至触发部分写操作限权账号会导致部分实体获取失败或命令执行报错。我个人的建议是直接用管理员账号因为路由器是内网设备这个账号只暴露在局域网内的风险是可控的。如果你实在担心安全问题至少保证这个账号不是初始密码密码强度拉满后续不要把它用在任何外网服务上。固件版本方面尽量保证路由器固件是相对较新的稳定版。老固件可能出现某些OID节点读取异常导致个别传感器一直“不可用”。比如我遇到过一台长期没升级固件的RT-AX86U插件的“国家/地区代码”传感器直接读取失败升级到最新官方固件后问题消失。所以接入前先去华硕官网把你型号对应的最新稳定固件升级一遍花不了几分钟但能避免很多莫名其妙的坑。3.2 HomeAssistant环境要求HACS是前提AsusRouter插件是通过HACS分发的所以你的HA环境必须预先安装好HACS。如果还没装HACS第一步先把HACS搞定。它的本质是一个自定义插件商店AsusRouter在里面以“前端卡片集成插件”的方式提供安装过程全图形化相对友好。HACS的安装方法在不同HA安装方式下略有差别。比如HAOS或Supervised环境一般用命令行工具进入HA容器执行一条官方安装脚本即可Docker Compose部署的话需要在挂载配置目录下把HACS的自定义仓库文件放进去而Windows装VM之类的改版环境步骤会稍有不同。如果你已经装好HACS直接跳到下一步就行。如果你还没装我建议先查阅当前HA版本对应的HACS安装文档不要用太老的教程细节差异会影响成功率。HA的版本虽然说不上严格限定但为了插件兼容性我仍然建议保持HA核心版本在近期更新过。AsusRouter插件的更新频率不算低长期不升级HA反而可能遇到实体注册机制变化导致的兼容问题。3.3 SSH连接验证进入路由器命令行确认能通在正式配置插件前强烈建议先在电脑上通过SSH手动登录一次路由器确认SSH服务正常、账号密码正确、能够执行基本命令。这一步能提前暴露大量问题比如SSH端口没通、密码里包含特殊字符被终端转义等。以Windows为例可以用PowerShell自带的ssh命令打开终端输入ssh 路由器IP或域名 -p 22 -l 管理员账号第一次连接会提示确认主机指纹输入yes回车然后输入密码。如果能看到路由器命令行界面并执行类似uptime的命令说明SSH链路就绪。Mac和Linux用户直接用终端执行同样的命令即可。这里有一个实际踩过的坑有些路由器的dropbearSSH服务对RSA密钥的支持比较老如果你在HA端使用的是密钥认证偶尔会出现“key exchange failed”之类的报错。所以我建议初次接入时直接使用密码认证跑通了再考虑是否优化为密钥认证。密码认证看起来“低级”但胜在稳妥排查问题也更容易。3.4 确认路由器型号被正确识别AsusRouter插件在配置完成后会自动探测路由器的型号和固件类型并在配置流中显示。但如果你用的是非华硕官方固件比如某些基于梅林的改版插件对固件类型的识别偶尔会不准。遇到这种情况在插件的配置选项里可以手动指定固件类型具体选项包括merlin、asuswrt、asuswrt-rt等。选错固件类型会导致部分命令执行找不到对应路径传感器数量大幅缩水。我自己的经验是刷了梅林就用merlin官方原版固件就用asuswrt双清过的官方固件在某些老型号上反而要用asuswrt-rt才能完整获取WiFi客户端列表。4. 手把手实操AsusRouter插件的完整接入流程准备好了环境接下来就是正式接入。整个流程分成三大段安装插件、创建集成、核对实体。只要按顺序执行一般十几分钟就能搞定。4.1 通过HACS安装AsusRouter插件打开HA的Web界面进入HACS在“集成”标签页点击右下角的“ 浏览并添加仓库”搜索“AsusRouter”。搜索结果中会出现由Vaskivskyi维护的AsusRouter项目点击后选择“下载”。如果搜索不到极有可能是HACS的仓库列表没有更新先去HACS设置里强制刷新一次再试。下载完成后HA会提示重启以加载新集成。这里需要提醒一下重启不是说你就直接点一下“重启”按钮等它跳回来。很多人在这一步遇到集成列表里找不到AsusRouter的情况其实就是因为重启的方式不对。HAOS环境我建议进入“开发者工具”页面重新启动“Home Assistant Core”服务而不是重启整个虚拟机或宿主机。Docker环境重启Container即可。重启完成后再去“设置-设备与服务”里点“添加集成”搜索“AsusRouter”就能看到它了。4.2 创建集成配置过程中的参数详解点击AsusRouter集成后会弹出一系列配置选项这就是插件的核心配置流每一项都值得仔细填。第一项是路由器的IP地址Host这里填路由器的内网地址比如192.168.50.1。如果LAN侧的IP地址做过修改以你实际访问路由器管理页面的地址为准。注意这里不需要带http://前缀直接填IP或域名都行。第二项是用户名和密码对应前面准备好的管理员账号。密码如果包含特殊字符比如、!、#插件内部有做转义处理理论上不会有问题。但为了安全起见如果你在密码里用了比较罕见的字符建议在配置完成后观察一下传感器是否全部正常。第三项是SSH端口默认22如果你改过就填对应端口。然后是协议选择插件支持SSH和Telnet两种方式但我强烈建议只用SSH。Telnet是明文传输密码在局域网内裸奔完全没有必要为了省那点资源去用Telnet。接下来是固件类型和启用功能的勾选。固件类型按前文说的选功能项则直接影响实体数量。插件会把功能分成若干大类包括设备跟踪device_tracker、传感器sensor、开关switch、二进制传感器binary_sensor、更新实体update等。我的建议是初次配置时全部勾选等跑起来之后再去HA里隐藏没用的实体因为在配置阶段少勾了功能后期想补上就需要改配置重启集成反而多花时间。配置完成后HA会发起首次连接。连接成功后一个名为asusrouter的设备会在设备列表中自动出现同时会注册一大批实体。如果配置过程中提示连接失败先别急着重试检查一下SSH端口、账号密码、路由器IP这三个最基础的信息是否准确。4.3 核对实体确保核心数据完整接收配置成功后进入“设置-设备与服务”找到AsusRouter设备点开实体列表重点核对几类核心数据是否正常更新CPU使用率sensor: asusrouter_cpu_usage和内存使用率sensor: asusrouter_memory_usage这两个是判断路由器健康度的基础指标。设备跟踪实体device_tracker所有当前连到路由器的设备都会有对应的tracker实体实体的state是home表示在线not_home表示离线。上下行速率传感器sensor: asusrouter_download_speed / asusrouter_upload_speed这里的速率是路由器WAN口整体速率数值单位一般是Mbit/s插件默认每秒更新一次。如果这些实体都能正常更新说明整个链路已经打通。之后就可以根据你的需要去HA的仪表盘里添加卡片把路由器数据可视化比如用“统计图”卡片查看一天的流量曲线用“实体”卡片查看关键指标。4.4 在仪表盘上做一张“路由器总览”卡片接入完成不摆上仪表盘总觉得缺了点什么。我个人习惯的做法是新建一个“网络状态”的分页添加一个grid堆叠卡片把核心指标放上去。比如一张卡片放CPU和内存占用率的“传感器”卡片一张放设备在线数的“统计”卡片再用“图标”卡片放网络速率。这些卡片不是必须的但对于日常体检家里的网络非常直观。有了这张总览WiFi出问题的时候你不用再打开路由器的管理页去查直接看一眼HA的仪表盘就能定位是大面积掉线还是某个设备的问题。5. 进阶玩法把路由器数据变成自动化场景接入只是开始真正有意思的是把数据用起来。AsusRouter插件提供了丰富的实体配合HA的自动化引擎可以做出很多以前做不到的场景。这一节我挑几个实战案例拆解。5.1 用设备跟踪实现“离家模式”自动触发很多人做离家模式是用手机上的GPS地理围栏但GPS在室内定位不准、穿透差经常出现人还在客厅就触发离家模式的情况。而路由器设备跟踪的触发条件很清晰当某台手机的WiFi连接断开时说明人大概率已经走出了家里WiFi覆盖范围。实际操作的时候自动化触发条件可以设置为设备跟踪实体从home变为not_home。但这里有一个细节需要注意华硕路由器的设备在线检测依赖WiFi连接和ARP探测手机熄屏待机时WiFi连接不会立即断开而是会有几十秒到几分钟的延迟。所以建议在自动化里加上一个延时确认比如状态改变后等待5分钟再执行离家模式防止人在电梯里刚断WiFi又很快回来导致场景误触发。一个稳定的离家自动化配置大致是这样alias: 离家模式-按路由器设备跟踪触发 trigger: - platform: state entity_id: device_tracker.iphone to: not_home condition: - condition: state entity_id: device_tracker.wife_phone state: not_home action: - delay: 00:05:00 - service: script.turn_on entity_id: script.away_mode mode: restart注意我在条件里加了第二个人的手机也离线才执行这样避免一个人出门时家里明明还有人就切了离家模式。如果你一个人住可以去掉这个条件。5.2 用MQTT把华硕路由器数据接入“flash监控平台”现在很多智能家居玩家会搭“基于MQTT和flash的智能家居监控平台”思路是让各个设备把状态通过MQTT协议汇总到统一的Web端或轻量级可视化面板里实时展示。华硕路由器的数据天然适合接入这个体系因为AsusRouter插件已经把所有状态实体化到了HA而HA可以通过MQTT集成把这些实体发布到mqtt broker再由flash监控平台订阅展示。具体实现有两种比较常见的方式。方式一是用HA的mqtt_statestream集成。它能把指定的实体转换成MQTT topic发布比如在configuration.yaml里配置mqtt_statestream: base_topic: homeassistant/state publish_attributes: true publish_timestamps: true include: entities: - sensor.asusrouter_cpu_usage - sensor.asusrouter_memory_usage - sensor.asusrouter_download_speed - sensor.asusrouter_upload_speed这样每个实体都会按homeassistant/state/sensor/asusrouter_cpu_usage/state这样的topic发布实时数据。flash监控平台只要订阅这个前缀的topic就能把路由器状态画到自己的监控面板上。方式二是用Node-RED作为中转通过MQTT节点读取HA实体再转发到自定义topic。这种方式更灵活适合要做复杂数据处理和跨平台分发的场景。我自己在项目里是Node-RED中把AsusRouter传感器的值先做一层单位换算再发给EMQX broker最后flash看板接收渲染。无论哪种方式最终你在统一监控平台上看到的不只是某几个传感器而是把路由器的网络状态与整个家里其他设备的数据放在同一个时间轴上做关联分析。比如某时段网速突然下降同时你发现智能门锁的离线告警也发生了那就很可能是整个网络层的波动引起的连锁问题而不是设备本身故障。5.3 基于路由器温度与负载的“设备健康告警”路由器长期高负载运行会导致WiFi稳定性下降尤其是夏天散热不好的环境甚至直接死机重启。AsusRouter插件能读取路由器CPU、2.4G和5G无线模块的温度这就是做健康告警的最佳素材。我在仪表盘上建了一个自动化当CPU温度超过80摄氏度且持续时间超过10分钟时发送一条带温度值的通知到手机当CPU温度回落到70度以下时再发送一条恢复通知。触发条件用模板来写避免固定阈值的一刀切trigger: - platform: numeric_state entity_id: sensor.asusrouter_cpu_temperature above: 80 for: 00:10:00 action: - service: notify.mobile_app_phone data: title: 路由器高温警告 message: CPU温度已超过80度当前CPU温度{{ states(sensor.asusrouter_cpu_temperature) }}℃这个自动化在夏天尤其实用它帮助我提前发现了一次路由器摆放散热不良的问题及时把路由器挪到通风处避免了大面积掉线。5.4 用Switch实体实现“WiFi一键控制”AsusRouter插件会把一些可写功能暴露成switch实体比如switch.asusrouter_wifi_2_4g、switch.asusrouter_wifi_5g。这两个开关可以直接在HA里控制路由器的WiFi频段开关。看起来简单但用对场景很香。比如我设置的“睡眠模式”脚本晚上11点之后关闭2.4G和5G WiFi的SSID广播早上6点再重新开启。以前要去路由器管理页面点几下现在直接在HA里做一个脚本用语音助手也能触发。再比如家里小朋友该写作业了你可以在自动化里临时关闭某个特定设备的网络访问权如果插件暴露了对应的switch实体时间到了再恢复。这里顺便提一个心得用switch控制WiFi频段开关时打开或关闭通常需要几秒钟生效所以自动化如果紧接着依赖WiFi状态建议加一个2~3秒的延时不要连续执行多个开关操作。6. 实际会遇到的坎常见问题与排查经验速查接入过程并非一帆风順至少我在多个设备上折腾下来确实积累了一些排错经验。把这些问题提前列出来你碰到的时候就不用抓瞎。6.1 SSH连接失败最常栽的三个原因连接失败的原因大多集中在这几方面一是SSH端口填错很多人改了路由器管理页面的端口但插件配置里填的还是默认22二是账号密码包含空格或某些shell特殊字符插件底层走的是SSH命令执行密码解析异常会导致认证失败三是路由器开启了SSH阻止规则比如只允许特定IP访问SSH服务HA所在的机器IP没有被加白名单。排查时最快的办法就是先回退到手动SSH登录在电脑终端用同一组账号密码连接路由器如果手动能连上、插件连不上那问题大概率在插件的配置项仔细检查端口和协议类型如果手动连不上那就是路由器侧的问题去管理页面检查SSH服务是否开启、是否有限制访问规则。6.2 设备跟踪不准确手机在家却显示离线这是最多人问的问题之一。手机在连着WiFi正常使用的情况下设备跟踪实体偶尔会跳成not_home过几分钟又恢复home。原因通常是路由器在ARP表里长时间没维护到这台设备的记录或者手机开启了WiFi省电模式在锁屏状态下短暂断开了与路由器的连接。优化方式有两个第一在路由器设置里把“侦测互联网连接”等相关选项保持开启状态第二在HA的known_devices.yaml里把该设备的track属性设为true并根据需要调整consider_home的时长。如果你发现某台设备延迟特别严重可以把consider_home从默认的15秒调整到60秒左右可以有效减少误报离线的问题。6.3 传感器更新慢默认刷新频率不够用AsusRouter插件的传感器默认有一个扫描间隔通常在10到30秒之间。如果你要做实时流量监控比如实时网速曲线这个刷新的粒度可能不够细腻。插件的配置里提供了scan_interval参数可以按实体类型或全部实体调整。我一般会把刷新的时间调短比如下载速率传感器每5秒刷新一次。需要注意不要调到低于3秒否则会对路由器CPU产生额外负担得不偿失。如果你发现调整后传感器并不准时更新检查一下HA是否开着省电模式以及路由器是否启用了“网络工具-分析与监控”等影响性能的功能。6.4 插件更新后实体丢失或状态异常HACS插件在更新版本后偶尔会因为实体ID变化或者注册方式调整导致HA里出现“实体不可用”的情况。这时候最简单的方法不是去手动改ID而是进入“设置-设备与服务”找到AsusRouter设备点击“重新加载”按钮让集成重新拉取实体列表。如果重新加载仍不能解决就需要删除集成重新添加。注意不要删除设备因为设备关联的历史记录可能还有用。重加集成之后之前配置的实体ID一般不会变但保险起见重加之前可以先把自动化和仪表盘里用到的关键实体ID复制保存一份万一变化了可以快速替换。6.5 其他值得留意的“隐藏坑”双WAN模式如果你开了双WAN负载均衡AnusRouter插件的WAN口速率数据可能只显示主线路的数据副线路不会单独暴露成传感器至少目前版本是这样。IPv6状态部分实体比如IPv6地址的追踪依赖路由器的IPv6模块信息华硕固件里如果关闭了IPv6某些实体就会长期不可用不影响其他数据但要留意。访客网络插件能读取访客网络的在线设备信息但访客网络里的设备不会出现在主网络的device_tracker列表里做自动化时要注意区分。这些坑并不是每个都会碰到但提前知道处理思路会省去大量排查时间。7. 最后分享一点我的使用心得华硕路由器接入HomeAssistant这件事真正做完了以后你会发觉意义不在于多了一堆传感器图表而是让路由器从一个“哑设备”变成了整个智能家居场景的感知节点。设备在线状态、网络负载、温度变化这些数据不再是孤立数字而是可以和你的离家回家、安防告警、网络优化这些真实诉求直接挂钩。从我个人的实际体验来说最推荐的入口还是HACS的AsusRouter插件它的功能覆盖面和社区活跃度决定了这是当下性价比最高的一条路。但也要提醒一句任何插件都会随着HA的更新而变化养成定期看更新日志、备份配置的习惯才是玩智能家居长治久安的基本素养。如果你手里已经有华硕路由器那就别让它在角落里只当一个上传下载的管道了把它接进HA让这个“网络中枢”真正参与到你的智能家居协作体系里来。
返回列表