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

View File

@ -24,7 +24,7 @@ automation:
- alias: Enable First Morning Trigger
trigger:
- platform: time
at: '05:00:00'
at: "05:00:00"
action:
service: homeassistant.turn_on
entity_id: input_boolean.trigger_first_morning
@ -47,12 +47,12 @@ automation:
trigger:
platform: state
entity_id: binary_sensor.livingroom_motion
to: 'on'
to: "on"
# only complete the automation if we're still waiting for the first motion
condition:
condition: state
entity_id: input_boolean.trigger_first_morning
state: 'on'
state: "on"
action:
# 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
automation:
- alias: 'Alarm_PIR_Room1'
- alias: "Alarm_PIR_Room1"
trigger:
platform: state
entity_id: binary_sensor.PIR1
to: 'on'
to: "on"
condition:
- condition: state
entity_id: switch.AlmAct1
state: 'on'
state: "on"
- condition: state
entity_id: script.alarm_room1
state: 'off'
state: "off"
action:
# start alarm on movement if alarm activated
# and the alarm is not triggered
service: script.turn_on
entity_id: script.alarm_room1
- alias: 'flash_room1_start'
- alias: "flash_room1_start"
trigger:
platform: state
entity_id: switch.AlmSnd1
to: 'on'
to: "on"
action:
service: script.turn_on
entity_id: script.flash_room1
- alias: 'flash_room1_stop'
- alias: "flash_room1_stop"
trigger:
platform: state
entity_id: switch.REL1
to: 'off'
to: "off"
condition:
condition: state
entity_id: switch.AlmSnd1
state: 'off'
state: "off"
action:
service: script.turn_off
entity_id: script.flash_room1
@ -68,7 +68,7 @@ script:
- alias: email_Room1
service: notify.email
data:
message: 'Movement alarm in Room1'
message: "Movement alarm in Room1"
- delay:
# time interval for alarm sound and light flashing
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
automation:
- alias: 'Rainy Day'
- alias: "Rainy Day"
trigger:
- platform: state
entity_id: sensor.precip_intensity
to: 'rain'
to: "rain"
condition:
- condition: state
entity_id: all
state: 'home'
state: "home"
- condition: time
after: '14:00'
before: '23:00'
after: "14:00"
before: "23:00"
action:
service: light.turn_on
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.
```yaml
- alias: 'Rain is over'
- alias: "Rain is over"
trigger:
- platform: state
entity_id: sensor.precip_intensity
to: 'None'
to: "None"
condition:
- condition: sun
after: 'sunset'
after_offset: '-01:00:00'
after: "sunset"
after_offset: "-01:00:00"
action:
service: light.turn_off
entity_id: light.couch_lamp

View File

@ -44,24 +44,24 @@ Send notifications through [PushBullet](/integrations/pushbullet) when the sun s
```yaml
automation:
- alias: 'Send notification when sun rises'
- alias: "Send notification when sun rises"
trigger:
platform: sun
event: sunrise
offset: '+00:00:00'
offset: "+00:00:00"
action:
service: notify.pushbullet
data:
message: 'The sun is up.'
- alias: 'Send notification when sun sets'
message: "The sun is up."
- alias: "Send notification when sun sets"
trigger:
platform: sun
event: sunset
offset: '+00:00:00'
offset: "+00:00:00"
action:
service: notify.pushbullet
data:
message: 'The sun is down.'
message: "The sun is down."
```
#### 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.
```yaml
- alias: 'Turn a few lights on when the sun gets dim'
- alias: "Turn a few lights on when the sun gets dim"
trigger:
platform: numeric_state
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
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:
platform: numeric_state
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
entity_id: scene.more_lights
- alias: 'Close blind at dusk'
- alias: "Close blind at dusk"
trigger:
platform: numeric_state
entity_id: sun.sun

View File

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

View File

