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

 找回密码
 立即注册
查看: 12287|回复: 5

[求助] ESPHOME如何写循环开关?

[复制链接]

40

主题

313

帖子

3097

积分

论坛元老

Rank: 8Rank: 8

积分
3097
金钱
2784
HASS币
0
发表于 2021-5-14 10:04:53 | 显示全部楼层 |阅读模式
本帖最后由 dizherui 于 2021-5-15 12:00 编辑

求大神指教,目前需要两组形式:
1、开关打开之后开始循环,直至开关被关闭后停止
2、开关打开之后开始循环,循环10次后自动关闭
想在ESPHOME内部实现,我该怎么去写?网上没搜索到示例 求大神帮忙



目前我是用template做的虚拟开关,控制script,做开关每一组灯
switch:
  - platform: template
    name: "W1"
    icon: "mdi:gate"
    optimistic: true
    on_turn_on:
      then:
      - script.execute: sp_turn_on
      - logger.log: "全开灯"
    on_turn_off:
      - script.execute: sp_turn_off
      - logger.log: "全闭灯"

script:
  - id: sp_turn_on
    mode: single
    then:
      - light.turn_on: 
         id: relay0
         brightness: 100%
         transition_length: 0s
      - light.turn_on:
          id: relay1
          brightness: 100%
          transition_length: 0s
  - id: sp_turn_off
    mode: single
    then:
      - light.turn_off:
         id: relay0
         transition_length: 0s
      - light.turn_off: 
         id: relay1
         transition_length: 0s

目前简单实现了虚拟开关打开,无限循环开关灯,直到虚拟开关被关闭,停止
  - platform: template
    name: "Warning"
    id: Warning
    #:无限循环
    icon: "mdi:gate"
    optimistic: true
    on_turn_off:
        - logger.log: "危险!警示灯!"
        - light.turn_off: Warning_light
        - light.turn_off: Warning_light1
    on_turn_on:
      while:
        condition:
          switch.is_on: Warning
        then:
        - logger.log: "危险!警示灯!"
        - light.turn_on: Warning_light
        - delay: 1s
        - light.turn_off: Warning_light
        - light.turn_on: Warning_light1
        - delay: 1s
        - light.turn_off: Warning_light1



回复

使用道具 举报

7

主题

192

帖子

1705

积分

金牌会员

Rank: 6Rank: 6

积分
1705
金钱
1508
HASS币
30
发表于 2021-5-14 15:43:35 | 显示全部楼层

script:
  infinite_loop:   #无限循环直至被关闭
    sequence:
        repeat:
          while:
            - condition: state
              entity_id: switch.w1
              state: "on"
          sequence:
            - service: script.sp_turn_on


script:
  10_loop:   #循环10次
    sequence:
        repeat:
          while:
            - condition: template
              value_template: "{{ repeat.index <= 10 }}"
          sequence:
            - service: script.sp_turn_on
回复

使用道具 举报

40

主题

313

帖子

3097

积分

论坛元老

Rank: 8Rank: 8

积分
3097
金钱
2784
HASS币
0
 楼主| 发表于 2021-5-14 19:31:02 | 显示全部楼层
sephrioth 发表于 2021-5-14 15:43
script:
  infinite_loop:   #无限循环直至被关闭
    sequence:

这个是home assistant自动化的命令啊,主要是他和esphome之间通讯延迟有些高,并且短时间内通讯多的话,esp很容易就重启了,能不能在ESP内部做呢?
回复

使用道具 举报

7

主题

192

帖子

1705

积分

金牌会员

Rank: 6Rank: 6

积分
1705
金钱
1508
HASS币
30
发表于 2021-5-17 10:24:32 | 显示全部楼层
dizherui 发表于 2021-5-14 19:31
这个是home assistant自动化的命令啊,主要是他和esphome之间通讯延迟有些高,并且短时间内通讯多的话,e ...

额, 这个我就不会了...
回复

使用道具 举报

40

主题

313

帖子

3097

积分

论坛元老

Rank: 8Rank: 8

积分
3097
金钱
2784
HASS币
0
 楼主| 发表于 2021-5-18 11:11:34 | 显示全部楼层
sephrioth 发表于 2021-5-17 10:24
额, 这个我就不会了...

没事,咱继续等
回复

使用道具 举报

7

主题

188

帖子

2345

积分

金牌会员

Rank: 6Rank: 6

积分
2345
金钱
2157
HASS币
0
发表于 2022-5-6 10:37:48 | 显示全部楼层
on_turn_on::
  - repeat:
      count: 5
      then:
        - light.turn_on: some_light
        - delay: 1s
        - light.turn_off: some_light
        - delay: 10s
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 01:37 , Processed in 0.048557 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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