How to get friendly name of trigger.entity_id in automation?

Hello,

Trying to make an automation that will return the friendly name of a triggered sensor but I’m a little confused on the template.

This does not appear to be the answer. I get ,“None has triggered”

- action:
  - data_template:
      message: '{{ states[trigger.entity_id].name }} has triggered'
      title: Occupancy Sensor
    service: notify.ios_devansiphone7
  alias: Occupancy Sensors
  condition: []
  id: '1510542576177'
  trigger:
  - entity_id: binary_sensor.basement, binary_sensor.basement_double_doors, binary_sensor.basement_slider,
      binary_sensor.evas_room_occupancy, binary_sensor.family_room, binary_sensor.front_door,
      binary_sensor.front_rooms, binary_sensor.garage_door, binary_sensor.garage_side_door,
      binary_sensor.guest_door, binary_sensor.guest_room, binary_sensor.kitchen_slider,
      binary_sensor.side_door, binary_sensor.upstairs_occupancy
    from: 'off'
    platform: state
    to: 'on'

I

Needed to split the entity_id in to domain and state

  - data_template:
      message: '{{ states[trigger.entity_id.split(".")[0]][ trigger.entity_id.split(".")[1]].name }}  has triggered'
      title: Occupancy Sensor
3 Likes

Or if you want the friendly name -

{{ trigger.from_state.attributes.friendly_name }}

I think will work :slight_smile:

11 Likes

thanks, I should have realized that the trigger was providing a state object and not the string value.

much more readable than what I came up with.

- action:
  - data_template:
      message: '{{ trigger.from_state.name }} has triggered'
      title: Occupancy Sensor
    service: notify.ios_devansiphone7
  alias: Occupancy Sensors
  condition: []
  id: '1510542576177'
  trigger:
  - entity_id: binary_sensor.basement, binary_sensor.basement_double_doors, binary_sensor.basement_slider,
      binary_sensor.evas_room_occupancy, binary_sensor.family_room, binary_sensor.front_door,
      binary_sensor.front_rooms, binary_sensor.garage_door, binary_sensor.garage_side_door,
      binary_sensor.guest_door, binary_sensor.guest_room, binary_sensor.kitchen_slider,
      binary_sensor.side_door, binary_sensor.upstairs_occupancy
    from: 'off'
    platform: state
    to: 'on'

Change your action to:

- alias: HA Mode set
  trigger:
    platform: state
    entity_id: input_boolean.ha_mode_home,
               input_boolean.ha_mode_away,
               input_boolean.ha_mode_holiday, 
               input_boolean.ha_mode_night
    to: 'on'
  action:
    - service: input_boolean.turn_off
      data_template:
        entity_id: >
          {% set booleans = [ 'input_boolean.ha_mode_home', 'input_boolean.ha_mode_away', 'input_boolean.ha_mode_holiday', 'input_boolean.ha_mode_night' ] | reject('equalto', trigger.entity_id) %}
          {{ booleans | list | join(', ') }}

Not sure if it will work because these fields typically don’t take comma separated lists and jinja templates do not return lists.

1 Like

I moved my post as a new issue due to the original post in this tread was marked as Closed.

Your solution works like a charm.
Thanks!