Skip to content

Repository files navigation

MiIsland

Release Downloads Platform .NET License

ClassIsland 米家设备控制插件(非官方)

⚠️ 合规与免责声明(必读) 本项目为个人学习研究用途的第三方插件,通过逆向分析小米非公开云 API 实现。 它不是小米官方产品,与小米集团无任何关联,也未获得任何授权。 详细免责声明见 DISCLAIMER.md。使用本项目即代表你已阅读并同意其中的所有条款。

ClassIsland 主界面显示并控制你的米家(小米智能家居)设备。

⚠️ 重要风险提示

  • 本项目调用的是小米未公开的私有云接口,属于对客户端通信协议的逆向复现。
  • 使用本插件**可能违反《小米用户协议》**中关于"禁止逆向、禁止非官方客户端访问"的条款。
  • 请勿将本项目用于任何商业用途、规模化部署或盈利行为。
  • 小米可能随时通过风控升级封禁相关账号或变更接口,导致插件失效;由此产生的任何后果由使用者自行承担。
  • 本插件仅使用小米官方提供的「扫码登录」流程授权,在当前设备上运行,不收集、不存储任何账号密码到本地文件以外的任何位置。
  • 扫码登录后返回的数字账号 ID(userId)、账号昵称(米家昵称)以及登录会话令牌(serviceToken、ssecurity)会保存在本机 settings.json 中:
    • userId / 昵称仅用于在设置页展示当前登录的是哪个账号,不会上传或外发。
    • serviceToken / ssecurity 用于在重启 ClassIsland / 重新打开设置页时自动恢复登录,避免每次都重新扫码;这两项仅本地保存(经简单 XOR 混淆,非加密——能读取本地文件的人仍可还原)。
    • 在设置页点击"登出"会清空上述所有保存项,下次需重新扫码。

功能

  • 📱 设备状态显示:实时查看米家设备在线状态、开关状态
  • 🔌 远程开关控制:支持云端控制的插座 / 开关 / 灯
  • 💡 灯亮度调节:灯类设备带亮度滑块(拖动即调,松手 0.5 秒后下发)
  • 🪟 窗帘控制:开 / 停 / 关
  • 🌡️ 传感器只读展示:温湿度传感器显示温度、湿度(不可控)
  • 🏷️ 设备类型自动识别:按设备型号自动区分灯 / 开关 / 传感器 / 窗帘,展示对应控件
  • 🔁 操作后回查:每次开关 / 调亮度 / 窗帘动作后会立即重新拉取真实状态,确认生效
  • 🔑 扫码登录(唯一登录方式):使用小米官方扫码授权流程(小米商城 / 米家 App),不保存任何密码
  • 🔄 自动刷新:可配置刷新间隔(在设置页改动后无需重启即生效,间隔=0 关闭)
  • 🔌 操作后实时反馈:状态栏会显示「已开启:xxx」「亮度已设为 60%」等结果
  • 📍 系统托盘图标:安装并登录后,任务栏托盘区会出现 MiIsland 图标,单击 / 双击即可打开独立的「米家设备控制」窗口(总页面)(无需打开 ClassIsland 主界面也能控制设备);右键图标有「打开控制页」与「退出托盘」。关闭控制窗口只是隐藏(托盘仍可用),点「退出托盘」才会移除图标
  • 🖥️ 桌面快捷方式(直达页面):在插件设置页的「桌面快捷方式」分区,可一键在桌面生成 .lnk
    • 设置页快捷方式 → 双击直达本插件设置页(图标为 MiIsland 图标);
    • 设备总控快捷方式 → 双击直达设备总控窗口(与托盘等价,图标为 MiIsland 图标);
    • 单个设备快捷方式 → 在设备列表每行点「快捷方式」,双击直达该设备的独立控制窗口,快捷方式图标自动使用该设备的图片
  • 🖼️ 设备图标:设备卡片、单设备窗口、桌面快捷方式均优先显示设备的图片——
    • 自动:云端设备列表若返回设备图标 URL,会自动下载缓存并显示;
    • 自定义:在设备列表每行点「图标」可选本地图片作为该设备的图标(覆盖自动图标),「清除图标」恢复自动/默认。
    • 快捷方式指向当前 ClassIsland 进程并带上 classisland://plugins/MiIsland/... 参数,由 ClassIsland 转发并打开对应页面。若 ClassIsland 未运行,双击会先启动主程序、并在启动时自动导航到对应页面(一次点击即可,无需先手动打开再点一次)。插件在加载阶段即注册好 Uri 处理程序,即使设置页/组件从未打开也能直达。

登录方式

本插件仅支持扫码登录,使用小米官方提供的扫码授权流程完成登录:

  1. 在插件设置中点击「扫码登录」;
  2. 小米商城 / 米家 App 扫描二维码;
  3. 在手机上确认登录;
  4. 插件即可读取并控制你的米家设备。

出于合规考虑,本插件不提供账号密码登录,也不会把你的账号密码写入任何本地文件。

安装

  1. 在 Release 页面下载 MiIsland.cipx
  2. 双击 .cipx 文件由 ClassIsland 安装,或手动将插件文件放入 ClassIsland 的 Plugins/MiIsland/ 目录;
  3. 重启 ClassIsland,在设置中点击「扫码登录」并完成扫码;
  4. 在组件列表中找到"米家设备面板",添加到主界面。

把组件添加到桌面(重要,否则"看起来没用")

插件安装并在设置页扫码登录后,不会自动出现在桌面上——你还需要手动把组件挂到 ClassIsland 的界面上,它才会常驻显示设备并可用:

  1. 在 ClassIsland 主界面,进入编辑模式(通常在界面右下角或设置里开启"编辑布局");
  2. 找到左侧/面板中的**组件(Components)**列表,搜索或找到 「米家设备面板」(即本插件注册的组件);
  3. 把它拖拽或点击添加到你想要放置的面板位置(例如"主面板"的一个格子);
  4. 退出编辑模式;
  5. 此时桌面上会出现米家设备卡片:已登录则自动加载设备列表,未登录则提示去设置页登录。

如果你只打开了插件设置页、从没把组件加到桌面,那你看到的就只有"登录 + 设备列表"的设置界面,确实没有持续使用价值。组件挂上桌面后,才能真正用它看状态、点开关、调亮度。

组件和设置页共享同一个登录会话:在设置页扫码登录后,桌面组件会自动刷新出设备;在设置页登出,组件也会同步回到未登录状态。

参考

本项目的云 API 通信逻辑参考了社区公开的逆向研究成果:

许可证

本项目以 GNU 通用公共许可证 v3.0(GPL-3.0) 提供,详见 LICENSE 文件。

  • 允许:个人学习、研究、自用,以及根据 GPL-3.0 条款进行的复制、修改、再分发(含商业用途);
  • ⚠️ 任何再分发(含修改后的版本)必须以 GPL-3.0 开源,并附带完整许可证与源码。

使用小米相关接口、商标或数据的权利不受本许可证授予,亦不豁免你对第三方服务条款的遵守义务。使用本项目不意味着你获得了小米任何接口的使用授权。详见 DISCLAIMER.md

仓库

https://github.com/yty16/MiIsland

About

在 ClassIsland 中通过插件控制米家智能设备,支持主界面组件和自动化触发

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages