前言想想还是得写这个。 夏天了,促销买了个米家空调伴侣2,实际用了一下,在温控方面的实现是非常复杂的,所以单就执行条件的判断逻辑写一篇教程。 图片是为了凑数,主要是文字教程。 只执行一次。万恶之源就是这个。称之为“只执行一次。” 米家的智能是没有这个设置的,但他默认只执行一次,这样就不会出错。尤其是空调伴侣这种红外线控制。如果不只执行一次,那在满足条件的情况下它会不断的开机,云端每检测一次就会开机一次,你的空调就会滴滴滴响个不停。直到条件不再满足。 那它是如何做到的?是从执行条件的判断上,下手的。 举个例子, 如果“大于25度”就执行“开空调”。 这里的“大于25度”,它判断的是绝对值,不是相对值。 绝对值只有一瞬间,从25度变成25.1度的那一刻,因为只有一瞬间会满足条件,所以就默认“只执行一次”了。 那这里就出现一个问题。 如果是26度变成26.1度,在米家看来,它仅满足“大于26度”,而不满足任何其他条件,不满足“大于25度”。 虽然他确实大于25度,在我们的概念里是相对值,相对现在的温度26.1度,是大于25度的。但他判断的是绝对值,大于是个动词,他识别的是这个动词产生时的动态瞬间,是唯一的,绝对的。 因为这个机制,以下的智能是无法实现的。 如果同时满足“大于25度,小于30度”就执行“空调开到22度” 因为这里两个动词互相矛盾了,要求温度同时升高和降低,是违反自然规律的,在现实世界中是不可能实现的。 这一条智能直接就失效了,它就相当于不存在。因为执行条件永远无法满足。 解决方法米家里还有一个机制。可能就是为了解决这个问题而存在的,可以把判断逻辑的绝对值改成相对值,方法是,在设置时,由用户给予一个“只执行一次”的属性。只要有这个属性的存在,它判断时自动会变成相对值。 只要加上这个属性,上面那条温控智能,就可以执行了。 这个属性我找了一圈,唯一可以放在米家执行条件里,并且可控的动态瞬间只有“设备的开关。” 比如说空气净化器开机或者关机,注意这里也是绝对值,并不是“它是开机的。”而是“它在开机。” 写法是: 如果同时满足“空气净化器开机,温度大于25度”就执行“开空调” 这个写法和: 如果“温度大于25度”就执行“开空调” 的区别在于,下面这条需要等待出现“大于25度”这个动态,才能识别到开空调。 如果这条智能是被手动执行的,而在执行之前室温已经大于25度了,那他就等不到25.1度了,已经错过了。这就失去了判断温度的能力。而之后的温度变化,他是认识不到“大于25度”的,这条智能不会被执行了,至少不会立刻执行,直到温度降回25度,并且又大于等于25.1度。 而第1条智能它会立刻判断当下的温度,无论是多少度,比如30度,因为绑上了一个可控的瞬态,赋予了“只执行一次”的属性。因此判断条件变成了相对值。 所以即便是30度,它也会识别到,这是大于25度的。这就真正和我们的常识相符了,他就起作用了。 如此一来,你就可以实现这样的场景。 你回家之前对小爱说“我要回来了。” 然后到你回到家,房间的温度、湿度、PM2.5,以及你要用的设备,全部都就绪了。 这句话包含了无数条智能的判断和执行。 比如开电脑,开空调,开净化器,开各种东西。 这些东西是否打开是有判断条件的,是有智能设置的。 而这些智能当你不在家的时候是关闭的,因为没有需要。不然它会24小时保持房间状态,是费电的。 在发现“解决方法”之前只能无条件打开这些设备,然后让再做判断。 现在使用相对值以后,只要打开智能,就可以正常判断,然后才执行。 你不需要无条件的打开空调,这个是否需要开空调的判断,会有小爱帮你完成。不要觉得这仅仅是一个判断,自己来做也可以,当米家设备变得很多的时候,这可能是5个10个甚至更多的判断。 而你要做的仅仅是把它绑在一句话上。 当然,如果要实现上面那个调温温控的智能,又会变得很复杂。因为每一次自动调温,都得开关一个设备,来赋予属性。而它本质是通过第三方温度计,来实现空调调温,房间恒温。设定值需要大量的摸索,而且恒温水平越高越是频繁。简简单单一个通过米家来恒温房间的设置就无比的复杂。 结语抛砖引玉就到这儿了,拜拜。 |
香港服务器多少钱一个月?哪家的香港服务器
4核4g6M50G盘20G防御云服务器价格多少钱?T
特发集团与华为签署全面合作协议
【身边的AI】高空抛物智能追溯解决方案,站
中海&华为签署战略深化合作协议
华为赵博:数字化转型成为地产企业最确定的
这款TCL K6V指纹锁不到千元即可买到?大品
凯迪仕指纹锁哪款好用?买凯迪仕指纹锁选哪