导读 : 下面就以小米智能插座为例,说明如何获取该设备的token。如果能用上述的探测方法获取token还是比较便捷的,但目前只有部分小米设备支持。从目前的智能家居市场来看,用户不会只使用单个智能设备厂商的设备,所以对于厂商来说,通过开放接口给用户一些局域网的控制“自由”,实现不同厂商设备的联动是一个不错的选择。...
作者的博客:
近两年,物联网技术发展迅猛,各种智能设备逐渐走进我们的家庭生活。在众多智能设备厂商中,小米是智能家居生态较早的厂商。几乎所有购买智能家居设备的用户都会拥有一两台小米设备。那么是否可以控制这些小米设备,过程中是否存在安全隐患?本文接下来将主要介绍这些内容。
具体来说,除了米家app控制小米设备,小米还提供了控制局域网的方式,但前提是获取一串字符串(即token)进行设备认证,所以接下来介绍如何获取设备令牌。以及如何实现局域网控制设备。
一、整体流程介绍
在同一个局域网内,小米设备可以使用专有的加密UDP网络协议miio协议进行通讯控制。在网络可达的前提下,向小米设备发送一串hello字节,获取包含token的结构数据。之后,构造相应的结构体并以同样的方式发送给设备以实现控制。具体流程如下图所示:
二、获取小米设备令牌
小米设备Token的获取方式有以下三种:
2.1 miio 获取令牌
miio有一个基于Python的库,其Github项目地址为:。该项目支持所有兼容miio协议的设备,并对设备发现、识别和控制的方法进行分类。
2.1.1 环境安装
python-miio需要Python3.5以上才能运行,所以先搭建Python环境。接下来,我们在 Ubuntu 操作系统或树莓派的计算机上安装 Python3.5:
安装5个依赖(本机存在的将被忽略)
sudo apt-get install build-essential lib
sqlite3-dev sqlite3 bzip2 libbz2-dev libssl-dev openssl libgdbm-dev liblzma-dev libreadline-dev libncursesw5-dev
编译安装 5
wgethttps://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tarzxvfPython-3.5.2.tgz
cd./Python-3.5.2
./configure--prefix=/usr/bin/python3.5
sudomake
sudomakeinstall
编译后运行5,结果如下,证明安装成功
sean@ubuntu:~/Desktop/week/ProcessAndDeadline$ python3.5
Python3.5.2(default,Nov232017,16:37:01)
[GCC5.4.020160609]onlinux
Type"help","copyright","credits" or"license" formoreinformation.
>>>
安装miio库,下载库代码到本地安装
gitclonehttps://github.com/rytilahti/python-miio
cd python-miio/
python3.5 setup.py install
2.1.2 通过脚本获取token
下面以小米智能插座为例,说明如何获取设备的token。
脚本编写
首先智能家居设备安装,需要确保获取令牌的客户端必须能够访问套接字网络。为了直观地展示,我们将从库中提取主要的实现代码(见下文)。将文件放在python-miio/miio目录下(本脚本主要使用socket向设备ip的54321端口发送固定字符串,返回值为设备token):
#-*-coding:utf8-*-
import codecs
import socket
from protocol import Message
helobytes=bytes.fromhex('21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff')
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.sendto(helobytes,('192.168.42.17',54321))#插座ip,端口54321
data,addr=s.recvfrom(1024)
m=Message.parse(data)
tok=codecs.encode(m.checksum,'hex')
print(m)
print(tok)
智能家居可以分为单件,和系统吗?(图)
2021-10-01中盛君安联合机智云开展“智能设
2021-09-06施耐德智能家居怎么样怎么样—施耐
2021-08-17智能硬件行业主要上市公司:市场规模产品结构出货量突破万亿
2021-10-02【报告】通用家电的简介、产品创新与市场地位
2021-10-02OPPOFindX3Pro拥有10亿双主摄,硬件规格不俗
2021-10-02要是手机杀毒软件也杀不掉呢?安卓手机病毒要比苹果多多
2021-10-02不过现在Android手机的功...
另外,智能手机的竞争格局较...
作为一所新兴中学,山西应用...
作为通用电气旗下最传统的...
Pro也成了拍照手机热度榜...
然而,学校教育的作用并非仅...
现在,你买一部安卓手机,你还...
虽然手机病毒是比较少的,但...
打造最优秀的合肥电视台财...
汽车打蜡一般多少钱?你给爱...