小米node2红外_使用python-miio控制小米智能插座
0 设备信息
本次采用设备为小米智能插座基础版,购买链接为:天猫购买链接
产品型号:ZNCZ04CM
1 python-miio模块
米家的智能设备都遵循了 miio 的协议,协议内容参见:mihome-binary-protocol
python-miio为封装后的miio-API
可以采用python代码控制miio设备
python-miio安装方式(1):
pip install python-miio
python-miio安装方式(2):
将压缩包中的miio目录放到项目文件夹,或者放入python程序的LIb/site-packages目录中
2 获得miio设备的Token
python-miio控制小米设备需要获得相关设备的Token及IP地址。
IP地址可以在米家APP的设备控制界面查询:右上角...按钮,选择网络信息,可看到IP。
小米设备的Token获取比较复杂。一般有以下几种方式
(1)已ROOT的安卓手机 或 电脑安卓模拟器(推荐、已验证)
打开手机 ROOT 权限,赋予文件管理器权限;
下载安装并使用『米家』App(请使用 5.0.19-及之前版本 App,参见附件,新版 App 已屏蔽 token 提取)连接所有需要的设备;
使用文件管理器(例如 ES 文件管理器),进入 /data/data/com.xiaomi.smarthome/databases/,复制粘贴 miio2.db 至有权限的文件夹 (例如 下载)。注意由根目录进入而不是主目录;
方法一:使用 SQL 读取 App (推荐 aSQLiteManager),打开 miio2.db 文件直接打开 devicerecord 项,手动寻找设备 token; 方法二:使用 SQL 读取 App (推荐 aSQLiteManager),点选 Query,输入 select token from devicerecord where localIP is '192.168.0.1',将其中的 IP 地址替换为你想要查询的米家设备的 IP。 方法三(推荐):下载 miio2.db 文件至电脑,将文件上传至网页:http://miio2.yinhh.com/ 直接获取。
记录下 token,建议保存在备忘录内。
(2)利用miio discover(未验证)
就是小米设备连上电源后,在配置前,会首先释放出一个 WIFI, 我们用一台电脑去连接这个 WIFI(没有密码),连接成功后,我们安装 miio, 通过 miio discover 命令,就可以得到 token了。
采用node.js的方式:
npm install miio
% 安装完成后
miio discover
采用python的方式:
from miio.discovery import Discovery
d = Discovery()
d.discover_mdns()
(3)使用无需 root 的安卓手机获取(未验证)
原因在于米家 v5.4.54 版本的 App(百度网盘有) 有一个小 bug,其中写入内部存储器的日志文件暴露了小米 miio 设备的设备 token。
卸载最新版米家,安装米家 v5.4.54 版本
登录小米账户等待设备连接,正常操作一遍设备
使用文件资源管理器导航到/sdcard/SmartHome/logs/Plug_Devicemanager/
打开名称为 yyyy-mm-dd.txt 的日志文件
在文档中搜索 token 或你需要的设备名称
image.png
(4)注意
注意:获取到的设备 token 请及时配置,如重置家中的网络,设备 token 会发生变更。
3 插座控制示例
如果不清楚需要使用python-miio的那个设备模块,可以通过以下方式获得设备对应的模块名。
import miio
ip='192.168.1.20'
token='*****' # 输入之前获得token
s = miio.device.Device(ip=ip, token=token)
s.info()
# Out: chuangmi.plug.m3 v1.3.8_0002 (04:CF:8C:5F:**:**) @ 192.168.1.20 - token: *****
我们可以得到设备的模块名称为:chuangmi.plug.m3
查看miio目录中的chuangmi_plug.py文件,可以看到对应的Class ChuangmiPlug。
插座可以通过以下类似的方式进行:
from miio.chuangmi_plug import ChuangmiPlug
ip='192.168.1.20'
token='****' # 输入之前获得token
d = ChuangmiPlug(ip=ip, token=token)
x=d.status() # 给出设备的状态
# x:
# x.power = True
x=d.info()
# type(z)
# miio.device.DeviceInfo
# print(z)
# chuangmi.plug.m3 v1.3.8_0002 (04:CF:8C:5F:**:**) @ 192.168.1.20 - token: *****
x=d.off()
# x = ['ok'] 则 控制成功
x=d.on()
# x = ['ok'] 则 控制成功
通过以上接口函数,可以控制插座实现更复杂的逻辑
小米node2红外_使用python-miio控制小米智能插座相关推荐
- 小米node2红外_智能家居之一:小米人体传感器2使用体验
智能家居之一:小米人体传感器2使用体验 2020-12-29 19:32:32 7点赞 11收藏 0评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情 ...
- 小米node2红外_感应光、感应你,小米人体传感器2体验分享
感应光.感应你,小米人体传感器2体验分享 2020-12-23 11:44:37 3点赞 0收藏 3评论 家里正需要一个人体传感器来搭配智能设备使用,没想到这么巧中了轻众测,感谢什么值得买平台. 感应 ...
- 小米node2红外_简单易懂,联动好用:小米 米家蓝牙温湿度计2 晒单
简单易懂,联动好用:小米 米家蓝牙温湿度计2 晒单 2020-10-06 09:33:10 4点赞 6收藏 5评论 去年买过米家的温湿度计Pro,在家摆着和电暖风联动挺不错的,比如室温低于20℃自动开 ...
- 小米node2红外_关于小米人体传感器2的抢先体验报告
关于小米人体传感器2的抢先体验报告 2020-12-22 11:40:27 0点赞 0收藏 0评论 首先,感谢值得买众测提供机会,本来是参与了小米的官方众筹,结果没想到众测直接中了一个,果断把众筹的退 ...
- 小米node2红外_小米监控open-falcon-0.2安装部署详细配置
一.环境准备 1.配置阿里云yum源 #wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7 ...
- 小米node2红外_小米门窗传感器2的糟心问题
小米门窗传感器2的糟心问题 2020-09-16 10:11:32 2点赞 0收藏 3评论 小米众筹了新的小米门窗传感器2,因为集成了光照传感器,所以刚众筹就买了2个使用.虽然陆陆续续一共有了30来个 ...
- 小米node2红外_国外媒体测评小米MIX2:存在三大致命缺陷,想不到你是这样的小米...
小米也是最早进军全面屏的厂商,去年一款概念性的小米MIX令外界对小米有了不一样的认识,也正是凭借这款手机小米的品牌有了巨大的提升,进入2017年小米接二连三发布重磅产品,销量也开始回暖. 而在这几款重 ...
- python条件控制语句要注意什么_关于Python条件控制怎么用?要注意什么?
今天小编给大家整理了学习python里比较困难的内容,就是关于条件的选择,相信大家也一样踩过坑吧,于是总结了下面内容,一起来看下吧~ 1.条件判断语句(if语句) 执⾏的流程:if语句在执⾏时,会先对 ...
- python第五周项目答案_工作页python流程控制(第五周 ).doc_学小易找答案
[单选题]Mary is ()hardworking than her sister, but she failed in the exam. (5.0分) [单选题]设a.b为float型变量,则以 ...
最新文章
- 深入理解 Java 虚拟机(第一弹) - Java 内存区域透彻分析
- java重载和重载的区别
- 32.210内存的知识
- 自底向上构建知识图谱全过程
- python中的捕获异常、异常跟踪
- 百度AI达人创造营之创意的起源
- Altium designer快捷键汇总
- 数据库设计Step by Step (10)——范式化
- 有法院被执行人记录还能贷款吗?
- 不是每个人都适合linux
- linux之ps命令详解
- 前端布局神器display:flex
- PACKING【二维01背包】
- berkeley db java edition 源码,Berkeley DB Java Edition
- 查看linux环境下cudnn是否安装,Linux下安装cuda和对应版本的cudnn
- linux编译C++代码
- 世界上第一块商用微型处理器4004
- 维盟路由器pppoe服务配置(价值80元的帖子)
- foo,bar,baz
- 企业数据战略中,什么样的数据才能算是真正的数据资产
热门文章
- Exchange2003-2010迁移系列之十三
- Linux下简单的邮件服务器搭建
- BlogEngine.Net架构与源代码分析系列(转载)
- NetBeans 时事通讯(刊号 # 57 - May 27, 2009)
- intel的linux证书过期,rhce证书过期了可以怎么办
- python 高级使用实例_Python中的高级函数map/reduce使用实例
- mysql sqlstate 28000_mysql ERROR 1045 (28000): 错误解决办法
- wpsppt怎样让图片模糊_图片优化的14个技巧!
- linux 火狐安装java插件_Linux下Firefox安装配置JDK插件
- jdbc mysql 实例名_JDBC连接自定义sqlserver数据库实例名(多个实例)