--- title: Input text description: Instructions on how to integrate the Input text integration into Home Assistant. ha_category: - Automation - Helper ha_release: 0.53 ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: input_text ha_integration_type: helper --- The **Input text** {% term integration %} allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. Changes to the value stored in the text box generate state events. These state events can be utilized as `automation` triggers as well. It can also be configured in password mode (obscured text). The preferred way to configure an input text is via the user interface at **{% my helpers title="Settings > Devices & services > Helpers" %}**. Click the add button and then choose the **{% my config_flow_start domain="input_text" title="Text" %}** option. To be able to add **Helpers** via the user interface you should have `default_config:` in your {% term "`configuration.yaml`" %}, it should already be there by default unless you removed it. If you removed `default_config:` from your configuration, you must add `input_text:` to your `configuration.yaml` first, then you can use the UI. It can also be configured via {% term "`configuration.yaml`" %}: ```yaml # Example configuration.yaml entries input_text: text1: name: Text 1 initial: Some Text text2: name: Text 2 min: 8 max: 40 text3: name: Text 3 pattern: "[a-fA-F0-9]*" text4: name: Text 4 mode: password ``` {% configuration %} input_text: description: Alias for the input. Multiple entries are allowed. required: true type: map keys: name: description: Friendly name of the text input. required: false type: string min: description: Minimum length for the text value. required: false type: integer default: 0 max: description: Maximum length for the text value. 255 is the maximum number of characters allowed in an entity state. required: false type: integer default: 100 initial: description: Initial value when Home Assistant starts. required: false type: string icon: description: Icon to display in front of the input element in the frontend. required: false type: icon pattern: description: Regex pattern for client-side validation. required: false type: string default: empty mode: description: Can specify `text` or `password`. Elements of type "password" provide a way for the user to securely enter a value. required: false type: string default: text {% endconfiguration %} ### Actions This integration provides an action to modify the state of the `input_text` and an action to reload the `input_text` configuration without restarting Home Assistant itself. | Action | Data | Description | | ----------- | ------------------------- | ------------------------------------------------- | | `set_value` | `value`
`entity_id(s)` | Set the value for specific `input_text` entities. | | `reload` | | Reload `input_text` configuration | ### Restore state If you set a valid value for `initial` this integration will start with state set to that value. Otherwise, it will restore the state it had prior to Home Assistant stopping. ### Scenes To set the state of the input_text in a [Scene](/integrations/scene/): ```yaml # Example configuration.yaml entry scene: - name: Example1 entities: input_text.example: Hello! ``` ## Automation examples Here's an example using `input_text` in an action in an automation. {% raw %} ```yaml # Example configuration.yaml entry using 'input_text' in an action in an automation input_select: scene_bedroom: name: Scene options: - Select - Concentrate - Energize - Reading - Relax - 'OFF' initial: "Select" input_text: bedroom: name: Brightness automation: - alias: "Bedroom Light - Custom" triggers: - trigger: state entity_id: input_select.scene_bedroom actions: - action: input_text.set_value target: entity_id: input_text.bedroom data: value: "{{ states('input_select.scene_bedroom') }}" ``` {% endraw %}