设备渐渐多起来了,为了便于自动化管理,想着把一些自动化规则改成通用的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/1bc65cb8d635d880473bc31b5e102c37/#file-motion-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/1bc65cb8d635d880473bc31b5e102c37/#file-motion-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