小米设备token获取HomeAssistant安装部署
小米设备token获取&HomeAssistant安装部署
- 小米智能设备token获取
- miIO-discovery获取token与控制
- app直接token获取
- DB获取token
- 开源智能家居平台HomeAssistant安装部署
- HomeAssistant简介
- 安装部署HomeAssistant
- 将小米设备配置到HomeAssistant
- HomeAssistant可连接设备
- 总结
近两年,物联网及其相关技术迅猛发展,各样的智能设备渐渐的走进了我们的生活,随之使用者们也变的越来越向往智能化的生活。但目前的智能家居市场产品分散,单一厂商很难完全满足用户需求,并且多个厂商产品不能原生联动,这可能也是家居智能化面临的问题。本文主要介绍小米设备拿token以及局域网控制,以及一款开源的智能家居平台HomeAssistant部署与使用,让家庭中的多种智能设备联动变成一种可能。
小米智能设备token获取
为了消除对专有软件(米家app)的依赖,米家设备提供一种在局域网控制的方式。在使用这个局域网控制协议之前需要获取到设备token,接下来介绍小米设备获取token的一些方法。
miIO-discovery获取token与控制
设备和米家app在同一局域网下使用的加密专有网络协议,这个被称之为miIO协议。该协议基于UDP,使用54321端口进行通信。具体功能见github地址https://github.com/rytilahti/python-miio,这个库的目的是支持所有miIO兼容的设备,将设备类型和控制方法进行了分类,以简化与它们的交互。该库需要安装在Python3.5以上版本,首先搭建Python环境:
- 安装Python3.5依赖(本机存在的会忽略)
sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev libssl-dev openssl libgdbm-dev liblzma-dev libreadline-dev libncursesw5-dev
- 编译安装Python3.5
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar zxvf Python-3.5.2.tgz
cd ./Python-3.5.2
./configure --prefix=/usr/bin/python3.5
make
make
sudo make install
编译后运行一下python3.5,结果如下证明安装成功
- 安装miIO库,下载库代码到本地
git clone https://github.com/rytilahti/python-miio
下面就以小米智能插座为例,获取该设备token。进入python-miio/miio目录discovery.py文件主要是来获取设备token的方法。为了直观将插座的主要实现代码提取出来,在python-miio/miio目录编写如下脚本miio_test.py(向设备ip的54321端口发送固定字符串,返回值即为token)
#-*-coding:utf8-*-
import codecs
import socket
from protocol import Messagehelobytes = 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(‘token:’,tok)
- 运行python3.5 miio_test.py,获取小米Wi-Fi插座token
- 执行控制脚本,输入插座的ip和token两个参数就可以看到现在插座的状态,在这两个参数的基础上添加on/off就可以对该设备进行控制
支持这种方式拿token的还有小米的空气净化器、净水器、扫地机器人、智能插座插线板等。具体列表见https://github.com/rytilahti/python-miio
app直接token获取
能用上述的miIO探测方法获取还是比较便捷的,但目前只有部分小米设备支持。接下来还有一种方法可以直接从app获取token。以小米绿米网关为例,首先下载米家app,将绿米网关配置入网后,点击网关设备。接下来步骤如下组图,最后的密码即为网关的token。
目前绿米的这种设计模式是最方便用户的,而且设备的所有者还可以选择是否开放局域网控制以及刷新控制token的有效性,个人还是很希望小米的其他设备同样开放app侧获取设备token,因为毕竟获取需要搭建复杂的环境以及调试代码,大部分使用者应该不能接受的。
DB获取token
第1步,获取一部安卓手机的root权限
第2步,安装米家app并登录账号
第3步,进入/data/data/com.xiaomi.smarthome/databases/
第4步,拷贝miio2.db,下载到电脑
第5步,前往网站(http://miio2.yinhh.com/),上传miio2.db,点击提交,即可获得token。
没有具体测试这种方式获取token,可以参考这个链接(https://homekit.loli.ren/docs/show/12)
开源智能家居平台HomeAssistant安装部署
上文给大家介绍了获取小米设备获取token方法和插座的简单控制,如果想自动化或者实现多设备联动的话还需要写代码,不会被所有的用户所接受,接下来给大家介绍下一款开源智能家居平台——HomeAssistan,只要几步部署,就可以轻松实现多厂商设备的联动。
HomeAssistant简介
HomeAssistant为开源的智能家居平台,可以识别和直接连接的外部设备有将近千项。其中有各种商业化的智能产品(如小米系列产品、Philips智能灯系列、亚马逊的音响、苹果的Siri、Google Assistant、BroadLink的产品、特斯拉汽车等)、有互联网上的各种实时信息(股票、汇率、交通、天气等)、有开源或开放的各种智能软件(人脸识别、车牌识别文字识别、文字转语音、语音转文字等)、有各种联动机制(短信、Email等)
安装部署HomeAssistant
- 安装HomeAssistant
pip3 install HomeAssistant
- 启动HomeAssistant
hass
第一次启动HomeAssistant,因为要安装相关依赖,大概要等上10几分钟,通过浏览器访问树莓派的8123端口,如果看到如下页面,证明安装启动成功。
将小米设备配置到HomeAssistant
进入.HomeAssistant目录,编辑configuration.yaml,添加小米网关和Wi-Fi插座的配置参数,token为按照上文你获取到的字符串:
switch: #小米插座配置参数- platform: xiaomi_miioname: Xiaomi Mi Smart Power Strip #设备名称host: 192.168.42.17 #设备IP
token: YOUR_TOKEN #设备密钥
xiaomi_aqara: #小米网关配置参数gateways:- mac: DEVICE_MAC #设备mackey: YOUR_TOKEN #设备密钥
配置文件修改完成后重启hass,再次访问HomeAssistant主页看到新增Xiaomi Mi Smart Power Strip(配置文件里面的name字段)和GatewayLight设备,这就证明配置完成,点击对应的控制按钮就可以控制该设备了。
HomeAssistant可连接设备
HomeAssistant支持数以千计的设备,这里只举一些列子,比如支持控制小米的设备,BroadLink设备,自己开发的MQTT设备。还可以通过插件支持一些智能语音输入控制,比如安装HAbridge可以使用亚马逊echo音箱、京东音箱和天猫精灵控制HomeAssistant支持的设备,安装HomeBridge和homekit就可以让IOS的Siri控制设备。这里就不一一罗列,具体的详细支持见官网列表
总结
从小米、京东微联、博联等智能家居设备体验来看,智能的并不尽人意。首先,虽然都可以生成若干场景,但大多是自己玩自己的,不同厂商之间无法实现联动;其次场景略显单一,假如用户想实现每次出门之前提醒天气,如果今天是雾霾/雨天提醒用户带口罩/雨具,类似这样的场景是实现不了的。因为缺乏与互联网信息联动的接口,并且大多数厂商的智能音箱与其他设备交互仅仅是语音控制。可能就是考虑到用户的个性化需求,就有了类似HomeAssistant这样的智能家居平台,将各式的资源整合到一起,使得家居距离智能更近了一步。当然,从目前的智能家居市场来看,单独一个智能设备厂商不太可能让所有用户仅使用自己的设备,所以给用户一些控制的“自由”,对厂商来说应该是个不坏的选择。
小米设备token获取HomeAssistant安装部署相关推荐
- 小米设备token获取HomeAssistant
Use HomeAssistant Service Goto HomeAssistant service developer tool Select xiaomi_miot.get_token, En ...
- 记录小米设备事件获取
Android 系统里面有很多小工具,运行这些工具,我们可以掌握很多数据,再顺藤摸瓜,就可以针对设备做特殊的操作. 记录获取我手机的event信息,我的手机是小米版: F:\eclipse\andro ...
- 对比homeassistant和智汀家庭云之docker安装部署篇
本篇教程,带你了解Home Assistan和智汀家庭云的初步安装部署,如同很多开源项目,Home Assistant 就是常见的一款,作为国外开源软件,需要去阅读大量的英文文档,在编辑器里编辑自己的 ...
- 获取米家设备token
token获取 1.下载网易mumu模拟器 http://mumu.163.com/ 2.下载相关apk 链接:https://pan.baidu.com/s/1xHKw-qm2IMhHyn8tAOn ...
- php对接百度网盘开发平台API开发高级实战案例解析:(环境部署、php封装类、Access Token获取、预上传、分片上传)
文章目录 前言 一.环境部署 1.封装BdPan类库 2.回调地址配置 二.获取授权码Code 1.手动获取Code 2.生成本地token 3.读取AccessToken凭证 4.爬虫函数 二.简化 ...
- 【CentOS】安装部署jenkins从git获取代码[转]
持续集成①安装部署jenkins从git获取代码 一:持续集成的概念: 1.1:总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部 ...
- 小米设备打开了开发者选项和USB调试仍然无法安装成功的问题
小米设备无法安装的问题及解决: DeviceException: com.android.ddmlib.InstallException: Failed to establish session Fo ...
- 小米 9 SE 获取Root 和 安装Magisk
1.刷入第三方REC 和 Magisk 参考教程:[LR.Team]小米9SE专版TWRP中英文修改优化版_小米9 SE_MIUI论坛 使用上面的工具,傻瓜式操作即可. 关于刷入成功之后的说明:刷入成 ...
- FFmpeg入门详解之127:GB28181平台安装部署过程 - 可接入海康、大华、华为、科达、宇视等等设备和平台
本文章向大家介绍GB28181平台安装部署过程 - 可接入海康.大华.华为.科达.宇视等等设备和平台,主要包括GB28181平台安装部署过程 - 可接入海康.大华.华为.科达.宇视等等设备和平台使用实 ...
最新文章
- 浅析手机端网站建设的基本流程
- 搭建Nginx+Tomcat 负载均衡集群
- ITK:图像区域相交
- php callable 参数,php 利用反射执行callable
- 【Project3】【web.xml分析】
- 一张图诠释Git所有命令
- 设计模式之行为模式(1)-状态、策略、责任链、访问者
- python逐行输出_python逐行输出
- 赢在电子商务网站制作与营销:B2C版
- [LeetCode] Balanced Binary Tree 平衡二叉树
- 数学建模入门篇(新手必看)
- AI(人工智能)园区顶层设计方案(ppt)
- Python在word的指定位置插入图片
- 数据分析/挖掘的六个步骤
- octet-stream文件怎么看
- ctfshow 做题 萌新 模块(1)
- 非共识大会 | 伍鸣博士:DApp发展需要一条高性能且安全的公链
- Java线程的死锁和活锁
- 海南大学信号与系统838报考高频问题整理
- RuntimeError: could not create a descriptor for a dilated convolution forward propagation primitive