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

 找回密码
 立即注册
查看: 5583|回复: 7

好久没关注自动化,居然action有了IF条件

[复制链接]

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2020-9-12 16:38:39 | 显示全部楼层 |阅读模式
以前要把多个同类型设备的自动化写到一起得用date_template 然后写很多if,
后来升级到某个版本之后,action中从此无法使用 jinja2 模板,导致后台报错无法执行。
今天翻看了下,居然有了这个功能,配合ESPHOME的设备自动化,感觉方便了很多。

以前的自动化模板:
- id: 1bc9067bd15d4760bf4ccd5290ae93c9
  alias: 车库状态变化通知
  trigger:
  - event_data: {}
    event_type: state_changed
    platform: event
  condition:
  - condition: or
    conditions:
    - condition: and
      conditions:
      - condition: template
        value_template: '{{ trigger.event.data.new_state.state != trigger.event.data.old_state.state
          }}'
      - condition: template
        value_template: '{{ trigger.event.data.old_state.state == "closed" or trigger.event.data.old_state.state
          == "open" }}'
      - condition: template
        value_template: '{{ trigger.event.data.entity_id.split(".")[0] == "cover"}}'
    - condition: state
      entity_id: sensor.chao_sheng_bo_chuan_gan_qi
      state: unknown
  - condition: template
    value_template: '{{ trigger.event.data.entity_id != "cover.curtain_158d0002aca826"
      }}'
  - condition: not
    conditions:
    - condition: state
      entity_id: sensor.chao_sheng_bo_chuan_gan_qi
      state: unavailable
  action:
  - data_template:
      data:
        push:
          badge: 1
          category: garage
          sound: '{% if trigger.event.data.new_state.state == "closed" %}Garage_had_been_closed.wav{%
            elif trigger.event.data.new_state.state == "open" %}Garage_had_been_opened.wav{%
            endif %}'
      message: '{% if trigger.event.data.new_state.state == "closed" %} {{ trigger.event.data.new_state.attributes.friendly_name}}已关闭。
        {% elif trigger.event.data.new_state.state == "open" %} {{ trigger.event.data.new_state.attributes.friendly_name}}被打开。{%
        endif %}'
      title: 安防通知
    service: notify.mobile_app_iphone11



现在的自动化:
- id: '1599898981144'
  alias: 车库状态提醒
  description: ''
  trigger:
  - device_id: 7a18b978cf99405787f256448d461efb
    domain: cover
    entity_id: cover.dong_che_ku_men
    platform: device
    type: opening
  - device_id: 7a18b978cf99405787f256448d461efb
    domain: cover
    entity_id: cover.dong_che_ku_men
    platform: device
    type: closing
  - device_id: 5b824882eb5e4d059e204ba8945f3709
    domain: cover
    entity_id: cover.xi_che_ku_men
    platform: device
    type: opening
  - device_id: 5b824882eb5e4d059e204ba8945f3709
    domain: cover
    entity_id: cover.xi_che_ku_men
    platform: device
    type: closing
  condition: []
  action:
  - choose:
    - conditions:
      - condition: or
        conditions:
        - condition: device
          device_id: 7a18b978cf99405787f256448d461efb
          domain: cover
          entity_id: cover.dong_che_ku_men
          type: is_closing
        - condition: device
          device_id: 5b824882eb5e4d059e204ba8945f3709
          domain: cover
          entity_id: cover.xi_che_ku_men
          type: is_closing
      sequence:
      - data:
          data:
            push:
              badge: 1
              category: garage
              sound: Garage_had_been_closed.wav
          message: 车库门已关闭。
          title: 安防通知
        service: notify.mobile_app_iphone11
    - conditions:
      - condition: or
        conditions:
        - condition: device
          device_id: 7a18b978cf99405787f256448d461efb
          domain: cover
          entity_id: cover.dong_che_ku_men
          type: is_opening
        - condition: device
          device_id: 5b824882eb5e4d059e204ba8945f3709
          domain: cover
          entity_id: cover.xi_che_ku_men
          type: is_opening
      sequence:
      - data:
          data:
            push:
              badge: 1
              category: garage
              sound: Garage_had_been_opened.wav
          message: 车库门已打开。
          title: 安防通知
        service: notify.mobile_app_iphone11
    default: []
  mode: single


直接在前端选择就可以了~~一个字!方便!!
回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
 楼主| 发表于 2020-9-12 16:40:15 | 显示全部楼层
以前需要根据触发设备判断是哪个设备触发,然后执行不同的语音提醒和推送。现在完全没问题了。
回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
 楼主| 发表于 2020-9-12 16:43:03 | 显示全部楼层
一直有个疑惑,
automation:
  - alias: Notify Mobile app
    trigger:
      ...
    action:
      service: notify.mobile_app_<your_device_id_here>
      data:
        title: "Check this out!"
        message: "Something happened at home!"
        data:
          push:
            category: "alarm" # Needs to match the top level identifier you used in the ios configuration
          action_data: # Anything passed in action_data will get echoed back to Home Assistant.
            entity_id: light.test
            my_custom_data: foo_bar


这里面的my_custom_data: foo_bar 到底是传了个什么值
回复

使用道具 举报

26

主题

2096

帖子

8504

积分

论坛元老

Rank: 8Rank: 8

积分
8504
金钱
6403
HASS币
30

论坛元老

发表于 2020-9-14 09:16:59 | 显示全部楼层
讲道理,action一直支持condition,只是以前是个串联的结构,if not就没了
回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
 楼主| 发表于 2020-9-14 23:18:48 | 显示全部楼层
情非殇 发表于 2020-9-14 09:16
讲道理,action一直支持condition,只是以前是个串联的结构,if not就没了

是吗?以前没有图形化不方便,让我都写道条件里去了,气死了,还是在action里方便
回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
 楼主| 发表于 2020-9-14 23:19:27 | 显示全部楼层
情非殇 发表于 2020-9-14 09:16
讲道理,action一直支持condition,只是以前是个串联的结构,if not就没了

现在多了个 choose:
回复

使用道具 举报

1

主题

12

帖子

52

积分

注册会员

Rank: 2

积分
52
金钱
40
HASS币
0
发表于 2020-9-15 11:37:07 | 显示全部楼层
新人 多多指教
回复

使用道具 举报

26

主题

2096

帖子

8504

积分

论坛元老

Rank: 8Rank: 8

积分
8504
金钱
6403
HASS币
30

论坛元老

发表于 2020-9-16 08:03:16 | 显示全部楼层
jyz_0501 发表于 2020-9-14 23:18
是吗?以前没有图形化不方便,让我都写道条件里去了,气死了,还是在action里方便 ...

纯对比的话, 还是nr更灵活,不过ha有大刀阔斧的心态,还是比较值的期待的
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-23 23:47 , Processed in 0.096105 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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