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

标题: 请问ha+esp32如何实现长时间缓慢变光 [打印本页]

作者: 你好啊!    时间: 2023-7-23 15:50
标题: 请问ha+esp32如何实现长时间缓慢变光
  想请教各位大佬,在ha+esp32控制单色LED的情况下,如何实现如:9点亮度20%缓慢提升到10点亮度30%或14点亮度50%缓慢降低到15点亮度30%,而不是到时间迅速改变亮度。
作者: 你好啊!    时间: 2023-7-23 16:10
现在碰到的问题是ha里写自动化只有一个增加减少亮度的选项且是固定增加减少10%的亮度,不知道怎么改成一次执行只增加额定数值,esphome里也不清楚怎么增加缓慢调整亮度的选项,调整亮度的数值和变化时间只能是按键执行或者事件触发,无法做出ha里的选项。求各位大佬解惑谢谢。
作者: leeyao    时间: 2023-7-23 17:43
Adaptive Lighting 插件
作者: 你好啊!    时间: 2023-7-23 18:22
leeyao 发表于 2023-7-23 17:43
Adaptive Lighting 插件

好的我尝试一下多谢
作者: 你好啊!    时间: 2023-7-23 20:26
Adaptive Lighting 如何關聯我的燈泡都搞不懂2333

作者: 你好啊!    时间: 2023-7-24 09:09
可能用的是白光LED用pwm調光的原因AdaptiveLighting並不好用。。。

作者: DDDear    时间: 2023-7-24 09:42
esp刷wled后用AdaptiveLighting很方便
作者: polisher    时间: 2023-7-24 17:34
虽然不太明白你的需求,但功能是支持的。

eshphome(文档)
  1. light:
  2.   - platform: ...
  3.     # ...
  4.     effects:
  5. - pulse:
  6.           name: "Fast Pulse"
  7.           transition_length: 0.5s
  8.           update_interval: 0.5s
  9.           min_brightness: 0%
  10.           max_brightness: 100%

  11. 配置变量:
  12. name(可选,字符串):效果的名称。默认值为 。Pulse
  13. transition_length(可选,时间):每个过渡的持续时间。默认值为 。1s
  14. update_interval(可选,时间):开始新过渡的时间间隔。默认值为 。1s
  15. min_brightness(可选,百分比):最小亮度值。默认为0%
  16. max_brightness(可选,百分比):最大亮度值。默认为100%
复制代码
HA(文档)
  1. service: light.turn_on
  2. data:
  3.   transition: 20000
  4.   brightness: 5
  5.   brightness_step: 1
  6. target:
  7.   entity_id: light.XXXXXXXXXXXXXX
复制代码



作者: 你好啊!    时间: 2023-7-25 13:31
polisher 发表于 2023-7-24 17:34
虽然不太明白你的需求,但功能是支持的。

eshphome(文档)

首先多謝大佬。
其次我的需求是可以在ha里手動設置出LED燈日出日落的效果。
比如手動設置9點開燈開燈亮度20%,然後亮度緩慢上升到比如12點到80%。就是说3小時過度時間从20%过度到80%。想实现这种效果。
作者: 你好啊!    时间: 2023-7-25 13:35
然后我想问个很蠢的问题LED我用的pt4115的恒流驱动,驱动有个DIM脚可以pwm调光。
我使用esp32c3输出pwm是需要在ESP32的GPIO与DIM中间串联电阻吗?我在测试的时候GPIO与恒流驱动的DIM脚直连了不知道是不是这个原因把esp32烧了。。。
作者: 你好啊!    时间: 2023-7-25 13:36
DDDear 发表于 2023-7-24 09:42
esp刷wled后用AdaptiveLighting很方便

好的多谢我尝试下不过板子烧了要买新板子了
作者: 你好啊!    时间: 2023-7-25 13:59
polisher 发表于 2023-7-24 17:34
虽然不太明白你的需求,但功能是支持的。

eshphome(文档)

请问ha的代码是写在什么地方我试了下脚本和自动化均报错:Message malformed: extra keys not allowed @ data['service']
消息格式不正确:不允许使用额外的键 @ 数据['service']
作者: polisher    时间: 2023-7-25 14:49
你好啊! 发表于 2023-7-25 13:35
然后我想问个很蠢的问题LED我用的pt4115的恒流驱动,驱动有个DIM脚可以pwm调光。
我使用esp32c3输出pwm是需 ...

没了解过PT4115,简单查了一下,其DIM脚一般接热敏电阻,通过检测温度来自动控制电流,避免LED过热,并非引入ESP32控制。DIM内部接有1M的上拉电阻,您可自行查询ESP32相关资料,判断其分压是否会导致烧毁。
关于模拟日出日落,可通过自动化就能简单实现。原理:通过HA自带有SUN这个设备,其"太阳高度"或“太阳方位角”两个实体任选其一即可,将实体值与灯光亮度形成公式关联即可。
作者: 你好啊!    时间: 2023-7-25 21:00
polisher 发表于 2023-7-25 14:49
没了解过PT4115,简单查了一下,其DIM脚一般接热敏电阻,通过检测温度来自动控制电流,避免LED过热,并非 ...

哇偶多谢,关联“太阳高度”或“太阳方位角”这个思路之前确实没想到,感谢。
pt4115 dim脚的问题其确实可以通过pwm与电压两种方式,这个我有翻阅手册,引入esp32用pwm控制是没问题的。
烧毁esp32的原因暂时怀疑有三种可能:1,降压模块供电问题。2,5v接线错误。3,因为是测试没有使用杜邦端子接线可能接线在测试过程中有松动接触到了3.3v或5v输出导致esp32烧毁。
因为是使用过程中烧毁感觉第三点可能性大一点。换了个模块按之前接好短时间测试没问题。
作者: 你好啊!    时间: 2023-7-25 21:01
polisher 发表于 2023-7-25 14:49
没了解过PT4115,简单查了一下,其DIM脚一般接热敏电阻,通过检测温度来自动控制电流,避免LED过热,并非 ...

