mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-05-03 17:48:59 +00:00
265 lines
7.3 KiB
Markdown
265 lines
7.3 KiB
Markdown
---
|
|
title: Input Number
|
|
description: Instructions on how to integrate the Input Number integration into Home Assistant.
|
|
ha_category:
|
|
- Automation
|
|
- Helper
|
|
ha_release: 0.55
|
|
ha_quality_scale: internal
|
|
ha_codeowners:
|
|
- '@home-assistant/core'
|
|
ha_domain: input_number
|
|
ha_integration_type: helper
|
|
---
|
|
|
|
The `input_number` integration allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. The frontend can display a slider, or a numeric input box. Changes to the slider or numeric input box generate state events. These state events can be utilized as `automation` triggers as well.
|
|
|
|
The preferred way to configure an input number is via the user interface at **Settings** -> **Devices & Services** -> **Helpers**. Click the add button and then choose the **Number** option.
|
|
|
|
To be able to add **Helpers** via the user interface you should have `default_config:` in your `configuration.yaml`, it should already be there by default unless you removed it.
|
|
If you removed `default_config:` from you configuration, you must add `input_number:` to your `configuration.yaml` first, then you can use the UI.
|
|
|
|
Input numbers can also be configured via `configuration.yaml`:
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry
|
|
input_number:
|
|
slider1:
|
|
name: Slider
|
|
initial: 30
|
|
min: -20
|
|
max: 35
|
|
step: 1
|
|
box1:
|
|
name: Numeric Input Box
|
|
initial: 30
|
|
min: -20
|
|
max: 35
|
|
step: 1
|
|
mode: box
|
|
```
|
|
|
|
{% configuration %}
|
|
input_number:
|
|
description: Alias for the input. Multiple entries are allowed.
|
|
required: true
|
|
type: map
|
|
keys:
|
|
min:
|
|
description: Minimum value.
|
|
required: true
|
|
type: float
|
|
max:
|
|
description: Maximum value.
|
|
required: true
|
|
type: float
|
|
name:
|
|
description: Friendly name of the input.
|
|
required: false
|
|
type: string
|
|
initial:
|
|
description: Initial value when Home Assistant starts.
|
|
required: false
|
|
type: float
|
|
default: The value at shutdown
|
|
step:
|
|
description: Step value. Smallest value `0.001`.
|
|
required: false
|
|
type: float
|
|
default: 1
|
|
mode:
|
|
description: Can specify `box` or `slider`.
|
|
required: false
|
|
type: string
|
|
default: slider
|
|
unit_of_measurement:
|
|
description: Unit of measurement in which the value of the slider is expressed in.
|
|
required: false
|
|
type: string
|
|
icon:
|
|
description: Icon to display in front of the input element in the frontend.
|
|
required: false
|
|
type: icon
|
|
{% endconfiguration %}
|
|
|
|
### Services
|
|
|
|
This integration provides the following services to modify the state of the `input_number` and a service to reload the
|
|
configuration without restarting Home Assistant itself.
|
|
|
|
| Service | Data | Description |
|
|
| ------- | ---- | ----------- |
|
|
| `decrement` | `entity_id(s)`<br>`area_id(s)` | Decrement the value of specific `input_number` entities by `step`
|
|
| `increment` | `entity_id(s)`<br>`area_id(s)` | Increment the value of specific `input_number` entities by `step`
|
|
| `reload` | | Reload `input_number` configuration |
|
|
| `set_value` | `value`<br>`entity_id(s)`<br>`area_id(s)` | Set the value of specific `input_number` entities
|
|
|
|
### Restore State
|
|
|
|
If you set a valid value for `initial` this integration will start with the state set to that value. Otherwise, it will restore the state it had prior to Home Assistant stopping. Please note that `initial` is only available in a YAML configuration and not via the Home Assistant user interface.
|
|
|
|
### Scenes
|
|
|
|
To set the value of an input_number in a [Scene](/integrations/scene/):
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry
|
|
scene:
|
|
- name: Example Scene
|
|
entities:
|
|
input_number.example_number: 13
|
|
```
|
|
|
|
## Automation Examples
|
|
|
|
Here's an example of `input_number` being used as a trigger in an automation.
|
|
|
|
{% raw %}
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry using 'input_number' as a trigger in an automation
|
|
input_number:
|
|
bedroom_brightness:
|
|
name: Brightness
|
|
initial: 254
|
|
min: 0
|
|
max: 254
|
|
step: 1
|
|
automation:
|
|
- alias: "Bedroom Light - Adjust Brightness"
|
|
trigger:
|
|
platform: state
|
|
entity_id: input_number.bedroom_brightness
|
|
action:
|
|
- service: light.turn_on
|
|
target:
|
|
entity_id: light.bedroom
|
|
data:
|
|
brightness: "{{ trigger.to_state.state | int }}"
|
|
```
|
|
|
|
{% endraw %}
|
|
|
|
Another code example using `input_number`, this time being used in an action in an automation.
|
|
|
|
{% raw %}
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry using 'input_number' in an action in an automation
|
|
input_select:
|
|
scene_bedroom:
|
|
name: Scene
|
|
options:
|
|
- Select
|
|
- Concentrate
|
|
- Energize
|
|
- Reading
|
|
- Relax
|
|
- 'OFF'
|
|
initial: "Select"
|
|
input_number:
|
|
bedroom_brightness:
|
|
name: Brightness
|
|
initial: 254
|
|
min: 0
|
|
max: 254
|
|
step: 1
|
|
automation:
|
|
- alias: "Bedroom Light - Custom"
|
|
trigger:
|
|
platform: state
|
|
entity_id: input_select.scene_bedroom
|
|
to: CUSTOM
|
|
action:
|
|
- service: light.turn_on
|
|
target:
|
|
entity_id: light.bedroom
|
|
data:
|
|
brightness: "{{ states('input_number.bedroom_brightness') | int }}"
|
|
```
|
|
|
|
{% endraw %}
|
|
|
|
Example of `input_number` being used in a bidirectional manner, both being set by and controlled by an MQTT action in an automation.
|
|
|
|
{% raw %}
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry using 'input_number' in an action in an automation
|
|
input_number:
|
|
target_temp:
|
|
name: Target Heater Temperature Slider
|
|
min: 1
|
|
max: 30
|
|
step: 1
|
|
unit_of_measurement: step
|
|
icon: mdi:target
|
|
|
|
# This automation script runs when a value is received via MQTT on retained topic: setTemperature
|
|
# It sets the value slider on the GUI. This slides also had its own automation when the value is changed.
|
|
automation:
|
|
- alias: "Set temp slider"
|
|
trigger:
|
|
platform: mqtt
|
|
topic: "setTemperature"
|
|
action:
|
|
service: input_number.set_value
|
|
target:
|
|
entity_id: input_number.target_temp
|
|
data:
|
|
value: "{{ trigger.payload }}"
|
|
|
|
# This second automation script runs when the target temperature slider is moved.
|
|
# It publishes its value to the same MQTT topic it is also subscribed to.
|
|
- alias: "Temp slider moved"
|
|
trigger:
|
|
platform: state
|
|
entity_id: input_number.target_temp
|
|
action:
|
|
service: mqtt.publish
|
|
data:
|
|
topic: "setTemperature"
|
|
retain: true
|
|
payload: "{{ states('input_number.target_temp') | int }}"
|
|
```
|
|
|
|
{% endraw %}
|
|
|
|
Here's an example of `input_number` being used as a delay in an automation.
|
|
|
|
{% raw %}
|
|
|
|
```yaml
|
|
# Example configuration.yaml entry using 'input_number' as a delay in an automation
|
|
input_number:
|
|
minutes:
|
|
name: minutes
|
|
icon: mdi:clock-start
|
|
initial: 3
|
|
min: 0
|
|
max: 6
|
|
step: 1
|
|
|
|
seconds:
|
|
name: seconds
|
|
icon: mdi:clock-start
|
|
initial: 30
|
|
min: 0
|
|
max: 59
|
|
step: 10
|
|
|
|
automation:
|
|
- alias: "turn something off after x time after turning it on"
|
|
trigger:
|
|
platform: state
|
|
entity_id: switch.something
|
|
to: "on"
|
|
action:
|
|
- delay: "00:{{ states('input_number.minutes') | int }}:{{ states('input_number.seconds') | int }}"
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.something
|
|
```
|
|
|
|
{% endraw %}
|