How mariohuang233/hmlcrawl works
这是家庭用电监控全栈应用:采集电表及米家设备日用电数据,存储后由 API 汇总为趋势、充值记录、设备能耗和助手答案,再由看板呈现;低余额与周期报告另有通知流程。保留了 README 明确列出的采集、问答、报告等能力。核心路由、启动与界面有源码摘录;部分服务实现未抽样,其细节连线仅依据 README 明示的职责,未推断服务间调用。
Main entry points: routes.js API 路由 · App.tsx React 看板 · server.js 服务启动与调度 · xiaomiEnergySync.js 米家能耗同步
Components 23
持久化状态
分析与通知
看板体验
- React 看板
frontend/src/App.tsx - 用电助手界面
frontend/src/components/ElectricityAssistant.tsx - 趋势与概览组件
frontend/src/components/Overview.tsx - 设备能耗组件
frontend/src/components/DeviceEnergy.tsx - 前端 API 客户端
frontend/src/utils/api.ts
Other components
- 家庭用户
- 本地/移动爬虫
- 米家云端
- 通知渠道
Connections 26
- 家庭用户 → React 看板: 查看与提问
- React 看板 → 前端 API 客户端: 请求数据
- 前端 API 客户端 → API 路由: 调用 API
- API 路由 → 仪表盘快照: 生成快照
- 仪表盘快照 → 电表读数: 读取汇总
- API 路由 → 电表读数: 查询与写入
- React 看板 → 趋势与概览组件: 展示趋势
- React 看板 → 设备能耗组件: 展示能耗
- React 看板 → 用电助手界面: 打开助手
- 用电助手界面 → 前端 API 客户端: 提交问题
- API 路由 → 问答与用电分析: 分类并回答
- 问答与用电分析 → 电表读数: 读取用电数据
- 本地/移动爬虫 → API 路由: 上报读数
- 服务启动与调度 → 电表采集器: 启动采集
- 服务启动与调度 → 米家能耗同步: 启动同步
- 米家能耗同步 → 米家云端: 读取日用电
- 米家能耗同步 → 设备能耗读数: 保存读数
- API 路由 → 设备能耗分析: 查询设备分析
- 设备能耗分析 → 设备能耗读数: 读取能耗
- API 路由 → 低余额告警: 处理低余额
- 低余额告警 → 告警状态: 读写冷却状态
- 低余额告警 → 通知渠道: 发送告警
- 服务启动与调度 → 周期报告调度: 启动报告任务
- 周期报告调度 → 报告投递: 投递周期报告
- 报告投递 → 投递记录: 锁定与记录
- 报告投递 → 通知渠道: 发送报告