这是一个 TrafficMonitor 插件,可以在 Windows 任务栏实时显示米家/酷控(cuco)智能插座的功率数值,并可选开启功率历史记录功能。

主要功能:
- 📊 实时在任务栏显示功率(W)
- 💾 可选启用功率历史记录(按分钟采样,最多保存7天)
- 📈 鼠标悬停提示:显示10分钟/1小时/24小时最大/最小/平均功率
- ⚙️ 设置对话框:配置设备IP、Token,调整显示格式
- 🔗 支持断线自动重连
- 获取 IP 和 Token → 使用 Xiaomi Cloud Tokens Extractor
- 打开插件目录 → TrafficMonitor 右键 → 选项 → 常规设置 → 下滑找到插件管理 → 打开插件目录
- 获取 DLL → 从 GitHub Release 下载,或从 GitHub Actions 的构建产物中获取
MijiaPower.dll - 放入 DLL → 将
MijiaPower.dll复制到目录内 - 重启 TrafficMonitor → 完全退出后重新启动
- 填写配置 → 在插件选项中输入 IP 和 Token,点击"测试连接"
- 插件会通过
miIO.info获取设备型号,并使用精确型号匹配选择功率属性 - 当前已知兼容型号:
cuco.plug.v3、米家智能插座2 蓝牙网关版(chuangmi.plug.212a01) - 米家智能插座2 蓝牙网关版(
chuangmi.plug.212a01)的功率属性为siid=5, piid=6,原始值除以100后得到瓦特值 - 非精确匹配型号不会套用米家智能插座2 蓝牙网关版(
chuangmi.plug.212a01)的映射,避免误读未知型号的属性
首次使用需要配置设备信息:
- 在 TrafficMonitor 任务栏右键 → 选项,或直接右键插件显示区域 → 选项
- 填写以下内容:
- 设备 IP:米家插座的局域网 IP 地址(如
192.168.1.100) - Token:32位十六进制字符串(获取方法见下方)
- 名称:设备昵称,显示在提示信息中
- 设备 IP:米家插座的局域网 IP 地址(如
- 点击 测试连接 验证配置是否正确
- 点击 确定 保存并生效
最便捷和推荐的方法是使用以下项目,它可以自动从米家云提取所有设备的 Token 和 IP:
项目地址: Xiaomi-cloud-tokens-extractor
使用步骤:
-
下载工具
- 访问 Release 页面
- 下载最新版本(Windows 用户下载
.exe文件)
-
运行提取器
点击双击 .exe 文件运行 或在命令行中: xiaomi_cloud_tokens_extractor.exe -
输入米家账户信息
Username: 你的米家账户(邮箱或手机号) Password: 你的米家密码 Server: China (中国用户选择此项) -
查看结果
- 工具会自动列出所有米家设备
- 复制你的插座设备的 IP 和 Token
设备名称: 客厅插座 Model: cuco.plug.v3 IP: 192.168.1.100 Token: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 -
保存信息
- 在记事本或文档中保存好 IP 和 Token
⚠️ Token 是敏感信息,请妥善保管,不要分享给他人
如果上述方法不可用,也可以尝试:
方法 B - 使用 Python miio 工具
# 安装 python-miio
pip install python-miio
# 提取所有设备的 Token
python -m miio.extract_tokens
# 会显示所有设备的信息方法 C - 使用 MiToolKit
- 项目地址: MiToolKit
- 下载运行后,选择"提取 Token"功能
- 选择要提取的设备
方法 D - 米家 APP 抓包提取
- 使用 Fiddler 或 Charles 代理
- 在米家 APP 中操作设备
- 在代理日志中查找相关请求
- 从 JSON 响应中提取 Token 字段
- 下载 Xiaomi Cloud Tokens Extractor
- 运行
.exe文件 - 输入米家账户(邮箱/手机号)和密码,选择 China 服务器
- 等待提取完成,记录你的插座设备的 IP 和 Token
- 右键 TrafficMonitor 任务栏 → 选项
- 选择 常规设置 → 下滑找到 插件管理
- 点击 打开插件目录
- 将
MijiaPower.dll复制到打开的目录中 - 完全关闭 TrafficMonitor,重新启动
- 重启后,右键 TrafficMonitor → 选项
- 左侧菜单选择 MijiaPowerPlugin
- 填写设备信息:
- 设备 IP: 从第一步获取
- Token: 从第一步获取
- 名称: 自定义设备名称(如"客厅插座")
- 点击 测试连接 验证
- 点击 确定 保存
| 选项 | 说明 |
|---|---|
| 启用功率历史记录 | 开启后按分钟采样,保存7天数据 |
| 显示"功率:"标签 | 任务栏是否显示"功率:"前缀 |
| 显示 W 单位 | 数值后是否显示"W"单位符号 |
| 采集间隔(秒) | 查询设备的时间间隔,建议 3-5 秒 |
| 小数位数 | 显示精度:0=整数,1=一位小数,2=两位小数 |
- ✅ TrafficMonitor 已安装(v1.74 或更高版本)
- ✅ 米家账户可正常登录
- ✅ 智能插座已添加到米家 APP
- ✅ 智能插座与电脑在同一局域网
-
运行
.exe文件 -
输入米家账户信息:
Username: 你的米家账号(邮箱/手机号) Password: 你的米家密码 Server: China -
等待提取完成,找到你的插座设备:
设备: 客厅插座 IP: 192.168.1.100 Token: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 -
用记事本记录下 IP 和 Token
-
找到 TrafficMonitor 目录
- 通常在:
C:\Program Files\TrafficMonitor\ - 或右键 TrafficMonitor 快捷方式 → 打开文件位置
- 通常在:
-
创建 plugins 文件夹(如果不存在)
C:\Program Files\TrafficMonitor\plugins\ -
放入 DLL 文件
- 将
MijiaPower.dll复制到plugins文件夹
- 将
-
完全关闭 TrafficMonitor
- 右键任务栏图标 → 退出
-
重新启动 TrafficMonitor
-
打开插件选项
- 右键 TrafficMonitor 任务栏区域 → 选项
- 或左侧菜单 → MijiaPowerPlugin → 选项
-
填写设备信息
设备 IP: 192.168.1.100 (从第一步获取) Token: a1b2c3d4... (从第一步获取) 名称: 客厅插座 (可选,自定义名称) -
点击"测试连接"验证
- 若显示连接成功 ✅ → 配置正确
- 若显示连接失败 ❌ → 重新检查 IP 和 Token
-
点击"确定"保存
- 插件会立即显示实时功率
- 可以看到任务栏中显示:
功率: XX.X W - 鼠标悬停会显示详细的统计信息
| 问题 | 症状 | 解决方案 |
|---|---|---|
| 连接失败 | 显示"连接失败" | 检查 IP 和 Token 是否正确 |
| 没有显示 | 看不到功率数值 | 确认 DLL 文件在 plugins 目录中 |
| 数据异常 | 显示 0W 或错误值 | 检查设备是否开启,重启插件 |
| Token 失败 | 工具无法提取 | 确保米家账户密码正确,网络正常 |
| 型号不兼容 | 测试连接成功但功率异常 | 先确认 miIO.info 返回的型号是否为 cuco.plug.v3 或米家智能插座2 蓝牙网关版(chuangmi.plug.212a01) |
安装完成后,可以在插件选项中调整:
| 选项 | 默认值 | 推荐值 | 说明 |
|---|---|---|---|
| 启用历史记录 | 关闭 | 开启 | 记录功率数据用于分析 |
| 显示功率标签 | 开启 | 开启 | 任务栏显示"功率:"文字 |
| 显示 W 单位 | 开启 | 开启 | 数值后显示"W" |
| 采集间隔(秒) | 3 | 3-5 | 越小更新越快,但消耗更多资源 |
| 小数位数 | 1 | 1 | 显示精度(0-2位) |
| 文件 | 说明 |
|---|---|
PluginInterface.h |
TrafficMonitor 插件接口定义 |
MiioDevice.h/.cpp |
纯C++ miIO协议实现(AES-128-CBC + UDP) |
PowerHistory.h/.cpp |
功率历史采样与统计 |
PluginConfig.h/.cpp |
插件配置(INI文件读写) |
MijiaPowerPlugin.h/.cpp |
插件主类(ITMPlugin/IPluginItem实现) |
OptionsDlg.h/.cpp |
设置对话框(纯Win32) |
pch.h/.cpp |
预编译头 |
插件配置文件默认保存在 TrafficMonitor 的插件配置目录:
%AppData%\TrafficMonitor\plugins\
MijiaPower.ini ← 设备信息和选项
MijiaPower_history\
YYYY-MM.csv ← 按月拆分的功率历史记录(如果启用)
说明:
MijiaPower_history\YYYY-MM.csv会在启用历史记录且插件采集到功率数据后按月份自动创建- CSV 采用追加写入方式;插件启动时只会流式读取覆盖最近 10 分钟和 7 天汇总窗口所需的月份文件,不会整文件载入内存
- 时间列使用用户系统本地时区格式化输出,便于直接查看
- CSV 首行包含中文标题,默认列为
本地时间,功率(W) - 历史记录会在运行中按约 60 秒周期定期保存
- “清除历史”会删除
MijiaPower_history目录下全部月文件
- 插件通过 UDP 协议(端口 54321)直接与设备通信,设备必须与电脑在同一局域网
- miIO 协议需要正确的 Token,错误的 Token 会导致连接失败
- 采集间隔不建议设置低于 2 秒,以免对设备造成过多请求
- 不同型号的插座功率属性可能不同。当前插件支持基于精确型号匹配的属性映射
基于原项目 mijia_plug 的设备属性定义:
| 属性 | siid | piid | 说明 |
|---|---|---|---|
| 开关 | 2 | 1 | 插座开关状态 |
| 功率 | 11 | 2 | cuco.plug.v3 当前功率(W) |
| 功率 | 5 | 6 | 米家智能插座2 蓝牙网关版(chuangmi.plug.212a01)当前功率(原始值除以 100 得到 W) |
| 能耗 | 11 | 1 | 累计用电量 |
| 温度 | 12 | 2 | 插座温度 |
已知兼容型号:cuco.plug.v3(米家智能插座3)、米家智能插座2 蓝牙网关版(chuangmi.plug.212a01)
插件完全无第三方依赖,所有加密算法(AES-128-CBC、MD5)均为纯 C++ 实现,仅依赖 Windows 系统 API(ws2_32.lib、comctl32.lib)。
Build DLL会在任意分支推送时运行,也支持pull_request和手动触发- 构建产物包含
MijiaPower.dll和MijiaPower.pdb Release DLL会在推送v*标签时创建 GitHub Release,也支持手动输入tag_name触发
- 运行仓库根目录下的
compile.ps1 - 或使用 Visual Studio / MSBuild 编译
Release | x64 - 默认输出目录为
bin/Release/x64/
