一、简介
可以预见的,在米家智能化这块儿,Zigbee 路线已被事实上放弃,米家新的产品路线转为蓝牙 Mesh。在这个背景下米家推出了小米智能中枢网关,官宣可同时连接 200 个蓝牙 Mesh 设备和 100 个蓝牙设备,同时部分自动化可本地运行,无需再走米家云端。本文提到的米家自动化极客版便是基于该中枢网关,目前拼多多上 260+ 可入手。
与米家客户端相比,极客版展示了智能家居的所有预设属性、方法和事件,同时支持查询、判断、逻辑运算等流程的处理能力,能实现很多原米家无法实现的功能。举一个简单的例子:不同时间段下的最大亮灯时间限制,即开灯后如果是白天,便一小时后关灯,反之两个小时关灯,在米家中,自动化事件只能以事件发生 + 状态条件 = 设备执行来操作,单个自动化中缺少 else 流程,同时状态条件也无法指定时间段,单一流程根本无法实现这种需求,但是在极客版中使用条件卡片就很容易实现。
极客版以卡片为主,主要分为事件和状态节点两类,通过在不同卡片间的节点连线完整自动化流程的设计,故虽然名为极客版,但总体上手难度还是很容易的。
二、卡片
2.1 卡片类型
极客版卡片的使用对我最大的感悟是,千万不能代入编程的思想。就好比它的条件卡片就是一个条件,它即使是判断那也是事件型的,只有信号的触发响应一说,下面挑出三个我认为需要留意的卡片展开讲讲。
循环卡片
循环卡片可按照设置时间循环发出信号,同时支持停止循环操作。一种使用场景是将不能作为触发的智能设备通过循环查询间接实现触发功能。比如米家的饮水机,我希望它能在水箱没水时提醒我一下,但是饮水机无法作为触发,那么就用循环查询来实现:
由于目前极客版没有一个类似任务管理器的功能,循环卡片的使用还是要慎重,原则上尽量不用秒级循环,此外还可以在满足一定条件下减缓循环的进行,一个模拟示例:当循环连续触发三次后,停止循环运行,并在 30s 后开启循环。
延时卡片
使用延时卡片的时候曾想到一个问题:如果某个自动化很长,一次执行的所消耗的时间也很久,那么当该自动化二次触发时,上一次流程没有完全走完的情况下,第二次触发会放弃上一次流程中的未完节点直接重新开始吗?
正确答案是:极客版中的除计数外的余下状态类卡片,再次触发时会重置当前卡片的状态:循环会立即重置(不会说是再次创建一个循环即使上个循环没有停止),延时同样也会立即重置,同时由于延时没有停止一说,只能重置或走完,所以上图第一个延时被重置但还没走到第二个延时时,第二个延时会继续保留上一次的执行状态,存在听到两次滴滴的情况。
自定义状态卡片
自定义状态卡片可以视为一个布尔类型的变量,相比于事件更常用于状态,可以记录储存一个值。作为状态使用时,如果没有初始化的话默认为假,如下图,音响会播放:哒哒。
2.2 小技巧
对循环卡片的改进
上面的循环卡片的自动化实现了白天时最多三次的水箱缺水提醒,当然这样的循环设计很不优雅,如果再加入一个存在传感器会好很多:
操控未被支持的设备
由于极客版和米家是独立的,如果想操控不被支持的设备,那么可以尝试使用米家音响类设备,使用【智能音响-执行文本指令】静默执行相关命令(可在米家 App 中创建批量控制并分配通过小爱语音控制),其他的如果是不需要复杂流程的,还是可以继续丢给米家执行,不一定非要放到极客版里。
外网访问米家极客版
这个比较简单,虽然聊胜于无:映射任意端口到中枢网关地址的 80 端口,映射 8082 端口到中枢网关地址的 8082 端口。
三、案例
3.1 自动化亮灯
基础功能实现:
- 有人存在 + 环境光暗 = 开灯
- 无人持续 2 分钟 = 关灯
额外功能实现:
- 30 分钟内连续 3 次执行无人关灯,则下次关灯时延迟 10 分钟再关灯
- 如果灯不是通过该自动化打开的,则在触发无人 2 分钟下的 30 分钟后关灯
3.2 最大亮灯限制
根据时间段的最大亮灯时间限制,白天为 1 小时,夜晚为 2 小时,到时自动关灯。
四、结尾
目前极客版的问题还不少,还有很多地方需要改进,大的方向是来说是未来可期吧。不过说回来貌似不少人是为了能本地执行自动化而买网关的,而我就只是单纯看上了复杂流程的编写能力上了,哈哈。