不过关于日出日落的的问题我还是想能够手动设置是最好
作者: kjjuhfv    时间: 2023-7-25 23:04
本帖最后由 kjjuhfv 于 2023-7-25 23:10 编辑
你好啊! 发表于 2023-7-25 13:31
首先多謝大佬。
其次我的需求是可以在ha里手動設置出LED燈日出日落的效果。
比如手動設置9點開燈開燈亮度 ...

在服务里
  1. service: light.turn_on
  2. data:
  3.   brightness_step_pct: 1
  4. target:
  5.   entity_id: light.sonoff_basic_r2_e9eac2_sonoff_basic_green_led
复制代码

这样可以每次上升1%的亮度
在自动化里创建一个重复的任务
9点开始  每3分钟执行一次 共60次
应该可以达到你的要求
作者: litchiate    时间: 2023-7-27 11:02
你好啊! 发表于 2023-7-25 21:00
哇偶多谢,关联“太阳高度”或“太阳方位角”这个思路之前确实没想到,感谢。
pt4115 dim脚的问题其确实 ...

pt4115 dim 内部通过200k电阻接5V, 实测能有5.4V
作者: hunl1986    时间: 2023-7-29 02:31
你好啊! 发表于 2023-7-25 13:31
首先多謝大佬。
其次我的需求是可以在ha里手動設置出LED燈日出日落的效果。
比如手動設置9點開燈開燈亮度 ...

这个很简单,用node-red,载入设备后用tims进行延迟,再用设备控制组件控制灯的亮度
作者: 你好啊!    时间: 2023-7-29 13:38
kjjuhfv 发表于 2023-7-25 23:04
在服务里

这样可以每次上升1%的亮度

谢谢,请问服务是什么地方,自动化还是脚本还是要下载什么东西?
作者: hyq    时间: 2023-7-29 15:07
本帖最后由 hyq 于 2023-7-29 15:19 编辑
你好啊! 发表于 2023-7-29 13:38
谢谢,请问服务是什么地方,自动化还是脚本还是要下载什么东西?

可以利用太阳高度触发,太阳高度变化再结合16楼大佬的代码估计更完美!太阳高度变化本来就是一个日出日落!或者利用亮度传感器来控制      if:
        condition:
          sensor.in_range:
            id: liangdu
            above: 0.0
            below: 950.0
        then:
         - light.control:
            id: led
            brightness: !lambda |-
              return  1-id(liangdu).state/950.0;
        else:
         - light.turn_off:
            id: led
亮度越暗灯光越亮。


作者: kjjuhfv    时间: 2023-7-29 18:01
本帖最后由 kjjuhfv 于 2023-7-29 18:11 编辑
你好啊! 发表于 2023-7-29 13:38
谢谢,请问服务是什么地方,自动化还是脚本还是要下载什么东西?

新建一个自动化
触发条件你自己看着办
在下面
添加动作
调用服务
找到 light.turn.on
选择你的灯
Brightness打勾  后面填写1

或者把下面代码复制到自动化里
----------------------------------------
  1. description: ""
  2. mode: single
  3. trigger:
  4.   - platform: time
  5.     at: "09:00:00"
  6. condition: []
  7. action:
  8.   - repeat:
  9.       count: "60"
  10.       sequence:
  11.         - service: light.turn_on
  12.           data:
  13.             brightness_pct: 1
  14.           target:
  15.             entity_id: light.sonoff_basic_r2_e9eac2_sonoff_basic_green_led
  16.         - delay:
  17.             hours: 0
  18.             minutes: 3
  19.             seconds: 0
  20.             milliseconds: 0
复制代码

把sonoff_basic_r2_e9eac2_sonoff_basic_green_led改成你灯的实体名称


作者: apertus    时间: 2023-7-30 01:27
最后实现了吗?
作者: 你好啊!    时间: 2023-8-2 06:10
kjjuhfv 发表于 2023-7-29 18:01
新建一个自动化
触发条件你自己看着办
在下面

十分感谢
作者: Awe7    时间: 2023-8-18 19:48
polisher 发表于 2023-7-24 17:34
虽然不太明白你的需求,但功能是支持的。

eshphome(文档)

我想问问esphome pwm默认是占空比可变固定频率的,如何让它固定占空比50,频率可调呢?50hz--700hz
作者: polisher    时间: 2023-8-19 11:07
Awe7 发表于 2023-8-18 19:48
我想问问esphome pwm默认是占空比可变固定频率的,如何让它固定占空比50,频率可调呢?50hz--700hz ...

ESPHOME仅提供了常规的硬件控制的方式,如果简单的自动化能满足您的需求,可用以下以下方法(官方资料点击这里
  1. # 自动化例子
  2. on_press:
  3.     then:
  4.     - output.turn_on: buzzer
  5.     - output.ledc.set_frequency:
  6.         id: buzzer
  7.         frequency: "1000Hz" #该处设置频率
  8.     - output.set_level:
  9.         id: buzzer
  10.         level: "50%" #该处设置占空比
复制代码
如有更多需求,恐怕需要自己编写基础代码了,比如通过自定义组件实现。




作者: Awe7    时间: 2023-8-19 17:14
polisher 发表于 2023-8-19 11:07
ESPHOME仅提供了常规的硬件控制的方式,如果简单的自动化能满足您的需求,可用以下以下方法(官方资料点 ...

收到,谢谢老哥




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5