Franck Nijhof 6ca14d3efc
Rename 'service' to 'action' in automations and scripts (#34023)
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
2024-07-31 14:37:02 +02:00

2.2 KiB

title, description, ha_category, ha_release, ha_quality_scale, ha_domain, ha_codeowners, ha_integration_type, related
title description ha_category ha_release ha_quality_scale ha_domain ha_codeowners ha_integration_type related
Button Instructions on how to set up your button with Home Assistant.
Button
2021.12 internal button
@home-assistant/core
entity
docs title
/docs/configuration/customizing-devices/ Customizing devices
docs title
/dashboards/ Dashboard

A button {% term entity %} is an entity that can fire an {% term event %} / trigger an {% term action %} towards a {% term device %} or {% term service %} but remains stateless from the Home Assistant perspective.

It can be compared to a real live momentary switch, push-button, or some other form of a stateless switch.

{% include integrations/building_block_integration.md %}

The state of a button

The button {% term entity %} is stateless, as in, it cannot have a state like the on or off state that, for example, a normal switch entity has.

Every button entity does keep track of the timestamp of when the last time the button entity has been pressed in the Home Assistant UI or pressed via an action.

Because the {% term state %} of a button entity in Home Assistant is a timestamp, it means we can use it in our automations. For example:

trigger:
  - platform: state
    entity_id: button.my_button
action:
  - action: notify.frenck
    data:
      message: "My button has been pressed!"

Actions

The button entities exposes a single {% term action %}: {% my developer_call_service service="button.press" %}

This action can be called to trigger a button press for that entity.

- action: button.press
  target:
    entity_id: button.my_button

Device class

{% include integrations/device_class_intro.md %}

The screenshot shows different icons representing different device classes for buttons:

Example of device class icons.

The following device classes are supported for buttons:

  • None: Generic button. This is the default and doesn't need to be set.
  • identify: The button is used to identify a device.
  • restart: The button restarts the device.
  • update: The button updates the software of the device.