mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-05-09 20:48:59 +00:00
175 lines
5.0 KiB
Markdown
175 lines
5.0 KiB
Markdown
---
|
|
layout: page
|
|
title: "Input Number"
|
|
description: "Instructions how to integrate the Input Number component into Home Assistant."
|
|
date: 2017-09-19 03:30
|
|
sidebar: true
|
|
comments: false
|
|
sharing: true
|
|
footer: true
|
|
logo: home-assistant.png
|
|
ha_category: Automation
|
|
ha_release: 0.55
|
|
redirect_from: /components/input_slider/
|
|
---
|
|
|
|
<p class='note'>
|
|
Before version 0.55 this component was known as `input_slider` and did not have the `mode` configuration option.
|
|
</p>
|
|
|
|
The `input_number` component 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.
|
|
|
|
To enable this input number in your installation, add the following lines to your `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 variables:
|
|
|
|
- **[alias]** (*Required*): Alias for the input. Multiple entries are allowed.
|
|
- **min** (*Required*): Minimum value.
|
|
- **max** (*Required*): Maximum value.
|
|
- **name** (*Optional*): Friendly name of the input.
|
|
- **initial** (*Optional*): Initial value when Home Assistant starts. Defaults to 0.
|
|
- **step** (*Optional*): Step value for the slider. Defaults to 1.
|
|
- **mode** (*Optional*): Can specify `box`, or `slider`. Defaults to `slider`.
|
|
- **unit_of_measurement** (*Optional*): Unit of measurement in which the value of the slider is expressed in.
|
|
- **icon** (*Optional*): Icon to display in front of the box/slider in the frontend. Refer to the [Customizing devices](https://home-assistant.io/docs/configuration/customizing-devices/#possible-values) page for possible values.
|
|
|
|
## {% linkable_title Automation Examples %}
|
|
|
|
Here's an example of `input_number` being used as a trigger in an automation.
|
|
|
|
```yaml
|
|
{% raw %}
|
|
# Example configuration.yaml entry using 'input_number' as a trigger in an automation
|
|
|
|
# Define input_number
|
|
input_number:
|
|
bedroom_brightness:
|
|
name: Brightness
|
|
initial: 254
|
|
min: 0
|
|
max: 254
|
|
step: 1
|
|
|
|
# Automation.
|
|
automation:
|
|
- alias: Bedroom Light - Adjust Brightness
|
|
trigger:
|
|
platform: state
|
|
entity_id: input_number.bedroom_brightness
|
|
action:
|
|
- service: light.turn_on
|
|
# Note the use of 'data_template:' below rather than the normal 'data:' if you weren't using an input variable
|
|
data_template:
|
|
entity_id: light.bedroom
|
|
brightness: '{{ trigger.to_state.state | int }}'
|
|
{% endraw %}
|
|
```
|
|
|
|
Another code example using `input_number`, this time being used in an action in an automation.
|
|
|
|
```yaml
|
|
{% raw %}
|
|
# Example configuration.yaml entry using 'input_number' in an action in an automation
|
|
|
|
# Define 'input_select'
|
|
input_select:
|
|
scene_bedroom:
|
|
name: Scene
|
|
options:
|
|
- Select
|
|
- Concentrate
|
|
- Energize
|
|
- Reading
|
|
- Relax
|
|
- 'OFF'
|
|
initial: 'Select'
|
|
|
|
# Define input_number
|
|
input_number:
|
|
bedroom_brightness:
|
|
name: Brightness
|
|
initial: 254
|
|
min: 0
|
|
max: 254
|
|
step: 1
|
|
|
|
# Automation.
|
|
automation:
|
|
- alias: Bedroom Light - Custom
|
|
trigger:
|
|
platform: state
|
|
entity_id: input_select.scene_bedroom
|
|
to: CUSTOM
|
|
action:
|
|
- service: light.turn_on
|
|
# Again, note the use of 'data_template:' rather than the normal 'data:' if you weren't using an input variable.
|
|
data_template:
|
|
entity_id: light.bedroom
|
|
brightness: '{{ states.input_number.bedroom_brightness.state | 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.
|
|
|
|
```yaml
|
|
{% raw %}
|
|
# Example configuration.yaml entry using 'input_number' in an action in an automation
|
|
|
|
# Define input_number
|
|
input_number:
|
|
target_temp:
|
|
name: Target Heater Temperature Slider
|
|
min: 1
|
|
max: 30
|
|
step: 1
|
|
unit_of_measurement: step
|
|
icon: mdi:target
|
|
|
|
# Automation.
|
|
# 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.
|
|
- alias: Set temp slider
|
|
trigger:
|
|
platform: mqtt
|
|
topic: "setTemperature"
|
|
# entity_id: input_number.target_temp
|
|
action:
|
|
service: input_number.set_value
|
|
data_template:
|
|
entity_id: input_number.target_temp
|
|
value: '{{ trigger.payload}}'
|
|
|
|
# This 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_template:
|
|
topic: "setTemperature"
|
|
retain: true
|
|
payload: '{{ states.input_number.target_temp.state | int }}'
|
|
{% endraw %}
|
|
```
|