@ -17,14 +17,14 @@ input_boolean:
automation:
# 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:
platform: time_pattern
minutes: '/2'
minutes: "/2"
condition:
condition: state
entity_id: input_boolean.loop_livingcolors
state: 'on'
state: "on"
action:
service: light.turn_on
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
automation:
- alias: 'Make the lights go bright'
initial_state: 'on'
- alias: "Make the lights go bright"
initial_state: "on"
trigger:
- platform: event
event_type: zwave.scene_activated
@ -29,8 +29,8 @@ automation:
direction: up
light: light.YOUR_LIGHT
- alias: 'Make the lights go dim'
initial_state: 'on'
- alias: "Make the lights go dim"
initial_state: "on"
trigger:
- platform: event
event_type: zwave.scene_activated
@ -45,8 +45,8 @@ automation:
direction: down
light: light.YOUR_LIGHT
- alias: 'Stop the light just there'
initial_state: 'on'
- alias: "Stop the light just there"
initial_state: "on"
trigger:
- platform: event
event_type: zwave.scene_activated
@ -73,28 +73,28 @@ To allow flexibility all four variables are controlled by [Input Number](/integr
```yaml
input_number:
light_step:
name: 'Step the lights this much'
name: "Step the lights this much"
initial: 20
min: 1
max: 64
step: 1
light_minimum:
name: 'No dimmer than this'
name: "No dimmer than this"
initial: 5
min: 1
max: 255
step: 1
light_maximum:
name: 'No brighter than this'
name: "No brighter than this"
initial: 255
min: 50
max: 255
step: 1
light_delay_ms:
name: 'Step the lights this often (ms)'
name: "Step the lights this often (ms)"
initial: 500
min: 100
max: 5000

View File

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

View File

@ -19,13 +19,13 @@ switch:
switches:
#Switch for Foscam Motion Detection
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_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 %}'
```
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
shell_command:
@ -64,14 +64,14 @@ automation:
trigger:
platform: state
entity_id: group.family
from: 'home'
from: "home"
action:
service: script.foscam_on
- alias: Set Foscam to Home Mode when I arrive Home
trigger:
platform: state
entity_id: group.family
to: 'home'
to: "home"
action:
service: script.foscam_off
```

View File

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

View File

@ -19,12 +19,12 @@ automation:
trigger:
- platform: state
entity_id: binary_sensor.updater
from: 'off'
to: 'on'
from: "off"
to: "on"
action:
- service: notify.jabber
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.
@ -32,7 +32,7 @@ You can use [templates](/topics/templating/) to include the release number of Ho
```yaml
notify:
- platform: pushbullet
api_key: 'YOUR_KEY_HERE'
api_key: "YOUR_KEY_HERE"
name: pushbullet
automation:
@ -40,13 +40,13 @@ automation:
trigger:
- platform: state
entity_id: binary_sensor.updater
from: 'off'
to: 'on'
from: "off"
to: "on"
action:
- service: notify.pushbullet
data:
title: 'New Home Assistant Release'
target: 'YOUR_TARGET_HERE' #See Pushbullet integration for usage
title: "New Home Assistant Release"
target: "YOUR_TARGET_HERE" #See Pushbullet integration for usage
message: "Home Assistant {% raw %} {{ state_attr('binary_sensor.updater', 'newest_version') }} {% endraw %} is now available."
```

View File

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

View File

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

View File

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

View File

@ -36,7 +36,7 @@ script:
We call this now with:
```yaml
automation:
- alias: 'test'
- alias: "test"
trigger:
- platform: state
entity_id: input_boolean.mytest
@ -45,8 +45,8 @@ automation:
data:
sonos_entity: media_player.office
volume: 0.5
message: 'Your husband coming home!'
delay: '00:00:05'
message: "Your husband coming home!"
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:

View File

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

View File

@ -14,7 +14,7 @@ automation:
trigger:
platform: state
entity_id: sensor.motion_sensor
to: 'on'
to: "on"
action:
service: light.turn_on
entity_id: light.kitchen_light
@ -23,7 +23,7 @@ automation:
trigger:
platform: state
entity_id: sensor.motion_sensor
to: 'off'
to: "off"
for:
minutes: 10
action:
@ -39,7 +39,7 @@ automation:
trigger:
- platform: state
entity_id: sensor.motion_sensor, binary_sensor.front_door, binary_sensor.doorbell
to: 'on'
to: "on"
action:
- service: light.turn_on
data:
@ -65,7 +65,7 @@ automation:
timer:
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.
@ -75,11 +75,11 @@ You can also restrict lights from turning on based on time of day and implement
trigger:
platform: state
entity_id: binary_sensor.ecolink_pir_motion_sensor_sensor
to: 'on'
to: "on"
condition:
condition: time
after: '07:30'
before: '23:30'
after: "07:30"
before: "23:30"
action:
service: homeassistant.turn_on
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:
- platform: state
entity_id: binary_sensor.ecolink_pir_motion_sensor_sensor
to: 'off'
to: "off"
for:
minutes: 15
action:

View File

@ -96,7 +96,7 @@ homeassistant:
- type: totp
name: Authenticator app
- 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.

View File

@ -34,32 +34,35 @@ automation 2:
# Actions are scripts so can also be a list of actions
- service: "{{ notification_service }}"
data:
message: Beautiful sunset!
message: "Beautiful sunset!"
- delay: 0:35
- service: notify.notify
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.
```yaml
automation:
- alias: 'Office at evening'
- alias: "Office at evening"
trigger:
platform: state
entity_id: sensor.office_occupancy
to: 'on'
to: "on"
action:
- service: notify.notify
data:
message: Testing conditional actions
- condition: or
conditions:
- condition: template
value_template: '{% raw %}{{ state_attr('sun.sun', 'elevation') < 4 }}{% endraw %}'
- condition: template
value_template: '{% raw %}{{ states('sensor.office_illuminance') < 10 }}{% endraw %}'
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 4
- condition: state
entity_id: sensor.office_illuminance
below: 10
- service: scene.turn_on
entity_id: scene.office_at_evening
```

View File

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

View File

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

View File

@ -463,7 +463,7 @@ automation:
- trigger:
platform: state
entity_id: binary_sensor.motion
to: 'on'
to: "on"
action:
- service: climate.turn_on
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:
# Turns on lights 1 hour before sunset if people are home
# 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:
# Prefix the first line of each trigger configuration
# with a '-' to enter multiple
- platform: sun
event: sunset
offset: '-01:00:00'
offset: "-01:00:00"
- platform: state
entity_id: all
to: 'home'
to: "home"
condition:
# Prefix the first line of each condition configuration
# with a '-'' to enter multiple
- condition: state
entity_id: all
state: 'home'
state: "home"
- condition: time
after: '16:00:00'
before: '23:00:00'
after: "16:00:00"
before: "23:00:00"
action:
# With a single service call, we don't need a '-' before service - though you can if you want to
service: homeassistant.turn_on
entity_id: group.living_room
# Turn off lights when everybody leaves the house
- alias: 'Rule 2 - Away Mode'
- alias: "Rule 2 - Away Mode"
trigger:
platform: state
entity_id: all
to: 'not_home'
to: "not_home"
action:
service: light.turn_off
entity_id: all
# Notify when Paulus leaves the house in the evening
- alias: 'Leave Home notification'
- alias: "Leave Home notification"
trigger:
platform: zone
event: leave
@ -74,14 +74,14 @@ automation my_lights:
entity_id: device_tracker.paulus
condition:
condition: time
after: '20:00'
after: "20:00"
action:
service: notify.notify
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.
- alias: 'Xiaomi Cube Action'
- alias: "Xiaomi Cube Action"
initial_state: false
trigger:
platform: event

View File

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

View File

@ -65,7 +65,7 @@ There are some rules for packages that will be merged:
input_boolean:
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'>
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
### METEOBRIDGE #############################################
- platform: tcp
name: 'Outdoor Temp (Meteobridge)'
name: "Outdoor Temp (Meteobridge)"
host: 192.168.2.82
timeout: 6
payload: "Content-type: text/xml; charset=UTF-8\n\n"
value_template: "{% raw %}{{value.split (' ')[2]}}{% endraw %}"
unit: C
- platform: tcp
name: 'Outdoor Humidity (Meteobridge)'
name: "Outdoor Humidity (Meteobridge)"
host: 192.168.2.82
port: 5556
timeout: 6
@ -173,10 +173,10 @@ This (large) sensor configuration gives us another example:
- 'date'
- platform: worldclock
time_zone: Etc/UTC
name: 'UTC'
name: "UTC"
- platform: worldclock
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.
@ -231,7 +231,7 @@ automation:
trigger:
platform: state
entity_id: device_tracker.iphone
to: 'home'
to: "home"
action:
service: light.turn_on
entity_id: light.entryway
@ -239,7 +239,7 @@ automation:
trigger:
platform: state
entity_id: device_tracker.iphone
from: 'home'
from: "home"
action:
service: light.turn_off
entity_id: light.entryway
@ -260,7 +260,7 @@ alias: Automation 1
trigger:
platform: state
entity_id: device_tracker.iphone
to: 'home'
to: "home"
action:
service: light.turn_on
entity_id: light.entryway
@ -273,7 +273,7 @@ alias: Automation 2
trigger:
platform: state
entity_id: device_tracker.iphone
from: 'home'
from: "home"
action:
service: light.turn_off
entity_id: light.entryway
@ -370,7 +370,7 @@ automation:
trigger:
platform: state
entity_id: device_tracker.iphone
to: 'home'
to: "home"
action:
service: light.turn_on
entity_id: light.entryway
@ -378,7 +378,7 @@ automation:
trigger:
platform: state
entity_id: device_tracker.iphone
from: 'home'
from: "home"
action:
service: light.turn_off
entity_id: light.entryway
@ -399,7 +399,7 @@ automation: !include_dir_merge_list automation/
trigger:
platform: state
entity_id: device_tracker.iphone
to: 'home'
to: "home"
action:
service: light.turn_on
entity_id: light.entryway
@ -407,7 +407,7 @@ automation: !include_dir_merge_list automation/
trigger:
platform: state
entity_id: device_tracker.iphone
from: 'home'
from: "home"
action:
service: light.turn_off
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:
```yaml
version: '3'
version: "3"
services:
homeassistant:
container_name: home-assistant
@ -266,10 +266,12 @@ docker-compose restart
To update your docker-compose image to the latest version and restart:
```bash
docker-compose pull
docker-compose up -d --build homeassistant
docker-compose pull 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
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:
```yaml
version: '3'
version: "3"
services:
homeassistant:
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
mqtt:
birth_message:
topic: 'hass/status'
payload: 'online'
topic: "hass/status"
payload: "online"
will_message:
topic: 'hass/status'
payload: 'offline'
topic: "hass/status"
payload: "offline"
```
{% configuration %}
birth_message:
description: Birth Message. Set to the empty dict, `{}`, to disable publishing a birth message.
required: false
type: list
type: map
keys:
topic:
description: The MQTT topic to publish the message.
@ -50,7 +50,7 @@ birth_message:
will_message:
description: Will Message. Set to the empty dict, `{}`, to disable publishing a will message.
required: false
type: list
type: map
keys:
topic:
description: The MQTT topic to publish the message.

View File

@ -18,7 +18,7 @@ script:
entity_id: light.ceiling
- service: notify.notify
data:
message: 'Turned on the ceiling light!'
message: "Turned on the ceiling light!"
```
- [Call a Service](#call-a-service)
@ -68,7 +68,9 @@ The variables command allows you to set/override variables that will be accessib
```yaml
- variables:
entities: light.kitchen, light.living_room
entities:
- light.kitchen
- light.living_room
brightness: 100
- alias: Control lights
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
- condition: state
entity_id: device_tracker.paulus
state: 'home'
state: "home"
```
## 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.
{% raw %}
```yaml
# Seconds
# Waits 5 seconds
@ -104,13 +107,13 @@ Delays are useful for temporarily suspending your script and start it at a later
```yaml
# HH:MM
# Waits 1 hour
- delay: '01:00'
- delay: "01:00"
```
```yaml
# HH:MM:SS
# Waits 1.5 minutes
- delay: '00:01:30'
- delay: "00:01:30"
```
```yaml
@ -120,15 +123,18 @@ Delays are useful for temporarily suspending your script and start it at a later
- delay:
minutes: 1
```
{% endraw %}
All forms accept templates.
{% raw %}
```yaml
# Waits however many minutes input_number.minute_delay is set to
- delay: "{{ states('input_number.minute_delay') | multiply(60) | int }}"
```
{% endraw %}
## Wait
@ -145,15 +151,18 @@ The template is re-evaluated whenever an entity ID that it references changes st
{% raw %}
```yaml
# Wait until media player have stop the playing
- wait_template: "{{ is_state('media_player.floor', 'stop') }}"
```
{% endraw %}
### 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.
{% raw %}
```yaml
# Wait for a custom event or light to turn on and stay on for 10 sec
- 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
- platform: state
entity_id: light.LIGHT
to: 'on'
to: "on"
for: 10
```
{% endraw %}
### 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.
{% raw %}
```yaml
# Wait for sensor to change to 'on' up to 1 minute before continuing to execute.
- wait_template: "{{ is_state('binary_sensor.entrance', 'on') }}"
timeout: '00:01:00'
timeout: "00:01:00"
```
{% endraw %}
You can also get the script to abort after the timeout by using optional `continue_on_timeout: false`.
{% raw %}
```yaml
# Wait for IFTTT event or abort after specified timeout.
- wait_for_trigger:
- platform: event
@ -192,6 +205,7 @@ You can also get the script to abort after the timeout by using optional `contin
minutes: "{{ timeout_minutes }}"
continue_on_timeout: false
```
{% endraw %}
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.
{% raw %}
```yaml
# Take different actions depending on if condition was met.
- wait_template: "{{ is_state('binary_sensor.door', 'on') }}"
timeout: 10
- choose:
- conditions:
- condition: template
value_template: "{{ not wait.completed }}"
- conditions: "{{ not wait.completed }}"
sequence:
- service: script.door_did_not_open
default:
@ -234,7 +247,7 @@ This can be used to take different actions based on whether or not the condition
- wait_for_trigger:
- platform: state
entity_id: binary_sensor.door_2
to: 'on'
to: "on"
for: 2
timeout: "{{ wait.remaining }}"
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.
{% raw %}
```yaml
- event: MY_EVENT
event_data:
name: myEvent
customData: "{{ myCustomVariable }}"
```
{% endraw %}
### 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.
{% raw %}
```yaml
- alias: Fire Event
trigger:
- platform: state
entity_id: switch.kitchen
to: 'on'
to: "on"
action:
- event: event_light_state_changed
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.
{% raw %}
```yaml
- alias: Capture Event
trigger:
@ -299,6 +313,7 @@ The following automation shows how to capture the custom event `event_light_stat
data:
message: "kitchen light is turned {{ trigger.event.data.state }}"
```
{% endraw %}
## 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.
{% raw %}
```yaml
script:
flash_light:
@ -334,6 +350,7 @@ script:
light: hallway
count: 3
```
{% endraw %}
### While Loop
@ -353,7 +370,7 @@ script:
while:
- condition: state
entity_id: input_boolean.do_something
state: 'on'
state: "on"
# Don't do it too many times
- condition: template
value_template: "{{ repeat.index <= 20 }}"
@ -389,11 +406,11 @@ automation:
- trigger:
- platform: state
entity_id: binary_sensor.xyz
to: 'on'
to: "on"
condition:
- condition: state
entity_id: binary_sensor.something
state: 'off'
state: "off"
mode: single
action:
- alias: Repeat the sequence UNTIL the conditions are true
@ -408,7 +425,7 @@ automation:
# Did it work?
- condition: state
entity_id: binary_sensor.something
state: 'on'
state: "on"
```
{% endraw %}
@ -454,7 +471,7 @@ automation:
- trigger:
- platform: state
entity_id: binary_sensor.motion
to: 'on'
to: "on"
action:
- choose:
# IF nobody home, sound the alarm!
@ -500,7 +517,7 @@ automation:
- trigger:
- platform: state
entity_id: input_boolean.simulate
to: 'on'
to: "on"
mode: restart
action:
- choose:

View File

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

View File

@ -109,7 +109,7 @@ Here's a handy configuration for the Aeon Labs Minimote that defines all possibl
```yaml
- id: mini_1_pressed
alias: 'Minimote Button 1 Pressed'
alias: "Minimote Button 1 Pressed"
trigger:
- platform: event
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
scene_id: 1
- id: mini_1_held
alias: 'Minimote Button 1 Held'
alias: "Minimote Button 1 Held"
trigger:
- platform: event
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
scene_id: 2
- id: mini_2_pressed
alias: 'Minimote Button 2 Pressed'
alias: "Minimote Button 2 Pressed"
trigger:
- platform: event
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
scene_id: 3
- id: mini_2_held
alias: 'Minimote Button 2 Held'
alias: "Minimote Button 2 Held"
trigger:
- platform: event
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
scene_id: 4
- id: mini_3_pressed
alias: 'Minimote Button 3 Pressed'
alias: "Minimote Button 3 Pressed"
trigger:
- platform: event
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
scene_id: 5
- id: mini_3_held
alias: 'Minimote Button 3 Held'
alias: "Minimote Button 3 Held"
trigger:
- platform: event
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
scene_id: 6
- id: mini_4_pressed
alias: 'Minimote Button 4 Pressed'
alias: "Minimote Button 4 Pressed"
trigger:
- platform: event
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
scene_id: 7
- id: mini_4_held
alias: 'Minimote Button 4 Held'
alias: "Minimote Button 4 Held"
trigger:
- platform: event
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:
```yaml
- id: '1234567890'
- id: "1234567890"
alias: Double-press Button 2 to toggle all lights
trigger:
- platform: event

View File

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

View File

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

View File

@ -8,7 +8,7 @@ ha_iot_class: Cloud Polling
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.
@ -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.
<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>
## Configuration

View File

@ -89,7 +89,7 @@ command_topic:
required: true
type: string
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
type: map
keys:
@ -98,27 +98,27 @@ device:
required: false
type: list
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
type: [list, string]
manufacturer:
description: 'The manufacturer of the device.'
description: "The manufacturer of the device."
required: false
type: string
model:
description: 'The model of the device.'
description: "The model of the device."
required: false
type: string
name:
description: 'The name of the device.'
description: "The name of the device."
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
description: "The firmware version of the device."
required: false
type: string
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
type: string
json_attributes_template:

View File

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

View File

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

View File

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

View File

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

View File

@ -181,7 +181,7 @@ binary_sensor:
name: Kitchen Motion
device_class: motion
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 %}

View File

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

View File

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

View File

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

View File

@ -32,7 +32,7 @@ Add the following to your `configuration.yaml` file:
# Example configuration.yaml entry
sensor:
- platform: aurora_abb_powerone
device: 'SERIAL_PORT'
device: "SERIAL_PORT"
```
{% configuration %}
@ -57,5 +57,5 @@ name:
sensor:
- platform: aurora_abb_powerone
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
prior: 0.1
observations:
- entity_id: 'switch.kitchen_lights'
- entity_id: "switch.kitchen_lights"
prob_given_true: 0.6
prob_given_false: 0.2
platform: 'state'
to_state: 'on'
platform: "state"
to_state: "on"
```
{% configuration %}
@ -90,29 +90,29 @@ The following is an example for the `state` observation platform.
```yaml
# Example configuration.yaml entry
binary_sensor:
name: 'in_bed'
platform: 'bayesian'
name: "in_bed"
platform: "bayesian"
prior: 0.25
probability_threshold: 0.95
observations:
- platform: 'state'
entity_id: 'sensor.living_room_motion'
- platform: "state"
entity_id: "sensor.living_room_motion"
prob_given_true: 0.4
prob_given_false: 0.2
to_state: 'off'
- platform: 'state'
entity_id: 'sensor.basement_motion'
to_state: "off"
- platform: "state"
entity_id: "sensor.basement_motion"
prob_given_true: 0.5
prob_given_false: 0.4
to_state: 'off'
- platform: 'state'
entity_id: 'sensor.bedroom_motion'
to_state: "off"
- platform: "state"
entity_id: "sensor.bedroom_motion"
prob_given_true: 0.5
to_state: 'on'
- platform: 'state'
entity_id: 'sun.sun'
to_state: "on"
- platform: "state"
entity_id: "sun.sun"
prob_given_true: 0.7
to_state: 'below_horizon'
to_state: "below_horizon"
```
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
# Example configuration.yaml entry
binary_sensor:
name: 'Heat On'
platform: 'bayesian'
name: "Heat On"
platform: "bayesian"
prior: 0.2
probability_threshold: 0.9
observations:
- platform: 'numeric_state'
entity_id: 'sensor.outside_air_temperature_fahrenheit'
- platform: "numeric_state"
entity_id: "sensor.outside_air_temperature_fahrenheit"
prob_given_true: 0.95
below: 50
```
@ -139,8 +139,8 @@ Finally, here's an example for `template` observation platform, as seen in the c
```yaml
# Example configuration.yaml entry
binary_sensor:
name: 'Paulus Home'
platform: 'bayesian'
name: "Paulus Home"
platform: "bayesian"
prior: 0.5
probability_threshold: 0.9
observations:

View File

@ -239,7 +239,7 @@ binary_sensor:
my_device:
value_template: >-
{{ 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:
latitude: >-
{% if is_state('device_tracker.my_device_nmap','home') %}
@ -301,7 +301,7 @@ binary_sensor:
- platform: template
sensors:
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 %}
@ -315,7 +315,7 @@ binary_sensor:
- platform: template
sensors:
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 %}

View File

@ -42,8 +42,8 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
trigger:
platform: state
entity_id: binary_sensor.motion_sensor_158d000xxxxxc2
from: 'off'
to: 'on'
from: "off"
to: "on"
condition:
condition: numeric_state
entity_id: sensor.illumination_34ce00xxxx11
@ -60,8 +60,8 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
trigger:
platform: state
entity_id: binary_sensor.motion_sensor_158d000xxxxxc2
from: 'on'
to: 'off'
from: "on"
to: "off"
for:
minutes: 5
action:
@ -79,40 +79,40 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2
from: 'off'
to: 'on'
from: "off"
to: "on"
action:
service: climate.set_operation_mode
entity_id: climate.livingroom
data:
operation_mode: 'Off'
operation_mode: "Off"
- alias: If the window is closed for 5 minutes turn on the radiator again
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2
from: 'on'
to: 'off'
from: "on"
to: "off"
for:
minutes: 5
action:
service: climate.set_operation_mode
entity_id: climate.livingroom
data:
operation_mode: 'Smart schedule'
operation_mode: "Smart schedule"
- alias: Notify if door is opened when away
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_15xxxxxxc9xx6b
from: 'off'
to: 'on'
from: "off"
to: "on"
condition:
- condition: state
entity_id: group.family
state: 'not_home'
state: "not_home"
action:
- service: notify.notify_person
data:
message: 'The door has been opened'
message: "The door has been opened"
```
#### Smoke
@ -122,8 +122,8 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
trigger:
platform: state
entity_id: binary_sensor.smoke_sensor_158d0001574899
from: 'off'
to: 'on'
from: "off"
to: "on"
action:
- service: notify.html5
data:
@ -143,13 +143,13 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
trigger:
platform: state
entity_id: binary_sensor.natgas_sensor_158dxxxxxxxxxx
from: 'off'
to: 'on'
from: "off"
to: "on"
action:
- service: notify.html5
data:
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

View File

@ -121,7 +121,7 @@ Here, this example assumes your blink module is named `My Sync Module` and that
trigger:
platform: state
entity_id: all
to: 'not_home'
to: "not_home"
action:
service: alarm_control_panel.alarm_arm_away
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:
platform: state
entity_id: all
to: 'home'
to: "home"
action:
service: alarm_control_panel.alarm_disarm
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:
platform: state
entity_id: binary_sensor.blink_my_camera_motion_detected
to: 'on'
to: "on"
action:
service: blink.save_video
data:

View File

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

View File

@ -29,7 +29,51 @@ Some very old Brother printers use different data format and these models are no
## 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).
![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
weather:
- platform: buienradar
name: 'volkel'
name: "volkel"
# Force 'Meetstation Volkel' to be used:
latitude: 51.65
longitude: 5.70

View File

@ -56,12 +56,12 @@ calendar:
password: !secret caldav
url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default
custom_calendars:
- name: 'HomeOffice'
calendar: 'Agenda'
search: 'HomeOffice'
- name: 'WarmupFlat'
calendar: 'Agenda'
search: 'Warmup'
- name: "HomeOffice"
calendar: "Agenda"
search: "HomeOffice"
- name: "WarmupFlat"
calendar: "Agenda"
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.
@ -133,7 +133,7 @@ All events of the calendars "private" and "holidays". Note that all day events a
calendar:
- platform: caldav
url: https://nextcloud.example.com/remote.php/dav
username: 'me'
username: "me"
password: !secret caldav
calendars:
- private
@ -149,27 +149,27 @@ Custom calendar names are built from the main calendar + name of the custom cale
calendar:
- platform: caldav
url: https://nextcloud.example.com/remote.php/dav
username: 'me'
username: "me"
password: !secret caldav
custom_calendars:
- name: holiday
calendar: work
search: 'Holiday'
search: "Holiday"
- name: vacation
calendar: vacation
search: '.*'
search: ".*"
# automations.yaml
- id: wakeup
alias: worktime wakeup
trigger:
platform: time
at: '06:40:00'
at: "06:40:00"
action:
- service: media_player.media_play
entity_id: media_player.bedroom
condition:
- condition: state
entity_id: calendar.work_holiday
state: 'off'
state: "off"
```

View File

@ -210,7 +210,7 @@ Trigger as soon as an event starts:
trigger:
platform: state
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.

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
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
is particularly useful on a developer' production system as it does not impact
without activating the debugger, but injecting it with a service call. This
is particularly useful on a developer's production system as it does not impact
performance when not injected.
## Configuration

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -204,7 +204,7 @@ Example automation using these IR codes to toggle a Sonoff plug.
```yaml
# Example kira_sensor
- id: '1583339338363'
- id: "1583339338363"
alias: Panasonic On
description: Turn on sonoff s20 relay
trigger:
@ -217,8 +217,8 @@ Example automation using these IR codes to toggle a Sonoff plug.
domain: switch
entity_id: switch.plug2_relay
type: turn_on
- id: '1584035716024'
alias: 'Panaxonic Off '
- id: "1584035716024"
alias: "Panaxonic Off "
description: Turn off sonoff s20 relay
trigger:
- 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:
```
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
platforms you intend to use:
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:
```yaml
knx:
@ -62,26 +61,27 @@ knx:
sensor: !include knx_sensor.yaml
cover: !include knx_cover.yaml
light: !include knx_light.yaml
climate: !include knx_climate.yaml
notify: !include knx_notify.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
knx:
config_file: '/path/to/xknx.yaml'
config_file: "/path/to/xknx.yaml"
```
{% configuration %}
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
type: string
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
type: string
default: "15.15.250"
@ -143,7 +143,7 @@ Explicit connection via KNX/IP routing. This requires multicast communication to
```yaml
knx:
routing:
local_ip: '192.168.2.109'
local_ip: "192.168.2.109"
```
{% configuration %}
@ -189,7 +189,7 @@ Service Data: {"address": "1/0/15", "payload": 0, "type": "temperature"}
{% configuration %}
address:
description: KNX group address
description: KNX group address.
type: string
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.
@ -227,28 +227,28 @@ KNX integration is able to expose entity states or attributes to KNX bus. The in
# Example configuration.yaml entry
knx:
expose:
- type: 'temperature'
entity_id: 'sensor.owm_temperature'
address: '0/0/2'
- type: 'string'
address: '0/6/4'
- type: "temperature"
entity_id: "sensor.owm_temperature"
address: "0/0/2"
- type: "string"
address: "0/6/4"
entity_id: "sensor.owm_weather"
- type: 'binary'
entity_id: 'binary_sensor.kitchen_window'
address: '0/6/5'
- type: 'binary'
entity_id: 'light.office'
address: '0/3/0'
default: False
- type: 'percentU8'
entity_id: 'light.office'
attribute: 'brightness'
- type: "binary"
entity_id: "binary_sensor.kitchen_window"
address: "0/6/5"
- type: "binary"
entity_id: "light.office"
address: "0/3/0"
default: false
- type: "percentU8"
entity_id: "light.office"
attribute: "brightness"
default: 0
address: '0/3/1'
- type: 'time'
address: '0/0/1'
- type: 'datetime'
address: '0/0/23'
address: "0/3/1"
- type: "time"
address: "0/0/1"
- type: "datetime"
address: "0/0/23"
```
{% configuration %}
@ -257,16 +257,16 @@ address:
type: string
required: true
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
required: true
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
required: false
attribute:
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
required: false
default:
@ -288,7 +288,7 @@ Binary sensors are read-only. To write to the knx-bus configure an exposure [KNX
knx:
binary_sensor:
- name: sensor1
state_address: '6/0/2'
state_address: "6/0/2"
```
{% configuration %}
@ -301,30 +301,30 @@ name:
required: false
type: string
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
type: [boolean, string, integer]
default: True
default: true
device_class:
description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend.
required: false
type: string
reset_after:
description: Reset back to OFF state after specified seconds.
description: Reset back to "off" state after specified seconds.
required: false
type: float
invert:
description: Invert the telegrams payload before processing. This is applied before `context_timeout` or `reset_after` is evaluated.
required: false
type: boolean
default: False
default: false
ignore_internal_state:
description: Specifies if telegrams should ignore the internal state and always trigger a Home Assistant state update.
required: false
type: boolean
default: False
default: false
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
type: float
default: None
@ -348,7 +348,7 @@ automation:
condition:
- condition: state
entity_id: binary_sensor.cover_abstell
state: 'on'
state: "on"
action:
- entity_id: light.hue_color_lamp_1
service: light.turn_on
@ -361,7 +361,7 @@ automation:
condition:
- condition: state
entity_id: binary_sensor.cover_abstell
state: 'on'
state: "on"
action:
- entity_id: light.hue_bloom_1
service: homeassistant.turn_on
@ -401,12 +401,12 @@ To use your KNX thermostats in your installation, add the following lines to you
knx:
climate:
- name: HASS-Kitchen.Temperature
temperature_address: '5/1/1'
setpoint_shift_address: '5/1/2'
setpoint_shift_state_address: '5/1/3'
target_temperature_state_address: '5/1/4'
operation_mode_address: '5/1/5'
operation_mode_state_address: '5/1/6'
temperature_address: "5/1/1"
setpoint_shift_address: "5/1/2"
setpoint_shift_state_address: "5/1/3"
target_temperature_state_address: "5/1/4"
operation_mode_address: "5/1/5"
operation_mode_state_address: "5/1/6"
```
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:
climate:
- name: HASS-Kitchen.Temperature
temperature_address: '5/1/1'
setpoint_shift_address: '5/1/2'
setpoint_shift_state_address: '5/1/3'
target_temperature_state_address: '5/1/4'
operation_mode_frost_protection_address: '5/1/5'
operation_mode_night_address: '5/1/6'
operation_mode_comfort_address: '5/1/7'
operation_mode_state_address: '5/1/8'
temperature_address: "5/1/1"
setpoint_shift_address: "5/1/2"
setpoint_shift_state_address: "5/1/3"
target_temperature_state_address: "5/1/4"
operation_mode_frost_protection_address: "5/1/5"
operation_mode_night_address: "5/1/6"
operation_mode_comfort_address: "5/1/7"
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`
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.:
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.:
```yaml
# Example configuration.yaml entry
knx:
climate:
- name: HASS-Kitchen.Temperature
temperature_address: '5/1/2'
target_temperature_address: '5/1/4'
target_temperature_state_address: '5/1/1'
operation_mode_frost_protection_address: '5/1/5'
operation_mode_night_address: '5/1/6'
operation_mode_comfort_address: '5/1/7'
operation_mode_state_address: '5/1/8'
operation_mode_standby_address: '5/1/9'
temperature_address: "5/1/2"
target_temperature_address: "5/1/4"
target_temperature_state_address: "5/1/1"
operation_mode_frost_protection_address: "5/1/5"
operation_mode_night_address: "5/1/6"
operation_mode_comfort_address: "5/1/7"
operation_mode_state_address: "5/1/8"
operation_mode_standby_address: "5/1/9"
min_temp: 7.0
max_temp: 32.0
```
@ -459,39 +458,39 @@ Example:
knx:
climate:
- name: HASS-Kitchen.Temperature
temperature_address: '5/1/1'
setpoint_shift_address: '5/1/2'
setpoint_shift_state_address: '5/1/3'
setpoint_shift_mode: 'DPT9002'
target_temperature_state_address: '5/1/4'
operation_mode_address: '5/1/5'
operation_mode_state_address: '5/1/6'
temperature_address: "5/1/1"
setpoint_shift_address: "5/1/2"
setpoint_shift_state_address: "5/1/3"
setpoint_shift_mode: "DPT9002"
target_temperature_state_address: "5/1/4"
operation_mode_address: "5/1/5"
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.
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`:
- 0 (cooling)
- 1 (heating)
- `0` (cooling)
- `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)
- Auto (maps internally to HVAC_MODE_AUTO within Home Assistant)
- Heat (maps internally to HVAC_MDOE_HEAT 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)
- Dry (maps internally to HVAC_MODE_DRY within Home Assistant)
- `Off` (maps internally to `HVAC_MODE_OFF` within Home Assistant)
- `Auto` (maps internally to `HVAC_MODE_AUTO` within Home Assistant)
- `Heat` (maps internally to `HVAC_MDOE_HEAT` 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)
- `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)
- Comfort (maps internally to PRESET_COMFORT within Home Assistant)
- Standby (maps internally to PRESET_AWAY within Home Assistant)
- Night (maps internally to PRESET_SLEEP within Home Assistant)
- Frost Protection (maps internally to PRESET_ECO within Home Assistant)
- `Auto` (maps internally to `PRESET_NONE` within Home Assistant)
- `Comfort` (maps internally to `PRESET_COMFORT` within Home Assistant)
- `Standby` (maps internally to `PRESET_AWAY` within Home Assistant)
- `Night` (maps internally to `PRESET_SLEEP` within Home Assistant)
- `Frost` Protection (maps internally to `PRESET_ECO` within Home Assistant)
{% configuration %}
name:
@ -527,7 +526,6 @@ setpoint_shift_state_address:
setpoint_shift_mode:
description: Defines the internal device DPT used. Either 'DPT6010' or 'DPT9002'.
required: false
default: 0.5
type: string
default: DPT6010
setpoint_shift_min:
@ -561,7 +559,7 @@ controller_mode_address:
required: false
type: string
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
type: string
heat_cool_address:
@ -630,11 +628,11 @@ To use your KNX covers in your installation, add the following lines to your top
knx:
cover:
- name: "Kitchen.Shutter"
move_long_address: '3/0/0'
move_short_address: '3/0/1'
stop_address: '3/0/4'
position_address: '3/0/3'
position_state_address: '3/0/2'
move_long_address: "3/0/0"
move_short_address: "3/0/1"
stop_address: "3/0/4"
position_address: "3/0/3"
position_state_address: "3/0/2"
travelling_time_down: 51
travelling_time_up: 61
```
@ -684,12 +682,12 @@ travelling_time_up:
default: 25
type: integer
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
default: false
type: boolean
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
default: false
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:
- switching actuators
- dimming actuators
- Switching actuators
- Dimming actuators
- LED controllers
- 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
knx:
light:
- name: 'kitchen'
address: '1/0/9'
- name: "kitchen"
address: "1/0/9"
```
{% configuration %}
@ -809,12 +807,12 @@ color_temperature_mode:
type: string
default: absolute
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
type: integer
default: 2700
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
type: integer
default: 6000
@ -833,36 +831,36 @@ knx:
light:
# dimmable light
- name: Bedroom-Light-1
address: '1/0/9'
state_address: '1/1/9'
brightness_address: '1/2/9'
brightness_state_address: '1/3/9'
address: "1/0/9"
state_address: "1/1/9"
brightness_address: "1/2/9"
brightness_state_address: "1/3/9"
#
# RGB light
- name: Bathroom-Light-1
address: '1/0/9'
state_address: '1/1/9'
brightness_address: '1/2/9'
brightness_state_address: '1/3/9'
color_address: '1/4/9'
color_state_address: '1/5/9'
address: "1/0/9"
state_address: "1/1/9"
brightness_address: "1/2/9"
brightness_state_address: "1/3/9"
color_address: "1/4/9"
color_state_address: "1/5/9"
#
# tunable white light
- name: Office-Light-1
address: '1/0/21'
state_address: '1/1/21'
brightness_address: '1/2/21'
brightness_state_address: '1/3/21'
color_temperature_address: '1/4/21'
color_temperature_state_address: '1/5/21'
address: "1/0/21"
state_address: "1/1/21"
brightness_address: "1/2/21"
brightness_state_address: "1/3/21"
color_temperature_address: "1/4/21"
color_temperature_state_address: "1/5/21"
color_temperature_mode: absolute
min_kelvin: 2550
max_kelvin: 6200
#
# actuator without dedicated state communication object
- name: Cellar-Light-1
address: '1/0/5'
state_address: '1/0/5'
address: "1/0/5"
state_address: "1/0/5"
```
## Notify
@ -873,7 +871,7 @@ The `knx` notify platform allows you to send notifications to [KNX](https://www.
knx:
notify:
- name: Alarm
address: '5/1/10'
address: "5/1/10"
```
{% configuration %}
@ -906,7 +904,7 @@ address:
required: true
type: string
scene_number:
description: KNX scene number to be activated. ( 1 ... 64 )
description: KNX scene number to be activated (range 1..64 ).
required: true
type: integer
name:
@ -926,7 +924,7 @@ Sensors are read-only. To write to the knx-bus configure an exposure [KNX Integr
knx:
sensor:
- 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`:
@ -936,7 +934,7 @@ In order to actively read the sensor data from the bus every 30 minutes you can
knx:
sensor:
- name: Heating.Valve1
state_address: '2/0/0'
state_address: "2/0/0"
sync_state: every 30
```
@ -950,10 +948,10 @@ name:
required: false
type: string
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
type: [boolean, string, integer]
default: True
default: true
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.
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.
required: false
type: boolean
default: False
default: false
{% endconfiguration %}
### Value Types
@ -1114,13 +1112,13 @@ always_callback:
knx:
sensor:
- name: Heating.Valve1
state_address: '2/0/0'
state_address: "2/0/0"
sync_state: init
type: 'percent'
type: "percent"
- name: Kitchen.Temperature
state_address: '6/2/1'
state_address: "6/2/1"
sync_state: every 60
type: 'temperature'
type: "temperature"
```
## Switch
@ -1131,7 +1129,7 @@ The `knx` switch platform is used as an interface to switching actuators.
knx:
switch:
- name: Kitchen.Coffee
address: '1/1/6'
address: "1/1/6"
```
{% configuration %}
@ -1152,7 +1150,7 @@ invert:
description: Invert the telegrams payload before processing or sending.
required: false
type: boolean
default: False
default: false
{% 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.
@ -1181,8 +1179,8 @@ knx:
address_day_night: "7/0/8"
address_air_pressure: "7/0/9"
address_humidity: "7/0/10"
expose_sensors: False
sync_state: True
expose_sensors: false
sync_state: true
```
{% configuration %}
@ -1240,13 +1238,13 @@ address_humidity:
required: false
type: string
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
type: boolean
default: False
default: false
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
type: boolean
default: True
default: true
{% endconfiguration %}

View File

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

View File

@ -115,18 +115,18 @@ To add a notification sound, icon, cycles, or priority override, it has to be do
trigger:
platform: state
entity_id: device_tracker.son_mobile
from: 'not_home'
to: 'school'
from: "not_home"
to: "school"
action:
service: notify.lametric
data:
message: "Son has arrived at school!"
data:
sound: 'notification'
icon: 'i51'
sound: "notification"
icon: "i51"
cycles: 0
priority: 'critical'
icon_type: 'none'
priority: "critical"
icon_type: "none"
```
### 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!"
target: "Office LaMetric"
data:
sound: 'notification'
icon: 'i51'
sound: "notification"
icon: "i51"
```
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))."
required: false
type: string
default: 'celsius'
default: "celsius"
min_temp:
description: "Minimum target temperature."
required: false
@ -302,7 +302,7 @@ sensors:
description: "Measurement unit ([VAR_UNIT](#variables-and-units))."
required: false
type: string
default: 'native'
default: "native"
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
script:
colorloop_start:
alias: 'Start colorloop'
alias: "Start colorloop"
sequence:
- service: lifx.effect_colorloop
data:

View File

@ -118,9 +118,9 @@ entity_id: media_player.chromecast
service: media_player.play_media
data:
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:
thumb: 'https://brands.home-assistant.io/_/homeassistant/logo.png'
thumb: "https://brands.home-assistant.io/_/homeassistant/logo.png"
title: HomeAssitantRadio
```

View File

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

View File

@ -21,8 +21,8 @@ To enable this binary sensor, add the following lines to your `configuration.yam
```yaml
binary_sensor:
- platform: meteoalarm
country: 'NL'
province: 'Groningen'
country: "NL"
province: "Groningen"
```
{% 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."
required: false
type: string
default: 'en'
default: "en"
{% endconfiguration %}

View File

@ -67,7 +67,7 @@ via the Frontend, a script, or the REST API.
```yaml
service: microsoft_face.create_group
data:
name: 'Family'
name: "Family"
```
- *microsoft_face.create_person*
@ -77,7 +77,7 @@ data:
service: microsoft_face.create_person
data:
group: family
name: 'Hans Maier'
name: "Hans Maier"
```
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
data:
group: family
name: 'Hans Maier'
name: "Hans Maier"
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
sensor:
- platform: miflora
mac: 'xx:xx:xx:xx:xx:xx'
mac: "xx:xx:xx:xx:xx:xx"
monitored_conditions:
- moisture
```
@ -122,7 +122,7 @@ A full configuration example could look like the one below:
# Example configuration.yaml entry
sensor:
- platform: miflora
mac: 'xx:xx:xx:xx:xx:xx'
mac: "xx:xx:xx:xx:xx:xx"
name: Flower 1
force_update: true
median: 3

View File

@ -92,13 +92,13 @@ automation:
event_data:
event_type: created
action:
- delay: '00:00:01'
- delay: "00:00:01"
- service: minio.put
data:
file_path: "{{ trigger.event.data.path }}"
bucket: "camera-image-object-detection"
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
data:
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
sensor:
- platform: mitemp_bt
mac: 'xx:xx:xx:xx:xx:xx'
mac: "xx:xx:xx:xx:xx:xx"
monitored_conditions:
- temperature
```
@ -118,7 +118,7 @@ A full configuration example could look like the one below:
# Example configuration.yaml entry
sensor:
- platform: mitemp_bt
mac: 'xx:xx:xx:xx:xx:xx'
mac: "xx:xx:xx:xx:xx:xx"
name: Kids Room Temp
force_update: true
median: 1

View File

@ -77,7 +77,7 @@ automation:
action:
service: notify.notify
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
trigger:
platform: state
@ -87,7 +87,7 @@ automation:
service: persistent_notification.create
data:
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
trigger:
platform: state
@ -96,7 +96,7 @@ automation:
action:
service: tts.google_say
data:
message: 'Call from {{ state_attr('sensor.modem_callerid', 'cid_name') }}'
message: "Call from {{ state_attr('sensor.modem_callerid', 'cid_name') }}"
```
{% endraw %}

View File

@ -74,14 +74,14 @@ sensor:
- station: Hauptbahnhof
name: Hbf
destinations: ['München Flughafen Terminal','Markt Schwaben']
products: 'S-Bahn'
products: "S-Bahn"
timeoffset: 2
- station: Sendlinger Tor
lines: ['U2','U8']
number: 5
- station: Scheidplatz
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.

View File

@ -20,7 +20,7 @@ Integrate your Serial, Ethernet (LAN) or MQTT MySensors Gateway by adding the fo
# Example configuration.yaml entry
mysensors:
gateways:
- device: '/dev/ttyUSB0'
- device: "/dev/ttyUSB0"
```
{% 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.
required: false
type: string
default: ''
default: ""
topic_out_prefix:
description: Set the prefix of the MQTT topic for messages going from Home Assistant out to the MySensors gateway.
required: false
type: string
default: ''
default: ""
nodes:
description: A mapping of node ids to node settings, e.g., custom name.
required: false
@ -76,7 +76,7 @@ mysensors:
description: Specifies the MySensors protocol version to use. Supports versions 1.4 to 2.3.
required: false
type: string
default: '1.4'
default: "1.4"
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.
required: false
@ -116,28 +116,28 @@ The MQTT gateway requires MySensors version 2.0+ and only the MQTT client gatewa
# Example configuration.yaml entry
mysensors:
gateways:
- device: '/dev/ttyUSB0'
persistence_file: 'path/mysensors.json'
- device: "/dev/ttyUSB0"
persistence_file: "path/mysensors.json"
baud_rate: 38400
nodes:
1:
name: 'kitchen'
name: "kitchen"
3:
name: 'living_room'
- device: '/dev/ttyACM0'
persistence_file: 'path/mysensors2.json'
name: "living_room"
- device: "/dev/ttyACM0"
persistence_file: "path/mysensors2.json"
baud_rate: 115200
- device: '192.168.1.18'
persistence_file: 'path/mysensors3.json'
- device: "192.168.1.18"
persistence_file: "path/mysensors3.json"
tcp_port: 5003
- device: mqtt
persistence_file: 'path/mysensors4.json'
topic_in_prefix: 'mygateway1-out'
topic_out_prefix: 'mygateway1-in'
persistence_file: "path/mysensors4.json"
topic_in_prefix: "mygateway1-out"
topic_out_prefix: "mygateway1-in"
optimistic: false
persistence: true
retain: true
version: '2.0'
version: "2.0"
```
### Presentation

View File

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

View File

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

View File

@ -55,7 +55,7 @@ port:
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)."
required: false
default: '00:01:00'
default: "00:01:00"
type: time
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.

View File

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

View File

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

View File

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

View File

@ -83,7 +83,7 @@ You can use the `nissan_leaf.start_charge` service to send a request to the Niss
```yaml
- service: nissan_leaf.start_charge
data:
vin: '1HGBH41JXMN109186' # replace
vin: "1HGBH41JXMN109186" # replace
```
## 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
- id: update_when_driver_not_home
alias: 'Update when driver not home'
alias: "Update when driver not home"
initial_state: on
trigger:
- platform: time_pattern
minutes: '/30'
minutes: "/30"
condition:
- condition: state
entity_id: device_tracker.drivername # replace
state: 'not_home'
state: "not_home"
action:
- service: nissan_leaf.update
data:
vin: '1HGBH41JXMN109186' # replace
vin: "1HGBH41JXMN109186" # replace
```
## Hints

View File

@ -21,7 +21,7 @@ action:
service: notify.mysensors
data:
message: Welcome home!
target: 'TextSensor 254 1'
target: "TextSensor 254 1"
```
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
- service: notify.events
data:
message: 'Backyard motion detected!'
message: "Backyard motion detected!"
data:
level: 'warning'
priority: 'high'
level: "warning"
priority: "high"
images:
- name: 'local_photo.jpg'
path: '/tmp/backyard_cam/motion.jpg'
- name: 'remote_photo.jpg'
url: 'https://i.ibb.co/Jt1845X/motion.jpg'
- name: "local_photo.jpg"
path: "/tmp/backyard_cam/motion.jpg"
- name: "remote_photo.jpg"
url: "https://i.ibb.co/Jt1845X/motion.jpg"
```
### 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
geo_location:
- platform: nsw_rural_fire_service_feed
entity_namespace: 'nsw_fire_service_feed'
entity_namespace: "nsw_fire_service_feed"
radius: 10
categories:
- 'Emergency Warning'

View File

@ -20,7 +20,7 @@ Add a sensor to your `configuration.yaml` file as shown in the example:
sensor:
- platform: oasa_telematics
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:
@ -60,5 +60,5 @@ A more extensive example on how to use this sensor:
sensor:
- platform: oasa_telematics
route_id: 1965
stop_id: '090006'
stop_id: "090006"
```

View File

@ -23,7 +23,7 @@ media_player:
host: 192.168.1.2
name: receiver
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.

View File

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

View File

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

View File

@ -94,7 +94,7 @@ automation:
- alias: Update OpenUV every 30 minutes during the daytime
trigger:
platform: time_pattern
minutes: '/30'
minutes: "/30"
condition:
condition: and
conditions:
@ -115,11 +115,11 @@ automation:
- alias: Update OpenUV every 20 minutes while the sun is at least 10 degrees above the horizon
trigger:
platform: time_pattern
minutes: '/20'
minutes: "/20"
condition:
condition: numeric_state
entity_id: sun.sun
value_template: '{{ state.attributes.elevation }}'
value_template: "{{ state.attributes.elevation }}"
above: 10
action:
service: openuv.update_uv_index_data
@ -148,7 +148,7 @@ automation:
- alias: Update OpenUV every hour (24 of 50 calls per day)
trigger:
platform: time_pattern
minutes: '/60'
minutes: "/60"
action:
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
panel_iframe:
router:
title: 'Router'
url: 'http://192.168.1.1'
title: "Router"
url: "http://192.168.1.1"
fridge:
title: 'Fridge'
url: 'http://192.168.1.5'
title: "Fridge"
url: "http://192.168.1.5"
otherapp:
title: 'Other App'
url: '/otherapp'
title: "Other App"
url: "/otherapp"
```
{% 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.
```yaml
- alias: 'Z-Wave network is starting'
- alias: "Z-Wave network is starting"
trigger:
- platform: event
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..."
notification_id: zwave
- alias: 'Z-Wave network is ready'
- alias: "Z-Wave network is ready"
trigger:
- platform: event
event_type: zwave.network_ready

View File

@ -68,23 +68,23 @@ Single Pi-hole running via Home Assistant add-on:
```yaml
pi_hole:
- host: 'localhost:4865'
- host: "localhost:4865"
```
Multiple Pi-holes:
```yaml
pi_hole:
- host: '192.168.0.2'
- host: '192.168.0.3'
name: 'Secondary Pi-hole'
- host: "192.168.0.2"
- host: "192.168.0.3"
name: "Secondary Pi-hole"
```
Pi-hole with a self-signed certificate:
```yaml
pi_hole:
- host: 'pi.hole'
- host: "pi.hole"
ssl: true
verify_ssl: false
```
@ -93,7 +93,7 @@ Pi-hole with an `api_key` that allows it to be enabled or disabled:
```yaml
pi_hole:
- host: 'pi.hole'
- host: "pi.hole"
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
tts:
- 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
binary_sensor:
- platform: pilight
variable: 'state'
variable: "state"
```
{% configuration %}
@ -133,11 +133,11 @@ A full configuration example could look like this:
# Example configuration.yaml entry
binary_sensor:
- platform: pilight
name: 'Motion'
variable: 'state'
name: "Motion"
variable: "state"
payload:
unitcode: 371399
payload_on: 'closed'
payload_on: "closed"
disarm_after_trigger: true
reset_delay_sec: 30
```
@ -154,7 +154,7 @@ sensor:
- platform: pilight
variable: temperature
payload:
uuid: '0000-b8-27-eb-f447d3'
uuid: "0000-b8-27-eb-f447d3"
```
{% configuration %}
@ -185,23 +185,23 @@ This section shows a real life example how to use values of a weather station.
# Example configuration.yaml entry
sensor:
- platform: pilight
name: 'Temperature'
variable: 'temperature'
name: "Temperature"
variable: "temperature"
payload:
uuid: 0000-b8-27-eb-f1f72e
unit_of_measurement: '°C'
unit_of_measurement: "°C"
- platform: pilight
name: 'Humidity'
variable: 'humidity'
name: "Humidity"
variable: "humidity"
payload:
uuid: 0000-b8-27-eb-f1f72e
unit_of_measurement: '%'
unit_of_measurement: "%"
- platform: pilight
name: 'Battery'
variable: 'battery'
name: "Battery"
variable: "battery"
payload:
uuid: 0000-b8-27-eb-f1f72e
unit_of_measurement: '%'
unit_of_measurement: "%"
```
## Switch
@ -298,13 +298,13 @@ switch:
systemcode: 14462
unit: 6
id: 34
state: 'on'
state: "on"
off_code_receive:
protocol: daycom
systemcode: 14462
unit: 6
id: 34
state: 'off'
state: "off"
```
## Light
@ -349,12 +349,12 @@ light:
protocol: kaku_dimmer
id: 23298822
unit: 10
state: 'on'
state: "on"
off_code_receive:
protocol: kaku_dimmer
id: 23298822
unit: 10
state: 'off'
state: "off"
```
## Troubleshooting

View File

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

View File

@ -241,17 +241,17 @@ play_plex_on_tv:
- service: media_player.select_source
entity_id: media_player.smart_tv
data:
source: 'Plex'
source: "Plex"
- wait_template: "{{ is_state('media_player.smart_tv', 'On') }}"
timeout: '00:00:10'
timeout: "00:00:10"
- service: plex.scan_for_clients
- wait_template: "{{ not is_state('media_player.plex_smart_tv', 'unavailable') }}"
timeout: '00:00:10'
timeout: "00:00:10"
continue_on_timeout: false
- service: media_player.play_media
data:
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
```

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