进行自动化以控制打开和关闭
我需要使用不同的input_dateTime实体…在configuratiom.yaml中已定义
捕获
他们已经在我的UI中

我将在这些实体下自动化……我想通过UI更改它们。我不能将其中一个设置为中立。

我每天有3个周期……但是有时我只需要2个……如果将其设置为0:00,则自动化将在午夜发生……

如果我可以空白……现在()状态永远不匹配实体。

感谢您的建议…

它不能是空的。

如果您从不打算使用午夜(00:00)为您的日程安排,您可以使用00:00表示空值。只需在拒绝的自动化中添加条件00:00这样该操作就没有执行。

我在您的另一个主题。在这里又是拒绝的条件00:00

-  id:'1583526600964'别名:piscina_bomba_auto trigger:平台:template value_template:“ {{states('sensor.time')== states('input_dateTime.h_pb_On_On_3b '3B'platecon:states('input_datetime.h_pb_on_3b')!='00:00'}}“ action:service:switch.turn_on entity_id:switch.sonoff_10009ace1f

谢谢…

让我更深入地解释

我有一个游泳池,然后在电板上用电时钟来控制水泵。
我想通过Sonoff基本开关来控制这种水泵。

所以:
在我的哈ui上,我有一个工作日的地图,每个工作日都有3个时间周期


如果我在自动化上表现出来,我希望HA阅读我的工作日/时间地图并通过开关行动

我知道我需要忽略午夜...

但是我需要行动:
switch.turn_on
switch.turn_off
在同一自动化中…

有了这个结构,我相信我可以做到
在操作代码中添加更多IF

-  id:'1583526600964'别名:piscina_bomba_auto触发器: - 平台:time_pattern分钟: /1条件:条件:template vality_template:“ {states('sensor.time')entity_id:switch.sonoff_10009ace1f service_template:“ {%ifstates.sensor.sensor.time.state == state.input_dateTime.h_pb_on_3b.state \ \%}{%endif%} \ n”

但是在1分钟后打开和关闭Apearinput_dateTime.value

我可以尝试在if…现在() - 00:01 == input_datetime.value中减去1分钟
但是我没有达到正确的代码…

有没有理智的人?其他方法?
我很长一段时间...我很惊讶……因为我认为这个伊德尼亚之后有很多自动化
像花园浇水……游泳池,……甚至圣诞节tres…lol

感谢您的帮助
我在这个世界上是新手

发布后,我在另一篇文章中看到了您的答复
……对不起……让我们只使用这个

我的第一个代码只是尝试……我是Ound of Elsect of Off ...但是May Ideia是不同的:

行动:

如果星期一

行动:
如果星期一
如果现在= a或b或c
打开
如果现在= d或e或f
关掉

如果星期二
如果现在= a或b或c
打开
如果现在= d或e或f
关掉

等等……(不使用其他代码)

看起来很复杂……
每分钟我都有扳机

我可以找到不同的方式吗?
汤姆克斯

您是否希望自动化访问此时间表?

如果您这样做,那么您正在使用哪种实体来存储时间表?自动化需要访问这些实体。

例如,星期二有:

17:08

您用什么样的实体存储17:08

每个
configurations.yaml

input_datetime: h_pb_on_2a: has_date: false has_time: true h_pb_off_2a: has_date: false has_time: true h_pb_on_2b: has_date: false has_time: true h_pb_off_2b: has_date: false has_time: true h_pb_on_2c: has_date: false has_time: true

还有其他方式吗?

我要做的就是这样:
捕获
使用HA自动化 +开关
并控制任何软件…

谢谢

我不是那么奇怪……哈哈……我是吗?

您的日程安排有:
7天
每天3个时期
每个时期2个状态

7 x 3 x 2 = 42input_dateTime实体。

这意味着自动化将需要每分钟检查42个实体。

时间表是否必须如此灵活,以至于您需要使用UI设置开/关时间?替代方法是硬编码自动化中的时间。例如,时间条件让您指定时间和日期。

几乎…

第一个IF是工作日…
在这个6个实体的内部…

所以……每一分钟……7个工作日IF…,一个休假,然后有6个实体…

我知道很多……但是我找不到其他方法……
您认为这很难吗?
RPI会冷冻吗?


Beaucause我是新来的,我今天无法发布更多……(((...论坛限制…

2-3-4-5-6-S-d
周一 - 周一的Thu-fri-sat-Sun

当然,在你的-代码:

如果星期一,如果现在= a或b或c打开,如果现在= d或e或f关闭

但是您尚未显示在实际模板中如何完成的。

2H_PB_ON_2A代表一周的一天?是星期二或星期一(这取决于您是将周日还是星期一作为一周的第一天)。

这是我建议的解决方案。

它要求全部42input_dateTime实体已订购名称。这是命名格式:

<每天的一天> <一天的时间> 
  1. 一周中的一天是代表ISO工作日的整数值(星期一= 1,星期日= 7)。
  2. 一天的时期是整数之间的价值13
  3. 状态是一个整数值,其中0代表离开1

例如,这代表星期六第3期,on:

input_dateTime:'631':名称:'星期六周期3 on'has_date:false has_time:true初始:'00:00:00:00'

为了方便您,我已经为所有42个Input_datetime实体生成了配置:

点击显示
input_dateTime:'111':name:'星期一期间1 on'has_date:false has_time:true初始:'00:00:00:00:00'110':name:'name:'星期一期间1 Off'has_date:false has_tate:false has_time:true intire:''00:'00:'00:'00:'00:'00:00''121':名称:'has_date:false has_time:true初始:'00:00:00''120':name:'星期一2 off'has_date:false _date:false has_time:true intire:'''''has_date:false has_time:true has_time:true inate:'''''has_date:false has_time:true inate:'has_date:00'''121':''121':'natry of:'00'''131':名称:'星期一周期3 on has_date:false has_time:true初始:'00:00:00:00''130':name:'natry off'has_date:false _date:false has_time:true ination:true ination:'00:00:00:00' '211': name: 'Tuesday Period 1 ON' has_date: false has_time: true initial: '00:00' '210': name: 'Tuesday Period 1 OFF' has_date: false has_time: true initial: '00:00' '221': name: 'Tuesday Period 2 ON' has_date: false has_time: true initial: '00:00' '220': name: 'Tuesday Period 2 OFF' has_date: false has_time: true initial: '00:00' '231': name: 'Tuesday Period 3 ON' has_date: false has_time: true initial: '00:00' '230': name: 'Tuesday Period 3 OFF' has_date: false has_time: true initial: '00:00' '311': name: 'Wednesday Period 1 ON' has_date: false has_time: true initial: '00:00' '310': name: 'Wednesday Period 1 OFF' has_date: false has_time: true initial: '00:00' '321': name: 'Wednesday Period 2 ON' has_date: false has_time: true initial: '00:00' '320': name: 'Wednesday Period 2 OFF' has_date: false has_time: true initial: '00:00' '331': name: 'Wednesday Period 3 ON' has_date: false has_time: true initial: '00:00' '330': name: 'Wednesday Period 3 OFF' has_date: false has_time: true initial: '00:00' '411': name: 'Thursday Period 1 ON' has_date: false has_time: true initial: '00:00' '410': name: 'Thursday Period 1 OFF' has_date: false has_time: true initial: '00:00' '421': name: 'Thursday Period 2 ON' has_date: false has_time: true initial: '00:00' '420': name: 'Thursday Period 2 OFF' has_date: false has_time: true initial: '00:00' '431': name: 'Thursday Period 3 ON' has_date: false has_time: true initial: '00:00' '430': name: 'Thursday Period 3 OFF' has_date: false has_time: true initial: '00:00' '511': name: 'Friday Period 1 ON' has_date: false has_time: true initial: '00:00' '510': name: 'Friday Period 1 OFF' has_date: false has_time: true initial: '00:00' '521': name: 'Friday Period 2 ON' has_date: false has_time: true initial: '00:00' '520': name: 'Friday Period 2 OFF' has_date: false has_time: true initial: '00:00' '531': name: 'Friday Period 3 ON' has_date: false has_time: true initial: '00:00' '530': name: 'Friday Period 3 OFF' has_date: false has_time: true initial: '00:00' '611': name: 'Saturday Period 1 ON' has_date: false has_time: true initial: '00:00' '610': name: 'Saturday Period 1 OFF' has_date: false has_time: true initial: '00:00' '621': name: 'Saturday Period 2 ON' has_date: false has_time: true initial: '00:00' '620': name: 'Saturday Period 2 OFF' has_date: false has_time: true initial: '00:00' '631': name: 'Saturday Period 3 ON' has_date: false has_time: true initial: '00:00' '630': name: 'Saturday Period 3 OFF' has_date: false has_time: true initial: '00:00' '711': name: 'Sunday Period 1 ON' has_date: false has_time: true initial: '00:00' '710': name: 'Sunday Period 1 OFF' has_date: false has_time: true initial: '00:00' '721': name: 'Sunday Period 2 ON' has_date: false has_time: true initial: '00:00' '720': name: 'Sunday Period 2 OFF' has_date: false has_time: true initial: '00:00' '731': name: 'Sunday Period 3 ON' has_date: false has_time: true initial: '00:00' '730': name: 'Sunday Period 3 OFF' has_date: false has_time: true initial: '00:00'

这是自动化:

- 别名:'池计划'触发器:平台:time_pattern分钟:'/1'条件: - 条件:template value_template:“ {{states('sensor.time')!='00:00:00''}}}”  - 条件:条件:template value_template:> {%set t = state('sensor.time')%} {%set ns = ns = namespace(dateTime =''')%} {%set d = now()。p在范围内(1,4)%} {s的范围(0,2)%} {%set dt ='input_dateTime。〜d〜p〜s%} {%如果t ==状态(dt)[:5]%} {%set ns.dateTime = dt%} {%endif%} {%endfor%} {%endfor%} {%endfor%} {{ns.dateTime!=''}} action:service_template:> {%set t = state('sensor.time')%} {%set ns = ns = namespace(dateTime ='''''')%} {%set d = d =现在().isoweekday()%} {for P范围(1,4)%} {s范围(0,2)%} {%set dt dt ='input_dateTime。〜d〜p〜s%} {%如果t ==状态(dt)[:5]%} {%set ns.dateTime = dt%} {%endif%} {%endfor%} {%endfor%} {%endfor%} switch switch switch。

它的工作原理:

  • 如果时间是的,第一个条件会停止执行00:00。这允许使用00:00作为一个无所事事的价值。
  • 第二个条件使用前面的条件在所有intup_datetiges to the the the the the the the the the the the the the the the the the the to t t the当前的天。这意味着它只需要检查6个input_datetimes(3个周期x 2个状态)。
  • 它检查当前时间是否与6个input_datetimes中的任何时间值匹配。
  • 如果条件未能找到匹配的时间值,则执行停止。否则,如果找到匹配项,则将继续进行操作。
  • 操作重复在条件下执行的相同过程,以确定哪个Input_DateTime包含匹配时间值。
  • input_datetime名称中的最后一个字符是1或者0。这用于确定服务是否应该是switch.turn_on或者switch.turn_off

编辑
自动化中的错字。
更换:

{{ns.dateTime!=''%}

和:

{{ns.dateTime!=''}}
1喜欢

:祈祷::祈祷::祈祷::祈祷::祈祷:
非常好
你真友善……谢谢...很多

我了解您的代码...总是学习

我不知道为什么……但是给我一些erros…

我们可以有不同的版本……???
我正在使用RPI 4 4GB SD32GB运行Hassos 3.11

捕获

blockquote
[自动化]的无效配置:未提供所需的密钥 @ data ['action']。没有
所需的密钥未提供 @ data [“触发”]。没有。(请参阅 /config/configuration.yaml,第13行)。
[自动化]的无效配置:无效的模板(templateSyntaxError:意外'}')字典值 @ data ['condition'] [1] ['value_template']。没有
这不是字典值 @ data ['condition'] [1] ['条件']的有效值。没有
所需的密钥未提供 @ data ['条件'] [1] ['entity_id’]。没有。(请参阅 /config/configuration.yaml,第13行)

例如:
在我的代码中,我没有
捕获
不为我工作

我不明白为什么……!!! ..:皱眉:

您在代码中采取了很好的方法…
我确定还可以

为什么不在我的HA中工作?

  • 我已经更改了我的config.yaml中的42个input_datetime代码
  • 用新名称调整了我的UI ...没事
  • 当Update Automations.yaml带有您的代码...

我们可以有不同的版本……???
我正在使用RPI 4 4GB SD32GB运行Hassos 3.11

我的自动化
我做错了什么?

:祈祷::祈祷::祈祷::祈祷::祈祷:
再次感谢

-  id:'1583526600964' - 别名:'piscina_bomba_auto'触发器:平台:time_pattern分钟:'/1'条件: - 条件: - 条件:template value_template:{states(states('senser.time')}“  - 条件:template value_template:> {%set t = state('sensor.time')%} {%set ns ns = namespace(dateTime =''')%} {%set d = now d = now()。%} {范围(1,4)%} {s范围(0,2)%} {%设置dt ='input_dateTime的p的%} {%} {%。〜d〜p〜s%} {%如果t ==状态(dt)[:5]%} {%set ns.dateTime = dt%} {%endif%} {%endfor%} {%endfor%} {%endfor%} {{ns.dateTime!=''%}操作:service_template:> {%set t = state('sensor.time')%} {%set ns = ns = namespace(dateTime =''''')%} {%set d = d = now().isoweekday()%} {for P范围(1,4)%} {s范围(0,2)%} {%set dt dt ='input_dateTime。〜d〜p〜s%} {%如果t ==状态(dt)[:5]%} {%set ns.dateTime = dt%} {%endif%} {%endfor%} {%endfor%} {%endfor%} switch switch switch。

不用担心,它也不适用,因为我犯了一个小错误(但忘了修复我发布的版本)。

在自动化的第二个条件下,在最后一行,我使用了%}代替}}}结束线路。要修复它,请更换}像这样:

{{ns.dateTime!=''%}

{{ns.dateTime!=''}}

还没有

错误
[自动化]的无效配置:未提供所需的密钥 @ data ['action']。没有
所需的密钥未提供 @ data [“触发”]。没有。(请参阅 /config/configuration.yaml,第13行)。

自动化
已经更新了

-  id:'1583526600964' - 别名:'piscina_bomba_auto'触发器:平台:time_pattern分钟:'/1'条件: - 条件: - 条件:template value_template:{states(states('senser.time')}“  - 条件:template value_template:> {%set t = state('sensor.time')%} {%set ns ns = namespace(dateTime =''')%} {%set d = now d = now()。%} {范围(1,4)%} {s范围(0,2)%} {%设置dt ='input_dateTime的p的%} {%} {%。〜d〜p〜s%} {%如果t ==状态(dt)[:5]%} {%set ns.dateTime = dt%} {%endif%} {%endfor%} {%endfor%} {%endfor%} {{ns.dateTime!=''}} action:service_template:> {%set t = state('sensor.time')%} {%set ns = ns = namespace(dateTime ='''''')%} {%set d = d =现在().isoweekday()%} {for P范围(1,4)%} {s范围(0,2)%} {%set dt dt ='input_dateTime。〜d〜p〜s%} {%如果t ==状态(dt)[:5]%} {%set ns.dateTime = dt%} {%endif%} {%endfor%} {%endfor%} {%endfor%} switch switch switch。

您的版本与我的版本有些不同,因为第一行包含:
-ID:'1583526600964'

更改此:

-id:'1583526600964' - 别名:'piscina_bomba_auto'

为此:

-id:'1583526600964'别名:'piscina_bomba_auto'

是的……现在运行良好

但是加了我的第一个问题
开关仅在定义时间后1分钟更改…!!!

真实测试:

在13:24
我设置了“ 711” = 13:26和“ 710” = 13:27

发生了什么
在13:26什么都没有
在13:27 switch_on
并在13:28 switch_off

它有1分钟的差异...以后
就像我的第一次小测试

可能是这样的:
当我检查HA日记日记时
我的传感器。时间更新1秒!!!

可以是这样的吗?
捕获
我们可以看到的……1分钟后期的开关反应

Thansk为您enfforts

我想我知道为什么会发生这种情况。我通常不使用time_pattern触发,所以我忘记了一个小但重要的细节。

将其更改为:

触发器:平台:time_pattern分钟:'/1'秒:'0'

这意味着它应该触发每分钟和零秒。
17:00:00
17:01:00
17:02:00

没有指定0秒,这可能发生:
17:00:55
17:01:55
17:02:55
它每分钟都会触发,但不会分钟。

是的,我认为这是问题

在00.SEC触发自动化,并在01.SEC上更新了传感器。

所以……在自动化时刻,传感器有最低1