Android 5.0 Termux 实现对米家设备的控制

1. 获取设备Token

  • 使用 Xiaomi-cloud-tokens-extractor 获取设备token

Xiaomi-cloud-tokens-extractor开源地址:https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor

  • 下载代码以及运行

这步可以在当前的电脑上运行,也可以在Termux上运行。

$ startalpine
$ git clone https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor.git
$ cd Xiaomi-cloud-tokens-extractor
$ python3 token_extractor.py

执行到这步时会跳出需要输入小米ID和密码,Server选cn。
如果账号密码正确的话就能获取到设备对应的token以及其它重要信息了。

Username (email or user ID):
xxxx
Password:
xxxx
Server (one of: cn, de, us, ru, tw, sg, in, i2) Leave empty to check all available:
cn

Logging in...
Logged in.

Devices found for server "cn":
   ---------
   NAME:     Mijia Smart Rice Cooker Mini 2
   ID:      xxx
   MAC:      xxxxx
   IP:       xxxx
   TOKEN:    xxx
   MODEL:    xxx
   ---------


Press ENTER to finish

2. 通过python-miio 操控设备

  1. 打开米家,找到自己的设备,并且进入网络信息查看设备的IP地址。
  2. 第一章节拿到了设备的token,使用miiocli 命令查看设备基本信息(这步执行有点慢,需要等一会,不要着急…)
$ miiocli device --ip <ip> --token <token> info

Model: chunmi.cooker.eh3
Hardware version: esp32
Firmware version: 2.2.0_0010

可以看到,米家智能小饭煲2的设备基本信息打印出来了。

  1. 试一下python脚本
import miio
dev=miio.device.Device("192.168.2.103","5de109637c4cb89a65edee621612ed1b")
dev.info()

正常会返回设备信息

  1. 试着获取它的状态
d = miio.cooker.Cooker(<ip>,<token>)
d.status()
Found an unsupported model 'chunmi.cooker.eh3' for class 'Cooker'. If this is working for you, please open an issue at https://github.com/rytilahti/python-miio/

好吧,发现还不支持,于是乎我提交了issue:https://github.com/rytilahti/python-miio/issues/1670
希望有用到这个设备的朋友,进去支持一下

  1. 既然小饭煲不行,那就试下小米智能插座2 蓝牙网关版,结果可行
import miio

ip = "192.168.101.30"
token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

dev = miio.device.Device(ip, token)
dev.info()
# 关闭智能插座
dev.send("set_properties", [{'did': '<device id>', 'siid': 2, 'piid': 1, 'value': False}])
# 开启智能插座
dev.send("set_properties", [{'did': '<device id>', 'siid': 2, 'piid': 1, 'value': True}])
# 获取智能插座状态
status=dev.send("get_properties", [{'did': '<device id >', 'siid': 2, 'piid': 1}])
print(status)
  1. 在网上找了一些资料,发现不一定要python-miio 支持也能通过发送源数据控制设备。

Reference:

  1. https://www.cnblogs.com/ff888/p/16698180.html
  2. https://home.miot-spec.com/spec?type=urn:miot-spec-v2:device:outlet:0000A002:chuangmi-212a01:1
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锡城筱凯

你的鼓励是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值