在 2020 年的 WWDC 上,Apple 在家庭的部分推出了一个全新的「自适应照明」功能,让智能灯泡可以根据日出日落条件来自动调整颜色和色温,以适应人们的自然节律和作息。

不过,这个功能推出至今已经两年,所支持的灯具依旧有限。例如在我自己用的智能灯具中只有飞利浦 Hue 可用,而早期购买的一些产品均不在支持之列。而且在功能性上,自适应照明功能也并不支持调节亮度,如果此前的灯泡设定亮度是 100%,那么起夜时虽然灯泡会调节为暖光,但依旧亮瞎眼。

但如果你和我一样拥有一个 Home Assistant 生态环境,那么这些问题都可以迎刃而解。只需要安装一款名为「Adaptive Lighting」的集成,就能够解锁只有昂贵的 HomeKit 正统配件才拥有的自适应照明功能。

关于 Adaptive Lighting 集成

Adaptive Lighting 这款集成诞生的时间并不算久,但支持的功能和兼容性却比 HomeKit 的自适应照明要好上许多。只要是能接入 Home Assistant 的智能灯具,都可以它来开启自适应照明功能。

而相比于 HomeKit 需要手动控制亮度,Adaptive Lighting 还可以进行自动调节。例如在太阳落山后,灯具在色温变暖之后还能自动将亮度调低,以适应夜间的照明氛围。反之,在日出时,灯具的色温会逐渐变冷,并将亮度缓缓调高。

除了这些基础功能外,Adaptive Lighting 还提供了「睡眠模式」。当睡眠模式打开后,被加入 Adaptive Lighting 的灯具都会将亮度降到最低,并将色温调节到最暖,帮你营造一个适合入睡的环境。

当然,Adaptive Lighting 不支持通过智能开关、智能插座这类设备来控制的灯。尽管你能够在 Adaptive Lighting 的设置菜单中找到这些灯具,但毕竟它们缺失了亮度和色温控制,就是再厉害的程序员也没有办法。

安装 Adaptive Lighting 集成

要安装 Adaptive Lighting,首先你需要一个运行了 Home Assistant 环境的硬件,无论是树莓派、NAS 或电脑都可以,安装教程可以参考之前的这篇文章。准备好 Home Assistant 的环境后,才能继续下一步。

 

如果你的 Home Assistant 安装了 HACS 商店,那么直接在商店中搜索 Adaptive Lighting 进行安装即可。此外,你也可以通过手动下载 Adaptive Lighting 的文件夹,并将 custom_components 里的 adaptive_lighting 文件夹整个放入 Home Assistant config 目录下的 custom_components 文件夹中来进行安装。

如果 config 下没有 custom_components 文件夹,手动创建一个就行

安装完成后,重启一下 Home Assistant。不过在设置插件前,需要先将你的家庭定位更改到对应的位置,否则 Home Assistant 会默认你在阿姆斯特丹,并按照阿姆斯特丹的环境来调节你的灯光。

在「配置 > 系统 > 通用」中,我们就能找到编辑位置的选项。点击进入后,就可以在地图上将你家的地理位置拖动到实际地点。需要提醒的是,如果你后续不需要做地理围栏的制动化,那么就不需要非常精确,但最好还是在同一个市的范围内。

设定好地理位置之后,再进入到「配置 > 设备与服务」中,点击右下角的「添加集成」,搜索 Adaptive Lighting,即可进入图形化的配置界面。

第一步,我们需要给自适应照明的灯组设定一个实例名称,只要是你能看懂的名字就行。我推荐可以将房间作为分类名称,例如主卧的自适应照明灯组、起居室自适应照明灯组、次卧自适应照明灯组等。设定好名字后,Home Assistant 会提示已经成功创建了配置。再对应的配置中,点击卡片左下角的「选项」,就进入了详细的设置界面。

如果你看到这里一大串的英文菜单有点懵,也大可不必担心,因为 Adaptive Lighting 的默认设置体验就已经非常好了,需要手动调整的内容其实不多。不过,为了方便你理解每一个条目对应的设定内容是什么,我这里还是做了尽量详细的翻译,你可以自行根据自身需求来调节参数。

英文参数中文翻译备注
lights灯具选择在列表中勾选你需要添加到该自适应照明分组的灯具
prefer_rgb_color优先使用色彩控制而非色温控制可根据你偏好的效果选择是否开启
initial_transition开灯过渡:当灯由「关」变为「开」的时长单位:秒
sleep_transition当「睡眠模式」被打开时,转换时间是多长单位:秒
Transition time when applying a change to the lights灯改变状态的过渡时间是多久单位:秒
interval调整灯光的频率单位:秒
min_brightness一个周期内灯光的最低亮度可选择是否开启,最低为 1%,最高为 100%
max_brightness一个周期内灯光的最高亮度可选择是否开启,最低为 1%,最高为 100%
min_color_temp一个周期内灯光的最低色温单位:开尔文
max_color_temp一个周期内灯光的最高色温单位:开尔文
sleep_brightness开启睡眠模式时灯光的亮度可选择是否开启,最低为 1%,最高为 100%
sleep_rgb_or_color_temp睡眠模式下优先使用色彩控制而非色温控制 
sleep_color_temp睡眠模式下灯具的色温单位:开尔文
sunrise_time手动设定一个固定的日出时间设定为 None 时将根据地图位置自动获取
max_sunrise_time暂不明同上,猜测是类似功能
sunrise_offset用正的或负的偏移量改变日出时间单位:秒
sunset_time手动设定一个固定的日落时间设定为 None 时将根据地图位置自动获取
min_sunset_time暂不明同上,猜测是类似功能
sunset_offset用正的或负的偏移量改变日落时间单位:秒
only_once是否只在开灯后才调整灯光 
take_over_control检测灯在亮时是否被手动或其他自动化控制,若是则停止自适应照明 
detect_non_ha_changes检测灯是否受到「light.turn_on」服务以外的控制,若是则停止自适应照明需要启用「take_over_control」后才能开启这个选项,并且它会调用「homeassistant.update_entity」甚至「interval」服务
separate_turn_on_commands是否使用单独的「light.turn_on」服务控制颜色和亮度仅有部分类型的灯需要设定这个命令
adapt_delay从灯打开到进入自适应状态灯光之间的等待时间,可避免开灯后立即进入自适应照明模式造成的闪烁单位:秒

