skydiveTom/home-assistant-lan-scanner
GitHub: skydiveTom/home-assistant-lan-scanner
一款 Home Assistant 自定义集成,通过 ARP 扫描发现局域网设备并识别 RTSP 摄像头,支持基于 MAC 地址的持久命名与设备追踪。
Stars: 0 | Forks: 0
# LAN Scanner — Home Assistant 集成
这是为 Home Assistant 开发的自定义集成,它可以扫描您的本地网络,发现设备(IP、MAC、主机名、供应商),检测仅开放 554 端口 (RTSP) 的 WiFi 摄像头,并允许您通过 MAC 地址分配持久的友好名称。
## 功能
- **ARP 网络扫描** — 发现您局域网内的所有活动设备
- **设备详情** — IP、MAC、主机名、供应商(OUI 查询)
- **RTSP 摄像头检测** — 识别仅开放 554 端口的摄像头
- **基于 MAC 的命名** — 分配自定义名称,即使在 IP 变更后依然保持有效
- **设备追踪器** — 可选的单设备状态追踪
- **汇总传感器** — 显示设备总数,并在属性中提供完整的设备列表
- **波兰语界面** — 包含完整的波兰语翻译
## 要求
- Home Assistant OS(推荐)或基于 Linux 的 Home Assistant Container
- 具有 ARP 访问权限的网络接口(需要 `NET_RAW` 权限 — HA OS 默认提供)
- 位于单个子网中的本地网络(VLAN 隔离可能会导致无法发现设备)
## 安装
### 通过 HACS 安装(推荐)
1. 在 HACS 中将此仓库添加为[自定义仓库](https://hacs.xyz/docs/faq/custom_repositories/)
2. 安装 **LAN Scanner**
3. 重启 Home Assistant
4. 前往 **设置 → 设备与服务 → 添加集成 → LAN Scanner**
### 手动安装
将 `custom_components/lan_scanner` 文件夹复制到您的 Home Assistant 实例中的 `/config/custom_components/lan_scanner` 路径下,然后重启。
## 配置
在首次设置时,您需要配置以下内容:
| 选项 | 描述 | 默认值 |
|---|---|---|
| 本地 IP | 发起扫描的 HA 网络接口的 IP | 自动检测 |
| 子网 | CIDR 表示法的网络范围 | 自动 `/24` |
| 扫描间隔 | 两次扫描之间的间隔秒数(最小为 300) | 900(15 分钟) |
| 扫描端口 | 启用端口扫描以进行 RTSP 检测 | 启用 |
| 设备追踪器 | 为设备创建状态追踪器 | 启用 |
### 分配设备名称
首次扫描完成后:
1. 前往 **设置 → 设备与服务 → LAN Scanner → 配置**
2. 选择 **设备名称 (MAC)**
3. 添加 MAC 地址和友好名称
或者使用该服务:
```
service: lan_scanner.set_device_name
data:
mac: "aa:bb:cc:dd:ee:ff"
name: "Garden Camera"
```
### 手动扫描
```
service: lan_scanner.scan
```
## 实体
每个被发现的设备(基于 MAC)都会创建以下实体:
| 实体 | 类型 | 描述 |
|---|---|---|
| IP 地址 | sensor | 当前 IP(在 DHCP 变更时更新) |
| 最后发现时间 | sensor | 最后一次扫描检测到的时间戳 |
| 供应商 | sensor | 来自 OUI 数据库的制造商信息 |
| RTSP 摄像头 | binary_sensor | 如果仅开放 554 端口则为 `on` |
| 状态 | device_tracker | `home` / `not_home`(如果已启用) |
名为 **LAN Scanner** 的汇总传感器会显示设备总数,并包含一个带有完整设备列表的 `devices` 属性。
## RTSP 摄像头检测
该集成会扫描以下常用端口:
`21, 22, 23, 53, 80, 135, 139, 443, 445, 554, 1883, 8000, 8080, 8443, 8554`
分类规则:
- **仅 RTSP 摄像头** — 554 端口是唯一开放的端口
- **具有 RTSP** — 554 端口与其他端口同时开放(例如同时开放了 80 端口的 Web UI)
## 限制
- 处于深度睡眠状态的设备可能无法响应 ARP 探测
- VLAN / AP 客户端隔离会阻止跨网段扫描
- 端口扫描会产生网络流量 — 对于 `/24` 网络,建议将扫描间隔设置为 ≥ 15 分钟
- 在 80 端口上具有 Web 界面的摄像头不会被归类为“仅 RTSP”
- 没有 MAC 地址的设备无法被持久识别
## 开发
```
home-assistant-lan-scanner/
└── custom_components/
└── lan_scanner/
```
## License
MIT
标签:Home Assistant, RTSP, 局域网扫描, 插件系统, 物联网, 网络调试, 自动化, 设备发现, 逆向工具