设备渐渐多起来了,为了便于自动化管理,想着把一些自动化规则改成通用的blueprint蓝图模板,首先就是感应灯的Blueprint,看了一下国外的一些感应灯的blueprint,但是都不是我的菜,还是得自己写.
不写不知道,一写才明白blueprint有多坑.
因为HA自动化限制,以及从降低服务性能开销出发,我把开关灯分解成三个蓝图: 感应开灯,感应关灯, 以及根据时间调整亮度.
最开始我是将开关灯放在一起,开灯后用wait_for_trigger来关灯 ,运行一段时间下来,发现偶尔无法关灯(长时间的处于开灯状态下),初步怀疑是等待时间太长被HA干掉了. 所以现在干脆分开,彻底独立.
三个蓝图,感应开灯, 感应关灯和亮度调整初步完成,写得头大. 现在所有条件都可选了,通用性也就差不多了,, 仅供参考.
调整亮度准备参考国外昼夜自动节律亮度改进.
刚写完,所以, 有什么问题尽管提.
感应开灯脚本
说明: 当运动传感触发"on"并且太阳下落到指定的高度角以及光照低于指定的最低光强,并且是在指定的时间范围就开灯
Light 灯(必须)
Presence Sensor 表存在的传感实体(可选)
- 传感实体可以是
device_tracker、input_boolean、binary_sensor 以及任何可以切换到“on”或“home”的实体。它也可以是一个可以切换到“playing”或“paused”的 media_player(当媒体播放器处于正在播放或暂停状态时开灯)。
Light on start time 开灯起始时间(可选)
Light on end time 开灯结束时间(可选)
Sunset elevation 日落太阳高度角,当低于该高度角开灯(可选)
Illuminance Sensor 光强传感(可选)
Illuminance level 最小亮度(可选,需搭配光强传感),当亮度低于该值时开灯
文件在(gist): 可直接复制粘贴网址: https://gist.github.com/snowyu/1 ... otion-light-on-yaml
感应关灯脚本
说明: 当没有感应到人, 或者太阳上升到指定的高度角或者亮度超过指定的光强, 或者时间是在指定的关灯范围,那么延迟指定时间后关灯:
Light 灯(必须)
Presence Sensor 表存在的传感实体(可选)
- 传感实体可以是
device_tracker、input_boolean、binary_sensor 以及任何可以切换到“on”或“home”的实体。它也可以是一个可以切换到“playing”或“paused”的 media_player. 当传感实体不处于on, home, playing,paused状态时关灯.
Light off start time 关灯起始时间(可选)
Light off end time 关灯结束时间(可选)
Sunrise elevation 日出太阳高度角, 当超过该太阳高度角时关灯(可选)
Illuminance Sensor 光强传感(可选)
Illuminance level 亮度(可选,需搭配光强传感) 当超过光强(仅当光强传感设置才有效)关灯 如果设置请考虑要超过灯自身光强
Wait time before turn off 关灯前等待时间
文件在(gist): 可直接复制粘贴网址: https://gist.github.com/snowyu/1 ... tion-light-off-yaml
根据昼夜节律调整灯光亮度色温脚本
昼夜节律照明亮度自动调节
说明: 可以对设置的一组(已经打开的)灯根据时间(昼夜节律)以及太阳的位置调整灯光亮度,色温和色调. 简单点说,用于睡觉的时候降低灯光亮度
-
适用于支持不同类型颜色模式的灯光。
- 根据昼夜节律调整亮度、温度和色调。
- 昼夜周期可以根据日出和日落时间来定义。
- 日出和日落时间也可以手动定义。
- 日出和日落可以根据太阳高度来定义。
- 灯光属性可以根据各种功能进行调整。
- 可以配置最小和最大亮度和温度。
- 在太阳高度范围内逐渐调暗灯光
-
打开灯时自动激活。
- 在开启服务未定义灯光亮度或颜色时运行。
- 当开启服务还定义了灯光属性时不运行,例如在场景中。
- 手动更改灯光属性时停止运行。
-
start time 调整灯光亮度的 起始时间
-
end time 调整灯光亮度的结束时间
-
Lights 设定的一组灯光
-
Circadian cycle 昼夜循环类型
Sun 使用实际的日出和日落时间(根据你最开始在HA配置的家的经纬度计算得出)
Time 自定义日出和日落时间
-
Circadian manual sunrise time 自定义日出时间, 昼夜循环类型为 Time 才有效
-
Circadian manual sunset time 自定义日落时间, 昼夜循环类型为 Time 才有效
-
Circadian function 昼夜节律功能,确定用于昼夜周期调整的功能。
- 使用仅白天或仅夜间来调整白天或夜间的灯光。
- 昼夜半正弦函数类似于全周期余弦。
- 选择昼夜余弦函数以获得更平滑的过渡。
- 选择无以跳过昼夜周期调整。
Day-only (half-sine) 仅调整白天的灯光(半正弦模式)。
Day-only (cosine) 仅调整白天的灯光(余弦模式)。
Night-only (half-sine) 仅调整夜间的灯光(半正弦模式)。
Night-only (cosine) 仅调整夜间的灯光(余弦模式)。
Day & night (cosine) 调整白天与夜间的灯光(余弦模式)
None 禁用该功能
-
Circadian brightness at midday: 灯光的最高亮度(正午)
-
Circadian brightness at midnight: 灯光的最低亮度(午夜)
-
Circadian temperature at midday: 灯光的最大色温(正午)
-
Circadian temperature at midday: 灯光的最小色温(午夜)
-
Circadian default hue: 灯光的默认色调, 设置禁用昼夜节律照明亮度时要使用的色调值。
-
Circadian default saturation: 灯光的默认饱和度,设置禁用昼夜节律照明亮度时要使用的饱和度值。
-
Dim lights on based on sun elevation: 是否根据(日落)太阳高度调整灯光,通常,在日落时灯光会变亮
-
Dim lights off based on sun elevation: 是否根据(日出)太阳高度关闭灯光,通常,在日出时灯光会变暗
-
Inverse light dimming behaviour: 是否反转调光行为: 日出时灯越来越亮,日落时越来越暗。
-
Sunrise start elevation: 日出开始时候的高度角
- 根据太阳高度定义日出的开始。
- 通常,这是灯光开始变暗的时候。
- 当调光反转时,这就是灯亮的时候。
-
Sunrise end elevation: 日出结束时候的高度角
- 根据太阳高度定义日出的结束。
- 通常,这是灯完全关闭的时候。
- 当调光反转时,这是灯光刚刚开始点亮的时候。
-
Sunset start elevation: 日落开始时候的高度角
- 根据太阳高度定义日落的开始。
- 通常,这是灯亮起的时候。
- 当调光反转时,这就是灯光开始变暗的时候。
-
Sunset end elevation: 日落结束时候的高度角
- 根据太阳高度定义日落的结束。
- 通常,这是灯光完全变亮的时候。
- 当调光反转时,这是灯关闭的时候。
文件在(gist): 可直接复制粘贴网址: https://gist.github.com/snowyu/1bc65cb8d635d880473bc31b5e102c37#file-lights-bright-yaml