使用自动化编辑器开启/关闭设备是最佳做法?

目前我有两个自动化,一个要打开,另一个要关闭交换机,但我想合并它们进入一个自动化。这是什么最好的做法?

我不使用自动化UI编辑器(我在yaml中手动输入它们),但我不相信您目前可以在自动化编辑器中使用模板,至少是动作(因为您无法使用data_template.service_template.等)但如果您将yaml发布到两个自动化,我们可能会帮助您手动创建单个自动化。

干得好:least_smile:

  • ID:'1574429754473'
    别名:15:30打开热水器
    描述:在15:30打开热水器
    扳机:
    • 在:'15:30'
      平台:时间
      状况: []
      行动:
    • DEVICE_ID:96DFE4E2A48D4444877872EA68EBBA56
      域名:交换机
      Entity_ID:switch.water_heater.
      类型:turn_on.
  • ID:'1574430324094'
    别名:在19:00关闭热水器
    描述:在19:00关闭热水器
    扳机:
    • 在:'19:00'
      平台:时间
      状况: []
      行动:
    • DEVICE_ID:96DFE4E2A48D4444877872EA68EBBA56
      域名:交换机
      Entity_ID:switch.water_heater.
      类型:turn_off.

请正确格式化代码,看看

我不知道为什么你想结合这些,但我认为它应该这样工作。可能有一个更优雅的解决方案。

- id: ‘1574429754473’ alias: "Turn on Water Heater at 15:30 and off at 19:00" description: "Turn on Water Heater at 15:30 and off at 19:00" trigger: - platform: time at: "15:30" - platform: time at: "19:00" action: service_template: > {% if {{now().strftime('%H:M') > strptime('18:59:00', '%T')}} %} switch.turn_off {% else %} switch.turn_on {% endif %} entity_id: switch.water_heater

这将在15:30和19:30触发自动化。然后,它检查当前时间是否在过去18:59。如果它评估为true,则开关关闭,否则它会打开。

1就像

谢谢!

我需要选择哪种选项来正确格式化我的文本?

标记代码并按顶部的按钮或在代码的开始和结尾添加```。

1就像

这是实现相同结果的另一种方法:

-  ID:'别名:“别名:”在19:00左右开启热水器“描述:”在19:00左右开启热水器,距19:00“触发器: - 平台:时间:时间:“15:30” - 平台:时间:“19:00”动作:service_template:“switch.turn _ {{{{{'on'如果trigger.now.hour == 15 elsity_id:switch.water_heater

当自动化在15:30运行时,trigger.now.hour.15.service_template会产生switch.turn_on.

当自动化在19:00运行时,trigger.now.hour.19.service_template会产生switch.turn_off.

2喜欢

这看起来很整洁!

很高兴听到你喜欢它。

作为Furningstone的礼貌,谁是第一个通过解决方案回复的人,您可能希望考虑从我的帖子中删除解决方案标签,并将其返回刻录到Burningstone的帖子。只有一个帖子可以标记为首先提供的解决方案和伯宾石。

2喜欢

这两个家伙都知道他们的东西,我可能会与塔拉斯的解决方案一起使用(我对模板完全不合理的偏见),但对于初学者来说,燃烧的解决方案更加清晰,更容易维护并扩展到您的其他需求。
It’s completely up to you and how comfortable you are editing the raw files (very few regular contributors here use the AE though some (like Taras) are trying to tame that beast. Also expect rapid improvements in the AE soon to cover your stated issues - it’s a work in progress:Rofl:

2喜欢

这里有些人真的很聪明,乐于助人:least_smile:

我有另一个问题,也许我得到了答案,因为我认为它是相关的。
我想制作一个自动化,将报警面板状态发送到检测到通知的更改。我正在举行的问题,如何将状态放在通知的消息部分中

他们在哪里。?我们会追捕,杀死他们!:crazy_face:

如果自动化使用状态触发器监视警报面板,则警报面板的当前状态将进入trigger.to_state.state.。看:触发状态对象

谢谢,但我正在得到

2019-11-23 19:23:41错误(mainthread)[homeassistant.components.Automation]执行自动化自动化时出错.Alarm_Panel_Change_Send_Notification。POS 1的Call_Service错误呈现模板:undefinedError:'trigger'未定义

请告诉我们您的示例代码。

是的!
PS我正在使用GUI创建此规则

-  ID:'1574523322809'别名:报警面板更改发送通知说明:警报面板更改发送通知触发: -  Entity_ID:armarm_control_panel.alarm_panel平台:状态条件:[]操作: - 数据:消息:消息:报警状态更改为{{触发器。armarm_control_panel.alarm_panel}}服务:notify.hassio_notifier_s7

改变这个:

- 数据:消息:报警状态已更改为{{trigger.alarm_control_panel.alarm_panel}}服务:notify.hassio_notifier_s7

为此:

-  data_template:消息:报警状态已更改为{{trigger.to_state.state}} service:notify.hassio_notifier_s7

相同的结果:皱眉:

我有这个:

-  ID:'1574523322809'别名:报警面板更改发送通知说明:警报面板更改发送通知触发: -  Entity_ID:armarm_control_panel.alarm_panel平台:状态条件:[]操作: - 数据:消息:消息:报警状态更改为{{触发器。to_state.state}}服务:notify.hassio_notifier_s7

并在日志中获取此项:
2019-11-23 20:33:19错误(mainthread)[homeassistant.components.Automation]错误执行自动化自动化.Alarm_Panel_Change_Send_Notification。POS 1的Call_Service错误呈现模板:undefinedError:'trigger'未定义

这可能是警报面板不支持触发器吗?

我们现在似乎有两个并发主题为此问题。在此线程中提出了同样的问题,具有相同的报告错误,以及纠正IT的相同建议:

秘密和伯花石解释说,您需要使用data_template.不是数据。您的最新示例仍然显示您正在使用的数据

截图%20从202019-11-23%2014-37-35

另外,如Tinkerer在另一个主题中解释的那样,请务必不要触发这种自动化手动。手动触发的自动化跳过触发和条件部分。因此,当它达到执行操作时,触发对象将是未定义的并导致错误消息。

1就像

我错过了!!!我又复制了消息部分......抱歉!
现在工作得很好!