Merge branch 'current' into rc

This commit is contained in:
Franck Nijhof 2021-02-03 12:04:23 +01:00
commit e8535feb9d
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
137 changed files with 816 additions and 719 deletions

View File

@ -29,7 +29,7 @@ GEM
ffi (1.14.2-x64-mingw32) ffi (1.14.2-x64-mingw32)
forwardable-extended (2.6.0) forwardable-extended (2.6.0)
http_parser.rb (0.6.0) http_parser.rb (0.6.0)
i18n (1.8.7) i18n (1.8.8)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
jekyll (4.2.0) jekyll (4.2.0)
addressable (~> 2.4) addressable (~> 2.4)
@ -92,7 +92,7 @@ GEM
ffi (~> 1.0) ffi (~> 1.0)
rexml (3.2.4) rexml (3.2.4)
rouge (3.26.0) rouge (3.26.0)
ruby-enum (0.8.0) ruby-enum (0.9.0)
i18n i18n
ruby2_keywords (0.0.4) ruby2_keywords (0.0.4)
safe_yaml (1.0.5) safe_yaml (1.0.5)

View File

@ -24,7 +24,7 @@ automation:
- alias: Enable First Morning Trigger - alias: Enable First Morning Trigger
trigger: trigger:
- platform: time - platform: time
at: '05:00:00' at: "05:00:00"
action: action:
service: homeassistant.turn_on service: homeassistant.turn_on
entity_id: input_boolean.trigger_first_morning entity_id: input_boolean.trigger_first_morning
@ -47,12 +47,12 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.livingroom_motion entity_id: binary_sensor.livingroom_motion
to: 'on' to: "on"
# only complete the automation if we're still waiting for the first motion # only complete the automation if we're still waiting for the first motion
condition: condition:
condition: state condition: state
entity_id: input_boolean.trigger_first_morning entity_id: input_boolean.trigger_first_morning
state: 'on' state: "on"
action: action:
# turn off the "waiting" boolean regardless of whether lights will turn on # turn off the "waiting" boolean regardless of whether lights will turn on

View File

@ -13,42 +13,42 @@ For flashing regular lights in case an alarm is triggered.
# AlmSnd1 - switch for a buzzer # AlmSnd1 - switch for a buzzer
automation: automation:
- alias: 'Alarm_PIR_Room1' - alias: "Alarm_PIR_Room1"
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.PIR1 entity_id: binary_sensor.PIR1
to: 'on' to: "on"
condition: condition:
- condition: state - condition: state
entity_id: switch.AlmAct1 entity_id: switch.AlmAct1
state: 'on' state: "on"
- condition: state - condition: state
entity_id: script.alarm_room1 entity_id: script.alarm_room1
state: 'off' state: "off"
action: action:
# start alarm on movement if alarm activated # start alarm on movement if alarm activated
# and the alarm is not triggered # and the alarm is not triggered
service: script.turn_on service: script.turn_on
entity_id: script.alarm_room1 entity_id: script.alarm_room1
- alias: 'flash_room1_start' - alias: "flash_room1_start"
trigger: trigger:
platform: state platform: state
entity_id: switch.AlmSnd1 entity_id: switch.AlmSnd1
to: 'on' to: "on"
action: action:
service: script.turn_on service: script.turn_on
entity_id: script.flash_room1 entity_id: script.flash_room1
- alias: 'flash_room1_stop' - alias: "flash_room1_stop"
trigger: trigger:
platform: state platform: state
entity_id: switch.REL1 entity_id: switch.REL1
to: 'off' to: "off"
condition: condition:
condition: state condition: state
entity_id: switch.AlmSnd1 entity_id: switch.AlmSnd1
state: 'off' state: "off"
action: action:
service: script.turn_off service: script.turn_off
entity_id: script.flash_room1 entity_id: script.flash_room1
@ -68,7 +68,7 @@ script:
- alias: email_Room1 - alias: email_Room1
service: notify.email service: notify.email
data: data:
message: 'Movement alarm in Room1' message: "Movement alarm in Room1"
- delay: - delay:
# time interval for alarm sound and light flashing # time interval for alarm sound and light flashing
seconds: 60 seconds: 60

View File

@ -10,18 +10,18 @@ Turn on a light in the living room when it starts raining, someone is home, and
```yaml ```yaml
automation: automation:
- alias: 'Rainy Day' - alias: "Rainy Day"
trigger: trigger:
- platform: state - platform: state
entity_id: sensor.precip_intensity entity_id: sensor.precip_intensity
to: 'rain' to: "rain"
condition: condition:
- condition: state - condition: state
entity_id: all entity_id: all
state: 'home' state: "home"
- condition: time - condition: time
after: '14:00' after: "14:00"
before: '23:00' before: "23:00"
action: action:
service: light.turn_on service: light.turn_on
entity_id: light.couch_lamp entity_id: light.couch_lamp
@ -30,15 +30,15 @@ automation:
And then of course turn off the lamp when it stops raining but only if it's within an hour before sunset. And then of course turn off the lamp when it stops raining but only if it's within an hour before sunset.
```yaml ```yaml
- alias: 'Rain is over' - alias: "Rain is over"
trigger: trigger:
- platform: state - platform: state
entity_id: sensor.precip_intensity entity_id: sensor.precip_intensity
to: 'None' to: "None"
condition: condition:
- condition: sun - condition: sun
after: 'sunset' after: "sunset"
after_offset: '-01:00:00' after_offset: "-01:00:00"
action: action:
service: light.turn_off service: light.turn_off
entity_id: light.couch_lamp entity_id: light.couch_lamp

View File

@ -44,24 +44,24 @@ Send notifications through [PushBullet](/integrations/pushbullet) when the sun s
```yaml ```yaml
automation: automation:
- alias: 'Send notification when sun rises' - alias: "Send notification when sun rises"
trigger: trigger:
platform: sun platform: sun
event: sunrise event: sunrise
offset: '+00:00:00' offset: "+00:00:00"
action: action:
service: notify.pushbullet service: notify.pushbullet
data: data:
message: 'The sun is up.' message: "The sun is up."
- alias: 'Send notification when sun sets' - alias: "Send notification when sun sets"
trigger: trigger:
platform: sun platform: sun
event: sunset event: sunset
offset: '+00:00:00' offset: "+00:00:00"
action: action:
service: notify.pushbullet service: notify.pushbullet
data: data:
message: 'The sun is down.' message: "The sun is down."
``` ```
#### Automations for lights and blinds based on solar elevation #### Automations for lights and blinds based on solar elevation
@ -69,7 +69,7 @@ automation:
Solar elevation automations can cope with offsets from sunset / sunrise as the seasons change better than using a time based offsets. Solar elevation automations can cope with offsets from sunset / sunrise as the seasons change better than using a time based offsets.
```yaml ```yaml
- alias: 'Turn a few lights on when the sun gets dim' - alias: "Turn a few lights on when the sun gets dim"
trigger: trigger:
platform: numeric_state platform: numeric_state
entity_id: sun.sun entity_id: sun.sun
@ -79,7 +79,7 @@ Solar elevation automations can cope with offsets from sunset / sunrise as the s
service: scene.turn_on service: scene.turn_on
entity_id: scene.background_lights entity_id: scene.background_lights
- alias: 'Turn more lights on as the sun gets dimmer' - alias: "Turn more lights on as the sun gets dimmer"
trigger: trigger:
platform: numeric_state platform: numeric_state
entity_id: sun.sun entity_id: sun.sun
@ -89,7 +89,7 @@ Solar elevation automations can cope with offsets from sunset / sunrise as the s
service: scene.turn_on service: scene.turn_on
entity_id: scene.more_lights entity_id: scene.more_lights
- alias: 'Close blind at dusk' - alias: "Close blind at dusk"
trigger: trigger:
platform: numeric_state platform: numeric_state
entity_id: sun.sun entity_id: sun.sun

View File

@ -23,10 +23,10 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.device_name_here entity_id: device_tracker.device_name_here
from: 'not_home' from: "not_home"
to: 'home' to: "home"
action: action:
service: notify.Telegram service: notify.Telegram
data: data:
message: 'Person is now home' message: "Person is now home"
``` ```

View File

@ -17,14 +17,14 @@ input_boolean:
automation: automation:
# Changes Hue light every two minutes to random color if input boolean is set to on # Changes Hue light every two minutes to random color if input boolean is set to on
- alias: 'Set LivingColors to random color' - alias: "Set LivingColors to random color"
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/2' minutes: "/2"
condition: condition:
condition: state condition: state
entity_id: input_boolean.loop_livingcolors entity_id: input_boolean.loop_livingcolors
state: 'on' state: "on"
action: action:
service: light.turn_on service: light.turn_on
entity_id: light.woonkamer_livingcolors entity_id: light.woonkamer_livingcolors

View File

