『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 4158|回复: 11

[插件集成] 自制感应灯蓝图 Blueprint: 根据感应高度角光强自动开关灯

[复制链接]

19

主题

290

帖子

1510

积分

论坛技术达人

积分
1510
金钱
1205
HASS币
130
发表于 2022-4-23 11:00:18 | 显示全部楼层 |阅读模式
本帖最后由 riceball 于 2022-4-28 20:53 编辑

设备渐渐多起来了,为了便于自动化管理,想着把一些自动化规则改成通用的blueprint蓝图模板,首先就是感应灯的Blueprint,看了一下国外的一些感应灯的blueprint,但是都不是我的菜,还是得自己写.
不写不知道,一写才明白blueprint有多坑.

因为HA自动化限制,以及从降低服务性能开销出发,我把开关灯分解成三个蓝图: 感应开灯,感应关灯, 以及根据时间调整亮度.

最开始我是将开关灯放在一起,开灯后用wait_for_trigger来关灯 ,运行一段时间下来,发现偶尔无法关灯(长时间的处于开灯状态下),初步怀疑是等待时间太长被HA干掉了. 所以现在干脆分开,彻底独立.

三个蓝图,感应开灯, 感应关灯和亮度调整初步完成,写得头大. 现在所有条件都可选了,通用性也就差不多了,, 仅供参考.

调整亮度准备参考国外昼夜自动节律亮度改进.

刚写完,所以, 有什么问题尽管提.

感应开灯脚本

说明: 当运动传感触发"on"并且太阳下落到指定的高度角以及光照低于指定的最低光强,并且是在指定的时间范围就开灯

  • Light 灯(必须)
  • Presence Sensor 表存在的传感实体(可选)
    • 传感实体可以是 device_trackerinput_booleanbinary_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_trackerinput_booleanbinary_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

评分

参与人数 2金钱 +25 收起 理由
+ 20 感谢楼主分享!
zero_33 + 5 感谢楼主分享!

查看全部评分

回复

使用道具 举报

7

主题

91

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
金钱
1083
HASS币
10
发表于 2022-4-23 19:44:46 | 显示全部楼层
不同人需求不一样,而且不同房间需求也不一样,看看我的客厅顶灯和夜灯图、卫生间顶灯夜灯浴室灯图。
1E4F9921-196F-4EC5-AC59-DC1D64C1DB65.png 3E693072-EDC1-421B-8073-2759F711EEB0.png
回复

使用道具 举报

19

主题

290

帖子

1510

积分

论坛技术达人

积分
1510
金钱
1205
HASS币
130
 楼主| 发表于 2022-4-23 19:52:56 | 显示全部楼层
更新, 修复一点bug, 以及将太阳高度角, 开关灯时间, 光强配置为可选项.
回复

使用道具 举报

19

主题

290

帖子

1510

积分

论坛技术达人

积分
1510
金钱
1205
HASS币
130
 楼主| 发表于 2022-4-23 19:56:45 | 显示全部楼层
piaoling 发表于 2022-4-23 19:44
不同人需求不一样,而且不同房间需求也不一样,看看我的客厅顶灯和夜灯图、卫生间顶灯夜灯浴室灯图。

...

是的,每个人的需求都不一样,通用很难,至少目前的HA自动化架构下做起来很难. node-red的代码好管理么, 感觉比HA自带的还不好管理. blueprint 也麻烦, 比node-red好一点的是少开一个docker.
回复

使用道具 举报

19

主题

290

帖子

1510

积分

论坛技术达人

积分
1510
金钱
1205
HASS币
130
 楼主| 发表于 2022-4-24 14:36:03 | 显示全部楼层

4-24 - Changes 错误修正, 除灯以外所有条件均为可选了

回复

使用道具 举报

8

主题

229

帖子

2000

积分

金牌会员

Rank: 6Rank: 6

积分
2000
金钱
1771
HASS币
0
发表于 2022-4-26 22:42:34 | 显示全部楼层
piaoling 发表于 2022-4-23 19:44
不同人需求不一样,而且不同房间需求也不一样,看看我的客厅顶灯和夜灯图、卫生间顶灯夜灯浴室灯图。

...

虚拟开关的作用是什么
回复

使用道具 举报

19

主题

290

帖子

1510

积分

论坛技术达人

积分
1510
金钱
1205
HASS币
130
 楼主| 发表于 2022-4-28 20:54:06 | 显示全部楼层
+ 新增 根据昼夜节律调整灯光亮度色温脚本
回复

使用道具 举报

8

主题

158

帖子

1227

积分

金牌会员

Rank: 6Rank: 6

积分
1227
金钱
1069
HASS币
0
发表于 2022-5-2 21:12:45 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

201

帖子

2711

积分

金牌会员

Rank: 6Rank: 6

积分
2711
金钱
2510
HASS币
0
发表于 2022-5-3 21:14:20 | 显示全部楼层
piaoling 发表于 2022-4-23 19:44
不同人需求不一样,而且不同房间需求也不一样,看看我的客厅顶灯和夜灯图、卫生间顶灯夜灯浴室灯图。

...

请问循环倒计时用的哪个节点。
回复

使用道具 举报

7

主题

91

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
金钱
1083
HASS币
10
发表于 2022-5-3 21:16:53 | 显示全部楼层
点来点去 发表于 2022-5-3 21:14
请问循环倒计时用的哪个节点。

node-red-contrib-timeout节点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 03:08 , Processed in 0.207025 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表