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, 局域网扫描, 插件系统, 物联网, 网络调试, 自动化, 设备发现, 逆向工具