打开格局、拥抱开源,米家智能设备接入 Home Assistant 平台技术原理和操作实战...

8b6aaba9ad167f178af0d8b7c81cbced.png

米家构建智能家居生态的新思路

近日,小米米家智能官方在GitHub上开源了“Home Assistant米家集成”项目,支持将小米米家 IoT 智能设备接入Home Assistant,实现云端控制和局域网控制,支持多账号登录,支持中国大陆、欧洲、印度、俄罗斯、新加坡和美国等多个地区,这也标志着米家在智能家居领域的进一步开放和合作。

69cdb06dc9bb7f2dfc4f2f77b4fac958.png

Home Assistant 米家集成

982349f316d68953f5e41c85a50f8df2.png

Home Assistant 米家集成核心功能:

  • 支持米家设备导入到 Home Assistant 管理

  • 支持多账号同时登录

  • 支持本地控制和云端控制

  • 支持 Action 调试模式

米家集成对 Home Assistant 版本要求:

Core ≥ 2024.4.4
Operating System ≥ 13.0

米家官方推荐使用 Git 安装米家集成,便于版本更新管理

# 进入 Home Assistant 配置目录
cd config


# 克隆项目代码
git clone https://github.com/XiaoMi/ha_xiaomi_home.git


# 进入项目目录并运行安装脚本
cd ha_xiaomi_home
./install.sh /config

通过 Git 更新到特定版本,例如 v1.0.0

cd config/ha_xiaomi_home
git checkout v1.0.0
./install.sh /config

ha_xiaomi_home 目录结构:

miot:核心代码。
miot/miot_client:每添加一个用户需要增加一个 miot_client 实例。
miot/miot_cloud:云服务相关功能,包括 OAuth 登录、 HTTP 接口功能(获取用户信息、发送设备控制指令等)。
miot/miot_device:设备实体,包含设备信息以及属性、事件、方法的处理逻辑。
miot/miot_mips:消息总线,用于订阅和发布消息。
miot/miot_spec:解析 MIoT-Spec-V2 。
miot/miot_lan: 设备局域网控制,包括设备发现、设备控制等。
miot/miot_mdns: 中枢网关服务局域网发现。
miot/miot_network:获取网络状态和网络信息。
miot/miot_storage: 集成文件存储。
miot/test:测试脚本。
config_flow:配置流程。

Home Assistant 米家集成原理

云端控制模式

Home Assistant 米家集成云端控制模式使用了MQTT Broker与小米云通信,支持实时设备状态更新。

be55568f3d381e27463c0529a880f93f.png

米家集成向小米云 MQTT Broker 订阅关注的设备消息。当设备属性发生改变或产生设备事件时,设备向小米云发送上行消息, MQTT Broker 向米家集成推送订阅的设备消息。由于米家集成不需要向云端轮询以获取设备当前的属性值,因此米家集成能第一时间获知设备属性变化或事件发生。得益于消息订阅机制,米家集成只在配置完成时向云端查询一次所有的设备属性,对云端产生的访问压力很小。

米家集成需要控制设备时,通过小米云 HTTP 接口向设备发送控制消息。设备收到小米云发来的下行消息后做出响应。

本地控制模式

Home Assistant 米家集成本地控制模式需要设备与Home Assistant 保持在同一局域网内。

ed9542339a02cdfe0433122b34749dc2.png

小米中枢网关内包含一个标准的 MQTT Broker ,实现了完整的订阅发布机制。米家集成向小米中枢网关订阅关注的设备消息。当设备属性发生改变或产生设备事件时,设备向小米中枢网关发送上行消息, MQTT Broker 向米家集成推送订阅的设备消息。

米家集成需要控制设备时,向 MQTT Broker 发布设备控制消息,再经由小米中枢网关转发给设备。设备收到小米中枢网关发来的下行消息后做出响应。

米家智能家居生态平台

7464456db0e349c730c4a02d4e0d1acd.png

小米米家智能已经接入了超过261个品类,6000多个型号的智能设备,设备激活量已超过5.27亿,为用户提供了丰富的产品选择。作为一个全面开放的平台,小米米家已经成为9000+企业的信任与选择。

897eb7a88b386a8d008bf6dc074d63f3.png

小米米家的“Home Assistant米家集成”开源项目,为用户提供了更多的选择和可能性,用户能够根据自己的需求和喜好,创建属于自己的智能家居环境。例如,设置在特定时间段进行开关灯、洗衣服、煮饭等操作。

小米米家“Home Assistant米家集成”开源项目,已支持设备汇总:

  • 智能灯泡和插座:如 Philips Hue、LIFX、Yeelight 等。

  • 温控设备:如 Nest、Ecobee、Xiaomi 米家、Sonoff 等。

  • 安防系统:如 Ring、Nest Camera、Xiaomi 门窗传感器等。

  • 语音助手:支持与 Google Assistant、Amazon Alexa、Siri 等进行集成。

  • 智能家电:如智能冰箱、洗衣机等。

  • 传感器和监控设备:包括温度、湿度、空气质量、烟雾探测等。

