Phuker's Blog

Phuker's Blog

马上订阅 Phuker's Blog RSS 更新: https://phuker.github.io/feeds/all.atom.xml

一种基于小米中枢网关米家自动化极客版的室内恒温控制系统

2024年1月8日 01:30

概述

洒家在开着空调睡觉时,老是会冻醒或者热醒,所以想在室内实现恒温。之前基于米家 APP 已经成功搞了一套恒温系统(具体方案以后再写),后来看到小米新出的小米中枢网关有一个米家自动化极客版的功能,可以基于图形化编程实现更丰富的自动化。洒家好奇图形化编程的表现力和效果如何,于是就买了一台玩了一下。这篇文章主要介绍洒家搞出来的这套实现室内恒温的方案,基于小米中枢网关的米家自动化极客版功能,编程读取米家智能温湿度计 3 的温度数据,负反馈控制空调、暖风机的开关与设置,从而自动化控制室内温度。同时讨论一下米家自动化极客版存在的产品设计问题。

按照洒家博客的惯例,本文不详细介绍基本操作、图形化编程概念等别人写过的最基础的东西。如果不熟悉这些基础知识,请先查阅小米官方和其他用户写的教程:

设备

可能由于功耗、续航、可移动性、减少发热对温度测量结果的影响等原因,目前小米所有的智能温湿度计,包括小米电子温湿度计小米米家电子温湿度计 Pro小米米家蓝牙温湿度计 2米家智能温湿度计 3,都是纽扣电池供电的,并且只支持通过蓝牙网关联网,不支持通过 Wi-Fi 联网。如果想要联网实现自动化,就需要一台能提供蓝牙网关的设备。本文介绍的方案中,小米中枢网关已经自带了蓝牙网关,因此米家空调伴侣 Pro 万能遥控版自带的蓝牙网关是重复的,可以替换为不带蓝牙网关的普通版空调伴侣智能插座。

如果空调是智能空调,可以直接接入米家,则不需要空调伴侣智能插座。如果空调是冷暖型的,则不需要额外购买制热的设备。洒家住的公寓只有一台单冷型空调,因此又额外购买了一台米家石墨烯暖风机用于制热。

程序和设置

米家自动化极客版部分

米家自动化极客版恒温控制自动化程序截图
米家自动化极客版恒温控制自动化程序(主程序部分)
米家自动化极客版恒温控制自动化程序截图
米家自动化极客版恒温控制自动化程序(子函数部分)

洒家的程序针对的是上文所述的单冷空调和暖风机两台设备,如果只有一台冷暖型的空调,对子函数部分稍加修改就可以正常工作。

编程和配置时需要注意:

  • 为避免出现竞争条件,开启/关闭设备和开启/关闭自动化的先后顺序应该是:
    • 开启时,先开启设备,再开启自动化。
    • 关闭时,先关闭自动化,再关闭设备。
  • 为防止设备频繁发出提示音,在开关和设置设备时,应该先检查该项目是否已经到达目标状态,如果已经到达目标状态就不做操作;或者直接禁用设备提示音。
  • 如果制热和制冷不是同一台设备,开启其中一台设备时,要关闭另一台设备。
  • 为防止频繁开启和关闭设备,目标温度需要设置成一个范围,温度上限和下限之间的间隔要合理设置,不能太小。
  • 目标温度范围是个性化的设置,对于不同的人和房间,合理的温度范围都有可能不同,需要多试一试,根据实际感受进行调整。

米家 APP 部分

创建 4 个手动控制,用于手动产生虚拟事件,从而控制自动化。

操作步骤:点击智能 - 右上角加号 - 手动控制,输入手动控制名称,点击添加执行动作 - 设备 - Xiaomi 中枢网关 - 产生虚拟事件,输入虚拟事件代码,点击右上角对勾确认,点击创建保存。点击刚刚创建的手动控制 - 更多设置,根据需要设置显示在房间页通过小爱语音控制以及添加到桌面快捷操作

4 个手动控制的名称和虚拟事件代码如下:

  • 开启自动制热event_enable_auto_heating
  • 开启自动制冷event_enable_auto_cooling
  • 关闭自动控温event_disable_auto_temperature
  • 查询自动控温状态event_query_auto_temperature_status
米家 APP 创建手动控制截图
米家 APP 创建手动控制

创建 4 个自动化,在点击查询自动控温状态后,响应小米中枢网关产生的虚拟事件,产生通知和日志,从而接收查询结果。

操作步骤:点击智能 - 右上角加号 - 自动化,开始创建自动化。点击添加触发条件 - 设备 - Xiaomi 中枢网关 - 虚拟事件发生,输入虚拟事件代码,点击右上角对勾确认;点击添加执行动作 - 通知,输入通知内容。点击创建,保存时输入自动化的名称。

4 个自动化的虚拟事件代码,通知内容和名称如下:

  • status_auto_cooling_enabled自动制冷已开启查询自动制冷状态为开启...

剩余内容已隐藏

查看完整文章以阅读更多