其实,我们使用默认配置即可或者相当优秀的体验。除非你有额外调整的希求,否则建议在点选设备后直接按照默认参数设定

最后,滑动到卡片最底部并点击右下角的「提交」按钮,一切的准备工作就搞定了。

使用

与 HomeKit 内建到灯具控制页面中的操作不同,Adaptive Lighting 的操作逻辑是为每个实例映射为四个开关:

我们以起居室自适应照明灯组为例,点击到实例中,我们可以看到它有四个开关实体。通过控制这四个开关,我们就能选择让灯具是否自定义调节亮度(Adapt Brightness)和色温(Adapt Color),以及是否进入睡眠模式(Sleep Mode)。而如果你想关闭自适应照明功能,只需要关掉 Adaptive Lighting 的总开关即可。

如果你的控制设备是 Apple 家庭 App,那么你还可以用 HASS Bridge 将四个开关映射到 HomeKit 中,方便用 Siri 来控制或在 HomeKit 中构建自动化联动其他配件 —— 当然,Home Assistant 本身的自动化功能也没有问题。

打断机制

打断机制是智能家居自动化中极为重要的一环。所谓打断机制,就是在设备进行自动化调整时,你发现此时并不需要这个自动化操作,于是向设备发出指令停止执行。在 Adaptive Lighting 中,作者是这样描述这款集成的打断机制的:

在大多数情况下,让你的灯实现自适应照明是坠吼的,但在某些时候,你可能还是想要手动调节灯光的亮度和颜色,并持续保持手动的设定。为此,Adaptive Lighting 会在启用了 take_over_control 服务时,自动检测是否有人或什么自动化操作改变了灯的状态。



若此时灯是亮的,并且有其它改变灯状态的操作,那么这盏灯就会被标记为「手动控制中」,Adaptive Lighting 集成将停止对这盏灯的颜色或亮度进行设置,直到它再次关闭后打开(或者你使用 adaptive_lighting.set_manual_control 服务再次调用了这盏灯)。这个打断机制是通过实时读取 light.turn_on 中所有灯具的状态,并监控有没有来自非 Adaptive Lighting 的灯具控制操作来实现的。

此外,当 detect_non_ha_changes 服务启用时,也可以检测非由灯产生的灯的更改,例如通过其他 app 或通过 Home Assistant 之外的控制。这是通过比对目前灯光的参数和开启自适应照明之前使用的参数来实现的。

当一个灯被标记为「手动控制」时,就会触发一个名为adaptive_lighting.manual_control 的事件,以便你可以在自动化中使用它。

如果你感觉上面你这段话简直是天书,那么你只需要注意这一点即可:

当你手动操作了某个开启自适应照明的灯之后,Adaptive Lighting 就会停止对这盏灯的控制,而一直按照你手动调节的参数来亮起。要重新开启这盏灯的自适应照明,就需要关掉并再次打开,这样 Adaptive Lighting 才会重新接管。

对于其他的参数,大都是为了用于高阶的自动化,作为普通用户的我们其实大都不需要如此深入的了解,基础的功能便能够满足。

若你有兴趣,可以阅读作者的 Readme 进项详细设定。

一个额外的提醒

这是一个过来人踩过的坑。由于不同厂家对于不同灯具的校色有着很大的出入,因此如果你现在考虑入手智能家居,那么灯具照明的选择上尽量用同一家公司同系列的产品,尽量不要多厂家或多系列产品混用 —— 甚至连飞利浦 Hue 和 Wiz 这种同一品牌不同系列的也最好避免。

举个例子,我的飞利浦 Hue 灯已经有些偏暖橘色了,而 WLED 的灯带却依旧黄不拉几,然而在 App 上它们显示的却是同一个颜色。一般来说,同一系列的灯具在出厂时都会统一调色,能让家庭中的灯尽量都在自适应照明中呈现一致的观感,减少因为厂家间对亮度和颜色的定义差别而导致的观感不一问题。

以上就是本文的全部内容了,希望可以帮你打造一个更适宜也更智能的家居照明。

> 少数派请你做地图:城市声音收藏夹火热征集中,期待你创作的城市之声 🎧

> 下载少数派 2.0 客户端 、关注少数派公众号,解锁全新阅读体验 📰

> 实用、好用的正版软件,少数派为你呈现 🚀