返回顶部
m

mijia-control米家控制

|

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.0
安全检测
已通过
157
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

mijia-control

米家控制

通过云API控制小米智能家居设备并创建自动化。

设置

前置条件: pip3 install micloud

凭据文件: ~/.mijia_creds.json(权限设为600)
json
{userId:..., serviceToken:..., ssecurity:..., cUserId:...}

如果登录需要双重验证(设备信任验证),可通过浏览器获取凭据:

  1. 1. 在已有登录Cookie的浏览器中打开 https://account.xiaomi.com/pass/serviceLogin?sid=xiaomiio&_json=true
  2. 使用哈希密码向 serviceLoginAuth2 发送POST请求,获取 ssecurity 和 location
  3. 访问 location 中的URL,从Cookie中获取 serviceToken

设备控制

列出设备

bash python3 scripts/mijia.py devices

读取属性

bash python3 scripts/mijia.py get

设置属性

bash python3 scripts/mijia.py set

value:布尔值用true/false,uint8用整数,以此类推

注意: 网状网络设备(蓝牙开关)在设置时返回code:1——这是正常现象(异步确认)。命令仍会执行。延迟1-2秒后读取属性即可验证。

批量控制

创建一个包含命令的JSON文件: json [ {did: 946635824, siid: 2, piid: 1, value: true}, {did: 946633803, siid: 2, piid: 1, value: false} ]

bash
python3 scripts/mijia.py batch /tmp/commands.json

MIoT规格参考

每个设备都有服务(siid)→ 属性(piid)。在以下网址查询规格:
https://home.miot-spec.com/spec/

常见模式:

  • - 开关/灯: siid:2 piid:1 = 开/关(布尔值)
  • 三路开关: siid:2/3/4 piid:1 = 通道1/2/3(布尔值)
  • 空调: siid:2 piid:1 = 开/关,piid:2 = 模式,piid:3 = 目标温度
  • 浴霸: siid:2 = 照明,siid:3 = PTC加热器,siid:10 = 环境(温度传感器)
  • 热水器: siid:2 piid:1 = 开/关,piid:2 = 目标温度,piid:3 = 当前温度

创建自动化场景

bash
python3 scripts/mijia.py scene_create scene.json

场景JSON格式(参见 references/scene_template.json):
json
{
name: 回家自动开灯,
identify: homelight_1234,
st_id: 8,
setting: {enable: 1, enable_push: 0},
trigger: {
key: event...,
did: devicedid>,
model: ,
extra: {\siid\:2,\eiid\:1}
},
action_list: [
{
did: devicedid>,
model: ,
extra: {\props\:[{\siid\:2,\piid\:1,\value\:true}]},
type: device_ctrl
}
]
}

关键字段:

  • - trigger.key:设备事件格式为 event...
  • launch.attrfilter:可选条件(例如仅在灯关闭时触发)
  • actionlist[].extra:包含 props 数组的JSON字符串
  • stid:8 = 用户自动化
  • homeid 和 uid 如省略则自动填充

预设场景

🚿 洗澡模式

当用户说我要洗澡时:
  1. 1. 读取浴室温度:get 927361805 10 1
  2. 如果温度 < 28°C → 开启浴霸:set 927361805 3 1 1(暖风),目标30°C
  3. 如果温度 ≥ 28°C → 跳过加热器
  4. 开启热水器:set 965879649 2 1 1,设置43°C:set 965879649 2 2 43
  5. 开启浴室灯:set 946635824 2 1 true

🐟 出门自动喂鱼

当主人离家时,每天自动喂鱼一次。

架构:

  1. 1. OpenClaw定时任务(每5分钟):通过 /user/getuserdevicedata 轮询门锁事件日志
  2. 如果今天有自动上锁事件(action=1)且尚未喂鱼 → 执行喂鱼 → 记录状态
  3. 喂鱼后,后续所有检查立即跳过(每日去重)
  4. 状态文件 ~/.fishfeed_state.json:记录上次喂鱼日期

组件:

  • - 门锁事件:智能门锁2 Pro(did: 1175215651),事件键 2.1020,action=1 = 自动上锁(离家)
  • 喂鱼器:智能鱼缸(did: 2026943875),动作 siid:2 aiid:1,in:[1](1份)

- ⚠️ 动作参数格式:in: [1] 而非 [{piid:5,value:1}]
  • - 脚本:scripts/fishautofeed.py

手动命令:
bash
python3 scripts/fishautofeed.py # 正常运行
python3 scripts/fishautofeed.py --dry-run # 检查但不执行喂鱼
python3 scripts/fishautofeed.py --force # 强制喂鱼
python3 scripts/fishautofeed.py --status # 显示状态

触发逻辑:

  • - 轮询门锁事件日志,查找今天是否有自动上锁事件(action=1)→ 执行喂鱼
  • 一旦喂鱼完成,跳过所有后续检查直到次日
  • 无需米家自动化,纯OpenClaw轮询

小爱音箱TTS

让小爱音箱语音播报指定内容。

bash
python3 scripts/mijia.py tts

示例:python3 scripts/mijia.py tts 100783118 你好

流程:取消静音 → 播放文本 → 等待 → 暂停播放 → 重新静音。
这样可以防止音箱在TTS后自动播放音乐。

重要提示:

  • - 音箱可能处于静音状态(夜间默认状态)——脚本会自动处理取消静音/重新静音
  • TTS完成后务必暂停播放,防止自动播放音乐
  • 云API无法控制屏幕界面——返回时钟显示需要物理点击或语音命令

Token刷新

Token会定期过期。如果API返回解码错误或认证失败:

  1. 1. 通过浏览器重新登录(与初始设置流程相同)
  2. 用新的 serviceToken 和 ssecurity 更新 ~/.mijia_creds.json

每次登录 ssecurity 都会变化。serviceToken 与当前会话绑定。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 mijia-control-1776063902 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 mijia-control-1776063902 技能

通过命令行安装

skillhub install mijia-control-1776063902

下载

⬇ 下载 mijia-control v1.1.0(免费)

文件大小: 10.91 KB | 发布时间: 2026-4-17 15:24

v1.1.0 最新 2026-4-17 15:24
Add auto fish feeding (poll door lock events + daily dedup); fix action param format for fish feeder; add TTS command for XiaoAI speaker

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部