Home Assistant 米家集成操作实战

小米账号登录

设置 > 设备与服务 > 添加集成 > 搜索“Xiaomi Home” > 下一步 > 请点击此处进行登录 > 使用小米账号登录。

a42cb33b64e976ed26476b69ac18a038.png

e514b363e19c4a6f7e9bbc260e581004.png

e30582d185581feac3b4c28ecc48dd77.png

79892f5012282ab2e9f2fc01b37ba68c.png

修改跳转地址为我们本地IP即可访问

c8adf745398b818af16a9c8b8614a6eb.png

添加 MIoT 设备

登录成功后,会弹出会话框“选择家庭与设备”。您可以选择需要添加的米家家庭,该家庭内的所有设备将导入 Home Assistant 。

7534e79add4831ce809d6381eb413379.png

修改配置项

在会话框“配置选项”中,可选择需要变更的配置项。您可以修改用户昵称或更新从米家 APP 导入的设备列表。

方法:设置 > 设备与服务 > 已配置 > Xiaomi Home > 配置 > 选择需要变更的配置项

Action 调试模式

开启Action 调试模式后,您可手动向设备发送带参数的 Action 控制指令。发送带参数的 Action 控制指令的用户入口显示为一个文本实体。

方法:设置 > 设备与服务 > 已配置 > Xiaomi Home > 配置 > Action 调试模式

账号安全性

f8a7d597ac0072906c4f0cd2acf4e8cb.png

小米米家集成及其使用的云端接口都由小米官方提供,用户在使用时需要使用小米账号登录来获取设备列表。不过由于Home Assistant平台的限制,登录成功后,用户的小米用户信息(包括设备信息、证书、token等)会明文保存在Home Assistant的配置文件中。因此,你需要妥善保管自己的配置文件,防止信息泄露。

结语

小米米家智能的开源项目为智能家居生态的构建提供了新的思路。通过开放合作,不同品牌、设备和平台可以进行资源的共享,共同构建一个更加完善和互联的智能家居生态。这不仅能够提升用户的使用体验,还能够推动整个行业的良性竞争,促进设备之间的互联互通。

往期推荐

☞ 高德地图: 红绿灯倒计时大揭秘

☞ Arduino 开源 ESP32 智能手表

☞ 源码交付 IoT智慧水务、污水处理

☞ 强制引入北斗定位,开启亿级IoT市场

☞ 这苦逼的IoT物联网我竟坚持了十年

☞ 打工人上班摸鱼, AI 监控老板行踪

f1af733cd1a0a03981b061ebbb9bb41e.png

01f3ed435a0a1080609d9b198f200a96.png

免责声明:本公众号所发布的内容来源于互联网,我们会尊重并维护原作者的权益。由于信息来源众多,若文章内容出现版权问题,或文中使用的图片、资料、下载链接等,如涉及侵权,请告知我们,我们将尽快处理。

a5d86dc0cfb0c984f0c1e987b3aae3d3.gif

e6f68ccf2371d5947de77620cfa2ec7a.gif

c0c53958f553368bfa1670e11c216481.gif

542b0c2ea38d2dc00b5ab2d1143f2799.gif

### 米家物联网使用软路由接入的方法配置教程 #### 软件环境准备 为了实现米家物联网设备通过软路由接入互联网,需先准备好运行环境。通常情况下,软路由基于Linux操作系统构建,因此需要安装支持相应协议栈的软件包来处理米家IoT通讯协议[^1]。 #### 配置网络连接 确保软路由能够正常访问外网,并设置好静态IP地址以便后续管理操作稳定可靠。接着,在路由器上开启端口转发功能,允许来自外部特定端口的数据流定向至内部指定服务器或设备,这对于远程控制至关重要。 #### 安装并配置Mosquitto MQTT Broker 由于大多数智能居平台都依赖于MQTT消息队列传输机制来进行低延迟的消息传递服务,所以在软路由环境中部署一个轻量级的MQTT代理(Broker),如`mosquitto`是非常必要的。具体命令如下所示: ```bash opkg update && opkg install mosquitto mosquitto-client ``` 编辑配置文件 `/etc/mosquitto/mosquitto.conf` 添加监听端口号以及认证方式等内容以满足安全需求。 #### 连接米家账号与本地MQTT Server 下载官方提供的Mi Home应用程序到手机终端完成注册登录过程;进入应用内的开发者选项页面绑定自定义网关——即指向已搭建好的私有化MQTT服务器实例。此时应该填写之前设定的相关参数信息,比如主机名/IP地址、端口等。 #### 开发者模式下的API调用 对于希望进一步定制化的用户来说,可以利用小开放平台所提供的RESTful API接口文档深入了解如何编程操控各类传感器节点的行为逻辑。值得注意的是,这一步骤可能涉及到OAuth2.0授权流程验证身份合法性等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值