为此,我上班摸鱼写了一个 加密中转服务( Go 自托管 / Cloudflare Worker 两种版本)来代替米家 App 完成签名、Cookie 注入。快捷指令只需向中转服务发送一段 JSON ,就能在后台控制米家,包括设备控制和场景触发。
/login/qrcode
,用米家 App 扫码,获得userId / ssecurity (securityToken) / deviceId / serviceToken
四个关键参数。 https://api.io.mi.com
。 示例请求体:
{
"userId": "123456789",
"serviceToken": "xxx",
"deviceId": "abc123",
"securityToken": "Q0eQ7tKq...", // 即 ssecurity
"data": {
"did": "xxx",
"method": "set_props",
"params": [ ["power", 1] ]
}
}
因此直接填写 GCJ-02 坐标会出现数百米偏差,导致自动化难以触发。
解决办法:先用快捷指令读取 GCJ-02 → 在线或本地转换为 WGS-84 ,再把转换后的坐标写到自动化里。
我做了一个快捷指令转换示例:https://www.icloud.com/shortcuts/5161a59573f248399e58a8584eb93468
https://gist.github.com/Zayrick/62701850c833c4051356268fa9afc3ff 其中包含一个 sever.go ( Go 版本)和 worker.js ( Cloudflare Worker 版本)
部署详情参照 gist 中的 README.md
风险 | 说明 |
---|---|
账号安全 | 扫码登录使用真实米家账号,存在被封或 Cookie 泄露风险 |
网络安全 | 中转服务需走 HTTPS ,防止中间人窃听;同时禁止公网暴露调试接口 |
设备权限 | serviceToken/ssecurity 拥有完整设备控制权限,请加密存储 |
隐私泄露 | 服务器可访问全部家庭与设备信息,建议专号 + 内网部署 |
操作 | 请求方式 |
---|---|
读取设备属性 | POST https://api.io.mi.com/app/miotspec/prop/get |
设置设备属性 | POST https://api.io.mi.com/app/miotspec/prop/set |
执行动作 | POST https://api.io.mi.com/app/miotspec/action |
获取设备列表 | POST https://api.io.mi.com/app/home/home_device_list |
获取家庭列表 | POST https://api.io.mi.com/app/v2/homeroom/gethome_merged |
获取场景列表 | POST https://api.io.mi.com/app/appgateway/miot/appsceneservice/AppSceneService/GetSceneList |
💡 设备控制 API 查这里:https://home.miot-spec.com
免责声明:自己玩可以,别滥用,风险自负 🫡
![]() |
1
Lentin 25 天前
大部分操作都可以加到 siri 里面再搭配捷径使用的吧……用得到这么折腾吗
|
![]() |
2
19888888888x OP @Lentin 但是没办法做到后台,比如说锁屏情况下的自动运行🫠而且米家那个快捷指令还会有个弹窗很烦
|
3
georgex 25 天前
ha 实现不了吗
|
![]() |
4
19888888888x OP @georgex 应该也可以,没深入用过🤔
|
![]() |
5
wyd011011daniel 25 天前
感觉可以作为给米家用户轻量化替代,也可以接入其他设备来远程控制。
不过如果有 appletv 或者 homepod 的话我更倾向于 HA 接入苹果家庭。 再者 HA 部署之后内网穿透也一下也能类似效果。 |
6
MacsedProtoss 24 天前 via iPhone
你是否在找:home assistant
这才是正确的打开方式 |
![]() |
7
Kaiyuan 24 天前
本地网关有类似的操作吗?
|
8
Lin0000 24 天前
我直接就是 home assistant 里面用 xiaomi home (小米官方开源插件),再接个 home bridge ,直连家庭
|
![]() |
9
icestraw 24 天前
太麻烦了,还搞这些。你只需要笔记本连公网,然后随便写个 API ,用 TTS 说出指令,然后电脑旁边放一个小爱同学就可以了,用不着注入啥的,而且批量执行啥的都能搞定。
|
![]() |
10
CivAx 24 天前
干得不错,但大家都在用 HA
|
![]() |
11
19888888888x OP 我注意到大家都在提 HomeAssistant ,我之所以没用这个因为这个需要一台内网服务器/软路由还要配合一个 homekit 音响,娃刚从学校出来实习实在没啥钱盘这些东西,只能出一个简化版本的方案
|
![]() |
12
internelp 24 天前
@19888888888x 玩客云 30 元包邮,podman 启动一个 hass 即可,待机 5W 内。比你用自动化方便多了。
|
![]() |
13
zhaidoudou123 24 天前
几十块买个 n1 ,跑 ha 吧,一劳永逸
|
![]() |
14
gigishy 23 天前 via iPhone
我也觉奇怪,用 ha 不好吗?
另,那个坐标转换快捷指令,满网都是一模一样的,是你的原创? |