APC AP7921 接入Home Assistant(SNMP方式)
之前在小黄鱼淘入了一个APC的PDU,型号为AP7921,查看文档发现是支持每个插口单独控制开关的,于是想将这PDU接入HA控制。
这个PDU是支持 SNMP V1 和 V3 协议的,SNMP协议介绍如下:
SNMP(简单网络管理协议)是一个用于在IP网络中监控和管理设备(如路由器、交换机、服务器和打印机)的标准协议 。它允许网络管理员通过中心化的管理工作站收集设备状态、跟踪网络性能、响应故障,并实现自动化管理。SNMP包含管理器、代理和管理信息库(MIB)等组件,通过查询和轮询机制与代理交换数据,并支持三种版本:SNMPv1、SNMPv2c和更安全的SNMPv3。
SNMP中,每个可管理的设备信息都有一个唯一标识,称为 OID(对象标识符) 。OID 就像设备内部信息的“地址”,用于标识 CPU 使用率、内存状态、端口流量等参数。例如,OID 1.3.6.1.2.1.1.5.0 就表示设备的系统名称。网络管理系统通过 OID 访问设备的管理信息库(MIB),实现对设备状态的监控、故障告警和自动化管理。OID 的结构呈层次化,以点分十进制表示,每一层代表不同类别的管理对象。
主要区别是V3新增了用户认证的功能,但是我们家用局域网使用其实用V1就足够了。
开启SNMP V1 首先第一步就是先能够访问到PDU的Web管理页面,参考我之前写的这篇博文 。
进入Web后,在Administration - Network - SNMPv1 - access 里,勾选 Enable SNMPv1 access ,点击Apply 。
转到同级的access control 下,保证权限如图所示:
即 public的权限为Read,private权限为Write + ;
**(可选)**然后,点击private,进入设置页面,将NMS IP/Host Name改为运行Home Assistant设备的IP
HA接入 Home Assistant 提供了 SNMP 设备的接入组件,文档在:https://www.home-assistant.io/integrations/snmp
这个组件只能通过配置文件configuration.yaml 手动接入,所以得先想办法访问到HA的配置文件。
一般来说部署HA容器时候有将config文件夹映射到宿主机里,这个每个人映射的位置都不一样了,我的是/opt/homeassistant/config/configuration.yaml 。
在configuration.yaml 后面追加下面内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 switch: - platform: snmp name: "APC Outlet 1" host: 192.168 .123 .50 community: private version: "1" baseoid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .1 command_oid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .1 payload_on: 1 payload_off: 2 command_payload_on: 1 command_payload_off: 2 - platform: snmp name: "APC Outlet 2" host: 192.168 .123 .50 community: private version: "1" baseoid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .2 command_oid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .2 payload_on: 1 payload_off: 2 command_payload_on: 1 command_payload_off: 2 - platform: snmp name: "APC Outlet 3" host: 192.168 .123 .50 community: private version: "1" baseoid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .3 command_oid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .3 payload_on: 1 payload_off: 2 command_payload_on: 1 command_payload_off: 2 - platform: snmp name: "APC Outlet 4" host: 192.168 .123 .50 community: private version: "1" baseoid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .4 command_oid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .4 payload_on: 1 payload_off: 2 command_payload_on: 1 command_payload_off: 2 - platform: snmp name: "APC Outlet 5" host: 192.168 .123 .50 community: private version: "1" baseoid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .5 command_oid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .5 payload_on: 1 payload_off: 2 command_payload_on: 1 command_payload_off: 2 - platform: snmp name: "APC Outlet 6" host: 192.168 .123 .50 community: private version: "1" baseoid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .6 command_oid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .6 payload_on: 1 payload_off: 2 command_payload_on: 1 command_payload_off: 2 - platform: snmp name: "APC Outlet 7" host: 192.168 .123 .50 community: private version: "1" baseoid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .7 command_oid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .7 payload_on: 1 payload_off: 2 command_payload_on: 1 command_payload_off: 2 - platform: snmp name: "APC Outlet 8" host: 192.168 .123 .50 community: private version: "1" baseoid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .8 command_oid: 1.3 .6 .1 .4 .1 .318 .1 .1 .4 .4 .2 .1 .3 .8 payload_on: 1 payload_off: 2 command_payload_on: 1 command_payload_off: 2
验证重启 进入HA的Web页面,侧边栏 - 开发者工具 - 配置检查与重启 - 检查配置,检查配置无误后,点击 重新启动。
重启后来到,设置 - 设备与服务 - SNMP,应该就可以看到8个开关了。
结算画面