我的智能家居逻辑备忘

把智能家居弄的复杂了,记一下。

角色

分为:无人、主人、未设置、客人、未知
触发:谁开门用谁的角色执行自动化,其他方式开门为客人(例如临时密码开门)。开启看家模式后为无人。无人,但传感器识别到有人,则为未知。
切换角色:进屋后想切换角色,在回家模式20秒后,按智能家居键可以循环切换其他角色。
定制化:先录入指纹锁ID和面部锁ID,来作为角色识别。不同角色可以根据喜欢开启和关闭自动化,所有的自动化都加了开关,想用哪个自动化打开哪个。
例如,进入厨房自动打开平板灯,如果某人不想用这个,就在某人的角色下把这个自动化开关设为0。这样,在某人的角色下,就进入厨房就不会开平板灯了。其他同理,需要哪些开哪些。
恢复:如果定制的自动化用其他方式改动过,想恢复会角色定制,连按5次玄关灯键。

模式

分为:默认、夜间;回家模式、看家模式、起床模式、睡眠模式、观影模式;
一般情况,模式分为:模式开启执行自动化、模式状态中、模式退出执行自动化
模式状态中,设备开启先查询是什么模式,不同模式开启不同设备模式。
模式间的一些逻辑:
起床,手动触发,起床是执行动作,起床后是默认模式;
睡眠,手动触发,睡眠是执行动作+模式状态;起床模式结束睡眠模式;
回家,开门后按智能家居键触发,回家是执行动作,没模式状态,回家后用角色做判断;
看家,关门后按门锁布防按钮,看家是执行动作,没模式状态,看家用角色无人;
夜间模式是固定某个时间段,是夜间模式;
观影,手动触发,观影是执行动作+模式状态;观影退出也需要手动触发;

其他模式

省电模式:发觉有些设备开着就耗电,所以弄了这个,不在家的时候能断电断电,后面看情况弄。
离家后15分钟为离家状态,15分钟后触发省电模式,15分钟内开门取消倒计时。回家手机蓝牙连到wifi取消省电模式,在离家状态不会取消省电模式。
早上唤醒:早上起床的一系列唤醒自动化,类似于闹钟。现在没办法做到精确调时间,只做了长按蓝牙开关开启关闭这个自动化。
窗帘每1分钟拉开5%好像是,直到全部打开,小爱播天气和音乐。这期间我按蓝牙开关就停止唤醒自动化并让小爱停止播放。

设备

设备一般分为3种类型的自动化:触发、状态、执行
面向对象编程的思路,尽量把设备单独拎出来设置每个设备的自动化。
例如,回家模式只负责传开灯命令,而设备得到开灯命令,会根据当前模式、角色、自动化开关情况,判断开什么照明模式,是否调整色温等,这些都放在灯的“执行”里。而灯的开关、当前模式状态,都实时记录为变量,放在“状态”里,方便查询调用。
例如,需要小爱播放文案的时候,绝大部分模式只需传文案到A变量,和发出播放命令。而语音互动中心,接到播放命令,会先查询当前是不是在语音询问中,是就延后播放,再查询人在传感器哪个房间有人,就在哪个房间播,都有人播放优先级客厅>次卧>主卧,然后调A变量播放文案进行播放。

灯光系统

灯光必须独立拿出来做,因为这里涉及的自动化太多了。

灯具设备自动化

灯具是几种照明模式循环的,每次关闭后打开,会在明亮模式、温馨模式、夜灯模式间切换。例如你打开是明亮模式,关闭后打开,就是温馨模式,再关闭打开就是夜灯模式,然后循环。
切换到非温馨模式,超过30秒后,如果关闭再打开,都会自动回到温馨模式。以此实现开灯默认温馨模式。
开灯是温馨模式,则色温、亮度跟随自动化的设置来变化,其他模式亮度色温不变化。色温变量变化的时候,如果灯开着,且是温馨模式,会实时变化色温。

色温、亮度自动化

色温和亮度变量,是根据日出日落时间,来确定开始变化的时间点,然后每分钟或每2分钟计算色温值,亮度值。具体的设置有点复杂,会用到多个变量,用到函数来计算。

人来灯亮

语音互动中心

就是很多地方并不适合全自动,我希望给我做选择。小爱会问我是否做什么,我回答是否来分别执行不同自动化。其实就是一个是/否的弹窗。如果当前在询问中,新询问会延后。但现在还没完全改好,也没做排队功能。
...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容