@ -13,8 +13,8 @@ For the controller this was written for scene ID 13 was sent when the up button
```yaml ```yaml
automation: automation:
- alias: 'Make the lights go bright' - alias: "Make the lights go bright"
initial_state: 'on' initial_state: "on"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -29,8 +29,8 @@ automation:
direction: up direction: up
light: light.YOUR_LIGHT light: light.YOUR_LIGHT
- alias: 'Make the lights go dim' - alias: "Make the lights go dim"
initial_state: 'on' initial_state: "on"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -45,8 +45,8 @@ automation:
direction: down direction: down
light: light.YOUR_LIGHT light: light.YOUR_LIGHT
- alias: 'Stop the light just there' - alias: "Stop the light just there"
initial_state: 'on' initial_state: "on"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -73,28 +73,28 @@ To allow flexibility all four variables are controlled by [Input Number](/integr
```yaml ```yaml
input_number: input_number:
light_step: light_step:
name: 'Step the lights this much' name: "Step the lights this much"
initial: 20 initial: 20
min: 1 min: 1
max: 64 max: 64
step: 1 step: 1
light_minimum: light_minimum:
name: 'No dimmer than this' name: "No dimmer than this"
initial: 5 initial: 5
min: 1 min: 1
max: 255 max: 255
step: 1 step: 1
light_maximum: light_maximum:
name: 'No brighter than this' name: "No brighter than this"
initial: 255 initial: 255
min: 50 min: 50
max: 255 max: 255
step: 1 step: 1
light_delay_ms: light_delay_ms:
name: 'Step the lights this often (ms)' name: "Step the lights this often (ms)"
initial: 500 initial: 500
min: 100 min: 100
max: 5000 max: 5000

View File

@ -45,12 +45,12 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: media_player.htpc entity_id: media_player.htpc
from: 'playing' from: "playing"
to: 'idle' to: "idle"
condition: condition:
- condition: state - condition: state
entity_id: sun.sun entity_id: sun.sun
state: 'below_horizon' state: "below_horizon"
action: action:
service: scene.turn_on service: scene.turn_on
entity_id: scene.livingroom_normal entity_id: scene.livingroom_normal
@ -59,12 +59,12 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: media_player.htpc entity_id: media_player.htpc
to: 'playing' to: "playing"
from: 'idle' from: "idle"
condition: condition:
- condition: state - condition: state
entity_id: sun.sun entity_id: sun.sun
state: 'below_horizon' state: "below_horizon"
action: action:
service: scene.turn_on service: scene.turn_on
entity_id: scene.livingroom_dim entity_id: scene.livingroom_dim

View File

@ -19,13 +19,13 @@ switch:
switches: switches:
#Switch for Foscam Motion Detection #Switch for Foscam Motion Detection
foscam_motion: foscam_motion:
command_on: 'curl -k --tls-max 1.2 "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"' command_on: "curl -k --tls-max 1.2 "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password""
command_off: 'curl -k --tls-max 1.2 "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"' command_off: 'curl -k --tls-max 1.2 "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"'
command_state: 'curl -k --silent --tls-max 1.2 "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep "isEnable" | cut -b 15' command_state: 'curl -k --silent --tls-max 1.2 "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep "isEnable" | cut -b 15'
value_template: '{% raw %}{{ value == "1" }}{% endraw %}' value_template: '{% raw %}{{ value == "1" }}{% endraw %}'
``` ```
The service `shell_command.foscam_turn_off` sets the camera to point down and away to indicate it is not recording, and `shell_command.foscam_turn_on` sets the camera to point where I'd like to record. h of these services require preset points to be added to your camera. See source above for additional information. The service `shell_command.foscam_turn_off` sets the camera to point down and away to indicate it is not recording, and `shell_command.foscam_turn_on` sets the camera to point where I'd like to record. Each of these services require preset points to be added to your camera. See source above for additional information.
```yaml ```yaml
shell_command: shell_command:
@ -64,14 +64,14 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: group.family entity_id: group.family
from: 'home' from: "home"
action: action:
service: script.foscam_on service: script.foscam_on
- alias: Set Foscam to Home Mode when I arrive Home - alias: Set Foscam to Home Mode when I arrive Home
trigger: trigger:
platform: state platform: state
entity_id: group.family entity_id: group.family
to: 'home' to: "home"
action: action:
service: script.foscam_off service: script.foscam_off
``` ```

View File

@ -50,7 +50,7 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.me entity_id: device_tracker.me
to: 'home' to: "home"
action: action:
service: script.notify_mqtt service: script.notify_mqtt
data: data:

View File

@ -19,12 +19,12 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.updater entity_id: binary_sensor.updater
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: notify.jabber - service: notify.jabber
data: data:
message: 'There is a new Home Assistant release available.' message: "There is a new Home Assistant release available."
``` ```
You can use [templates](/topics/templating/) to include the release number of Home Assistant if you prefer. The following example sends a notification via [Pushbullet](/integrations/pushbullet) with the Home Assistant version in the message. You can use [templates](/topics/templating/) to include the release number of Home Assistant if you prefer. The following example sends a notification via [Pushbullet](/integrations/pushbullet) with the Home Assistant version in the message.
@ -32,7 +32,7 @@ You can use [templates](/topics/templating/) to include the release number of Ho
```yaml ```yaml
notify: notify:
- platform: pushbullet - platform: pushbullet
api_key: 'YOUR_KEY_HERE' api_key: "YOUR_KEY_HERE"
name: pushbullet name: pushbullet
automation: automation:
@ -40,13 +40,13 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.updater entity_id: binary_sensor.updater
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: notify.pushbullet - service: notify.pushbullet
data: data:
title: 'New Home Assistant Release' title: "New Home Assistant Release"
target: 'YOUR_TARGET_HERE' #See Pushbullet integration for usage target: "YOUR_TARGET_HERE" #See Pushbullet integration for usage
message: "Home Assistant {% raw %} {{ state_attr('binary_sensor.updater', 'newest_version') }} {% endraw %} is now available." message: "Home Assistant {% raw %} {{ state_attr('binary_sensor.updater', 'newest_version') }} {% endraw %} is now available."
``` ```

View File

@ -160,5 +160,5 @@ automation:
{% else %}{% endraw %} {% else %}{% endraw %}
none{% raw %} none{% raw %}
{% endif %}{% endraw %} {% endif %}{% endraw %}
media_content_type: 'music' media_content_type: "music"
``` ```

View File

@ -51,7 +51,7 @@ script:
minutes: 15 minutes: 15
- service: notify.pushbullet - service: notify.pushbullet
data: data:
message: 'WeMo not found, restarting HA' message: "WeMo not found, restarting HA"
- service: switch.turn_on - service: switch.turn_on
data: data:
entity_id: switch.killhass entity_id: switch.killhass
@ -61,32 +61,32 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.wemo entity_id: device_tracker.wemo
from: 'not_home' from: "not_home"
to: 'home' to: "home"
condition: condition:
- condition: template - condition: template
value_template: {% raw %}'{% if states.switch.wemo %}false{% else %}true{% endif %}'{% endraw %} value_template: {% raw %}'{% if states.switch.wemo %}false{% else %}true{% endif %}'{% endraw %}
- condition: state - condition: state
entity_id: script.restarthawemo entity_id: script.restarthawemo
state: 'off' state: "off"
action: action:
service: homeassistant.turn_on service: homeassistant.turn_on
entity_id: script.restarthawemo entity_id: script.restarthawemo
- alias: 'Stop HA' - alias: "Stop HA"
trigger: trigger:
- platform: state - platform: state
entity_id: switch.KillHass entity_id: switch.KillHass
to: 'on' to: "on"
action: action:
service: homeassistant.stop service: homeassistant.stop
- alias: 'Stop restarting HA is WeMo is found' - alias: "Stop restarting HA is WeMo is found"
trigger: trigger:
platform: template platform: template
value_template: {% raw %}'{% if states.switch.wemo %}true{% else %}false{% endif %}'{% endraw %} value_template: {% raw %}'{% if states.switch.wemo %}true{% else %}false{% endif %}'{% endraw %}
condition: condition:
condition: state condition: state
entity_id: script.restarthawemo entity_id: script.restarthawemo
state: 'on' state: "on"
action: action:
service: homeassistant.turn_off service: homeassistant.turn_off
entity_id: script.restarthawemo entity_id: script.restarthawemo

View File

@ -24,9 +24,9 @@ automation:
- alias: Send message at a given time - alias: Send message at a given time
trigger: trigger:
platform: time platform: time
at: '12:15:00' at: "12:15:00"
action: action:
service: notify.jabber service: notify.jabber
data: data:
message: 'Time for lunch' message: "Time for lunch"
``` ```

View File

@ -36,7 +36,7 @@ script:
We call this now with: We call this now with:
```yaml ```yaml
automation: automation:
- alias: 'test' - alias: "test"
trigger: trigger:
- platform: state - platform: state
entity_id: input_boolean.mytest entity_id: input_boolean.mytest
@ -45,8 +45,8 @@ automation:
data: data:
sonos_entity: media_player.office sonos_entity: media_player.office
volume: 0.5 volume: 0.5
message: 'Your husband coming home!' message: "Your husband coming home!"
delay: '00:00:05' delay: "00:00:05"
``` ```
Note that this example uses the `voicerss` text-to-speech platform. There are many platforms that can be used. The one installed by default with Home Assistant is Google TTS. This appears in your `configuration.yaml` file as: Note that this example uses the `voicerss` text-to-speech platform. There are many platforms that can be used. The one installed by default with Home Assistant is Google TTS. This appears in your `configuration.yaml` file as:

View File

@ -20,7 +20,7 @@ sensor:
sensors: sensors:
battery_iphone: battery_iphone:
friendly_name: iPhone Battery friendly_name: iPhone Battery
unit_of_measurement: '%' unit_of_measurement: "%"
value_template: >- value_template: >-
{%- if state_attr('device_tracker.iphone', 'battery') %} {%- if state_attr('device_tracker.iphone', 'battery') %}
{{ state_attr('device_tracker.iphone', 'battery')|round }} {{ state_attr('device_tracker.iphone', 'battery')|round }}
@ -44,7 +44,7 @@ sensor:
sensors: sensors:
battery_phone: battery_phone:
friendly_name: AndroidPhone Battery friendly_name: AndroidPhone Battery
unit_of_measurement: '%' unit_of_measurement: "%"
value_template: >- value_template: >-
{%- if state_attr('device_tracker.xxxxx', 'battery_level') %} {%- if state_attr('device_tracker.xxxxx', 'battery_level') %}
{{ state_attr('device_tracker.xxxxx', 'battery_level')|round }} {{ state_attr('device_tracker.xxxxx', 'battery_level')|round }}
@ -71,7 +71,7 @@ sensor:
state_topic: "owntracks/username/deviceid" state_topic: "owntracks/username/deviceid"
name: "Battery Tablet" name: "Battery Tablet"
unit_of_measurement: "%" unit_of_measurement: "%"
value_template: '{{ value_json.batt }}' value_template: "{{ value_json.batt }}"
device_class: battery device_class: battery
``` ```
@ -90,7 +90,7 @@ sensor:
sensors: sensors:
your_battery_sensor_name: your_battery_sensor_name:
value_template: "{{ state_attr('device_tracker.deviceid', 'battery_level') }}" value_template: "{{ state_attr('device_tracker.deviceid', 'battery_level') }}"
unit_of_measurement: '%' unit_of_measurement: "%"
``` ```
{% endraw %} {% endraw %}

View File

@ -14,7 +14,7 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: sensor.motion_sensor entity_id: sensor.motion_sensor
to: 'on' to: "on"
action: action:
service: light.turn_on service: light.turn_on
entity_id: light.kitchen_light entity_id: light.kitchen_light
@ -23,7 +23,7 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: sensor.motion_sensor entity_id: sensor.motion_sensor
to: 'off' to: "off"
for: for:
minutes: 10 minutes: 10
action: action:
@ -39,7 +39,7 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: sensor.motion_sensor, binary_sensor.front_door, binary_sensor.doorbell entity_id: sensor.motion_sensor, binary_sensor.front_door, binary_sensor.doorbell
to: 'on' to: "on"
action: action:
- service: light.turn_on - service: light.turn_on
data: data:
@ -65,7 +65,7 @@ automation:
timer: timer:
hallway: hallway:
duration: '00:10:00' duration: "00:10:00"
``` ```
You can also restrict lights from turning on based on time of day and implement transitions for fading lights on and off. You can also restrict lights from turning on based on time of day and implement transitions for fading lights on and off.
@ -75,11 +75,11 @@ You can also restrict lights from turning on based on time of day and implement
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.ecolink_pir_motion_sensor_sensor entity_id: binary_sensor.ecolink_pir_motion_sensor_sensor
to: 'on' to: "on"
condition: condition:
condition: time condition: time
after: '07:30' after: "07:30"
before: '23:30' before: "23:30"
action: action:
service: homeassistant.turn_on service: homeassistant.turn_on
entity_id: group.office_lights entity_id: group.office_lights
@ -91,7 +91,7 @@ You can also restrict lights from turning on based on time of day and implement
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.ecolink_pir_motion_sensor_sensor entity_id: binary_sensor.ecolink_pir_motion_sensor_sensor
to: 'off' to: "off"
for: for:
minutes: 15 minutes: 15
action: action:

View File

@ -96,7 +96,7 @@ homeassistant:
- type: totp - type: totp
name: Authenticator app name: Authenticator app
- type: notify - type: notify
message: 'I almost forget, to get into my clubhouse, you need to say {}' message: "I almost forget, to get into my clubhouse, you need to say {}"
``` ```
After restarting Home Assistant, go to your [profile page](/docs/authentication/#your-account-profile) and there should be a "Multi-factor Authentication Modules" section. Click _Enable_ on the _Notify One-Time Password_ option. After restarting Home Assistant, go to your [profile page](/docs/authentication/#your-account-profile) and there should be a "Multi-factor Authentication Modules" section. Click _Enable_ on the _Notify One-Time Password_ option.

View File

@ -34,32 +34,35 @@ automation 2:
# Actions are scripts so can also be a list of actions # Actions are scripts so can also be a list of actions
- service: "{{ notification_service }}" - service: "{{ notification_service }}"
data: data:
message: Beautiful sunset! message: "Beautiful sunset!"
- delay: 0:35 - delay: 0:35
- service: notify.notify - service: notify.notify
data: data:
message: Oh wow you really missed something great. message: "Oh wow you really missed something great."
``` ```
Conditions can also be part of an action. You can combine multiple service calls and conditions in a single action, and they will be processed in the order you put them in. If the result of a condition is false, the action will stop there so any service calls after that condition will not be executed. Conditions can also be part of an action. You can combine multiple service calls and conditions in a single action, and they will be processed in the order you put them in. If the result of a condition is false, the action will stop there so any service calls after that condition will not be executed.
```yaml ```yaml
automation: automation:
- alias: 'Office at evening' - alias: "Office at evening"
trigger: trigger:
platform: state platform: state
entity_id: sensor.office_occupancy entity_id: sensor.office_occupancy
to: 'on' to: "on"
action: action:
- service: notify.notify - service: notify.notify
data: data:
message: Testing conditional actions message: Testing conditional actions
- condition: or - condition: or
conditions: conditions:
- condition: template - condition: numeric_state
value_template: '{% raw %}{{ state_attr('sun.sun', 'elevation') < 4 }}{% endraw %}' entity_id: sun.sun
- condition: template attribute: elevation
value_template: '{% raw %}{{ states('sensor.office_illuminance') < 10 }}{% endraw %}' below: 4
- condition: state
entity_id: sensor.office_illuminance
below: 10
- service: scene.turn_on - service: scene.turn_on
entity_id: scene.office_at_evening entity_id: scene.office_at_evening
``` ```

View File

@ -13,11 +13,11 @@ Example of using condition:
```yaml ```yaml
automation: automation:
- alias: 'Enciende Despacho' - alias: "Enciende Despacho"
trigger: trigger:
platform: state platform: state
entity_id: sensor.mini_despacho entity_id: sensor.mini_despacho
to: 'on' to: "on"
condition: condition:
condition: or condition: or
conditions: conditions:
@ -38,11 +38,11 @@ The `condition` option of an automation, also accepts a single condition templat
```yaml ```yaml
automation: automation:
- alias: 'Enciende Despacho' - alias: "Enciende Despacho"
trigger: trigger:
platform: state platform: state
entity_id: sensor.mini_despacho entity_id: sensor.mini_despacho
to: 'on' to: "on"
condition: "{{ state_attr('sun.sun', 'elevation') < 4 }}" condition: "{{ state_attr('sun.sun', 'elevation') < 4 }}"
action: action:
- service: scene.turn_on - service: scene.turn_on

View File

@ -29,7 +29,7 @@ automation 2:
service: > service: >
notify.{{ trigger.topic.split('/')[-1] }} notify.{{ trigger.topic.split('/')[-1] }}
data: data:
message: '{{ trigger.payload }}' message: "{{ trigger.payload }}"
automation 3: automation 3:
trigger: trigger:
@ -39,9 +39,9 @@ automation 3:
- light.bedroom_closet - light.bedroom_closet
- light.kiddos_closet - light.kiddos_closet
- light.linen_closet - light.linen_closet
to: 'on' to: "on"
# Trigger when someone leaves one of those lights on for 10 minutes. # Trigger when someone leaves one of those lights on for 10 minutes.
for: '00:10:00' for: "00:10:00"
action: action:
- service: light.turn_off - service: light.turn_off
data: data:

View File

@ -463,7 +463,7 @@ automation:
- trigger: - trigger:
platform: state platform: state
entity_id: binary_sensor.motion entity_id: binary_sensor.motion
to: 'on' to: "on"
action: action:
- service: climate.turn_on - service: climate.turn_on
entity_id: climate.office entity_id: climate.office

View File

@ -31,42 +31,42 @@ Example of a YAML based automation that you can add to `configuration.yaml`.
automation my_lights: automation my_lights:
# Turns on lights 1 hour before sunset if people are home # Turns on lights 1 hour before sunset if people are home
# and if people get home between 16:00-23:00 # and if people get home between 16:00-23:00
- alias: 'Rule 1 Light on in the evening' - alias: "Rule 1 Light on in the evening"
trigger: trigger:
# Prefix the first line of each trigger configuration # Prefix the first line of each trigger configuration
# with a '-' to enter multiple # with a '-' to enter multiple
- platform: sun - platform: sun
event: sunset event: sunset
offset: '-01:00:00' offset: "-01:00:00"
- platform: state - platform: state
entity_id: all entity_id: all
to: 'home' to: "home"
condition: condition:
# Prefix the first line of each condition configuration # Prefix the first line of each condition configuration
# with a '-'' to enter multiple # with a '-'' to enter multiple
- condition: state - condition: state
entity_id: all entity_id: all
state: 'home' state: "home"
- condition: time - condition: time
after: '16:00:00' after: "16:00:00"
before: '23:00:00' before: "23:00:00"
action: action:
# With a single service call, we don't need a '-' before service - though you can if you want to # With a single service call, we don't need a '-' before service - though you can if you want to
service: homeassistant.turn_on service: homeassistant.turn_on
entity_id: group.living_room entity_id: group.living_room
# Turn off lights when everybody leaves the house # Turn off lights when everybody leaves the house
- alias: 'Rule 2 - Away Mode' - alias: "Rule 2 - Away Mode"
trigger: trigger:
platform: state platform: state
entity_id: all entity_id: all
to: 'not_home' to: "not_home"
action: action:
service: light.turn_off service: light.turn_off
entity_id: all entity_id: all
# Notify when Paulus leaves the house in the evening # Notify when Paulus leaves the house in the evening
- alias: 'Leave Home notification' - alias: "Leave Home notification"
trigger: trigger:
platform: zone platform: zone
event: leave event: leave
@ -74,14 +74,14 @@ automation my_lights:
entity_id: device_tracker.paulus entity_id: device_tracker.paulus
condition: condition:
condition: time condition: time
after: '20:00' after: "20:00"
action: action:
service: notify.notify service: notify.notify
data: data:
message: 'Paulus left the house' message: "Paulus left the house"
# Send a notification via Pushover with the event of a Xiaomi cube. Custom event from the Xiaomi component. # Send a notification via Pushover with the event of a Xiaomi cube. Custom event from the Xiaomi component.
- alias: 'Xiaomi Cube Action' - alias: "Xiaomi Cube Action"
initial_state: false initial_state: false
trigger: trigger:
platform: event platform: event

View File

@ -108,7 +108,7 @@ homeassistant:
light: light:
icon: mdi:home icon: mdi:home
automation: automation:
initial_state: 'on' initial_state: "on"
# Customize entities matching a pattern # Customize entities matching a pattern
customize_glob: customize_glob:
"light.kitchen_*": "light.kitchen_*":

View File

@ -65,7 +65,7 @@ There are some rules for packages that will be merged:
input_boolean: input_boolean:
my_input: my_input:
``` ```
3. Any integration that is not a platform [2], or dictionaries with Entity ID keys [3] can only be merged if its keys, except those for lists, are solely defined once. 3. Any integration that is not a platform [1], or dictionaries with Entity ID keys [2] can only be merged if its keys, except those for lists, are solely defined once.
<div class='note tip'> <div class='note tip'>
Components inside packages can only specify platform entries using configuration style 1, where all the platforms are grouped under the integration name. Components inside packages can only specify platform entries using configuration style 1, where all the platforms are grouped under the integration name.

View File

@ -145,14 +145,14 @@ This (large) sensor configuration gives us another example:
### sensor.yaml ### sensor.yaml
### METEOBRIDGE ############################################# ### METEOBRIDGE #############################################
- platform: tcp - platform: tcp
name: 'Outdoor Temp (Meteobridge)' name: "Outdoor Temp (Meteobridge)"
host: 192.168.2.82 host: 192.168.2.82
timeout: 6 timeout: 6
payload: "Content-type: text/xml; charset=UTF-8\n\n" payload: "Content-type: text/xml; charset=UTF-8\n\n"
value_template: "{% raw %}{{value.split (' ')[2]}}{% endraw %}" value_template: "{% raw %}{{value.split (' ')[2]}}{% endraw %}"
unit: C unit: C
- platform: tcp - platform: tcp
name: 'Outdoor Humidity (Meteobridge)' name: "Outdoor Humidity (Meteobridge)"
host: 192.168.2.82 host: 192.168.2.82
port: 5556 port: 5556
timeout: 6 timeout: 6
@ -173,10 +173,10 @@ This (large) sensor configuration gives us another example:
- 'date' - 'date'
- platform: worldclock - platform: worldclock
time_zone: Etc/UTC time_zone: Etc/UTC
name: 'UTC' name: "UTC"
- platform: worldclock - platform: worldclock
time_zone: America/New_York time_zone: America/New_York
name: 'Ann Arbor' name: "Ann Arbor"
``` ```
You'll notice that this example includes a secondary parameter section (under the steam section) as well as a better example of the way comments can be used to break down files into sections. You'll notice that this example includes a secondary parameter section (under the steam section) as well as a better example of the way comments can be used to break down files into sections.
@ -231,7 +231,7 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.iphone entity_id: device_tracker.iphone
to: 'home' to: "home"
action: action:
service: light.turn_on service: light.turn_on
entity_id: light.entryway entity_id: light.entryway
@ -239,7 +239,7 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.iphone entity_id: device_tracker.iphone
from: 'home' from: "home"
action: action:
service: light.turn_off service: light.turn_off
entity_id: light.entryway entity_id: light.entryway
@ -260,7 +260,7 @@ alias: Automation 1
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.iphone entity_id: device_tracker.iphone
to: 'home' to: "home"
action: action:
service: light.turn_on service: light.turn_on
entity_id: light.entryway entity_id: light.entryway
@ -273,7 +273,7 @@ alias: Automation 2
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.iphone entity_id: device_tracker.iphone
from: 'home' from: "home"
action: action:
service: light.turn_off service: light.turn_off
entity_id: light.entryway entity_id: light.entryway
@ -370,7 +370,7 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.iphone entity_id: device_tracker.iphone
to: 'home' to: "home"
action: action:
service: light.turn_on service: light.turn_on
entity_id: light.entryway entity_id: light.entryway
@ -378,7 +378,7 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.iphone entity_id: device_tracker.iphone
from: 'home' from: "home"
action: action:
service: light.turn_off service: light.turn_off
entity_id: light.entryway entity_id: light.entryway
@ -399,7 +399,7 @@ automation: !include_dir_merge_list automation/
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.iphone entity_id: device_tracker.iphone
to: 'home' to: "home"
action: action:
service: light.turn_on service: light.turn_on
entity_id: light.entryway entity_id: light.entryway
@ -407,7 +407,7 @@ automation: !include_dir_merge_list automation/
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.iphone entity_id: device_tracker.iphone
from: 'home' from: "home"
action: action:
service: light.turn_off service: light.turn_off
entity_id: light.entryway entity_id: light.entryway

View File

@ -238,7 +238,7 @@ If you change the configuration you have to restart the server. To do that you h
As the Docker command becomes more complex, switching to `docker-compose` can be preferable and support automatically restarting on failure or system restart. Create a `docker-compose.yml` file: As the Docker command becomes more complex, switching to `docker-compose` can be preferable and support automatically restarting on failure or system restart. Create a `docker-compose.yml` file:
```yaml ```yaml
version: '3' version: "3"
services: services:
homeassistant: homeassistant:
container_name: home-assistant container_name: home-assistant
@ -266,10 +266,12 @@ docker-compose restart
To update your docker-compose image to the latest version and restart: To update your docker-compose image to the latest version and restart:
```bash ```bash
docker-compose pull docker-compose pull homeassistant
docker-compose up -d --build homeassistant docker-compose up -d
``` ```
Note: the above will fetch the latest matching image for the `homeassistant` service only. To fetch all matching images for all services defined in the same `docker-compose.yaml` file, omit the service name from the first command.
## Exposing Devices ## Exposing Devices
In order to use Z-Wave, Zigbee or other integrations that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your Docker command: In order to use Z-Wave, Zigbee or other integrations that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your Docker command:
@ -283,7 +285,7 @@ $ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config \
or in a `docker-compose.yml` file: or in a `docker-compose.yml` file:
```yaml ```yaml
version: '3' version: "3"
services: services:
homeassistant: homeassistant:
container_name: home-assistant container_name: home-assistant

View File

@ -14,18 +14,18 @@ To customize the MQTT Birth and Last Will messages, add the following section to
# Example configuration.yaml entry # Example configuration.yaml entry
mqtt: mqtt:
birth_message: birth_message:
topic: 'hass/status' topic: "hass/status"
payload: 'online' payload: "online"
will_message: will_message:
topic: 'hass/status' topic: "hass/status"
payload: 'offline' payload: "offline"
``` ```
{% configuration %} {% configuration %}
birth_message: birth_message:
description: Birth Message. Set to the empty dict, `{}`, to disable publishing a birth message. description: Birth Message. Set to the empty dict, `{}`, to disable publishing a birth message.
required: false required: false
type: list type: map
keys: keys:
topic: topic:
description: The MQTT topic to publish the message. description: The MQTT topic to publish the message.
@ -50,7 +50,7 @@ birth_message:
will_message: will_message:
description: Will Message. Set to the empty dict, `{}`, to disable publishing a will message. description: Will Message. Set to the empty dict, `{}`, to disable publishing a will message.
required: false required: false
type: list type: map
keys: keys:
topic: topic:
description: The MQTT topic to publish the message. description: The MQTT topic to publish the message.

View File

@ -18,7 +18,7 @@ script:
entity_id: light.ceiling entity_id: light.ceiling
- service: notify.notify - service: notify.notify
data: data:
message: 'Turned on the ceiling light!' message: "Turned on the ceiling light!"
``` ```
- [Call a Service](#call-a-service) - [Call a Service](#call-a-service)
@ -68,7 +68,9 @@ The variables command allows you to set/override variables that will be accessib
```yaml ```yaml
- variables: - variables:
entities: light.kitchen, light.living_room entities:
- light.kitchen
- light.living_room
brightness: 100 brightness: 100
- alias: Control lights - alias: Control lights
service: light.turn_on service: light.turn_on
@ -87,7 +89,7 @@ While executing a script you can add a condition to stop further execution. When
# If paulus is home, continue to execute the script below these lines # If paulus is home, continue to execute the script below these lines
- condition: state - condition: state
entity_id: device_tracker.paulus entity_id: device_tracker.paulus
state: 'home' state: "home"
``` ```
## Delay ## Delay
@ -95,6 +97,7 @@ While executing a script you can add a condition to stop further execution. When
Delays are useful for temporarily suspending your script and start it at a later moment. We support different syntaxes for a delay as shown below. Delays are useful for temporarily suspending your script and start it at a later moment. We support different syntaxes for a delay as shown below.
{% raw %} {% raw %}
```yaml ```yaml
# Seconds # Seconds
# Waits 5 seconds # Waits 5 seconds
@ -104,13 +107,13 @@ Delays are useful for temporarily suspending your script and start it at a later
```yaml ```yaml
# HH:MM # HH:MM
# Waits 1 hour # Waits 1 hour
- delay: '01:00' - delay: "01:00"
``` ```
```yaml ```yaml
# HH:MM:SS # HH:MM:SS
# Waits 1.5 minutes # Waits 1.5 minutes
- delay: '00:01:30' - delay: "00:01:30"
``` ```
```yaml ```yaml
@ -120,15 +123,18 @@ Delays are useful for temporarily suspending your script and start it at a later
- delay: - delay:
minutes: 1 minutes: 1
``` ```
{% endraw %} {% endraw %}
All forms accept templates. All forms accept templates.
{% raw %} {% raw %}
```yaml ```yaml
# Waits however many minutes input_number.minute_delay is set to # Waits however many minutes input_number.minute_delay is set to
- delay: "{{ states('input_number.minute_delay') | multiply(60) | int }}" - delay: "{{ states('input_number.minute_delay') | multiply(60) | int }}"
``` ```
{% endraw %} {% endraw %}
## Wait ## Wait
@ -145,15 +151,18 @@ The template is re-evaluated whenever an entity ID that it references changes st
{% raw %} {% raw %}
```yaml ```yaml
# Wait until media player have stop the playing # Wait until media player have stop the playing
- wait_template: "{{ is_state('media_player.floor', 'stop') }}" - wait_template: "{{ is_state('media_player.floor', 'stop') }}"
``` ```
{% endraw %} {% endraw %}
### Wait for Trigger ### Wait for Trigger
This action can use the same triggers that are available in an automation's `trigger` section. See [Automation Trigger](/docs/automation/trigger). The script will continue whenever any of the triggers fires. This action can use the same triggers that are available in an automation's `trigger` section. See [Automation Trigger](/docs/automation/trigger). The script will continue whenever any of the triggers fires.
{% raw %} {% raw %}
```yaml ```yaml
# Wait for a custom event or light to turn on and stay on for 10 sec # Wait for a custom event or light to turn on and stay on for 10 sec
- wait_for_trigger: - wait_for_trigger:
@ -161,9 +170,10 @@ This action can use the same triggers that are available in an automation's `tri
event_type: MY_EVENT event_type: MY_EVENT
- platform: state - platform: state
entity_id: light.LIGHT entity_id: light.LIGHT
to: 'on' to: "on"
for: 10 for: 10
``` ```
{% endraw %} {% endraw %}
### Wait Timeout ### Wait Timeout
@ -171,17 +181,20 @@ This action can use the same triggers that are available in an automation's `tri
With both types of waits it is possible to set a timeout after which the script will continue its execution if the condition/event is not satisfied. Timeout has the same syntax as `delay`, and like `delay`, also accepts templates. With both types of waits it is possible to set a timeout after which the script will continue its execution if the condition/event is not satisfied. Timeout has the same syntax as `delay`, and like `delay`, also accepts templates.
{% raw %} {% raw %}
```yaml ```yaml
# Wait for sensor to change to 'on' up to 1 minute before continuing to execute. # Wait for sensor to change to 'on' up to 1 minute before continuing to execute.
- wait_template: "{{ is_state('binary_sensor.entrance', 'on') }}" - wait_template: "{{ is_state('binary_sensor.entrance', 'on') }}"
timeout: '00:01:00' timeout: "00:01:00"
``` ```
{% endraw %} {% endraw %}
You can also get the script to abort after the timeout by using optional `continue_on_timeout: false`. You can also get the script to abort after the timeout by using optional `continue_on_timeout: false`.
{% raw %} {% raw %}
```yaml ```yaml
# Wait for IFTTT event or abort after specified timeout. # Wait for IFTTT event or abort after specified timeout.
- wait_for_trigger: - wait_for_trigger:
- platform: event - platform: event
@ -192,6 +205,7 @@ You can also get the script to abort after the timeout by using optional `contin
minutes: "{{ timeout_minutes }}" minutes: "{{ timeout_minutes }}"
continue_on_timeout: false continue_on_timeout: false
``` ```
{% endraw %} {% endraw %}
Without `continue_on_timeout: false` the script will always continue since the default for `continue_on_timeout` is `true`. Without `continue_on_timeout: false` the script will always continue since the default for `continue_on_timeout` is `true`.
@ -209,14 +223,13 @@ Variable | Description
This can be used to take different actions based on whether or not the condition was met, or to use more than one wait sequentially while implementing a single timeout overall. This can be used to take different actions based on whether or not the condition was met, or to use more than one wait sequentially while implementing a single timeout overall.
{% raw %} {% raw %}
```yaml ```yaml
# Take different actions depending on if condition was met. # Take different actions depending on if condition was met.
- wait_template: "{{ is_state('binary_sensor.door', 'on') }}" - wait_template: "{{ is_state('binary_sensor.door', 'on') }}"
timeout: 10 timeout: 10
- choose: - choose:
- conditions: - conditions: "{{ not wait.completed }}"
- condition: template
value_template: "{{ not wait.completed }}"
sequence: sequence:
- service: script.door_did_not_open - service: script.door_did_not_open
default: default:
@ -234,7 +247,7 @@ This can be used to take different actions based on whether or not the condition
- wait_for_trigger: - wait_for_trigger:
- platform: state - platform: state
entity_id: binary_sensor.door_2 entity_id: binary_sensor.door_2
to: 'on' to: "on"
for: 2 for: 2
timeout: "{{ wait.remaining }}" timeout: "{{ wait.remaining }}"
continue_on_timeout: false continue_on_timeout: false
@ -260,35 +273,36 @@ You can also use event_data to fire an event with custom data. This could be use
an event trigger. an event trigger.
{% raw %} {% raw %}
```yaml ```yaml
- event: MY_EVENT - event: MY_EVENT
event_data: event_data:
name: myEvent name: myEvent
customData: "{{ myCustomVariable }}" customData: "{{ myCustomVariable }}"
``` ```
{% endraw %} {% endraw %}
### Raise and Consume Custom Events ### Raise and Consume Custom Events
The following automation shows how to raise a custom event called `event_light_state_changed` with `entity_id` as the event data. The action part could be inside a script or an automation. The following automation shows how to raise a custom event called `event_light_state_changed` with `entity_id` as the event data. The action part could be inside a script or an automation.
{% raw %}
```yaml ```yaml
- alias: Fire Event - alias: Fire Event
trigger: trigger:
- platform: state - platform: state
entity_id: switch.kitchen entity_id: switch.kitchen
to: 'on' to: "on"
action: action:
- event: event_light_state_changed - event: event_light_state_changed
event_data: event_data:
state: 'on' state: "on"
``` ```
{% endraw %}
The following automation shows how to capture the custom event `event_light_state_changed`, and retrieve corresponding `entity_id` that was passed as the event data. The following automation shows how to capture the custom event `event_light_state_changed`, and retrieve corresponding `entity_id` that was passed as the event data.
{% raw %} {% raw %}
```yaml ```yaml
- alias: Capture Event - alias: Capture Event
trigger: trigger:
@ -299,6 +313,7 @@ The following automation shows how to capture the custom event `event_light_stat
data: data:
message: "kitchen light is turned {{ trigger.event.data.state }}" message: "kitchen light is turned {{ trigger.event.data.state }}"
``` ```
{% endraw %} {% endraw %}
## Repeat a Group of Actions ## Repeat a Group of Actions
@ -312,6 +327,7 @@ This form accepts a count value. The value may be specified by a template, in wh
the template is rendered when the repeat step is reached. the template is rendered when the repeat step is reached.
{% raw %} {% raw %}
```yaml ```yaml
script: script:
flash_light: flash_light:
@ -334,6 +350,7 @@ script:
light: hallway light: hallway
count: 3 count: 3
``` ```
{% endraw %} {% endraw %}
### While Loop ### While Loop
@ -353,7 +370,7 @@ script:
while: while:
- condition: state - condition: state
entity_id: input_boolean.do_something entity_id: input_boolean.do_something
state: 'on' state: "on"
# Don't do it too many times # Don't do it too many times
- condition: template - condition: template
value_template: "{{ repeat.index <= 20 }}" value_template: "{{ repeat.index <= 20 }}"
@ -389,11 +406,11 @@ automation:
- trigger: - trigger:
- platform: state - platform: state
entity_id: binary_sensor.xyz entity_id: binary_sensor.xyz
to: 'on' to: "on"
condition: condition:
- condition: state - condition: state
entity_id: binary_sensor.something entity_id: binary_sensor.something
state: 'off' state: "off"
mode: single mode: single
action: action:
- alias: Repeat the sequence UNTIL the conditions are true - alias: Repeat the sequence UNTIL the conditions are true
@ -408,7 +425,7 @@ automation:
# Did it work? # Did it work?
- condition: state - condition: state
entity_id: binary_sensor.something entity_id: binary_sensor.something
state: 'on' state: "on"
``` ```
{% endraw %} {% endraw %}
@ -454,7 +471,7 @@ automation:
- trigger: - trigger:
- platform: state - platform: state
entity_id: binary_sensor.motion entity_id: binary_sensor.motion
to: 'on' to: "on"
action: action:
- choose: - choose:
# IF nobody home, sound the alarm! # IF nobody home, sound the alarm!
@ -500,7 +517,7 @@ automation:
- trigger: - trigger:
- platform: state - platform: state
entity_id: input_boolean.simulate entity_id: input_boolean.simulate
to: 'on' to: "on"
mode: restart mode: restart
action: action:
- choose: - choose:

View File

@ -16,10 +16,10 @@ condition:
condition: and condition: and
conditions: conditions:
- condition: state - condition: state
entity_id: 'device_tracker.paulus' entity_id: "device_tracker.paulus"
state: 'home' state: "home"
- condition: numeric_state - condition: numeric_state
entity_id: 'sensor.temperature' entity_id: "sensor.temperature"
below: 20 below: 20
``` ```
@ -30,10 +30,10 @@ The following configuration works the same as the one listed above:
```yaml ```yaml
condition: condition:
- condition: state - condition: state
entity_id: 'device_tracker.paulus' entity_id: "device_tracker.paulus"
state: 'home' state: "home"
- condition: numeric_state - condition: numeric_state
entity_id: 'sensor.temperature' entity_id: "sensor.temperature"
below: 20 below: 20
``` ```
@ -48,10 +48,10 @@ condition:
condition: or condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: 'device_tracker.paulus' entity_id: "device_tracker.paulus"
state: 'home' state: "home"
- condition: numeric_state - condition: numeric_state
entity_id: 'sensor.temperature' entity_id: "sensor.temperature"
below: 20 below: 20
``` ```
@ -65,15 +65,15 @@ condition:
condition: and condition: and
conditions: conditions:
- condition: state - condition: state
entity_id: 'device_tracker.paulus' entity_id: "device_tracker.paulus"
state: 'home' state: "home"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: sensor.weather_precip entity_id: sensor.weather_precip
state: 'rain' state: "rain"
- condition: numeric_state - condition: numeric_state
entity_id: 'sensor.temperature' entity_id: "sensor.temperature"
below: 20 below: 20
``` ```
@ -87,7 +87,7 @@ condition:
conditions: conditions:
- condition: state - condition: state
entity_id: device_tracker.paulus entity_id: device_tracker.paulus
state: 'home' state: "home"
- condition: state - condition: state
entity_id: alarm_control_panel.home_alarm entity_id: alarm_control_panel.home_alarm
state: disarmed state: disarmed
@ -167,7 +167,7 @@ Tests if an entity is a specified state.
condition: condition:
condition: state condition: state
entity_id: device_tracker.paulus entity_id: device_tracker.paulus
state: 'not_home' state: "not_home"
# optional: trigger only if state was this for last X time. # optional: trigger only if state was this for last X time.
for: for:
hours: 1 hours: 1
@ -184,7 +184,7 @@ condition:
entity_id: entity_id:
- light.kitchen - light.kitchen
- light.living_room - light.living_room
state: 'on' state: "on"
``` ```
Testing if an entity is matching a set of possible conditions; Testing if an entity is matching a set of possible conditions;
@ -245,14 +245,14 @@ The sun state can be used to test if the sun has set or risen.
condition: condition:
condition: state # 'day' condition: from sunrise until sunset condition: state # 'day' condition: from sunrise until sunset
entity_id: sun.sun entity_id: sun.sun
state: 'above_horizon' state: "above_horizon"
``` ```
```yaml ```yaml
condition: condition:
condition: state # from sunset until sunrise condition: state # from sunset until sunrise
entity_id: sun.sun entity_id: sun.sun
state: 'below_horizon' state: "below_horizon"
``` ```
### Sun elevation condition ### Sun elevation condition
@ -392,7 +392,7 @@ condition:
conditions: conditions:
- "{{ is_state('device_tracker.iphone', 'away') }}" - "{{ is_state('device_tracker.iphone', 'away') }}"
- condition: numeric_state - condition: numeric_state
entity_id: 'sensor.temperature' entity_id: "sensor.temperature"
below: 20 below: 20
``` ```
@ -442,8 +442,8 @@ The time condition can test if it is after a specified time, before a specified
condition: condition:
condition: time condition: time
# At least one of the following is required. # At least one of the following is required.
after: '15:00:00' after: "15:00:00"
before: '02:00:00' before: "02:00:00"
weekday: weekday:
- mon - mon
- wed - wed
@ -532,13 +532,13 @@ condition:
below: 1 below: 1
- condition: state - condition: state
entity_id: light.living_room entity_id: light.living_room
state: 'off' state: "off"
- condition: time - condition: time
before: '23:00:00' before: "23:00:00"
after: '14:00:00' after: "14:00:00"
- condition: state - condition: state
entity_id: script.light_turned_off_5min entity_id: script.light_turned_off_5min
state: 'off' state: "off"
``` ```
{% endraw %} {% endraw %}

View File

@ -109,7 +109,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl
```yaml ```yaml
- id: mini_1_pressed - id: mini_1_pressed
alias: 'Minimote Button 1 Pressed' alias: "Minimote Button 1 Pressed"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -117,7 +117,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl
entity_id: zwave.aeon_labs_minimote_1 entity_id: zwave.aeon_labs_minimote_1
scene_id: 1 scene_id: 1
- id: mini_1_held - id: mini_1_held
alias: 'Minimote Button 1 Held' alias: "Minimote Button 1 Held"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -125,7 +125,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl
entity_id: zwave.aeon_labs_minimote_1 entity_id: zwave.aeon_labs_minimote_1
scene_id: 2 scene_id: 2
- id: mini_2_pressed - id: mini_2_pressed
alias: 'Minimote Button 2 Pressed' alias: "Minimote Button 2 Pressed"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -133,7 +133,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl
entity_id: zwave.aeon_labs_minimote_1 entity_id: zwave.aeon_labs_minimote_1
scene_id: 3 scene_id: 3
- id: mini_2_held - id: mini_2_held
alias: 'Minimote Button 2 Held' alias: "Minimote Button 2 Held"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -141,7 +141,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl
entity_id: zwave.aeon_labs_minimote_1 entity_id: zwave.aeon_labs_minimote_1
scene_id: 4 scene_id: 4
- id: mini_3_pressed - id: mini_3_pressed
alias: 'Minimote Button 3 Pressed' alias: "Minimote Button 3 Pressed"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -149,7 +149,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl
entity_id: zwave.aeon_labs_minimote_1 entity_id: zwave.aeon_labs_minimote_1
scene_id: 5 scene_id: 5
- id: mini_3_held - id: mini_3_held
alias: 'Minimote Button 3 Held' alias: "Minimote Button 3 Held"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -157,7 +157,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl
entity_id: zwave.aeon_labs_minimote_1 entity_id: zwave.aeon_labs_minimote_1
scene_id: 6 scene_id: 6
- id: mini_4_pressed - id: mini_4_pressed
alias: 'Minimote Button 4 Pressed' alias: "Minimote Button 4 Pressed"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -165,7 +165,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl
entity_id: zwave.aeon_labs_minimote_1 entity_id: zwave.aeon_labs_minimote_1
scene_id: 7 scene_id: 7
- id: mini_4_held - id: mini_4_held
alias: 'Minimote Button 4 Held' alias: "Minimote Button 4 Held"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.scene_activated event_type: zwave.scene_activated
@ -1080,7 +1080,7 @@ Double-press | 3
Let's see how this works in an automation for a Scene Master that's assigned as Node 7: Let's see how this works in an automation for a Scene Master that's assigned as Node 7:
```yaml ```yaml
- id: '1234567890' - id: "1234567890"
alias: Double-press Button 2 to toggle all lights alias: Double-press Button 2 to toggle all lights
trigger: trigger:
- platform: event - platform: event

View File

@ -96,7 +96,7 @@ Some devices (like the HomeSeer wall switches) allow you to do things like doubl
```yaml ```yaml
# Example configuration.yaml automation entry # Example configuration.yaml automation entry
automation automation
- alias: 'Dining room dimmer - double tap up' - alias: "Dining room dimmer - double tap up"
trigger: trigger:
- event_type: zwave.scene_activated - event_type: zwave.scene_activated
platform: event platform: event

View File

@ -30,7 +30,7 @@ To enable ADS, add the following lines to your `configuration.yaml` file:
```yaml ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry
ads: ads:
device: '127.0.0.1.1.1' device: "127.0.0.1.1.1"
port: 801 port: 801
``` ```
@ -138,7 +138,7 @@ file:
sensor: sensor:
- platform: ads - platform: ads
adsvar: GVL.temperature adsvar: GVL.temperature
unit_of_measurement: '°C' unit_of_measurement: "°C"
adstype: int adstype: int
``` ```

View File

@ -8,7 +8,7 @@ ha_iot_class: Cloud Polling
ha_domain: aftership ha_domain: aftership
--- ---
The `aftership` platform allows one to track deliveries by [AfterShip](https://www.aftership.com), a service that supports 490+ couriers worldwide. There is a 'Forever Free' tier which allows tracking of up to 50 packages per month. There are various paid-for tiers after that. The `aftership` platform allows one to track deliveries by [AfterShip](https://www.aftership.com), a service that supports 490+ couriers worldwide. To use the tracking API functionality, the Essentials plan is required. This plan includes 100 shipments per month. There are various paid-for tiers after that.
The sensor value shows the number of packages that are not in `Delivered` state. As attributes are the number of packages per status. The sensor value shows the number of packages that are not in `Delivered` state. As attributes are the number of packages per status.
@ -17,7 +17,7 @@ The sensor value shows the number of packages that are not in `Delivered` state.
To use this sensor, you need an [AfterShip Account](https://accounts.aftership.com/register) and set up an API Key. To set up an API Key go to [AfterShip API](https://admin.aftership.com/settings/api-keys) page, and copy existing key or generate a new one. To use this sensor, you need an [AfterShip Account](https://accounts.aftership.com/register) and set up an API Key. To set up an API Key go to [AfterShip API](https://admin.aftership.com/settings/api-keys) page, and copy existing key or generate a new one.
<div class='note info'> <div class='note info'>
AfterShip recently started requiring having a credit card on file even if you are only using the free plan. That does not change the functionality of the platform, just something to be aware of. AfterShip recently removed the tracking API functionality from the Forever Free plan. The tracking API functionality requires at least the Essentials plan.
</div> </div>
## Configuration ## Configuration

View File

@ -89,7 +89,7 @@ command_topic:
required: true required: true
type: string type: string
device: device:
description: 'Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.' description: "Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
required: false required: false
type: map type: map
keys: keys:
@ -98,27 +98,27 @@ device:
required: false required: false
type: list type: list
identifiers: identifiers:
description: 'A list of IDs that uniquely identify the device. For example a serial number.' description: "A list of IDs that uniquely identify the device. For example a serial number."
required: false required: false
type: [list, string] type: [list, string]
manufacturer: manufacturer:
description: 'The manufacturer of the device.' description: "The manufacturer of the device."
required: false required: false
type: string type: string
model: model:
description: 'The model of the device.' description: "The model of the device."
required: false required: false
type: string type: string
name: name:
description: 'The name of the device.' description: "The name of the device."
required: false required: false
type: string type: string
sw_version: sw_version:
description: 'The firmware version of the device.' description: "The firmware version of the device."
required: false required: false
type: string type: string
via_device: via_device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.' description: "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant."
required: false required: false
type: string type: string
json_attributes_template: json_attributes_template:

View File

@ -47,7 +47,7 @@ alarm_control_panel:
disarm: disarm:
- condition: state - condition: state
entity_id: device_tracker.paulus entity_id: device_tracker.paulus
state: 'home' state: "home"
- service: alarm_control_panel.alarm_arm_home - service: alarm_control_panel.alarm_arm_home
data: data:
entity_id: alarm_control_panel.real_alarm entity_id: alarm_control_panel.real_alarm

View File

@ -38,7 +38,7 @@ alert:
name: Garage is open name: Garage is open
done_message: Garage is closed done_message: Garage is closed
entity_id: input_boolean.garage_door entity_id: input_boolean.garage_door
state: 'on' state: "on"
repeat: 30 repeat: 30
can_acknowledge: true can_acknowledge: true
skip_first: true skip_first: true
@ -137,7 +137,7 @@ alert:
freshwater_temp_alert: freshwater_temp_alert:
name: "Warning: I have detected a problem with the freshwater tank temperature" name: "Warning: I have detected a problem with the freshwater tank temperature"
entity_id: binary_sensor.freshwater_temperature_status entity_id: binary_sensor.freshwater_temperature_status
state: 'on' state: "on"
repeat: 5 repeat: 5
can_acknowledge: true can_acknowledge: true
skip_first: false skip_first: false
@ -163,7 +163,7 @@ binary_sensor:
sensors: sensors:
motion_battery_low: motion_battery_low:
value_template: "{{ state_attr('sensor.motion', 'battery') < 15 }}" value_template: "{{ state_attr('sensor.motion', 'battery') < 15 }}"
friendly_name: 'Motion battery is low' friendly_name: "Motion battery is low"
alert: alert:
motion_battery: motion_battery:
@ -194,7 +194,7 @@ alert:
garage_door: garage_door:
name: Garage is open name: Garage is open
entity_id: input_boolean.garage_door entity_id: input_boolean.garage_door
state: 'on' # Optional, 'on' is the default value state: "on" # Optional, 'on' is the default value
repeat: repeat:
- 15 - 15
- 30 - 30
@ -228,7 +228,7 @@ alert:
office_plant: office_plant:
name: Plant in office needs help name: Plant in office needs help
entity_id: plant.plant_office entity_id: plant.plant_office
state: 'problem' state: "problem"
repeat: 30 repeat: 30
can_acknowledge: true can_acknowledge: true
skip_first: true skip_first: true
@ -254,7 +254,7 @@ alert:
garage_door: garage_door:
name: Garage is open name: Garage is open
entity_id: input_boolean.garage_door entity_id: input_boolean.garage_door
state: 'on' # Optional, 'on' is the default value state: "on" # Optional, 'on' is the default value
repeat: repeat:
- 15 - 15
- 30 - 30

View File

@ -84,7 +84,7 @@ Say to all `media_player` device entities:
```yaml ```yaml
- service: tts.amazon_polly_say - service: tts.amazon_polly_say
data: data:
message: '<speak>Hello from Amazon Polly</speak>' message: "<speak>Hello from Amazon Polly</speak>"
``` ```
or or

View File

@ -246,9 +246,9 @@ camera_image: camera.lakehouse
camera_view: live # or auto for snapshot view camera_view: live # or auto for snapshot view
elements: elements:
- type: icon - type: icon
icon: 'mdi:arrow-up' icon: "mdi:arrow-up"
style: style:
background: 'rgba(255, 255, 255, 0.25)' background: "rgba(255, 255, 255, 0.25)"
right: 25px right: 25px
bottom: 50px bottom: 50px
tap_action: tap_action:
@ -258,9 +258,9 @@ elements:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: up movement: up
- type: icon - type: icon
icon: 'mdi:arrow-down' icon: "mdi:arrow-down"
style: style:
background: 'rgba(255, 255, 255, 0.25)' background: "rgba(255, 255, 255, 0.25)"
right: 25px right: 25px
bottom: 0px bottom: 0px
tap_action: tap_action:
@ -270,9 +270,9 @@ elements:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: down movement: down
- type: icon - type: icon
icon: 'mdi:arrow-left' icon: "mdi:arrow-left"
style: style:
background: 'rgba(255, 255, 255, 0.25)' background: "rgba(255, 255, 255, 0.25)"
right: 50px right: 50px
bottom: 25px bottom: 25px
tap_action: tap_action:
@ -282,9 +282,9 @@ elements:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: left movement: left
- type: icon - type: icon
icon: 'mdi:arrow-right' icon: "mdi:arrow-right"
style: style:
background: 'rgba(255, 255, 255, 0.25)' background: "rgba(255, 255, 255, 0.25)"
right: 0px right: 0px
bottom: 25px bottom: 25px
tap_action: tap_action:
@ -294,9 +294,9 @@ elements:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: right movement: right
- type: icon - type: icon
icon: 'mdi:arrow-top-left' icon: "mdi:arrow-top-left"
style: style:
background: 'rgba(255, 255, 255, 0.25)' background: "rgba(255, 255, 255, 0.25)"
right: 50px right: 50px
bottom: 50px bottom: 50px
tap_action: tap_action:
@ -306,9 +306,9 @@ elements:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: left_up movement: left_up
- type: icon - type: icon
icon: 'mdi:arrow-top-right' icon: "mdi:arrow-top-right"
style: style:
background: 'rgba(255, 255, 255, 0.25)' background: "rgba(255, 255, 255, 0.25)"
right: 0px right: 0px
bottom: 50px bottom: 50px
tap_action: tap_action:
@ -318,9 +318,9 @@ elements:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: right_up movement: right_up
- type: icon - type: icon
icon: 'mdi:arrow-bottom-left' icon: "mdi:arrow-bottom-left"
style: style:
background: 'rgba(255, 255, 255, 0.25)' background: "rgba(255, 255, 255, 0.25)"
right: 50px right: 50px
bottom: 0px bottom: 0px
tap_action: tap_action:
@ -330,9 +330,9 @@ elements:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: left_down movement: left_down
- type: icon - type: icon
icon: 'mdi:arrow-bottom-right' icon: "mdi:arrow-bottom-right"
style: style:
background: 'rgba(255, 255, 255, 0.25)' background: "rgba(255, 255, 255, 0.25)"
right: 0px right: 0px
bottom: 0px bottom: 0px
tap_action: tap_action:
@ -342,9 +342,9 @@ elements:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: right_down movement: right_down
- type: icon - type: icon
icon: 'mdi:magnify' icon: "mdi:magnify"
style: style:
background: 'rgba(255, 255, 255, 0.25)' background: "rgba(255, 255, 255, 0.25)"
bottom: 25px bottom: 25px
right: 25px right: 25px
tap_action: tap_action:

View File

@ -181,7 +181,7 @@ binary_sensor:
name: Kitchen Motion name: Kitchen Motion
device_class: motion device_class: motion
resource: http://IP_ADDRESS:PORT/sensors.json?sense=motion_active resource: http://IP_ADDRESS:PORT/sensors.json?sense=motion_active
value_template: '{{ value_json.motion_active.data[0][1][0] | round(0) }}' value_template: "{{ value_json.motion_active.data[0][1][0] | round(0) }}"
``` ```
{% endraw %} {% endraw %}

View File

@ -217,14 +217,14 @@ start_netflix:
- service: media_player.select_source - service: media_player.select_source
data: data:
entity_id: media_player.fire_tv_living_room entity_id: media_player.fire_tv_living_room
source: 'com.netflix.ninja' source: "com.netflix.ninja"
stop_netflix: stop_netflix:
sequence: sequence:
- service: media_player.select_source - service: media_player.select_source
data: data:
entity_id: media_player.fire_tv_living_room entity_id: media_player.fire_tv_living_room
source: '!com.netflix.ninja' source: "!com.netflix.ninja"
``` ```
### `androidtv.adb_command` ### `androidtv.adb_command`

View File

@ -54,7 +54,7 @@ The Arlo integration also provides a camera service to enable/disable the motion
```yaml ```yaml
#automation.yaml #automation.yaml
- alias: Enable Arlo upon HA start' - alias: Enable Arlo upon HA start'
initial_state: 'on' initial_state: "on"
trigger: trigger:
platform: homeassistant platform: homeassistant
event: start event: start
@ -142,7 +142,7 @@ Once you have enabled the [Arlo component](/integrations/arlo), add the followin
# Example configuration.yaml entry # Example configuration.yaml entry
camera: camera:
- platform: arlo - platform: arlo
ffmpeg_arguments: '-pred 1 -q:v 2' ffmpeg_arguments: "-pred 1 -q:v 2"
``` ```
{% configuration %} {% configuration %}

View File

@ -75,7 +75,7 @@ Using the lock operation sensors, you can detect when a user operates a lock and
{% raw %} {% raw %}
```yaml ```yaml
- id: '1583706446906' - id: "1583706446906"
alias: joe_doe_front_door_operate alias: joe_doe_front_door_operate
description: John Doe locks or unlocks the Front Door description: John Doe locks or unlocks the Front Door
trigger: trigger:

View File

@ -32,7 +32,7 @@ Add the following to your `configuration.yaml` file:
# Example configuration.yaml entry # Example configuration.yaml entry
sensor: sensor:
- platform: aurora_abb_powerone - platform: aurora_abb_powerone
device: 'SERIAL_PORT' device: "SERIAL_PORT"
``` ```
{% configuration %} {% configuration %}
@ -57,5 +57,5 @@ name:
sensor: sensor:
- platform: aurora_abb_powerone - platform: aurora_abb_powerone
address: 2 address: 2
device: '/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0' device: "/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0"
``` ```

View File

@ -24,11 +24,11 @@ binary_sensor:
- platform: bayesian - platform: bayesian
prior: 0.1 prior: 0.1
observations: observations:
- entity_id: 'switch.kitchen_lights' - entity_id: "switch.kitchen_lights"
prob_given_true: 0.6 prob_given_true: 0.6
prob_given_false: 0.2 prob_given_false: 0.2
platform: 'state' platform: "state"
to_state: 'on' to_state: "on"
``` ```
{% configuration %} {% configuration %}
@ -90,29 +90,29 @@ The following is an example for the `state` observation platform.
```yaml ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry
binary_sensor: binary_sensor:
name: 'in_bed' name: "in_bed"
platform: 'bayesian' platform: "bayesian"
prior: 0.25 prior: 0.25
probability_threshold: 0.95 probability_threshold: 0.95
observations: observations:
- platform: 'state' - platform: "state"
entity_id: 'sensor.living_room_motion' entity_id: "sensor.living_room_motion"
prob_given_true: 0.4 prob_given_true: 0.4
prob_given_false: 0.2 prob_given_false: 0.2
to_state: 'off' to_state: "off"
- platform: 'state' - platform: "state"
entity_id: 'sensor.basement_motion' entity_id: "sensor.basement_motion"
prob_given_true: 0.5 prob_given_true: 0.5
prob_given_false: 0.4 prob_given_false: 0.4
to_state: 'off' to_state: "off"
- platform: 'state' - platform: "state"
entity_id: 'sensor.bedroom_motion' entity_id: "sensor.bedroom_motion"
prob_given_true: 0.5 prob_given_true: 0.5
to_state: 'on' to_state: "on"
- platform: 'state' - platform: "state"
entity_id: 'sun.sun' entity_id: "sun.sun"
prob_given_true: 0.7 prob_given_true: 0.7
to_state: 'below_horizon' to_state: "below_horizon"
``` ```
Next up an example which targets the `numeric_state` observation platform, Next up an example which targets the `numeric_state` observation platform,
@ -121,13 +121,13 @@ as seen in the configuration it requires `below` and/or `above` instead of `to_s
```yaml ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry
binary_sensor: binary_sensor:
name: 'Heat On' name: "Heat On"
platform: 'bayesian' platform: "bayesian"
prior: 0.2 prior: 0.2
probability_threshold: 0.9 probability_threshold: 0.9
observations: observations:
- platform: 'numeric_state' - platform: "numeric_state"
entity_id: 'sensor.outside_air_temperature_fahrenheit' entity_id: "sensor.outside_air_temperature_fahrenheit"
prob_given_true: 0.95 prob_given_true: 0.95
below: 50 below: 50
``` ```
@ -139,8 +139,8 @@ Finally, here's an example for `template` observation platform, as seen in the c
```yaml ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry
binary_sensor: binary_sensor:
name: 'Paulus Home' name: "Paulus Home"
platform: 'bayesian' platform: "bayesian"
prior: 0.5 prior: 0.5
probability_threshold: 0.9 probability_threshold: 0.9
observations: observations:

View File

@ -239,7 +239,7 @@ binary_sensor:
my_device: my_device:
value_template: >- value_template: >-
{{ is_state('device_tracker.my_device_nmap','home') or is_state('device_tracker.my_device_gps','home') }} {{ is_state('device_tracker.my_device_nmap','home') or is_state('device_tracker.my_device_gps','home') }}
device_class: 'presence' device_class: "presence"
attribute_templates: attribute_templates:
latitude: >- latitude: >-
{% if is_state('device_tracker.my_device_nmap','home') %} {% if is_state('device_tracker.my_device_nmap','home') %}
@ -301,7 +301,7 @@ binary_sensor:
- platform: template - platform: template
sensors: sensors:
has_unavailable_states: has_unavailable_states:
value_template: '{{ states | selectattr('state', 'in', ['unavailable', 'unknown', 'none']) | list | count }}' value_template: "{{ states | selectattr('state', 'in', ['unavailable', 'unknown', 'none']) | list | count }}"
``` ```
{% endraw %} {% endraw %}
@ -315,7 +315,7 @@ binary_sensor:
- platform: template - platform: template
sensors: sensors:
has_sensor_unavailable_states: has_sensor_unavailable_states:
value_template: '{{ states.sensor | selectattr('state', 'in', ['unavailable', 'unknown', 'none']) | list | count }}' value_template: "{{ states.sensor | selectattr('state', 'in', ['unavailable', 'unknown', 'none']) | list | count }}"
``` ```
{% endraw %} {% endraw %}

View File

@ -42,8 +42,8 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.motion_sensor_158d000xxxxxc2 entity_id: binary_sensor.motion_sensor_158d000xxxxxc2
from: 'off' from: "off"
to: 'on' to: "on"
condition: condition:
condition: numeric_state condition: numeric_state
entity_id: sensor.illumination_34ce00xxxx11 entity_id: sensor.illumination_34ce00xxxx11
@ -60,8 +60,8 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.motion_sensor_158d000xxxxxc2 entity_id: binary_sensor.motion_sensor_158d000xxxxxc2
from: 'on' from: "on"
to: 'off' to: "off"
for: for:
minutes: 5 minutes: 5
action: action:
@ -79,40 +79,40 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2 entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
service: climate.set_operation_mode service: climate.set_operation_mode
entity_id: climate.livingroom entity_id: climate.livingroom
data: data:
operation_mode: 'Off' operation_mode: "Off"
- alias: If the window is closed for 5 minutes turn on the radiator again - alias: If the window is closed for 5 minutes turn on the radiator again
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2 entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2
from: 'on' from: "on"
to: 'off' to: "off"
for: for:
minutes: 5 minutes: 5
action: action:
service: climate.set_operation_mode service: climate.set_operation_mode
entity_id: climate.livingroom entity_id: climate.livingroom
data: data:
operation_mode: 'Smart schedule' operation_mode: "Smart schedule"
- alias: Notify if door is opened when away - alias: Notify if door is opened when away
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.door_window_sensor_15xxxxxxc9xx6b entity_id: binary_sensor.door_window_sensor_15xxxxxxc9xx6b
from: 'off' from: "off"
to: 'on' to: "on"
condition: condition:
- condition: state - condition: state
entity_id: group.family entity_id: group.family
state: 'not_home' state: "not_home"
action: action:
- service: notify.notify_person - service: notify.notify_person
data: data:
message: 'The door has been opened' message: "The door has been opened"
``` ```
#### Smoke #### Smoke
@ -122,8 +122,8 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.smoke_sensor_158d0001574899 entity_id: binary_sensor.smoke_sensor_158d0001574899
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: notify.html5 - service: notify.html5
data: data:
@ -143,13 +143,13 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.natgas_sensor_158dxxxxxxxxxx entity_id: binary_sensor.natgas_sensor_158dxxxxxxxxxx
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: notify.html5 - service: notify.html5
data: data:
title: Gas alarm! title: Gas alarm!
message: 'Gas with a density of {% raw %}{{ state_attr('binary_sensor.natgas_sensor_158dxxxxxxxxxx', 'density') }}{% endraw %} detected.' message: "Gas with a density of {% raw %}{{ state_attr('binary_sensor.natgas_sensor_158dxxxxxxxxxx', 'density') }}{% endraw %} detected."
``` ```
#### Xiaomi Wireless Button #### Xiaomi Wireless Button

View File

@ -121,7 +121,7 @@ Here, this example assumes your blink module is named `My Sync Module` and that
trigger: trigger:
platform: state platform: state
entity_id: all entity_id: all
to: 'not_home' to: "not_home"
action: action:
service: alarm_control_panel.alarm_arm_away service: alarm_control_panel.alarm_arm_away
entity_id: alarm_control_panel.blink_my_sync_module entity_id: alarm_control_panel.blink_my_sync_module
@ -137,7 +137,7 @@ Similar to the previous example, this automation will disarm blink when arriving
trigger: trigger:
platform: state platform: state
entity_id: all entity_id: all
to: 'home' to: "home"
action: action:
service: alarm_control_panel.alarm_disarm service: alarm_control_panel.alarm_disarm
entity_id: alarm_control_panel.blink_my_sync_module entity_id: alarm_control_panel.blink_my_sync_module
@ -157,7 +157,7 @@ Again, this example assumes your camera's name (in the blink app) is `My Camera`
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.blink_my_camera_motion_detected entity_id: binary_sensor.blink_my_camera_motion_detected
to: 'on' to: "on"
action: action:
service: blink.save_video service: blink.save_video
data: data:

View File

@ -24,7 +24,7 @@ To use a BMP280 sensor in your installation, you have to enable I2C on your host
```yaml ```yaml
sensor: sensor:
- platform: bmp280 - platform: bmp280
- i2c_address: 0x77 i2c_address: 0x77
``` ```
{% configuration %} {% configuration %}

View File

@ -29,7 +29,51 @@ Some very old Brother printers use different data format and these models are no
## Configuring the printer ## Configuring the printer
To set SNMP, navigate to the printer's web interface (for example: `http://192.168.5.6`) and turn it on under Network / Protocol / SNMP. To enable SNMP, navigate to the printer's web interface (for example: `http://192.168.5.6`) and turn it on under Network / Protocol / SNMP.
For some Brother devices, `SNMPv3 read-write access and v1/v2c read-only access` is the option required (under advanced settings). For some Brother devices, `SNMPv3 read-write access and v1/v2c read-only access` is the option required (under advanced settings).
![SNMP settings on Brother Printer web interface](/images/integrations/brother/brother-printer-webui.png) ![SNMP settings on Brother Printer web interface](/images/integrations/brother/brother-printer-webui.png)
## Sensor Example
You can configure Home Assistant to alert you when the printer jams or runs out of paper as follows. First, add the following to `configuration.yaml` under the `binary_sensor:` section (replace `sensor.hl_l2340d_status` with the actual name of your sensor):
{% raw %}
```yaml
- platform: template
sensors:
laser_out_of_paper:
value_template: "{{ is_state('sensor.hl_l2340d_status', 'no paper') }}"
friendly_name: "Laser Printer Out of Paper"
- platform: template
sensors:
laser_paper_jam:
value_template: "{{ is_state('sensor.hl_l2340d_status', 'paper jam') }}"
friendly_name: "Laser Printer Paper Jam"
```
{% endraw %}
Then, add this under the `alert:` section:
```yaml
laser_out_of_paper:
name: Laser Printer is Out of Paper
done_message: Laser Printer Has Paper
entity_id: binary_sensor.laser_out_of_paper
can_acknowledge: true
notifiers:
- my_phone_notify
laser_paper_jam:
name: Laser Printer has a Paper Jam
done_message: Laser Printer Paper Jam Cleared
entity_id: binary_sensor.laser_paper_jam
can_acknowledge: true
notifiers:
- my_phone_notify
```
The above will send an alert for paper jam or out of paper whenever the condition is detected, assuming you have the Home Assistant app configured on your phone so that alerts can be sent directly to it. If you don't use the Home Assistant app, you will need to set up a different notifier.
Change `my_phone_notify` to the actual notifier you are using.

View File

@ -59,7 +59,7 @@ A full configuration example:
# Example configuration.yaml entry # Example configuration.yaml entry
weather: weather:
- platform: buienradar - platform: buienradar
name: 'volkel' name: "volkel"
# Force 'Meetstation Volkel' to be used: # Force 'Meetstation Volkel' to be used:
latitude: 51.65 latitude: 51.65
longitude: 5.70 longitude: 5.70

View File

@ -56,12 +56,12 @@ calendar:
password: !secret caldav password: !secret caldav
url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default
custom_calendars: custom_calendars:
- name: 'HomeOffice' - name: "HomeOffice"
calendar: 'Agenda' calendar: "Agenda"
search: 'HomeOffice' search: "HomeOffice"
- name: 'WarmupFlat' - name: "WarmupFlat"
calendar: 'Agenda' calendar: "Agenda"
search: 'Warmup' search: "Warmup"
``` ```
This will create two binary sensors for the calendar name Agenda: "HomeOffice" and "WarmupFlat". Those sensors will be `on` if there is an ongoing event matching the regular expression specified in `search`. In custom calendars, events that last a whole day are taken into account. This will create two binary sensors for the calendar name Agenda: "HomeOffice" and "WarmupFlat". Those sensors will be `on` if there is an ongoing event matching the regular expression specified in `search`. In custom calendars, events that last a whole day are taken into account.
@ -133,7 +133,7 @@ All events of the calendars "private" and "holidays". Note that all day events a
calendar: calendar:
- platform: caldav - platform: caldav
url: https://nextcloud.example.com/remote.php/dav url: https://nextcloud.example.com/remote.php/dav
username: 'me' username: "me"
password: !secret caldav password: !secret caldav
calendars: calendars:
- private - private
@ -149,27 +149,27 @@ Custom calendar names are built from the main calendar + name of the custom cale
calendar: calendar:
- platform: caldav - platform: caldav
url: https://nextcloud.example.com/remote.php/dav url: https://nextcloud.example.com/remote.php/dav
username: 'me' username: "me"
password: !secret caldav password: !secret caldav
custom_calendars: custom_calendars:
- name: holiday - name: holiday
calendar: work calendar: work
search: 'Holiday' search: "Holiday"
- name: vacation - name: vacation
calendar: vacation calendar: vacation
search: '.*' search: ".*"
# automations.yaml # automations.yaml
- id: wakeup - id: wakeup
alias: worktime wakeup alias: worktime wakeup
trigger: trigger:
platform: time platform: time
at: '06:40:00' at: "06:40:00"
action: action:
- service: media_player.media_play - service: media_player.media_play
entity_id: media_player.bedroom entity_id: media_player.bedroom
condition: condition:
- condition: state - condition: state
entity_id: calendar.work_holiday entity_id: calendar.work_holiday
state: 'off' state: "off"
``` ```

View File

@ -210,7 +210,7 @@ Trigger as soon as an event starts:
trigger: trigger:
platform: state platform: state
entity_id: calendar.calendar_name entity_id: calendar.calendar_name
to: 'on' to: "on"
``` ```
By using specific text in the event title, you can set conditions to initiate particular automation flows on designated events while other events will be ignored. By using specific text in the event title, you can set conditions to initiate particular automation flows on designated events while other events will be ignored.

View File

@ -19,8 +19,8 @@ the default library used by Visual Studio Code.
This is useful in testing changes on a local development install, or connecting This is useful in testing changes on a local development install, or connecting
to a production server to debug issues. It is possible to load the integration to a production server to debug issues. It is possible to load the integration
without the activating the debugger, but injecting it with a service call. This without activating the debugger, but injecting it with a service call. This
is particularly useful on a developer' production system as it does not impact is particularly useful on a developer's production system as it does not impact
performance when not injected. performance when not injected.
## Configuration ## Configuration

View File

@ -186,7 +186,7 @@ Requesting support for additional devices requires the device model (can be acqu
```yaml ```yaml
automation: automation:
- alias: 'Toggle lamp from dimmer' - alias: 'Toggle lamp from dimmer'
initial_state: 'on' initial_state: "on"
trigger: trigger:
platform: event platform: event
event_type: deconz_event event_type: deconz_event
@ -198,7 +198,7 @@ automation:
entity_id: light.lamp entity_id: light.lamp
- alias: 'Increase brightness of lamp from dimmer' - alias: 'Increase brightness of lamp from dimmer'
initial_state: 'on' initial_state: "on"
trigger: trigger:
platform: event platform: event
event_type: deconz_event event_type: deconz_event
@ -214,7 +214,7 @@ automation:
{{ [bri+30, 249] | min }} {{ [bri+30, 249] | min }}
- alias: 'Decrease brightness of lamp from dimmer' - alias: 'Decrease brightness of lamp from dimmer'
initial_state: 'on' initial_state: "on"
trigger: trigger:
platform: event platform: event
event_type: deconz_event event_type: deconz_event
@ -230,7 +230,7 @@ automation:
{{ [bri-30, 0] | max }} {{ [bri-30, 0] | max }}
- alias: 'Turn lamp on when turning cube clockwise' - alias: 'Turn lamp on when turning cube clockwise'
initial_state: 'on' initial_state: "on"
trigger: trigger:
platform: event platform: event
event_type: deconz_event event_type: deconz_event

View File

@ -43,7 +43,7 @@ If you added or upgraded to a newer Alexa device and devices are not found, you
<div class='note'> <div class='note'>
Logitech Harmony remotes cannot connect to this emulator via Android and iOS mobile applications because they require the physical button on the hub to be pressed. The [MyHarmony desktop software](https://support.myharmony.com/en-us/download) must be used with the original cable to connect it. Logitech Harmony remotes cannot connect to this emulator via Android and iOS mobile applications because they require the physical button on the hub to be pressed. The [MyHarmony desktop software](https://support.myharmony.com/en-us/download) must be used with the original cable to connect it, then "Scan for Devices".
</div> </div>

View File

@ -139,7 +139,7 @@ You can also use the `homeassistant.update_entity` service to update the sensor
```yaml ```yaml
- id: update_morning_commute_sensor - id: update_morning_commute_sensor
alias: "Commute - Update morning commute sensor" alias: "Commute - Update morning commute sensor"
initial_state: 'on' initial_state: "on"
trigger: trigger:
- platform: time_pattern - platform: time_pattern
minutes: '/2' minutes: '/2'

View File

@ -157,7 +157,7 @@ You can also use the `homeassistant.update_entity` service to update the sensor
automation: automation:
- id: update_morning_commute_sensor - id: update_morning_commute_sensor
alias: "Commute - Update morning commute sensor" alias: "Commute - Update morning commute sensor"
initial_state: 'on' initial_state: "on"
trigger: trigger:
- platform: time_pattern - platform: time_pattern
minutes: '/2' minutes: '/2'

View File

@ -32,7 +32,7 @@ sensor:
- platform: history_stats - platform: history_stats
name: Lamp ON today name: Lamp ON today
entity_id: light.my_lamp entity_id: light.my_lamp
state: 'on' state: "on"
type: time type: time
start: '{{ now().replace(hour=0, minute=0, second=0) }}' start: '{{ now().replace(hour=0, minute=0, second=0) }}'
end: '{{ now() }}' end: '{{ now() }}'

View File

@ -79,7 +79,7 @@ automation:
condition: condition:
condition: state condition: state
entity_id: input_boolean.notify_home entity_id: input_boolean.notify_home
state: 'on' state: "on"
action: action:
service: notify.pushbullet service: notify.pushbullet
data: data:

View File

@ -129,7 +129,7 @@ automation:
condition: condition:
- condition: state - condition: state
entity_id: light.some_light entity_id: light.some_light
state: 'off' state: "off"
action: action:
- service: light.turn_on - service: light.turn_on
entity_id: light.some_light entity_id: light.some_light
@ -145,7 +145,7 @@ automation:
condition: condition:
- condition: state - condition: state
entity_id: light.some_light entity_id: light.some_light
state: 'off' state: "off"
action: action:
- service: light.turn_on - service: light.turn_on
entity_id: light.some_light entity_id: light.some_light
@ -390,7 +390,7 @@ automation:
condition: condition:
- condition: state - condition: state
entity_id: light.some_light entity_id: light.some_light
state: 'off' state: "off"
action: action:
- service: light.turn_on - service: light.turn_on
entity_id: light.some_light entity_id: light.some_light
@ -406,7 +406,7 @@ automation:
condition: condition:
- condition: state - condition: state
entity_id: light.some_light entity_id: light.some_light
state: 'off' state: "off"
action: action:
- service: light.turn_on - service: light.turn_on
entity_id: light.some_light entity_id: light.some_light

View File

@ -204,7 +204,7 @@ Example automation using these IR codes to toggle a Sonoff plug.
```yaml ```yaml
# Example kira_sensor # Example kira_sensor
- id: '1583339338363' - id: "1583339338363"
alias: Panasonic On alias: Panasonic On
description: Turn on sonoff s20 relay description: Turn on sonoff s20 relay
trigger: trigger:
@ -217,8 +217,8 @@ Example automation using these IR codes to toggle a Sonoff plug.
domain: switch domain: switch
entity_id: switch.plug2_relay entity_id: switch.plug2_relay
type: turn_on type: turn_on
- id: '1584035716024' - id: "1584035716024"
alias: 'Panaxonic Off ' alias: "Panaxonic Off "
description: Turn off sonoff s20 relay description: Turn off sonoff s20 relay
trigger: trigger:
- entity_id: sensor.kira_wireless - entity_id: sensor.kira_wireless

View File

@ -52,8 +52,7 @@ To use your KNX bus in your installation, add the following lines to your `confi
knx: knx:
``` ```
In order to make use of the various platforms KNX offers you will need to have the following configuration inside `configuration.yaml` depending on what In order to make use of the various platforms that KNX offers you will need to add the relevant configuration sections to your setup. This could either all be in the Home Assistant main `configuration.yaml` file, or in a separate YAML file that you include in the main file or even be split into multiple dedicated files as shown below:
platforms you intend to use:
```yaml ```yaml
knx: knx:
@ -62,26 +61,27 @@ knx:
sensor: !include knx_sensor.yaml sensor: !include knx_sensor.yaml
cover: !include knx_cover.yaml cover: !include knx_cover.yaml
light: !include knx_light.yaml light: !include knx_light.yaml
climate: !include knx_climate.yaml
notify: !include knx_notify.yaml notify: !include knx_notify.yaml
scene: !include knx_scene.yaml scene: !include knx_scene.yaml
``` ```
Please check the dedicated platform documentation about how to configure them correctly. Please see the dedicated platform sections below about how to configure them correctly.
Optional, or if you want to use the XKNX abstraction also for other scripted tools outside of Home Assistant: Alternatively, if you want to use the [XKNX](https://xknx.io/) library abstraction (e.g., to re-use the configuration also for other scripted tools outside of Home Assistant):
```yaml ```yaml
knx: knx:
config_file: '/path/to/xknx.yaml' config_file: "/path/to/xknx.yaml"
``` ```
{% configuration %} {% configuration %}
config_file: config_file:
description: The path for XKNX configuration file. See [xknx.io](https://xknx.io/configuration) for details description: The path for XKNX configuration file. See [xknx.io](https://xknx.io/configuration) for details.
required: false required: false
type: string type: string
individual_address: individual_address:
description: The KNX individual address that shall be used for routing or if a tunnelling server doesn't assign an IA at connection. description: The KNX individual address (IA) that shall be used for routing or if a tunnelling server doesn't assign an IA at connection.
required: false required: false
type: string type: string
default: "15.15.250" default: "15.15.250"
@ -143,7 +143,7 @@ Explicit connection via KNX/IP routing. This requires multicast communication to
```yaml ```yaml
knx: knx:
routing: routing:
local_ip: '192.168.2.109' local_ip: "192.168.2.109"
``` ```
{% configuration %} {% configuration %}
@ -189,7 +189,7 @@ Service Data: {"address": "1/0/15", "payload": 0, "type": "temperature"}
{% configuration %} {% configuration %}
address: address:
description: KNX group address description: KNX group address.
type: string type: string
payload: payload:
description: Payload to send to the bus. When `type` is not set, raw bytes are sent. Integers are then treated as DPT 1/2/3 payloads. For DPTs > 6 bits send a list. Each value represents 1 octet (0-255). Pad with 0 to DPT byte length. description: Payload to send to the bus. When `type` is not set, raw bytes are sent. Integers are then treated as DPT 1/2/3 payloads. For DPTs > 6 bits send a list. Each value represents 1 octet (0-255). Pad with 0 to DPT byte length.
@ -227,28 +227,28 @@ KNX integration is able to expose entity states or attributes to KNX bus. The in
# Example configuration.yaml entry # Example configuration.yaml entry
knx: knx:
expose: expose:
- type: 'temperature' - type: "temperature"
entity_id: 'sensor.owm_temperature' entity_id: "sensor.owm_temperature"
address: '0/0/2' address: "0/0/2"
- type: 'string' - type: "string"
address: '0/6/4' address: "0/6/4"
entity_id: "sensor.owm_weather" entity_id: "sensor.owm_weather"
- type: 'binary' - type: "binary"
entity_id: 'binary_sensor.kitchen_window' entity_id: "binary_sensor.kitchen_window"
address: '0/6/5' address: "0/6/5"
- type: 'binary' - type: "binary"
entity_id: 'light.office' entity_id: "light.office"
address: '0/3/0' address: "0/3/0"
default: False default: false
- type: 'percentU8' - type: "percentU8"
entity_id: 'light.office' entity_id: "light.office"
attribute: 'brightness' attribute: "brightness"
default: 0 default: 0
address: '0/3/1' address: "0/3/1"
- type: 'time' - type: "time"
address: '0/0/1' address: "0/0/1"
- type: 'datetime' - type: "datetime"
address: '0/0/23' address: "0/0/23"
``` ```
{% configuration %} {% configuration %}
@ -257,16 +257,16 @@ address:
type: string type: string
required: true required: true
type: type:
description: Type of the exposed value. Either 'binary', 'time', 'date', 'datetime' or any supported type of [KNX Sensor](#sensor) (e.g., "temperature" or "humidity"). description: Type of the exposed value. Either `binary`, `time`, `date`, `datetime` or any supported type of [KNX Sensor](#sensor) (e.g., "temperature" or "humidity").
type: string type: string
required: true required: true
entity_id: entity_id:
description: Entity id to be exposed. Not needed for types time, date and datetime. description: Entity ID to be exposed. Not needed for types `time`, `date` and `datetime`.
type: string type: string
required: false required: false
attribute: attribute:
description: Attribute of the entity that shall be sent to the KNX bus. If not set (or `None`) the state will be sent. description: Attribute of the entity that shall be sent to the KNX bus. If not set (or `None`) the state will be sent.
Eg. for a light the state is eigther "on" or "off" - with attribute you can expose its "brightness". Eg. for a light the state is eigther "on" or "off". With `attribute` you can expose its "brightness".
type: string type: string
required: false required: false
default: default:
@ -288,7 +288,7 @@ Binary sensors are read-only. To write to the knx-bus configure an exposure [KNX
knx: knx:
binary_sensor: binary_sensor:
- name: sensor1 - name: sensor1
state_address: '6/0/2' state_address: "6/0/2"
``` ```
{% configuration %} {% configuration %}
@ -301,30 +301,30 @@ name:
required: false required: false
type: string type: string
sync_state: sync_state:
description: Actively read the value from the bus. If `False` no GroupValueRead telegrams will be sent to the bus. `sync_state` can be set to `init` to just initialize state on startup, `expire <minutes>` to read the state from the KNX bus when no telegram was received for \<minutes\> or `every <minutes>` to update it regularly every \<minutes\>. Maximum value for \<minutes\> is 1440. If just a number is configured "expire"-behaviour is used. Defaults to `True` which is interpreted as "expire 60". description: Actively read the value from the bus. If `false` no GroupValueRead telegrams will be sent to the bus. `sync_state` can be set to `init` to just initialize state on startup, `expire <minutes>` to read the state from the KNX bus when no telegram was received for \<minutes\> or `every <minutes>` to update it regularly every \<minutes\>. Maximum value for \<minutes\> is 1440. If just a number is configured "expire"-behaviour is used. Defaults to `true` which is interpreted as "expire 60".
required: false required: false
type: [boolean, string, integer] type: [boolean, string, integer]
default: True default: true
device_class: device_class:
description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend. description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend.
required: false required: false
type: string type: string
reset_after: reset_after:
description: Reset back to OFF state after specified seconds. description: Reset back to "off" state after specified seconds.
required: false required: false
type: float type: float
invert: invert:
description: Invert the telegrams payload before processing. This is applied before `context_timeout` or `reset_after` is evaluated. description: Invert the telegrams payload before processing. This is applied before `context_timeout` or `reset_after` is evaluated.
required: false required: false
type: boolean type: boolean
default: False default: false
ignore_internal_state: ignore_internal_state:
description: Specifies if telegrams should ignore the internal state and always trigger a Home Assistant state update. description: Specifies if telegrams should ignore the internal state and always trigger a Home Assistant state update.
required: false required: false
type: boolean type: boolean
default: False default: false
context_timeout: context_timeout:
description: The time in seconds between multiple identical telegram payloads would count towards the internal counter that is used for automations. Ex. You have automations in place that trigger your lights on button press and another set of lights if you click that button twice. This setting defines the time that a second button press would count toward, so if you set this 3.0 you can take up to 3 seconds in order to trigger the second button press. If set `ignore_internal_state` will be set to `True` internally. Maximum value is 10.0. description: The time in seconds between multiple identical telegram payloads would count towards the internal counter that is used for automations. Ex. You have automations in place that trigger your lights on button press and another set of lights if you click that button twice. This setting defines the time that a second button press would count toward, so if you set this 3.0 you can take up to 3 seconds in order to trigger the second button press. If set `ignore_internal_state` will be set to `true` internally. Maximum value is 10.0.
required: false required: false
type: float type: float
default: None default: None
@ -348,7 +348,7 @@ automation:
condition: condition:
- condition: state - condition: state
entity_id: binary_sensor.cover_abstell entity_id: binary_sensor.cover_abstell
state: 'on' state: "on"
action: action:
- entity_id: light.hue_color_lamp_1 - entity_id: light.hue_color_lamp_1
service: light.turn_on service: light.turn_on
@ -361,7 +361,7 @@ automation:
condition: condition:
- condition: state - condition: state
entity_id: binary_sensor.cover_abstell entity_id: binary_sensor.cover_abstell
state: 'on' state: "on"
action: action:
- entity_id: light.hue_bloom_1 - entity_id: light.hue_bloom_1
service: homeassistant.turn_on service: homeassistant.turn_on
@ -401,12 +401,12 @@ To use your KNX thermostats in your installation, add the following lines to you
knx: knx:
climate: climate:
- name: HASS-Kitchen.Temperature - name: HASS-Kitchen.Temperature
temperature_address: '5/1/1' temperature_address: "5/1/1"
setpoint_shift_address: '5/1/2' setpoint_shift_address: "5/1/2"
setpoint_shift_state_address: '5/1/3' setpoint_shift_state_address: "5/1/3"
target_temperature_state_address: '5/1/4' target_temperature_state_address: "5/1/4"
operation_mode_address: '5/1/5' operation_mode_address: "5/1/5"
operation_mode_state_address: '5/1/6' operation_mode_state_address: "5/1/6"
``` ```
Alternatively, if your device has dedicated binary group addresses for frost/night/comfort mode: Alternatively, if your device has dedicated binary group addresses for frost/night/comfort mode:
@ -416,33 +416,32 @@ Alternatively, if your device has dedicated binary group addresses for frost/nig
knx: knx:
climate: climate:
- name: HASS-Kitchen.Temperature - name: HASS-Kitchen.Temperature
temperature_address: '5/1/1' temperature_address: "5/1/1"
setpoint_shift_address: '5/1/2' setpoint_shift_address: "5/1/2"
setpoint_shift_state_address: '5/1/3' setpoint_shift_state_address: "5/1/3"
target_temperature_state_address: '5/1/4' target_temperature_state_address: "5/1/4"
operation_mode_frost_protection_address: '5/1/5' operation_mode_frost_protection_address: "5/1/5"
operation_mode_night_address: '5/1/6' operation_mode_night_address: "5/1/6"
operation_mode_comfort_address: '5/1/7' operation_mode_comfort_address: "5/1/7"
operation_mode_state_address: '5/1/8' operation_mode_state_address: "5/1/8"
``` ```
If your device doesn't support setpoint_shift calculations (i.e., if you don't provide a `setpoint_shift_address` value) please set the `min_temp` and `max_temp` If your device doesn't support setpoint_shift calculations (i.e., if you don't provide a `setpoint_shift_address` value) please set the `min_temp` and `max_temp`
attributes of the climate device to avoid issues with exceeding valid temperature values in the frontend. Please do also make sure to add the `target_temperature_address` attributes of the climate device to avoid issues with exceeding valid temperature values in the frontend. Please do also make sure to add the `target_temperature_address` to the configuration in this case.:
to the configuration in this case.:
```yaml ```yaml
# Example configuration.yaml entry # Example configuration.yaml entry
knx: knx:
climate: climate:
- name: HASS-Kitchen.Temperature - name: HASS-Kitchen.Temperature
temperature_address: '5/1/2' temperature_address: "5/1/2"
target_temperature_address: '5/1/4' target_temperature_address: "5/1/4"
target_temperature_state_address: '5/1/1' target_temperature_state_address: "5/1/1"
operation_mode_frost_protection_address: '5/1/5' operation_mode_frost_protection_address: "5/1/5"
operation_mode_night_address: '5/1/6' operation_mode_night_address: "5/1/6"
operation_mode_comfort_address: '5/1/7' operation_mode_comfort_address: "5/1/7"
operation_mode_state_address: '5/1/8' operation_mode_state_address: "5/1/8"
operation_mode_standby_address: '5/1/9' operation_mode_standby_address: "5/1/9"
min_temp: 7.0 min_temp: 7.0
max_temp: 32.0 max_temp: 32.0
``` ```
@ -459,39 +458,39 @@ Example:
knx: knx:
climate: climate:
- name: HASS-Kitchen.Temperature - name: HASS-Kitchen.Temperature
temperature_address: '5/1/1' temperature_address: "5/1/1"
setpoint_shift_address: '5/1/2' setpoint_shift_address: "5/1/2"
setpoint_shift_state_address: '5/1/3' setpoint_shift_state_address: "5/1/3"
setpoint_shift_mode: 'DPT9002' setpoint_shift_mode: "DPT9002"
target_temperature_state_address: '5/1/4' target_temperature_state_address: "5/1/4"
operation_mode_address: '5/1/5' operation_mode_address: "5/1/5"
operation_mode_state_address: '5/1/6' operation_mode_state_address: "5/1/6"
``` ```
`operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` / `operation_mode_standby_address` are not necessary if `operation_mode_address` is specified. `operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` / `operation_mode_standby_address` are not necessary if `operation_mode_address` is specified.
If the actor doesn't support explicit state communication objects the *_state_address can be configured with the same group address as the writeable *_address. The Read-Flag for the *_state_address communication object has to be set in ETS to support initial reading e.g., when starting Home Assistant. If the actor doesn't support explicit state communication objects the `*_state_address` can be configured with the same group address as the writeable `*_address`. The read flag for the `*_state_address` communication object has to be set in ETS to support initial reading e.g., when starting Home Assistant.
The following values are valid for the `heat_cool_address` and the `heat_cool_state_address`: The following values are valid for the `heat_cool_address` and the `heat_cool_state_address`:
- 0 (cooling) - `0` (cooling)
- 1 (heating) - `1` (heating)
The following values are valid for the `hvac_mode` attribute: The following values are valid for the Home Assistant [Climate](/integrations/climate/) `hvac_mode` attribute. Supported values for your KNX thermostats can be specified via `controller_modes` configuration variable:
- Off (maps internally to HVAC_MODE_OFF within Home Assistant) - `Off` (maps internally to `HVAC_MODE_OFF` within Home Assistant)
- Auto (maps internally to HVAC_MODE_AUTO within Home Assistant) - `Auto` (maps internally to `HVAC_MODE_AUTO` within Home Assistant)
- Heat (maps internally to HVAC_MDOE_HEAT within Home Assistant) - `Heat` (maps internally to `HVAC_MDOE_HEAT` within Home Assistant)
- Cool (maps internally to HVAC_MDOE_COOL within Home Assistant) - `Cool` (maps internally to `HVAC_MDOE_COOL` within Home Assistant)
- Fan only (maps internally to HVAC_MODE_FAN_ONLY within Home Assistant) - `Fan only` (maps internally to `HVAC_MODE_FAN_ONLY` within Home Assistant)
- Dry (maps internally to HVAC_MODE_DRY within Home Assistant) - `Dry` (maps internally to `HVAC_MODE_DRY` within Home Assistant)
The following presets are valid for the `preset_mode` attribute: The following presets are valid for the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute. Supported values for your KNX thermostats can be specified via `operation_modes` configuration variable:
- Auto (maps internally to PRESET_NONE within Home Assistant) - `Auto` (maps internally to `PRESET_NONE` within Home Assistant)
- Comfort (maps internally to PRESET_COMFORT within Home Assistant) - `Comfort` (maps internally to `PRESET_COMFORT` within Home Assistant)
- Standby (maps internally to PRESET_AWAY within Home Assistant) - `Standby` (maps internally to `PRESET_AWAY` within Home Assistant)
- Night (maps internally to PRESET_SLEEP within Home Assistant) - `Night` (maps internally to `PRESET_SLEEP` within Home Assistant)
- Frost Protection (maps internally to PRESET_ECO within Home Assistant) - `Frost` Protection (maps internally to `PRESET_ECO` within Home Assistant)
{% configuration %} {% configuration %}
name: name:
@ -527,7 +526,6 @@ setpoint_shift_state_address:
setpoint_shift_mode: setpoint_shift_mode:
description: Defines the internal device DPT used. Either 'DPT6010' or 'DPT9002'. description: Defines the internal device DPT used. Either 'DPT6010' or 'DPT9002'.
required: false required: false
default: 0.5
type: string type: string
default: DPT6010 default: DPT6010
setpoint_shift_min: setpoint_shift_min:
@ -561,7 +559,7 @@ controller_mode_address:
required: false required: false
type: string type: string
controller_mode_state_address: controller_mode_state_address:
description: KNX address for reading HVAC Control Mode. *DPT 20.105* description: KNX address for reading HVAC control mode. *DPT 20.105*
required: false required: false
type: string type: string
heat_cool_address: heat_cool_address:
@ -630,11 +628,11 @@ To use your KNX covers in your installation, add the following lines to your top
knx: knx:
cover: cover:
- name: "Kitchen.Shutter" - name: "Kitchen.Shutter"
move_long_address: '3/0/0' move_long_address: "3/0/0"
move_short_address: '3/0/1' move_short_address: "3/0/1"
stop_address: '3/0/4' stop_address: "3/0/4"
position_address: '3/0/3' position_address: "3/0/3"
position_state_address: '3/0/2' position_state_address: "3/0/2"
travelling_time_down: 51 travelling_time_down: 51
travelling_time_up: 61 travelling_time_up: 61
``` ```
@ -684,12 +682,12 @@ travelling_time_up:
default: 25 default: 25
type: integer type: integer
invert_position: invert_position:
description: Set this to true if your actuator report fully closed as 0% in KNX. description: Set this to `true` if your actuator report fully closed as 0% in KNX.
required: false required: false
default: false default: false
type: boolean type: boolean
invert_angle: invert_angle:
description: Set this to true if your actuator reports tilt fully closed as 0% in KNX. description: Set this to `true` if your actuator reports tilt fully closed as 0% in KNX.
required: false required: false
default: false default: false
type: boolean type: boolean
@ -703,8 +701,8 @@ device_class:
The `knx light` integration is used as an interface to control KNX actuators for lighting applications such as: The `knx light` integration is used as an interface to control KNX actuators for lighting applications such as:
- switching actuators - Switching actuators
- dimming actuators - Dimming actuators
- LED controllers - LED controllers
- DALI gateways - DALI gateways
@ -714,8 +712,8 @@ To use your KNX light in your installation, add the following lines to your top
# Example configuration.yaml entry # Example configuration.yaml entry
knx: knx:
light: light:
- name: 'kitchen' - name: "kitchen"
address: '1/0/9' address: "1/0/9"
``` ```
{% configuration %} {% configuration %}
@ -809,12 +807,12 @@ color_temperature_mode:
type: string type: string
default: absolute default: absolute
min_kelvin: min_kelvin:
description: Warmest possible color temperature in Kelvin. (Used in combination with *color_temperature_address*) description: Warmest possible color temperature in Kelvin. Used in combination with `color_temperature_address`.
required: false required: false
type: integer type: integer
default: 2700 default: 2700
max_kelvin: max_kelvin:
description: Coldest possible color temperature in Kelvin. (Used in combination with *color_temperature_address*) description: Coldest possible color temperature in Kelvin. Used in combination with `color_temperature_address`.
required: false required: false
type: integer type: integer
default: 6000 default: 6000
@ -833,36 +831,36 @@ knx:
light: light:
# dimmable light # dimmable light
- name: Bedroom-Light-1 - name: Bedroom-Light-1
address: '1/0/9' address: "1/0/9"
state_address: '1/1/9' state_address: "1/1/9"
brightness_address: '1/2/9' brightness_address: "1/2/9"
brightness_state_address: '1/3/9' brightness_state_address: "1/3/9"
# #
# RGB light # RGB light
- name: Bathroom-Light-1 - name: Bathroom-Light-1
address: '1/0/9' address: "1/0/9"
state_address: '1/1/9' state_address: "1/1/9"
brightness_address: '1/2/9' brightness_address: "1/2/9"
brightness_state_address: '1/3/9' brightness_state_address: "1/3/9"
color_address: '1/4/9' color_address: "1/4/9"
color_state_address: '1/5/9' color_state_address: "1/5/9"
# #
# tunable white light # tunable white light
- name: Office-Light-1 - name: Office-Light-1
address: '1/0/21' address: "1/0/21"
state_address: '1/1/21' state_address: "1/1/21"
brightness_address: '1/2/21' brightness_address: "1/2/21"
brightness_state_address: '1/3/21' brightness_state_address: "1/3/21"
color_temperature_address: '1/4/21' color_temperature_address: "1/4/21"
color_temperature_state_address: '1/5/21' color_temperature_state_address: "1/5/21"
color_temperature_mode: absolute color_temperature_mode: absolute
min_kelvin: 2550 min_kelvin: 2550
max_kelvin: 6200 max_kelvin: 6200
# #
# actuator without dedicated state communication object # actuator without dedicated state communication object
- name: Cellar-Light-1 - name: Cellar-Light-1
address: '1/0/5' address: "1/0/5"
state_address: '1/0/5' state_address: "1/0/5"
``` ```
## Notify ## Notify
@ -873,7 +871,7 @@ The `knx` notify platform allows you to send notifications to [KNX](https://www.
knx: knx:
notify: notify:
- name: Alarm - name: Alarm
address: '5/1/10' address: "5/1/10"
``` ```
{% configuration %} {% configuration %}
@ -906,7 +904,7 @@ address:
required: true required: true
type: string type: string
scene_number: scene_number:
description: KNX scene number to be activated. ( 1 ... 64 ) description: KNX scene number to be activated (range 1..64 ).
required: true required: true
type: integer type: integer
name: name:
@ -926,7 +924,7 @@ Sensors are read-only. To write to the knx-bus configure an exposure [KNX Integr
knx: knx:
sensor: sensor:
- name: Heating.Valve1 - name: Heating.Valve1
state_address: '2/0/0' state_address: "2/0/0"
``` ```
In order to actively read the sensor data from the bus every 30 minutes you can add the following lines to your `configuration.yaml`: In order to actively read the sensor data from the bus every 30 minutes you can add the following lines to your `configuration.yaml`:
@ -936,7 +934,7 @@ In order to actively read the sensor data from the bus every 30 minutes you can
knx: knx:
sensor: sensor:
- name: Heating.Valve1 - name: Heating.Valve1
state_address: '2/0/0' state_address: "2/0/0"
sync_state: every 30 sync_state: every 30
``` ```
@ -950,10 +948,10 @@ name:
required: false required: false
type: string type: string
sync_state: sync_state:
description: Actively read the value from the bus. If `False` no GroupValueRead telegrams will be sent to the bus. `sync_state` can be set to `init` to just initialize state on startup, `expire <minutes>` to read the state from the KNX bus when no telegram was received for \<minutes\> or `every <minutes>` to update it regularly every \<minutes\>. Maximum value for \<minutes\> is 1440. If just a number is configured "expire"-behaviour is used. Defaults to `True` which is interpreted as "expire 60". description: Actively read the value from the bus. If `false` no GroupValueRead telegrams will be sent to the bus. `sync_state` can be set to `init` to just initialize state on startup, `expire <minutes>` to read the state from the KNX bus when no telegram was received for \<minutes\> or `every <minutes>` to update it regularly every \<minutes\>. Maximum value for \<minutes\> is 1440. If just a number is configured "expire"-behaviour is used. Defaults to `true` which is interpreted as "expire 60".
required: false required: false
type: [boolean, string, integer] type: [boolean, string, integer]
default: True default: true
type: type:
description: A type from the following table must be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly. description: A type from the following table must be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly.
required: true required: true
@ -962,7 +960,7 @@ always_callback:
description: Defines if telegrams with equal payload as the previously received telegram should trigger a state update within Home Assistant. description: Defines if telegrams with equal payload as the previously received telegram should trigger a state update within Home Assistant.
required: false required: false
type: boolean type: boolean
default: False default: false
{% endconfiguration %} {% endconfiguration %}
### Value Types ### Value Types
@ -1114,13 +1112,13 @@ always_callback:
knx: knx:
sensor: sensor:
- name: Heating.Valve1 - name: Heating.Valve1
state_address: '2/0/0' state_address: "2/0/0"
sync_state: init sync_state: init
type: 'percent' type: "percent"
- name: Kitchen.Temperature - name: Kitchen.Temperature
state_address: '6/2/1' state_address: "6/2/1"
sync_state: every 60 sync_state: every 60
type: 'temperature' type: "temperature"
``` ```
## Switch ## Switch
@ -1131,7 +1129,7 @@ The `knx` switch platform is used as an interface to switching actuators.
knx: knx:
switch: switch:
- name: Kitchen.Coffee - name: Kitchen.Coffee
address: '1/1/6' address: "1/1/6"
``` ```
{% configuration %} {% configuration %}
@ -1152,7 +1150,7 @@ invert:
description: Invert the telegrams payload before processing or sending. description: Invert the telegrams payload before processing or sending.
required: false required: false
type: boolean type: boolean
default: False default: false
{% endconfiguration %} {% endconfiguration %}
Some KNX devices can change their state internally without any messages on the KNX bus, e.g., if you configure a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given state address, this will overwrite the state of the switch object. Some KNX devices can change their state internally without any messages on the KNX bus, e.g., if you configure a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given state address, this will overwrite the state of the switch object.
@ -1181,8 +1179,8 @@ knx:
address_day_night: "7/0/8" address_day_night: "7/0/8"
address_air_pressure: "7/0/9" address_air_pressure: "7/0/9"
address_humidity: "7/0/10" address_humidity: "7/0/10"
expose_sensors: False expose_sensors: false
sync_state: True sync_state: true
``` ```
{% configuration %} {% configuration %}
@ -1240,13 +1238,13 @@ address_humidity:
required: false required: false
type: string type: string
expose_sensors: expose_sensors:
description: If true, exposes all sensor values as dedicated sensors to HA. description: If true, exposes all sensor values as dedicated sensors to Home Assistant.
required: false required: false
type: boolean type: boolean
default: False default: false
sync_state: sync_state:
description: Actively read the value from the bus. If `False` no GroupValueRead telegrams will be sent to the bus. description: Actively read the value from the bus. If `false` no GroupValueRead telegrams will be sent to the bus.
required: false required: false
type: boolean type: boolean
default: True default: true
{% endconfiguration %} {% endconfiguration %}

View File

@ -261,19 +261,19 @@ konnected:
binary_sensors: binary_sensors:
- zone: 1 - zone: 1
type: door type: door
name: 'Front Door' name: "Front Door"
- zone: 2 - zone: 2
type: smoke type: smoke
name: 'Bedroom Smoke Detector' name: "Bedroom Smoke Detector"
inverse: true inverse: true
- zone: 3 - zone: 3
type: motion type: motion
name: 'Test Motion' name: "Test Motion"
switches: switches:
- zone: out - zone: out
name: siren name: siren
- zone: 5 - zone: 5
name: 'Beep Beep' name: "Beep Beep"
momentary: 65 momentary: 65
pause: 55 pause: 55
repeat: 4 repeat: 4

View File

@ -115,18 +115,18 @@ To add a notification sound, icon, cycles, or priority override, it has to be do
trigger: trigger:
platform: state platform: state
entity_id: device_tracker.son_mobile entity_id: device_tracker.son_mobile
from: 'not_home' from: "not_home"
to: 'school' to: "school"
action: action:
service: notify.lametric service: notify.lametric
data: data:
message: "Son has arrived at school!" message: "Son has arrived at school!"
data: data:
sound: 'notification' sound: "notification"
icon: 'i51' icon: "i51"
cycles: 0 cycles: 0
priority: 'critical' priority: "critical"
icon_type: 'none' icon_type: "none"
``` ```
### Only notify specific device ### Only notify specific device
@ -140,8 +140,8 @@ If you have more than one La Metric device, you can specify which will receive t
message: "Son has arrived at school!" message: "Son has arrived at school!"
target: "Office LaMetric" target: "Office LaMetric"
data: data:
sound: 'notification' sound: "notification"
icon: 'i51' icon: "i51"
``` ```
If target is not specified, all LaMetric devices will be notified. If target is not specified, all LaMetric devices will be notified.

View File

@ -183,7 +183,7 @@ climates:
description: "Measurement unit ([VAR_UNIT](#variables-and-units))." description: "Measurement unit ([VAR_UNIT](#variables-and-units))."
required: false required: false
type: string type: string
default: 'celsius' default: "celsius"
min_temp: min_temp:
description: "Minimum target temperature." description: "Minimum target temperature."
required: false required: false
@ -302,7 +302,7 @@ sensors:
description: "Measurement unit ([VAR_UNIT](#variables-and-units))." description: "Measurement unit ([VAR_UNIT](#variables-and-units))."
required: false required: false
type: string type: string
default: 'native' default: "native"
switches: switches:
description: List of your switches. description: List of your switches.

View File

@ -53,7 +53,7 @@ However, if you want to fully control a light effect, you have to use its dedica
```yaml ```yaml
script: script:
colorloop_start: colorloop_start:
alias: 'Start colorloop' alias: "Start colorloop"
sequence: sequence:
- service: lifx.effect_colorloop - service: lifx.effect_colorloop
data: data:

View File

@ -118,9 +118,9 @@ entity_id: media_player.chromecast
service: media_player.play_media service: media_player.play_media
data: data:
media_content_type: music media_content_type: music
media_content_id: 'https://fake-home-assistant.io.stream/aac' media_content_id: "https://fake-home-assistant.io.stream/aac"
extra: extra:
thumb: 'https://brands.home-assistant.io/_/homeassistant/logo.png' thumb: "https://brands.home-assistant.io/_/homeassistant/logo.png"
title: HomeAssitantRadio title: HomeAssitantRadio
``` ```

View File

@ -42,8 +42,8 @@ To add Météo-France to your installation, add the following to your `configura
```yaml ```yaml
# Example configuration.yaml entry for 2 cities # Example configuration.yaml entry for 2 cities
meteo_france: meteo_france:
- city: '76000' - city: "76000"
- city: 'Auch' - city: "Auch"
``` ```
{% configuration %} {% configuration %}

View File

@ -21,8 +21,8 @@ To enable this binary sensor, add the following lines to your `configuration.yam
```yaml ```yaml
binary_sensor: binary_sensor:
- platform: meteoalarm - platform: meteoalarm
country: 'NL' country: "NL"
province: 'Groningen' province: "Groningen"
``` ```
{% configuration %} {% configuration %}
@ -43,7 +43,7 @@ language:
description: "The 2 letters of your language, please be aware that this is only possible in the current country. So 'ne' is only possible in Netherlands. Possible options are: bu, bs, ce, da, de, ee, en, es, ga, ca, su, fr, gr, he, hr, ma, is, it, li, la, sr, mk, ma, ne, no, po, pt, ro, cp, sv, sl, eu." description: "The 2 letters of your language, please be aware that this is only possible in the current country. So 'ne' is only possible in Netherlands. Possible options are: bu, bs, ce, da, de, ee, en, es, ga, ca, su, fr, gr, he, hr, ma, is, it, li, la, sr, mk, ma, ne, no, po, pt, ro, cp, sv, sl, eu."
required: false required: false
type: string type: string
default: 'en' default: "en"
{% endconfiguration %} {% endconfiguration %}

View File

@ -67,7 +67,7 @@ via the Frontend, a script, or the REST API.
```yaml ```yaml
service: microsoft_face.create_group service: microsoft_face.create_group
data: data:
name: 'Family' name: "Family"
``` ```
- *microsoft_face.create_person* - *microsoft_face.create_person*
@ -77,7 +77,7 @@ data:
service: microsoft_face.create_person service: microsoft_face.create_person
data: data:
group: family group: family
name: 'Hans Maier' name: "Hans Maier"
``` ```
You need to add an image of a person. You can add multiple images for every You need to add an image of a person. You can add multiple images for every
@ -90,7 +90,7 @@ send a local image to your Azure resource.
service: microsoft_face.face_person service: microsoft_face.face_person
data: data:
group: family group: family
name: 'Hans Maier' name: "Hans Maier"
camera_entity: camera.door camera_entity: camera.door
``` ```

View File

@ -57,7 +57,7 @@ To use your Mi Flora plant sensor in your installation, add the following to you
# Example configuration.yaml entry # Example configuration.yaml entry
sensor: sensor:
- platform: miflora - platform: miflora
mac: 'xx:xx:xx:xx:xx:xx' mac: "xx:xx:xx:xx:xx:xx"
monitored_conditions: monitored_conditions:
- moisture - moisture
``` ```
@ -122,7 +122,7 @@ A full configuration example could look like the one below:
# Example configuration.yaml entry # Example configuration.yaml entry
sensor: sensor:
- platform: miflora - platform: miflora
mac: 'xx:xx:xx:xx:xx:xx' mac: "xx:xx:xx:xx:xx:xx"
name: Flower 1 name: Flower 1
force_update: true force_update: true
median: 3 median: 3

View File

@ -92,13 +92,13 @@ automation:
event_data: event_data:
event_type: created event_type: created
action: action:
- delay: '00:00:01' - delay: "00:00:01"
- service: minio.put - service: minio.put
data: data:
file_path: "{{ trigger.event.data.path }}" file_path: "{{ trigger.event.data.path }}"
bucket: "camera-image-object-detection" bucket: "camera-image-object-detection"
key: "input/{{ now().year }}/{{ (now().month | string).zfill(2) }}/{{ (now().day | string).zfill(2) }}/{{ trigger.event.data.file }}" key: "input/{{ now().year }}/{{ (now().month | string).zfill(2) }}/{{ (now().day | string).zfill(2) }}/{{ trigger.event.data.file }}"
- delay: '00:00:01' - delay: "00:00:01"
- service: shell_command.remove_file - service: shell_command.remove_file
data: data:
file: "{{ trigger.event.data.path }}" file: "{{ trigger.event.data.path }}"

View File

@ -49,7 +49,7 @@ To use your Mi Temperature and Humidity sensor in your installation, add the fol
# Example configuration.yaml entry # Example configuration.yaml entry
sensor: sensor:
- platform: mitemp_bt - platform: mitemp_bt
mac: 'xx:xx:xx:xx:xx:xx' mac: "xx:xx:xx:xx:xx:xx"
monitored_conditions: monitored_conditions:
- temperature - temperature
``` ```
@ -118,7 +118,7 @@ A full configuration example could look like the one below:
# Example configuration.yaml entry # Example configuration.yaml entry
sensor: sensor:
- platform: mitemp_bt - platform: mitemp_bt
mac: 'xx:xx:xx:xx:xx:xx' mac: "xx:xx:xx:xx:xx:xx"
name: Kids Room Temp name: Kids Room Temp
force_update: true force_update: true
median: 1 median: 1

View File

@ -77,7 +77,7 @@ automation:
action: action:
service: notify.notify service: notify.notify
data: data:
message: 'Call from {{ state_attr('sensor.modem_callerid', 'cid_name') }} at {{ state_attr('sensor.modem_callerid', 'cid_number') }} ' message: "Call from {{ state_attr('sensor.modem_callerid', 'cid_name') }} at {{ state_attr('sensor.modem_callerid', 'cid_number') }} "
- alias: Notify CallerID webui - alias: Notify CallerID webui
trigger: trigger:
platform: state platform: state
@ -87,7 +87,7 @@ automation:
service: persistent_notification.create service: persistent_notification.create
data: data:
title: "Call from" title: "Call from"
message: '{{ state_attr('sensor.modem_callerid', 'cid_time').strftime("%I:%M %p") }} {{ state_attr('sensor.modem_callerid', 'cid_name') }} {{ state_attr('sensor.modem_callerid', 'cid_number') }} ' message: "{{ state_attr('sensor.modem_callerid', 'cid_time').strftime("%I:%M %p") }} {{ state_attr('sensor.modem_callerid', 'cid_name') }} {{ state_attr('sensor.modem_callerid', 'cid_number') }} "
- alias: Say CallerID - alias: Say CallerID
trigger: trigger:
platform: state platform: state
@ -96,7 +96,7 @@ automation:
action: action:
service: tts.google_say service: tts.google_say
data: data:
message: 'Call from {{ state_attr('sensor.modem_callerid', 'cid_name') }}' message: "Call from {{ state_attr('sensor.modem_callerid', 'cid_name') }}"
``` ```
{% endraw %} {% endraw %}

View File

@ -74,14 +74,14 @@ sensor:
- station: Hauptbahnhof - station: Hauptbahnhof
name: Hbf name: Hbf
destinations: ['München Flughafen Terminal','Markt Schwaben'] destinations: ['München Flughafen Terminal','Markt Schwaben']
products: 'S-Bahn' products: "S-Bahn"
timeoffset: 2 timeoffset: 2
- station: Sendlinger Tor - station: Sendlinger Tor
lines: ['U2','U8'] lines: ['U2','U8']
number: 5 number: 5
- station: Scheidplatz - station: Scheidplatz
products: ['U-Bahn'] products: ['U-Bahn']
directions: '1' directions: "1"
``` ```
The first sensor will return S-Bahn departures to Munich Airport or Markt Schwaben that are at least 2 minutes away. The first sensor will return S-Bahn departures to Munich Airport or Markt Schwaben that are at least 2 minutes away.

View File

@ -20,7 +20,7 @@ Integrate your Serial, Ethernet (LAN) or MQTT MySensors Gateway by adding the fo
# Example configuration.yaml entry # Example configuration.yaml entry
mysensors: mysensors:
gateways: gateways:
- device: '/dev/ttyUSB0' - device: "/dev/ttyUSB0"
``` ```
{% configuration %} {% configuration %}
@ -52,12 +52,12 @@ mysensors:
description: Set the prefix of the MQTT topic for messages coming from the MySensors gateway in to Home Assistant. description: Set the prefix of the MQTT topic for messages coming from the MySensors gateway in to Home Assistant.
required: false required: false
type: string type: string
default: '' default: ""
topic_out_prefix: topic_out_prefix:
description: Set the prefix of the MQTT topic for messages going from Home Assistant out to the MySensors gateway. description: Set the prefix of the MQTT topic for messages going from Home Assistant out to the MySensors gateway.
required: false required: false
type: string type: string
default: '' default: ""
nodes: nodes:
description: A mapping of node ids to node settings, e.g., custom name. description: A mapping of node ids to node settings, e.g., custom name.
required: false required: false
@ -76,7 +76,7 @@ mysensors:
description: Specifies the MySensors protocol version to use. Supports versions 1.4 to 2.3. description: Specifies the MySensors protocol version to use. Supports versions 1.4 to 2.3.
required: false required: false
type: string type: string
default: '1.4' default: "1.4"
optimistic: optimistic:
description: Enable or disable optimistic mode for actuators (switch/light). Set this to true if no state feedback from actuators is possible. Home Assistant will assume that the command succeeded and change state. description: Enable or disable optimistic mode for actuators (switch/light). Set this to true if no state feedback from actuators is possible. Home Assistant will assume that the command succeeded and change state.
required: false required: false
@ -116,28 +116,28 @@ The MQTT gateway requires MySensors version 2.0+ and only the MQTT client gatewa
# Example configuration.yaml entry # Example configuration.yaml entry
mysensors: mysensors:
gateways: gateways:
- device: '/dev/ttyUSB0' - device: "/dev/ttyUSB0"
persistence_file: 'path/mysensors.json' persistence_file: "path/mysensors.json"
baud_rate: 38400 baud_rate: 38400
nodes: nodes:
1: 1:
name: 'kitchen' name: "kitchen"
3: 3:
name: 'living_room' name: "living_room"
- device: '/dev/ttyACM0' - device: "/dev/ttyACM0"
persistence_file: 'path/mysensors2.json' persistence_file: "path/mysensors2.json"
baud_rate: 115200 baud_rate: 115200
- device: '192.168.1.18' - device: "192.168.1.18"
persistence_file: 'path/mysensors3.json' persistence_file: "path/mysensors3.json"
tcp_port: 5003 tcp_port: 5003
- device: mqtt - device: mqtt
persistence_file: 'path/mysensors4.json' persistence_file: "path/mysensors4.json"
topic_in_prefix: 'mygateway1-out' topic_in_prefix: "mygateway1-out"
topic_out_prefix: 'mygateway1-in' topic_out_prefix: "mygateway1-in"
optimistic: false optimistic: false
persistence: true persistence: true
retain: true retain: true
version: '2.0' version: "2.0"
``` ```
### Presentation ### Presentation

View File

@ -93,6 +93,6 @@ media_player:
min_volume: -60 min_volume: -60
max_volume: -20 max_volume: -20
sources: sources:
1: 'Kodi' 1: "Kodi"
2: 'TV' 2: "TV"
``` ```

View File

@ -29,10 +29,10 @@ sensor:
from: Gn from: Gn
to: Mt to: Mt
via: Zl via: Zl
- name: 'AlmereBuiten-Duivendrecht-the-08h06m-train' - name: "AlmereBuiten-Duivendrecht-the-08h06m-train"
from: Almb from: Almb
to: Dvd to: Dvd
time: '08:06:00' time: "08:06:00"
``` ```
{% configuration %} {% configuration %}

View File

@ -55,7 +55,7 @@ port:
scan_interval: scan_interval:
description: "Time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)." description: "Time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)."
required: false required: false
default: '00:01:00' default: "00:01:00"
type: time type: time
infer_arming_state: infer_arming_state:
description: Infer the disarmed arming state only via system status events. This works around a bug with some panels (`<v5.8`) which emit `update.status = []` when they are armed. description: Infer the disarmed arming state only via system status events. This works around a bug with some panels (`<v5.8`) which emit `update.status = []` when they are armed.

View File

@ -130,15 +130,15 @@ resources:
# Example configuration.yaml entry # Example configuration.yaml entry
sensor: sensor:
- platform: netdata - platform: netdata
host: '192.168.1.2' host: "192.168.1.2"
port: '19999' port: "19999"
name: SomeHostName name: SomeHostName
resources: resources:
system_load: system_load:
data_group: system.load data_group: system.load
element: load15 element: load15
core0_freq: core0_freq:
data_group: 'cpu.cpufreq' data_group: "cpu.cpufreq"
element: 'cpu0' element: "cpu0"
icon: mdi:chip icon: mdi:chip
``` ```

View File

@ -193,11 +193,11 @@ automation:
action: action:
- service: conversation.process - service: conversation.process
data: data:
text: '{{ trigger.event.data.message }}' text: "{{ trigger.event.data.message }}"
- service: netgear_lte.delete_sms - service: netgear_lte.delete_sms
data: data:
host: '{{ trigger.event.data.host }}' host: "{{ trigger.event.data.host }}"
sms_id: '{{ trigger.event.data.sms_id }}' sms_id: "{{ trigger.event.data.sms_id }}"
``` ```
{% endraw %} {% endraw %}

View File

@ -35,16 +35,16 @@ The state is the last reading from Nightscout, and you can see other information
### Example Automation ### Example Automation
```yaml ```yaml
- id: '1234567890123' - id: "1234567890123"
alias: overnight_low_kitchen_lights alias: overnight_low_kitchen_lights
description: Turn on the lights in the kitchen if my blood sugar drops low overnight description: Turn on the lights in the kitchen if my blood sugar drops low overnight
trigger: trigger:
- below: '65' - below: "65"
entity_id: sensor.blood_glucose entity_id: sensor.blood_glucose
platform: numeric_state platform: numeric_state
condition: time condition: time
after: '22:00:00' after: "22:00:00"
before: '06:00:00' before: "06:00:00"
action: action:
- service: light.turn_on - service: light.turn_on
data: data:

View File

@ -83,7 +83,7 @@ You can use the `nissan_leaf.start_charge` service to send a request to the Niss
```yaml ```yaml
- service: nissan_leaf.start_charge - service: nissan_leaf.start_charge
data: data:
vin: '1HGBH41JXMN109186' # replace vin: "1HGBH41JXMN109186" # replace
``` ```
## Updating on-demand using Automation ## Updating on-demand using Automation
@ -92,19 +92,19 @@ You can also use the `nissan_leaf.update` service to request an on-demand update
```yaml ```yaml
- id: update_when_driver_not_home - id: update_when_driver_not_home
alias: 'Update when driver not home' alias: "Update when driver not home"
initial_state: on initial_state: on
trigger: trigger:
- platform: time_pattern - platform: time_pattern
minutes: '/30' minutes: "/30"
condition: condition:
- condition: state - condition: state
entity_id: device_tracker.drivername # replace entity_id: device_tracker.drivername # replace
state: 'not_home' state: "not_home"
action: action:
- service: nissan_leaf.update - service: nissan_leaf.update
data: data:
vin: '1HGBH41JXMN109186' # replace vin: "1HGBH41JXMN109186" # replace
``` ```
## Hints ## Hints

View File

@ -21,7 +21,7 @@ action:
service: notify.mysensors service: notify.mysensors
data: data:
message: Welcome home! message: Welcome home!
target: 'TextSensor 254 1' target: "TextSensor 254 1"
``` ```
The following sensor types are supported: The following sensor types are supported:

View File

@ -80,15 +80,15 @@ Now you can use the `notify.events` service inside your Home Assistant to:
```yaml ```yaml
- service: notify.events - service: notify.events
data: data:
message: 'Backyard motion detected!' message: "Backyard motion detected!"
data: data:
level: 'warning' level: "warning"
priority: 'high' priority: "high"
images: images:
- name: 'local_photo.jpg' - name: "local_photo.jpg"
path: '/tmp/backyard_cam/motion.jpg' path: "/tmp/backyard_cam/motion.jpg"
- name: 'remote_photo.jpg' - name: "remote_photo.jpg"
url: 'https://i.ibb.co/Jt1845X/motion.jpg' url: "https://i.ibb.co/Jt1845X/motion.jpg"
``` ```
### Message optional parameters ### Message optional parameters

View File

@ -87,7 +87,7 @@ Depending on your personal circumstances with regards to bush fire risk you may
# Example configuration.yaml entry # Example configuration.yaml entry
geo_location: geo_location:
- platform: nsw_rural_fire_service_feed - platform: nsw_rural_fire_service_feed
entity_namespace: 'nsw_fire_service_feed' entity_namespace: "nsw_fire_service_feed"
radius: 10 radius: 10
categories: categories:
- 'Emergency Warning' - 'Emergency Warning'

View File

@ -20,7 +20,7 @@ Add a sensor to your `configuration.yaml` file as shown in the example:
sensor: sensor:
- platform: oasa_telematics - platform: oasa_telematics
route_id: YOUR_ROUTE_ID route_id: YOUR_ROUTE_ID
stop_id: 'YOUR_STOP_ID' stop_id: "YOUR_STOP_ID"
``` ```
The `route_id` can be obtained by looking up the "LineCode" of the route you want at this link: The `route_id` can be obtained by looking up the "LineCode" of the route you want at this link:
@ -60,5 +60,5 @@ A more extensive example on how to use this sensor:
sensor: sensor:
- platform: oasa_telematics - platform: oasa_telematics
route_id: 1965 route_id: 1965
stop_id: '090006' stop_id: "090006"
``` ```

View File

@ -23,7 +23,7 @@ media_player:
host: 192.168.1.2 host: 192.168.1.2
name: receiver name: receiver
sources: sources:
pc: 'HTPC' pc: "HTPC"
``` ```
If your receiver has second or third zones available, they are displayed as additional media players with the same functionality as the main zone. If your receiver has second or third zones available, they are displayed as additional media players with the same functionality as the main zone.

View File

@ -97,7 +97,7 @@ sensor:
platform: template platform: template
sensors: sensors:
garage_status: garage_status:
friendly_name: 'Honda Door Status' friendly_name: "Honda Door Status"
value_template: '{% if states.cover.honda %} value_template: '{% if states.cover.honda %}
{% if states.cover.honda.attributes["door_state"] == "open" %} {% if states.cover.honda.attributes["door_state"] == "open" %}
Open Open

View File

@ -45,14 +45,14 @@ To receive notifications of the entering flights using the [Home Assistant Compa
```yaml ```yaml
automation: automation:
- alias: 'Flight entry notification' - alias: "Flight entry notification"
trigger: trigger:
platform: event platform: event
event_type: opensky_entry event_type: opensky_entry
action: action:
service: notify.mobile_app_<device_name> service: notify.mobile_app_<device_name>
data: data:
message: 'Flight entry of {{ trigger.event.data.callsign }}' message: "Flight entry of {{ trigger.event.data.callsign }}"
``` ```
{% endraw %} {% endraw %}

View File

@ -94,7 +94,7 @@ automation:
- alias: Update OpenUV every 30 minutes during the daytime - alias: Update OpenUV every 30 minutes during the daytime
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/30' minutes: "/30"
condition: condition:
condition: and condition: and
conditions: conditions:
@ -115,11 +115,11 @@ automation:
- alias: Update OpenUV every 20 minutes while the sun is at least 10 degrees above the horizon - alias: Update OpenUV every 20 minutes while the sun is at least 10 degrees above the horizon
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/20' minutes: "/20"
condition: condition:
condition: numeric_state condition: numeric_state
entity_id: sun.sun entity_id: sun.sun
value_template: '{{ state.attributes.elevation }}' value_template: "{{ state.attributes.elevation }}"
above: 10 above: 10
action: action:
service: openuv.update_uv_index_data service: openuv.update_uv_index_data
@ -148,7 +148,7 @@ automation:
- alias: Update OpenUV every hour (24 of 50 calls per day) - alias: Update OpenUV every hour (24 of 50 calls per day)
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/60' minutes: "/60"
action: action:
service: openuv.update_data service: openuv.update_data
``` ```

View File

@ -23,14 +23,14 @@ To enable Panel iFrames in your installation, add the following to your `configu
# Example configuration.yaml entry # Example configuration.yaml entry
panel_iframe: panel_iframe:
router: router:
title: 'Router' title: "Router"
url: 'http://192.168.1.1' url: "http://192.168.1.1"
fridge: fridge:
title: 'Fridge' title: "Fridge"
url: 'http://192.168.1.5' url: "http://192.168.1.5"
otherapp: otherapp:
title: 'Other App' title: "Other App"
url: '/otherapp' url: "/otherapp"
``` ```
{% configuration %} {% configuration %}

View File

@ -70,7 +70,7 @@ action:
This automation example shows a notification when the Z-Wave network is starting and removes it when the network is ready. This automation example shows a notification when the Z-Wave network is starting and removes it when the network is ready.
```yaml ```yaml
- alias: 'Z-Wave network is starting' - alias: "Z-Wave network is starting"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.network_start event_type: zwave.network_start
@ -81,7 +81,7 @@ This automation example shows a notification when the Z-Wave network is starting
message: "Z-Wave network is starting..." message: "Z-Wave network is starting..."
notification_id: zwave notification_id: zwave
- alias: 'Z-Wave network is ready' - alias: "Z-Wave network is ready"
trigger: trigger:
- platform: event - platform: event
event_type: zwave.network_ready event_type: zwave.network_ready

View File

@ -68,23 +68,23 @@ Single Pi-hole running via Home Assistant add-on:
```yaml ```yaml
pi_hole: pi_hole:
- host: 'localhost:4865' - host: "localhost:4865"
``` ```
Multiple Pi-holes: Multiple Pi-holes:
```yaml ```yaml
pi_hole: pi_hole:
- host: '192.168.0.2' - host: "192.168.0.2"
- host: '192.168.0.3' - host: "192.168.0.3"
name: 'Secondary Pi-hole' name: "Secondary Pi-hole"
``` ```
Pi-hole with a self-signed certificate: Pi-hole with a self-signed certificate:
```yaml ```yaml
pi_hole: pi_hole:
- host: 'pi.hole' - host: "pi.hole"
ssl: true ssl: true
verify_ssl: false verify_ssl: false
``` ```
@ -93,7 +93,7 @@ Pi-hole with an `api_key` that allows it to be enabled or disabled:
```yaml ```yaml
pi_hole: pi_hole:
- host: 'pi.hole' - host: "pi.hole"
api_key: !secret pi_hole_api_key api_key: !secret pi_hole_api_key
``` ```

View File

@ -46,5 +46,5 @@ The configuration sample below shows how an entry can look like:
# Example configuration.yaml entry # Example configuration.yaml entry
tts: tts:
- platform: picotts - platform: picotts
language: 'fr-FR' language: "fr-FR"
``` ```

View File

@ -85,7 +85,7 @@ To enable a Pilight binary sensor in your installation, add the following to you
# Example configuration.yaml entry # Example configuration.yaml entry
binary_sensor: binary_sensor:
- platform: pilight - platform: pilight
variable: 'state' variable: "state"
``` ```
{% configuration %} {% configuration %}
@ -133,11 +133,11 @@ A full configuration example could look like this:
# Example configuration.yaml entry # Example configuration.yaml entry
binary_sensor: binary_sensor:
- platform: pilight - platform: pilight
name: 'Motion' name: "Motion"
variable: 'state' variable: "state"
payload: payload:
unitcode: 371399 unitcode: 371399
payload_on: 'closed' payload_on: "closed"
disarm_after_trigger: true disarm_after_trigger: true
reset_delay_sec: 30 reset_delay_sec: 30
``` ```
@ -154,7 +154,7 @@ sensor:
- platform: pilight - platform: pilight
variable: temperature variable: temperature
payload: payload:
uuid: '0000-b8-27-eb-f447d3' uuid: "0000-b8-27-eb-f447d3"
``` ```
{% configuration %} {% configuration %}
@ -185,23 +185,23 @@ This section shows a real life example how to use values of a weather station.
# Example configuration.yaml entry # Example configuration.yaml entry
sensor: sensor:
- platform: pilight - platform: pilight
name: 'Temperature' name: "Temperature"
variable: 'temperature' variable: "temperature"
payload: payload:
uuid: 0000-b8-27-eb-f1f72e uuid: 0000-b8-27-eb-f1f72e
unit_of_measurement: '°C' unit_of_measurement: "°C"
- platform: pilight - platform: pilight
name: 'Humidity' name: "Humidity"
variable: 'humidity' variable: "humidity"
payload: payload:
uuid: 0000-b8-27-eb-f1f72e uuid: 0000-b8-27-eb-f1f72e
unit_of_measurement: '%' unit_of_measurement: "%"
- platform: pilight - platform: pilight
name: 'Battery' name: "Battery"
variable: 'battery' variable: "battery"
payload: payload:
uuid: 0000-b8-27-eb-f1f72e uuid: 0000-b8-27-eb-f1f72e
unit_of_measurement: '%' unit_of_measurement: "%"
``` ```
## Switch ## Switch
@ -298,13 +298,13 @@ switch:
systemcode: 14462 systemcode: 14462
unit: 6 unit: 6
id: 34 id: 34
state: 'on' state: "on"
off_code_receive: off_code_receive:
protocol: daycom protocol: daycom
systemcode: 14462 systemcode: 14462
unit: 6 unit: 6
id: 34 id: 34
state: 'off' state: "off"
``` ```
## Light ## Light
@ -349,12 +349,12 @@ light:
protocol: kaku_dimmer protocol: kaku_dimmer
id: 23298822 id: 23298822
unit: 10 unit: 10
state: 'on' state: "on"
off_code_receive: off_code_receive:
protocol: kaku_dimmer protocol: kaku_dimmer
id: 23298822 id: 23298822
unit: 10 unit: 10
state: 'off' state: "off"
``` ```
## Troubleshooting ## Troubleshooting

View File

@ -142,28 +142,28 @@ sensor:
- platform: mqtt - platform: mqtt
name: my_plant_moisture name: my_plant_moisture
state_topic: my_plant_topic state_topic: my_plant_topic
value_template: '{{ value_json.moisture | int }}' value_template: "{{ value_json.moisture | int }}"
unit_of_measurement: '%' unit_of_measurement: "%"
- platform: mqtt - platform: mqtt
name: my_plant_battery name: my_plant_battery
state_topic: my_plant_topic state_topic: my_plant_topic
value_template: '{{ value_json.battery | int }}' value_template: "{{ value_json.battery | int }}"
unit_of_measurement: '%' unit_of_measurement: "%"
- platform: mqtt - platform: mqtt
name: my_plant_temperature name: my_plant_temperature
state_topic: my_plant_topic state_topic: my_plant_topic
value_template: '{{ value_json.temperature | float }}' value_template: "{{ value_json.temperature | float }}"
unit_of_measurement: '°C' unit_of_measurement: "°C"
- platform: mqtt - platform: mqtt
name: my_plant_conductivity name: my_plant_conductivity
state_topic: my_plant_topic state_topic: my_plant_topic
value_template: '{{ value_json.conductivity | int }}' value_template: "{{ value_json.conductivity | int }}"
unit_of_measurement: 'µS/cm' unit_of_measurement: "µS/cm"
- platform: mqtt - platform: mqtt
name: my_plant_brightness name: my_plant_brightness
state_topic: my_plant_topic state_topic: my_plant_topic
value_template: '{{ value_json.brightness | int }}' value_template: "{{ value_json.brightness | int }}"
unit_of_measurement: 'Lux' unit_of_measurement: "Lux"
``` ```
{% endraw %} {% endraw %}

View File

@ -241,17 +241,17 @@ play_plex_on_tv:
- service: media_player.select_source - service: media_player.select_source
entity_id: media_player.smart_tv entity_id: media_player.smart_tv
data: data:
source: 'Plex' source: "Plex"
- wait_template: "{{ is_state('media_player.smart_tv', 'On') }}" - wait_template: "{{ is_state('media_player.smart_tv', 'On') }}"
timeout: '00:00:10' timeout: "00:00:10"
- service: plex.scan_for_clients - service: plex.scan_for_clients
- wait_template: "{{ not is_state('media_player.plex_smart_tv', 'unavailable') }}" - wait_template: "{{ not is_state('media_player.plex_smart_tv', 'unavailable') }}"
timeout: '00:00:10' timeout: "00:00:10"
continue_on_timeout: false continue_on_timeout: false
- service: media_player.play_media - service: media_player.play_media
data: data:
entity_id: media_player.plex_smart_tv entity_id: media_player.plex_smart_tv
media_content_id: '{"library_name": "Movies", "title": "Zoolander"}' media_content_id: "{"library_name": "Movies", "title": "Zoolander"}"
media_content_type: movie media_content_type: movie
``` ```

Some files were not shown because too many files have changed in this diff Show More