Triggering HA Automation by Esphome event

Folks,

I’m sending an event on pressing a button.


event:
  - platform: template
    name: wasser_alarm_event_t
    id: wasser_alarm_event_t
    # Optional variables:
    # icon: "mdi:home-flood"
    device_class: button
    event_types: 
      - wasser_alarm_event
      - reset_event

    on_event:
      then:
        - logger.log: "Wasser alarm triggered"

[..]

 - platform: gpio
    pin:
      number: D7
      inverted: true
      mode:
        input: true
        pullup: true
    name: "Reset Button"
    filters:
      - delayed_on: 1500ms
      - delayed_off: 10ms
    on_press: 
      then:
        - event.trigger:
            id: wasser_alarm_event_t
            event_type: reset_event
        - logger.log: "Reset triggered"

I see in the developer tools that an event is received - although type “state changed” is surprising.

event_type: state_changed
data:
  entity_id: event.esphome_web_379045_wasser_alarm_event_t
  old_state:
    entity_id: event.esphome_web_379045_wasser_alarm_event_t
    state: "2024-06-06T09:15:53.814+00:00"
    attributes:
      event_types:
        - reset_event
        - wasser_alarm_event
      event_type: reset_event
      device_class: button
      friendly_name: ESPHome Sensor 3 wasser_alarm_event_t
    last_changed: "2024-06-06T09:15:53.814547+00:00"
    last_reported: "2024-06-06T09:15:53.814547+00:00"
    last_updated: "2024-06-06T09:15:53.814547+00:00"
    context:
      id: 01HZPDAM2P5BCAPCJWSDVJW4C8
      parent_id: null
      user_id: null
  new_state:
    entity_id: event.esphome_web_379045_wasser_alarm_event_t
    state: "2024-06-06T09:19:24.327+00:00"
    attributes:
      event_types:
        - reset_event
        - wasser_alarm_event
      event_type: reset_event
      device_class: button
      friendly_name: ESPHome Sensor 3 wasser_alarm_event_t
    last_changed: "2024-06-06T09:19:24.327195+00:00"
    last_reported: "2024-06-06T09:19:24.327195+00:00"
    last_updated: "2024-06-06T09:19:24.327195+00:00"
    context:
      id: 01HZPDH1N7JSWN58535EQKFWBJ
      parent_id: null
      user_id: null
origin: LOCAL
time_fired: "2024-06-06T09:19:24.327195+00:00"
context:
  id: 01HZPDH1N7JSWN58535EQKFWBJ
  parent_id: null
  user_id: null

However I am failing to trigger an automation from that.
Things I tried:
Never tiggered.

alias: Wasser alarm event handler
description: ""
trigger:
  - platform: event
    event_type:
      - wasser_alarm_event_t
      - wasser_alarm_event
      - reset_event
      - event.reset_event
      - esphome.reset_event
      - wasser_alarm_event_t.reset_event
      - event.esphome_web_379045_wasser_alarm_event_t
      - esphome_web_379045_wasser_alarm_event_t
condition: []
action:
  - service: input_boolean.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: input_boolean.wasser_alarm
mode: single

Any Idea?

Thx so much
Henrik

We are talking about the new-ish “event” entity type, here, not actual events.
For those, you can just use plain “state” triggers. Their state is the time they last occurred.

1 Like

Thx Chris,

I think I found it.

platform: state
entity_id:
  - event.esphome_web_379045_wasser_alarm_event_t

In my first try I was monitoring the actual GPIO water leak sensors from all devices in one automation. That has worked, but…

I was exploring events to not have to maintain a list of entities to monitor in the automation(s), but rather have all relevant ESPs just send an (that is the same) event.

Can I catch all wasser_alarm_event_t events from all sources with this mechanism?

Thx for your thoughts!

Sorry to sound pedantic, but

Hey Chris,

I take that “nope, wrong tool”
I’ll explore the other events.

  • thx for taking your time!

Well, wrong tool for your use-case, but you didn’t mention it in your OP.
I guess it’s a typical instance of

yes, that’s what I meant: Wrong tool for the job.

I’m not quite clear what job the new event-entity is specifically designed for - but that’s for another day.

again, thx for your time.