Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2021-02-22 20:09:20 +01:00
commit 09070a3287
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
134 changed files with 2200 additions and 1139 deletions

View File

@ -2,8 +2,8 @@ name: Documentation feedback
about: Provide feedback on a page on our website about: Provide feedback on a page on our website
title: "" title: ""
issue_body: true issue_body: true
inputs: body:
- type: description - type: markdown
attributes: attributes:
value: | value: |
Thanks for opening an issue to provide feedback on our website/documentation. Thanks for opening an issue to provide feedback on our website/documentation.
@ -15,36 +15,37 @@ inputs:
- type: textarea - type: textarea
attributes: attributes:
label: Feedback label: Feedback
required: true
description: >- description: >-
Please be sure to provide feedback as clear as possible. Describe what Please be sure to provide feedback as clear as possible. Describe what
you think is incorrect or can be improved, and try to provide a you think is incorrect or can be improved, and try to provide a
suggestion on how you think it can be improved or fixed. suggestion on how you think it can be improved or fixed.
- type: description validations:
required: true
- type: markdown
attributes: attributes:
value: | value: |
## Details ## Details
- type: input - type: input
attributes: attributes:
label: URL label: URL
required: true
placeholder: "http://www.home-assistant.io/..." placeholder: "http://www.home-assistant.io/..."
description: > description: >
A URL with a link to the page you are providing feedback for. A URL with a link to the page you are providing feedback for.
validations:
required: true
- type: input - type: input
attributes: attributes:
label: Version label: Version
required: false
placeholder: "e.g., 2021.2.0" placeholder: "e.g., 2021.2.0"
description: > description: >
Current version of the documentation. This usually matches the Home Current version of the documentation. This usually matches the Home
Assistant Core release version, and can be found at the bottom of the Assistant Core release version, and can be found at the bottom of the
page. page.
- type: description - type: markdown
attributes: attributes:
value: | value: |
## Additional information ## Additional information
- type: description - type: markdown
attributes: attributes:
value: > value: >
If you have any additional information for us, use the field below. If you have any additional information for us, use the field below.

View File

@ -8,7 +8,7 @@ jobs:
stale: stale:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/stale@v3.0.16 - uses: actions/stale@v3.0.17
with: with:
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 60 days-before-stale: 60

View File

@ -179,7 +179,7 @@ toc:
# Configuration for installation pages # Configuration for installation pages
installation: installation:
versions: versions:
os: "5.11" os: "5.12"
python: "3.8" python: "3.8"
types: types:
odroid: odroid:

View File

@ -1,24 +1,19 @@
module Jekyll module Jekyll
class DetailsBlock < Liquid::Block class DetailsBlock < Liquid::Block
def render_details_block(vars:, converter:, classes: nil, parent_type: nil) def initialize(tag_name, title, tokens)
result = Array.new super
result << vars.map do |entry| @title = title
markup = Array.new
markup << "<div class='details-block-item' onclick='showDetails(this)'>"
markup << "<div class='details-block-title'>#{entry['title']}"
markup << '<svg id="down" style="display: block;" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" /></svg>'
markup << '<svg id="up" style="display: none;" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z" /></svg>'
markup << "</div>"
markup << "<div class='details-block-content' hidden onclick>#{converter.convert(entry['content'].to_s)}</div>"
markup << "</div>"
end
result.join
end end
def render(context) def render(context)
contents = super(context) contents = super(context)
vars = SafeYAML.load(contents) if @title.nil? || @title.empty? then
title = "More info"
else
title = @title
end
title = title.to_s.delete("\"")
site = context.registers[:site] site = context.registers[:site]
converter = site.find_converter_instance(::Jekyll::Converters::Markdown) converter = site.find_converter_instance(::Jekyll::Converters::Markdown)
@ -26,16 +21,23 @@ module Jekyll
<<~MARKUP <<~MARKUP
<script> <script>
function showDetails(el) { function showDetails(el) {
const content = el.querySelector(".details-block-content"); const content = el.parentElement.querySelector(".details-block-content");
const up = el.querySelector(".details-block-title").querySelector("svg#up"); const up = el.querySelector("svg#up");
const down = el.querySelector(".details-block-title").querySelector("svg#down"); const down = el.querySelector("svg#down");
up.style.display = up.style.display === "none" ? "block" : "none"; up.style.display = up.style.display === "none" ? "block" : "none";
down.style.display = down.style.display === "none" ? "block" : "none"; down.style.display = down.style.display === "none" ? "block" : "none";
content.hidden = !content.hidden; content.hidden = !content.hidden;
} }
</script> </script>
<div class="details-block"> <div class="details-block">
#{render_details_block(vars: vars, converter: converter)} <div class='details-block-item'>
<div class='details-block-title' onclick='showDetails(this)'>
#{title}
<svg id="down" style="display: block;" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" /></svg>
<svg id="up" style="display: none;" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z" /></svg>
</div>
<div class='details-block-content' hidden>#{converter.convert(contents.to_s)}</div>
</div>
</div> </div>
MARKUP MARKUP
end end

View File

@ -6,7 +6,6 @@ div.details-block {
background-color: white; background-color: white;
padding: 4px 16px; padding: 4px 16px;
margin: 8px; margin: 8px;
cursor: pointer;
box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.1); box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.1);
border-radius: 16px; border-radius: 16px;
@ -14,6 +13,7 @@ div.details-block {
font-weight: bold; font-weight: bold;
font-size: 18px; font-size: 18px;
line-height: 21px; line-height: 21px;
cursor: pointer;
height: 54px; height: 54px;
justify-content: space-between; justify-content: space-between;
display: flex; display: flex;

View File

@ -109,7 +109,7 @@ automation:
to: "None" to: "None"
action: action:
service: media_player.turn_off service: media_player.turn_off
data: target:
entity_id: > entity_id: >
{% if is_state("input_select.radio_player", "Mansarda") %} {% if is_state("input_select.radio_player", "Mansarda") %}
media_player.bed_2 media_player.bed_2
@ -133,7 +133,7 @@ automation:
entity_id: input_select.radio_station entity_id: input_select.radio_station
action: action:
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: > entity_id: >
{% if is_state("input_select.radio_player", "Mansarda") %} {% if is_state("input_select.radio_player", "Mansarda") %}
media_player.bed_2 media_player.bed_2
@ -150,6 +150,7 @@ automation:
{% else %} {% else %}
none none
{% endif %} {% endif %}
data:
media_content_id: > media_content_id: >
{% if is_state("input_select.radio_station", "Z88.3") %} {% if is_state("input_select.radio_station", "Z88.3") %}
http://ice.zradio.org/z/high.mp3 http://ice.zradio.org/z/high.mp3

View File

@ -95,13 +95,14 @@ Templates can also be used for the data that you pass to the service call.
```yaml ```yaml
service: thermostat.set_temperature service: thermostat.set_temperature
data: target:
entity_id: > entity_id: >
{% if is_state('device_tracker.paulus', 'home') %} {% if is_state('device_tracker.paulus', 'home') %}
thermostat.upstairs thermostat.upstairs
{% else %} {% else %}
thermostat.downstairs thermostat.downstairs
{% endif %} {% endif %}
data:
temperature: {{ 22 - distance(states.device_tracker.paulus) }} temperature: {{ 22 - distance(states.device_tracker.paulus) }}
``` ```

View File

@ -112,7 +112,7 @@ Minimum recommended assignments:
- 2GB RAM - 2GB RAM
- 32GB Storage - 32GB Storage
- 1vCPU - 2vCPU
_All these can be extended if your usage calls for more resources._ _All these can be extended if your usage calls for more resources._

View File

@ -252,7 +252,9 @@ Some notifiers support more parameters (e.g., to set text color or action
# Example configuration.yaml entry # Example configuration.yaml entry
alert: alert:
garage_door: garage_door:
name: Garage is open name: "Garage is open"
message: "The garage door is still open"
done_message: "The garage door is closed"
entity_id: input_boolean.garage_door entity_id: input_boolean.garage_door
state: "on" # Optional, 'on' is the default value state: "on" # Optional, 'on' is the default value
repeat: repeat:
@ -270,4 +272,20 @@ alert:
This particular example relies on the `inline_keyboard` functionality of This particular example relies on the `inline_keyboard` functionality of
Telegram, where the user is presented with buttons to execute certain actions. Telegram, where the user is presented with buttons to execute certain actions.
Based on the example above you can make an automation to stop further messages,
but you will still receive the done message.
```yaml
- alias: "Telegram callback to stop alerts for garage door"
trigger:
- platform: event
event_type: telegram_callback
event_data:
data: "/garage_acknowledge"
action:
- service: alert.turn_off
target:
entity_id: alert.garage_door
```
[template]: /docs/configuration/templating/ [template]: /docs/configuration/templating/

View File

@ -58,7 +58,7 @@ Enabling the battery tracking might slightly decrease the duration of the batter
For additional configuration variables check the [Device tracker page](/integrations/device_tracker/). For additional configuration variables check the [Device tracker page](/integrations/device_tracker/).
## Home Assistant Core installs {% details "Notes for Home Assistant Core Installations" %}
On Debian based Home Assistant Core installations, run: On Debian based Home Assistant Core installations, run:
@ -68,8 +68,8 @@ sudo apt install bluetooth
Before you get started with this platform, please note that: Before you get started with this platform, please note that:
- This platform is incompatible with Windows - This platform is incompatible with Windows
- This platform requires access to the Bluetooth stack, see [Rootless Setup section](#rootless-setup) for further information - This platform requires access to the Bluetooth stack, see [Rootless Setup section](#rootless-setup) for further information
### Rootless Setup on Core installs ### Rootless Setup on Core installs
@ -82,3 +82,5 @@ sudo setcap 'cap_net_raw+ep' $(readlink -f $(which hcitool))
``` ```
A restart of Home Assistant is required. A restart of Home Assistant is required.
{% enddetails %}

View File

@ -12,12 +12,16 @@ ha_platforms:
This tracker discovers new devices on boot and tracks Bluetooth devices periodically based on `interval_seconds` value. It is not required to pair the devices with each other! Devices discovered are stored with 'bt_' as the prefix for device MAC addresses in `known_devices.yaml`. This tracker discovers new devices on boot and tracks Bluetooth devices periodically based on `interval_seconds` value. It is not required to pair the devices with each other! Devices discovered are stored with 'bt_' as the prefix for device MAC addresses in `known_devices.yaml`.
This platform requires pybluez to be installed. On Debian based installs, run {% details "Notes for Home Assistant Core Installations" %}
This platform requires `pybluez` to be installed. On Debian based installs, run
```bash ```bash
sudo apt install bluetooth libbluetooth-dev sudo apt install bluetooth libbluetooth-dev
``` ```
{% enddetails %}
To use the Bluetooth tracker in your installation, add the following to your `configuration.yaml` file: To use the Bluetooth tracker in your installation, add the following to your `configuration.yaml` file:
```yaml ```yaml

View File

@ -45,12 +45,12 @@ automation:
at: "07:15:00" at: "07:15:00"
action: action:
- service: fan.set_percentage - service: fan.set_percentage
data: target:
entity_id: fan.kitchen entity_id: fan.kitchen
data:
percentage: 33 percentage: 33
``` ```
### Service `fan.set_preset_mode` ### Service `fan.set_preset_mode`
Sets a preset mode for fan device. Sets a preset mode for fan device.
@ -69,8 +69,9 @@ automation:
at: "07:15:00" at: "07:15:00"
action: action:
- service: fan.set_preset_mode - service: fan.set_preset_mode
data: target:
entity_id: fan.kitchen entity_id: fan.kitchen
data:
preset_mode: auto preset_mode: auto
``` ```
@ -92,8 +93,9 @@ automation:
at: "07:15:00" at: "07:15:00"
action: action:
- service: fan.set_direction - service: fan.set_direction
data: target:
entity_id: fan.kitchen entity_id: fan.kitchen
data:
direction: forward direction: forward
``` ```
@ -115,8 +117,9 @@ automation:
at: "07:15:00" at: "07:15:00"
action: action:
- service: fan.oscillate - service: fan.oscillate
data: target:
entity_id: fan.kitchen entity_id: fan.kitchen
data:
oscillating: True oscillating: True
``` ```
@ -157,8 +160,9 @@ automation:
at: "07:15:00" at: "07:15:00"
action: action:
- service: fan.set_speed - service: fan.set_speed
data: target:
entity_id: fan.kitchen entity_id: fan.kitchen
data:
speed: low speed: low
``` ```
@ -183,7 +187,8 @@ automation:
subtype: raise subtype: raise
action: action:
- service: fan.increase_speed - service: fan.increase_speed
entity_id: fan.dining_room_fan_by_front_door target:
entity_id: fan.dining_room_fan_by_front_door
``` ```
### Service `fan.decrease_speed` ### Service `fan.decrease_speed`
@ -207,5 +212,6 @@ automation:
subtype: lower subtype: lower
action: action:
- service: fan.decrease_speed - service: fan.decrease_speed
entity_id: fan.dining_room_fan_by_front_door target:
entity_id: fan.dining_room_fan_by_front_door
``` ```

View File

@ -102,8 +102,6 @@ sensor:
monitored_conditions: monitored_conditions:
- sensor_type: inverter - sensor_type: inverter
device: 1 device: 1
- sensor_type: meter
scope: system
- sensor_type: meter - sensor_type: meter
device: 3 device: 3
- sensor_type: storage - sensor_type: storage

View File

@ -88,7 +88,7 @@ precision:
description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`. This value is also used as the step size for setting the target temperature." description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`. This value is also used as the step size for setting the target temperature."
required: false required: false
type: float type: float
default: "`0.5` for Celsius and `1.0` for Fahrenheit." default: "`0.1` for Celsius and `1.0` for Fahrenheit."
{% endconfiguration %} {% endconfiguration %}
Time for `min_cycle_duration` and `keep_alive` must be set as "hh:mm:ss" or it must contain at least one of the following entries: `days:`, `hours:`, `minutes:`, `seconds:` or `milliseconds:`. Alternatively, it can be an integer that represents time in seconds. Time for `min_cycle_duration` and `keep_alive` must be set as "hh:mm:ss" or it must contain at least one of the following entries: `days:`, `hours:`, `minutes:`, `seconds:` or `milliseconds:`. Alternatively, it can be an integer that represents time in seconds.

View File

@ -85,8 +85,9 @@ automation:
to: "on" to: "on"
action: action:
- service: light.turn_on - service: light.turn_on
data: target:
entity_id: light.hyperion entity_id: light.hyperion
data:
effect: "Full color mood blobs" effect: "Full color mood blobs"
``` ```
@ -106,8 +107,9 @@ To have the lights playing an effect when pausing, idle or turn off a media play
to: "idle" to: "idle"
action: action:
- service: light.turn_on - service: light.turn_on
data: target:
entity_id: light.hyperion entity_id: light.hyperion
data:
effect: "Full color mood blobs" effect: "Full color mood blobs"
``` ```
@ -121,7 +123,8 @@ To capture the screen when playing something on a media_player you can use this
to: "playing" to: "playing"
action: action:
- service: light.turn_on - service: light.turn_on
data: target:
entity_id: light.hyperion entity_id: light.hyperion
data:
effect: V4L effect: V4L
``` ```

View File

@ -44,7 +44,7 @@ automation:
platform: event platform: event
condition: [] condition: []
action: action:
- data: - target:
entity_id: '{{ trigger.event.data.entity_id }}' entity_id: '{{ trigger.event.data.entity_id }}'
service: '{{ trigger.event.data.service }}' service: '{{ trigger.event.data.service }}'
``` ```

View File

@ -131,8 +131,9 @@ automation:
entity_id: input_number.bedroom_brightness entity_id: input_number.bedroom_brightness
action: action:
- service: light.turn_on - service: light.turn_on
data: target:
entity_id: light.bedroom entity_id: light.bedroom
data:
brightness: "{{ trigger.to_state.state | int }}" brightness: "{{ trigger.to_state.state | int }}"
``` ```
@ -170,8 +171,9 @@ automation:
to: CUSTOM to: CUSTOM
action: action:
- service: light.turn_on - service: light.turn_on
data: target:
entity_id: light.bedroom entity_id: light.bedroom
data:
brightness: "{{ states('input_number.bedroom_brightness') | int }}" brightness: "{{ states('input_number.bedroom_brightness') | int }}"
``` ```
@ -201,8 +203,9 @@ automation:
topic: "setTemperature" topic: "setTemperature"
action: action:
service: input_number.set_value service: input_number.set_value
data: target:
entity_id: input_number.target_temp entity_id: input_number.target_temp
data:
value: "{{ trigger.payload }}" value: "{{ trigger.payload }}"
# This second automation script runs when the target temperature slider is moved. # This second automation script runs when the target temperature slider is moved.

View File

@ -141,8 +141,9 @@ automation:
event_type: MY_CUSTOM_EVENT event_type: MY_CUSTOM_EVENT
action: action:
- service: input_select.select_option - service: input_select.select_option
data: target:
entity_id: input_select.who_cooks entity_id: input_select.who_cooks
data:
option: Paulus option: Paulus
``` ```
@ -157,8 +158,9 @@ automation:
event_type: MY_CUSTOM_EVENT event_type: MY_CUSTOM_EVENT
action: action:
- service: input_select.set_options - service: input_select.set_options
data: target:
entity_id: input_select.who_cooks entity_id: input_select.who_cooks
data:
options: ["Item A", "Item B", "Item C"] options: ["Item A", "Item B", "Item C"]
``` ```
@ -189,9 +191,10 @@ input_select:
topic: "thermostatMode" topic: "thermostatMode"
# entity_id: input_select.thermostat_mode # entity_id: input_select.thermostat_mode
action: action:
service: input_select.select_option service: input_select.select_option
data: target:
entity_id: input_select.thermostat_mode entity_id: input_select.thermostat_mode
data:
option: "{{ trigger.payload }}" option: "{{ trigger.payload }}"
# This automation script runs when the thermostat mode selector is changed. # This automation script runs when the thermostat mode selector is changed.

View File

@ -133,8 +133,9 @@ automation:
entity_id: input_select.scene_bedroom entity_id: input_select.scene_bedroom
action: action:
- service: input_text.set_value - service: input_text.set_value
data: target:
entity_id: input_text.bedroom entity_id: input_text.bedroom
data:
value: "{{ states('input_select.scene_bedroom') }}" value: "{{ states('input_select.scene_bedroom') }}"
``` ```

View File

@ -116,8 +116,9 @@ automation:
event_type: keyboard_remote_connected event_type: keyboard_remote_connected
action: action:
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.speaker entity_id: media_player.speaker
data:
media_content_id: keyboard_connected.wav media_content_id: keyboard_connected.wav
media_content_type: music media_content_type: music
@ -129,8 +130,9 @@ automation:
device_name: "00:58:56:4C:C0:91" device_name: "00:58:56:4C:C0:91"
action: action:
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.speaker entity_id: media_player.speaker
data:
media_content_id: keyboard_disconnected.wav media_content_id: keyboard_disconnected.wav
media_content_type: music media_content_type: music
``` ```

View File

@ -128,8 +128,9 @@ script:
kodi_quit: kodi_quit:
sequence: sequence:
- service: kodi.call_method - service: kodi.call_method
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
method: Application.Quit method: Application.Quit
``` ```
@ -140,8 +141,9 @@ script:
kodi_hibernate: kodi_hibernate:
sequence: sequence:
- service: kodi.call_method - service: kodi.call_method
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
method: System.Hibernate method: System.Hibernate
``` ```
@ -152,8 +154,9 @@ script:
kodi_suspend: kodi_suspend:
sequence: sequence:
- service: kodi.call_method - service: kodi.call_method
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
method: System.Suspend method: System.Suspend
``` ```
@ -164,8 +167,9 @@ script:
kodi_reboot: kodi_reboot:
sequence: sequence:
- service: kodi.call_method - service: kodi.call_method
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
method: System.Reboot method: System.Reboot
``` ```
@ -176,8 +180,9 @@ script:
kodi_shutdown: kodi_shutdown:
sequence: sequence:
- service: kodi.call_method - service: kodi.call_method
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
method: System.Shutdown method: System.Shutdown
``` ```
@ -190,8 +195,9 @@ script:
turn_on_kodi_with_cec: turn_on_kodi_with_cec:
sequence: sequence:
- service: kodi.call_method - service: kodi.call_method
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
method: Addons.ExecuteAddon method: Addons.ExecuteAddon
addonid: script.json-cec addonid: script.json-cec
params: params:
@ -200,11 +206,12 @@ script:
turn_off_kodi_with_cec: turn_off_kodi_with_cec:
sequence: sequence:
- service: media_player.media_stop - service: media_player.media_stop
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
- service: kodi.call_method - service: kodi.call_method
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
method: Addons.ExecuteAddon method: Addons.ExecuteAddon
addonid: script.json-cec addonid: script.json-cec
params: params:
@ -230,12 +237,13 @@ script:
sequence: sequence:
- alias: "TV on" - alias: "TV on"
service: media_player.turn_on service: media_player.turn_on
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
- alias: "Play TV channel" - alias: "Play TV channel"
service: media_player.play_media service: media_player.play_media
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
media_content_type: "CHANNEL" media_content_type: "CHANNEL"
media_content_id: > media_content_id: >
{% if (now().hour < 14) or ((now().hour == 14) and (now().minute < 50)) %} {% if (now().hour < 14) or ((now().hour == 14) and (now().minute < 50)) %}
@ -266,11 +274,12 @@ script:
sequence: sequence:
- alias: "TV on" - alias: "TV on"
service: media_player.turn_on service: media_player.turn_on
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
media_content_type: DIRECTORY media_content_type: DIRECTORY
media_content_id: special://profile/playlists/video/feuerwehrmann_sam.xsp media_content_id: special://profile/playlists/video/feuerwehrmann_sam.xsp
``` ```
@ -286,8 +295,9 @@ script:
sequence: sequence:
- alias: "Call Kodi update" - alias: "Call Kodi update"
service: kodi.call_method service: kodi.call_method
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
method: VideoLibrary.Scan method: VideoLibrary.Scan
``` ```

View File

@ -17,7 +17,7 @@ This integration connects Brightech Kuler Sky floor lamps to Home Assistant.
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
## Additional information for Home Assistant Core on Python environments {% details "Notes for Home Assistant Core Installations" %}
This integration requires `pybluez` to be installed. On Debian based installs, run: This integration requires `pybluez` to be installed. On Debian based installs, run:
@ -38,3 +38,5 @@ sudo apt-get install libcap2-bin
sudo setcap 'cap_net_raw,cap_net_admin+eip' `readlink -f \`which python3\`` sudo setcap 'cap_net_raw,cap_net_admin+eip' `readlink -f \`which python3\``
sudo setcap 'cap_net_raw+ep' `readlink -f \`which hcitool\`` sudo setcap 'cap_net_raw+ep' `readlink -f \`which hcitool\``
``` ```
{% enddetails %}

View File

@ -31,6 +31,8 @@ Or, when using Docker containers:
docker exec -it <containername> pylacrosse -d /dev/ttyUSB0 scan docker exec -it <containername> pylacrosse -d /dev/ttyUSB0 scan
``` ```
For TX 29 DTH-IT sensors you can also read the ID from the display and calculate the ID as followed: `hex2dec(ID_on_display) / 4`.
## Configuration ## Configuration
To use your `lacrosse` compatible sensor in your installation, add the following to your `configuration.yaml` file: To use your `lacrosse` compatible sensor in your installation, add the following to your `configuration.yaml` file:

View File

@ -58,6 +58,6 @@ media_player:
host: 192.168.0.20 host: 192.168.0.20
turn_on_action: turn_on_action:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.tv_switch entity_id: switch.tv_switch
``` ```

View File

@ -47,8 +47,9 @@ automation:
# ... # ...
action: action:
- service: light.turn_on - service: light.turn_on
data: target:
entity_id: light.office, light.kitchen entity_id: light.office, light.kitchen
data:
effect: lifx_effect_pulse effect: lifx_effect_pulse
``` ```
@ -59,8 +60,9 @@ script:
alias: "Start colorloop" alias: "Start colorloop"
sequence: sequence:
- service: lifx.effect_colorloop - service: lifx.effect_colorloop
data: target:
entity_id: group.livingroom entity_id: group.livingroom
data:
brightness: 255 brightness: 255
period: 10 period: 10
spread: 30 spread: 30

View File

@ -53,7 +53,8 @@ script:
alias: "Kitchen lights on" alias: "Kitchen lights on"
sequence: sequence:
service: light.turn_on service: light.turn_on
data: target:
entity_id: light.kitchen_lights entity_id: light.kitchen_lights
data:
brightness: 100 brightness: 100
``` ```

View File

@ -59,8 +59,9 @@ automation:
to: "on" to: "on"
action: action:
- service: light.turn_on - service: light.turn_on
data: target:
entity_id: light.living_room entity_id: light.living_room
data:
brightness: 255 brightness: 255
kelvin: 2700 kelvin: 2700
``` ```
@ -73,8 +74,9 @@ automation:
platform: time platform: time
action: action:
- service: light.turn_on - service: light.turn_on
data: target:
entity_id: light.ledliststair entity_id: light.ledliststair
data:
brightness: 130 brightness: 130
rgb_color: [255,0,0] rgb_color: [255,0,0]
``` ```

View File

@ -178,18 +178,21 @@ light:
{% endif %} {% endif %}
turn_on: turn_on:
service: media_player.volume_mute service: media_player.volume_mute
data: target:
entity_id: media_player.receiver entity_id: media_player.receiver
data:
is_volume_muted: false is_volume_muted: false
turn_off: turn_off:
service: media_player.volume_mute service: media_player.volume_mute
data: target:
entity_id: media_player.receiver entity_id: media_player.receiver
data:
is_volume_muted: true is_volume_muted: true
set_level: set_level:
service: media_player.volume_set service: media_player.volume_set
data: target:
entity_id: media_player.receiver entity_id: media_player.receiver
data:
volume_level: "{{ (brightness / 255 * 100)|int / 100 }}" volume_level: "{{ (brightness / 255 * 100)|int / 100 }}"
level_template: >- level_template: >-
{% if is_state('media_player.receiver', 'on') %} {% if is_state('media_player.receiver', 'on') %}
@ -235,13 +238,15 @@ light:
{% endif %} {% endif %}
turn_on: turn_on:
service: media_player.volume_mute service: media_player.volume_mute
data: target:
entity_id: media_player.receiver entity_id: media_player.receiver
data:
is_volume_muted: false is_volume_muted: false
turn_off: turn_off:
service: media_player.volume_mute service: media_player.volume_mute
data: target:
entity_id: media_player.receiver entity_id: media_player.receiver
data:
is_volume_muted: true is_volume_muted: true
``` ```
@ -281,13 +286,15 @@ light:
{% endif %} {% endif %}
turn_on: turn_on:
service: media_player.volume_mute service: media_player.volume_mute
data: target:
entity_id: media_player.receiver entity_id: media_player.receiver
data:
is_volume_muted: false is_volume_muted: false
turn_off: turn_off:
service: media_player.volume_mute service: media_player.volume_mute
data: target:
entity_id: media_player.receiver entity_id: media_player.receiver
data:
is_volume_muted: true is_volume_muted: true
``` ```

View File

@ -111,8 +111,11 @@ automation:
# ... # ...
action: action:
- service: light.turn_on - service: light.turn_on
target:
entity_id:
- light.office
- light.kitchen
data: data:
entity_id: light.office, light.kitchen
effect: night effect: night
``` ```

View File

@ -31,7 +31,7 @@ Lock your door, the attribute should appear under a 'data' attribute for the ser
```yaml ```yaml
action: action:
service: lock.lock service: lock.lock
data: target:
entity_id: lock.my_place entity_id: lock.my_place
``` ```
@ -48,7 +48,7 @@ Unlock your door, the attribute should appear under a 'data' attribute for the s
```yaml ```yaml
action: action:
service: lock.unlock service: lock.unlock
data: target:
entity_id: lock.my_place entity_id: lock.my_place
``` ```

View File

@ -31,11 +31,11 @@ lock:
value_template: "{{ is_state('sensor.door', 'on') }}" value_template: "{{ is_state('sensor.door', 'on') }}"
lock: lock:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.door entity_id: switch.door
unlock: unlock:
service: switch.turn_off service: switch.turn_off
data: target:
entity_id: switch.door entity_id: switch.door
``` ```
@ -96,11 +96,11 @@ lock:
value_template: "{{ is_state('switch.source', 'on') }}" value_template: "{{ is_state('switch.source', 'on') }}"
lock: lock:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.source entity_id: switch.source
unlock: unlock:
service: switch.turn_off service: switch.turn_off
data: target:
entity_id: switch.source entity_id: switch.source
``` ```
@ -120,11 +120,11 @@ lock:
optimistic: true optimistic: true
lock: lock:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.source entity_id: switch.source
unlock: unlock:
service: switch.turn_off service: switch.turn_off
data: target:
entity_id: switch.source entity_id: switch.source
``` ```
@ -143,11 +143,11 @@ lock:
value_template: "{{ is_state('sensor.skylight.state', 'on') }}" value_template: "{{ is_state('sensor.skylight.state', 'on') }}"
lock: lock:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.skylight_open entity_id: switch.skylight_open
unlock: unlock:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.skylight_close entity_id: switch.skylight_close
``` ```

View File

@ -65,8 +65,9 @@ Default `media_dir`is `local`.
Example: Example:
```yaml ```yaml
service: media_player.play_media service: media_player.play_media
data: target:
entity_id: media_player.living_room_tv entity_id: media_player.living_room_tv
data:
media_content_type: video/mp4 media_content_type: video/mp4
media_content_id: media-source://media_source/local/videos/favourites/Epic Sax Guy 10 Hours.mp4 media_content_id: media-source://media_source/local/videos/favourites/Epic Sax Guy 10 Hours.mp4
``` ```

View File

@ -63,8 +63,9 @@ The `play_media` function can be used in scripts to change channels:
change_channel: change_channel:
sequence: sequence:
service: media_player.play_media service: media_player.play_media
data: target:
entity_id: media_player.mediaroom_stb entity_id: media_player.mediaroom_stb
data:
media_content_id: "{{ channel_number }}" media_content_id: "{{ channel_number }}"
media_content_type: "channel" media_content_type: "channel"
``` ```
@ -81,8 +82,9 @@ The `play_media` function can also be used to trigger actions on the set-up-box
press_button: press_button:
sequence: sequence:
service: media_player.play_media service: media_player.play_media
data: target:
entity_id: media_player.mediaroom_stb entity_id: media_player.mediaroom_stb
data:
media_content_id: "{{ action }}" media_content_id: "{{ action }}"
media_content_type: "mediaroom" media_content_type: "mediaroom"
``` ```

View File

@ -50,14 +50,16 @@ Example script to load a saved playlist called "DeckMusic" and set the volume:
relaxdeck: relaxdeck:
sequence: sequence:
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.main entity_id: media_player.main
data:
media_content_type: playlist media_content_type: playlist
media_content_id: DeckMusic media_content_id: DeckMusic
- service: media_player.volume_set - service: media_player.volume_set
data: target:
entity_id: media_player.main entity_id: media_player.main
data:
volume_level: 0.60 volume_level: 0.60
``` ```

View File

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

View File

@ -123,11 +123,12 @@ script:
alias: "Radio 1" alias: "Radio 1"
sequence: sequence:
- service: media_player.turn_on - service: media_player.turn_on
data: target:
entity_id: media_player.onkyo entity_id: media_player.onkyo
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.onkyo entity_id: media_player.onkyo
data:
media_content_type: "radio" media_content_type: "radio"
media_content_id: "1" media_content_id: "1"
``` ```

View File

@ -25,9 +25,9 @@ media_player:
```yaml ```yaml
action: action:
- service: media_player.play_media - service: media_player.play_media
target:
entity_id: media_player.linn_bedroom
data: data:
entity_id:
- media_player.linn_bedroom
media_content_id: "http://172.24.32.13/Doorbell.mp3" media_content_id: "http://172.24.32.13/Doorbell.mp3"
media_content_type: music media_content_type: music
``` ```
@ -36,9 +36,9 @@ action:
```yaml ```yaml
- service: media_player.play_media - service: media_player.play_media
target:
entity_id: media_player.linn_bedroom
data: data:
entity_id:
- media_player.linn_bedroom
media_content_id: "http://media-ice.musicradio.com:80/ClassicFMMP3" media_content_id: "http://media-ice.musicradio.com:80/ClassicFMMP3"
media_content_type: music media_content_type: music
``` ```

View File

@ -47,6 +47,10 @@ id:
description: "The `gateway_id` for this OpenTherm Gateway's entity IDs and services. The entered value will be slugified." description: "The `gateway_id` for this OpenTherm Gateway's entity IDs and services. The entered value will be slugified."
{% endconfiguration_basic %} {% endconfiguration_basic %}
<div class='note warning'>
Please make sure no other device or application is connected to the OpenTherm Gateway at the same time as Home Assistant. This is not a supported scenario and may lead to unexpected results.
</div>
<div class='note'> <div class='note'>
The precision and floor_temperature settings that were supported in configuration.yaml entries have been lost upon import of the configuration.yaml entry into the Integrations panel. You can now configure them as per the following Options paragraph. The precision and floor_temperature settings that were supported in configuration.yaml entries have been lost upon import of the configuration.yaml entry into the Integrations panel. You can now configure them as per the following Options paragraph.
</div> </div>

View File

@ -74,17 +74,18 @@ script:
alias: "Show who's at the door" alias: "Show who's at the door"
sequence: sequence:
- service: media_player.turn_on - service: media_player.turn_on
data: target:
entity_id: media_player.living_room_tv entity_id: media_player.living_room_tv
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.living_room_tv entity_id: media_player.living_room_tv
data:
media_content_type: "url" media_content_type: "url"
media_content_id: YOUR_URL media_content_id: YOUR_URL
- delay: - delay:
seconds: 5 seconds: 5
- service: media_player.media_stop - service: media_player.media_stop
data: target:
entity_id: media_player.living_room_tv entity_id: media_player.living_room_tv
``` ```

View File

@ -1,7 +1,6 @@
--- ---
title: Pencom title: Pencom
description: How to use Pencom Designs 8 channel relay boards. description: How to use Pencom Designs 8 channel relay boards.
logo: pencom.png
ha_category: ha_category:
- Switch - Switch
ha_release: 0.85 ha_release: 0.85

View File

@ -250,8 +250,9 @@ play_plex_on_tv:
timeout: "00:00:10" timeout: "00:00:10"
continue_on_timeout: false continue_on_timeout: false
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.plex_smart_tv entity_id: media_player.plex_smart_tv
data:
media_content_id: "{"library_name": "Movies", "title": "Zoolander"}" media_content_id: "{"library_name": "Movies", "title": "Zoolander"}"
media_content_type: movie media_content_type: movie
``` ```

View File

@ -70,7 +70,7 @@ script:
force_adam_update: force_adam_update:
sequence: sequence:
- service: homeassistant.update_entity - service: homeassistant.update_entity
data: target:
entity_id: climate.anna entity_id: climate.anna
``` ```
@ -89,8 +89,9 @@ script:
lisa_reactive_last_schedule: lisa_reactive_last_schedule:
sequence: sequence:
- service: climate.set_hvac_mode - service: climate.set_hvac_mode
data: target:
entity_id: climate.lisa_bios entity_id: climate.lisa_bios
data:
hvac_mode: auto hvac_mode: auto
``` ```
@ -113,8 +114,9 @@ script:
anna_set_predefined_temperature: anna_set_predefined_temperature:
sequence: sequence:
- service: climate.set_temperature - service: climate.set_temperature
data: target:
entity_id: climate.anna entity_id: climate.anna
data:
temperature: 19.5 temperature: 19.5
``` ```

View File

@ -67,9 +67,10 @@ if entity_id is not None:
The above `python_script` can be called using the following YAML as an input. The above `python_script` can be called using the following YAML as an input.
```yaml ```yaml
service: python_script.turn_on_light - service: python_script.turn_on_light
data: target:
entity_id: light.bedroom entity_id: light.bedroom
data:
rgb_color: [255, 0, 0] rgb_color: [255, 0, 0]
``` ```

View File

@ -122,17 +122,6 @@ monitored_conditions:
If your QNAP device uses self-signed certificates, set the `verify_ssl` option to `false`. If your QNAP device uses self-signed certificates, set the `verify_ssl` option to `false`.
### QNAP device support: ### QNAP device support
This integration has been tested on the following devices: This integration works with most (but not all) QNAP devices. A complete, up-to-date [list of compatible devices can be found here](https://github.com/colinodell/python-qnapstats#device-support).
- TS-231P2 (QTS 4.4.2)
- TS-259 Pro+ (QTS 4.2.6)
- TS-228 (QTS 4.3.6)
- TS-410 (QTS 4.2.3)
- TS-419 (QTS 4.2.3)
- TS-451 (QTS 4.2.2)
- TS-470 (QTS 4.2.2)
- TS-639 (QTS 4.2.3)
Other QNAP NAS devices using similar firmware should work fine. For more information about supported devices, or to report issues with your device, please visit the [qnapstats project](https://github.com/colinodell/python-qnapstats#device-support).

View File

@ -88,11 +88,12 @@ script:
run_grass_zones: run_grass_zones:
sequence: sequence:
- service: rachio.start_multiple_zone_schedule - service: rachio.start_multiple_zone_schedule
data: target:
entity_id: entity_id:
- switch.front_yard_west - switch.front_yard_west
- switch.front_yard_east - switch.front_yard_east
- switch.side_yard_west - switch.side_yard_west
data:
duration: 20, 15, 10 duration: 20, 15, 10
``` ```
@ -102,11 +103,12 @@ script:
run_grass_zones: run_grass_zones:
sequence: sequence:
- service: rachio.start_multiple_zone_schedule - service: rachio.start_multiple_zone_schedule
data: target:
entity_id: entity_id:
- switch.front_yard_west - switch.front_yard_west
- switch.front_yard_east - switch.front_yard_east
- switch.side_yard_west - switch.side_yard_west
data:
duration: 20 duration: 20
``` ```
### Service `rachio.set_zone_moisture_percent` ### Service `rachio.set_zone_moisture_percent`

View File

@ -319,6 +319,14 @@ Once Home Assistant finds the database, with the right level of permissions, all
### PostgreSQL ### PostgreSQL
Create the PostgreSQL database with `utf8` encoding. The PostgreSQL default encoding is `SQL_ASCII`. From the `postgres` user account;
```bash
createdb -E utf8 DB_NAME
```
Where `DB_NAME` is the name of your database
If the Database in use is not `utf8`, adding `?client_encoding=utf8` to the `db_url` may solve any issue.
For PostgreSQL you may have to install a few dependencies: For PostgreSQL you may have to install a few dependencies:
```bash ```bash

View File

@ -453,22 +453,22 @@ switch:
data: data:
led: 6 led: 6
- service: homeassistant.update_entity - service: homeassistant.update_entity
data: target:
entity_id: sensor.steam_system_data entity_id: sensor.steam_system_data
- delay: 00:00:15 - delay: 00:00:15
- service: homeassistant.update_entity - service: homeassistant.update_entity
data: target:
entity_id: sensor.steam_system_data entity_id: sensor.steam_system_data
turn_off: turn_off:
- service: rest_command.set_steam_led - service: rest_command.set_steam_led
data: data:
led: 7 led: 7
- service: homeassistant.update_entity - service: homeassistant.update_entity
data: target:
entity_id: sensor.steam_system_data entity_id: sensor.steam_system_data
- delay: 00:00:15 - delay: 00:00:15
- service: homeassistant.update_entity - service: homeassistant.update_entity
data: target:
entity_id: sensor.steam_system_data entity_id: sensor.steam_system_data
friendly_name: Steam friendly_name: Steam

View File

@ -67,8 +67,9 @@ A typical service call for pressing several buttons looks like this.
```yaml ```yaml
service: remote.send_command service: remote.send_command
data: target:
entity_id: remote.roku entity_id: remote.roku
data:
command: command:
- left - left
- left - left
@ -80,8 +81,9 @@ data:
When the Home Assistant Roku integration is enabled and a Roku device has been configured, in the Home Assistant UI the Roku media player will show a listing of the installed channels, or apps, under “source”. Select one and it will attempt to launch the channel on your Roku device. This action can also be automated. Channels can be launched by `name` using a configuration similar to the one below: When the Home Assistant Roku integration is enabled and a Roku device has been configured, in the Home Assistant UI the Roku media player will show a listing of the installed channels, or apps, under “source”. Select one and it will attempt to launch the channel on your Roku device. This action can also be automated. Channels can be launched by `name` using a configuration similar to the one below:
```yaml ```yaml
action: action:
- data: - target:
entity_id: media_player.roku entity_id: media_player.
data:
source: "Prime Video" source: "Prime Video"
service: media_player.select_source service: media_player.select_source
``` ```
@ -106,21 +108,23 @@ To use this information in Home Assistant, the format is as follows. Note that `
```yaml ```yaml
action: action:
- data: - service: media_player.select_source
entity_id: media_player.roku target:
source: 20197 entity_id: media_player.roku
service: media_player.select_source data:
source: 20197
``` ```
It is also possible to tune directly to specific channels if you have a Roku TV and use an OTA antenna. This service only supports `media_channel_type` of 'channel'. `media_content_id` corresponds to the TV channel, which you should see when navigating to these on your TV UI. It is also possible to tune directly to specific channels if you have a Roku TV and use an OTA antenna. This service only supports `media_channel_type` of 'channel'. `media_content_id` corresponds to the TV channel, which you should see when navigating to these on your TV UI.
```yaml ```yaml
action: action:
- data: - service: media_player.play_media
entity_id: media_player.roku target:
media_content_id: 5.1 entity_id: media_player.roku
media_content_type: channel data:
service: media_player.play_media media_content_id: 5.1
media_content_type: channel
``` ```
## Remote ## Remote

View File

@ -173,6 +173,6 @@ For example:
to: "on" to: "on"
action: action:
service: input_boolean.turn_on service: input_boolean.turn_on
data: target:
entity_id: input_boolean.movement_detected entity_id: input_boolean.movement_detected
``` ```

View File

@ -116,8 +116,9 @@ automation:
to: "home" to: "home"
action: action:
service: scene.turn_on service: scene.turn_on
data: target:
entity_id: scene.romantic entity_id: scene.romantic
data:
transition: 2.5 transition: 2.5
``` ```
@ -176,11 +177,12 @@ The following example turns off some entities as soon as a window opens. The sta
- climate.ecobee - climate.ecobee
- light.ceiling_lights - light.ceiling_lights
- service: light.turn_off - service: light.turn_off
data: target:
entity_id: light.ceiling_lights entity_id: light.ceiling_lights
- service: climate.set_hvac_mode - service: climate.set_hvac_mode
data: target:
entity_id: climate.ecobee entity_id: climate.ecobee
data:
hvac_mode: "off" hvac_mode: "off"
- alias: "Window closed" - alias: "Window closed"
trigger: trigger:
@ -191,6 +193,6 @@ The following example turns off some entities as soon as a window opens. The sta
condition: [] condition: []
action: action:
- service: scene.turn_on - service: scene.turn_on
data: target:
entity_id: scene.before entity_id: scene.before
``` ```

View File

@ -139,15 +139,16 @@ script: 
domain: light domain: light
- alias: "Bedroom lights on" - alias: "Bedroom lights on"
service: light.turn_on service: light.turn_on
data: target:
entity_id: group.bedroom entity_id: group.bedroom
data:
brightness: 100 brightness: 100
- delay: - delay:
# supports seconds, milliseconds, minutes, hours # supports seconds, milliseconds, minutes, hours
minutes: "{{ minutes }}" minutes: "{{ minutes }}"
- alias: "Living room lights on" - alias: "Living room lights on"
service: light.turn_on service: light.turn_on
data: target:
entity_id: "{{ turn_on_entity }}" entity_id: "{{ turn_on_entity }}"
``` ```

View File

@ -66,13 +66,14 @@ switch:
value_template: "{{ is_state('climate.ac', 'cool') or is_state('climate.ac', 'heat') or is_state('climate.ac', 'dry') or is_state('climate.ac', 'fan_only') }}" value_template: "{{ is_state('climate.ac', 'cool') or is_state('climate.ac', 'heat') or is_state('climate.ac', 'dry') or is_state('climate.ac', 'fan_only') }}"
turn_on: turn_on:
service: climate.set_hvac_mode service: climate.set_hvac_mode
data: target:
entity_id: climate.ac entity_id: climate.ac
hvac_mode: cool hvac_mode: cool
turn_off: turn_off:
service: climate.set_hvac_mode service: climate.set_hvac_mode
data: target:
entity_id: climate.ac entity_id: climate.ac
data:
hvac_mode: off hvac_mode: off
``` ```

View File

@ -13,9 +13,7 @@ ha_codeowners:
The `seven_segments` image processing platform allows you to read physical seven segments displays through Home Assistant. [`ssocr`](https://www.unix-ag.uni-kl.de/~auerswal/ssocr/) is used to extract the value shown on the display which is observed by a [camera](/integrations/camera/). The `seven_segments` image processing platform allows you to read physical seven segments displays through Home Assistant. [`ssocr`](https://www.unix-ag.uni-kl.de/~auerswal/ssocr/) is used to extract the value shown on the display which is observed by a [camera](/integrations/camera/).
## Home Assistant Core Requirements {% details "Notes for Home Assistant Core Installations" %}
If you are running Home Assistant Core in a Python virtual environment, you need to ensure the following requirements are met.
`ssocr` needs to be available on your system. Check the installation instruction below: `ssocr` needs to be available on your system. Check the installation instruction below:
@ -30,6 +28,8 @@ sudo make PREFIX=/usr install # On most systems
make deb # (Optional) This allows you to make a deb so that you apt is aware of ssocr make deb # (Optional) This allows you to make a deb so that you apt is aware of ssocr
``` ```
{% enddetails %}
## Configuration ## Configuration
To enable the OCR of a seven segment display in your installation, add the following to your `configuration.yaml` file: To enable the OCR of a seven segment display in your installation, add the following to your `configuration.yaml` file:

View File

@ -153,8 +153,9 @@ intent_script:
ActivateLightColor: ActivateLightColor:
action: action:
- service: light.turn_on - service: light.turn_on
data: target:
entity_id: 'light.{{ objectLocation | replace(" ","_") }}' entity_id: 'light.{{ objectLocation | replace(" ","_") }}'
data:
color_name: "{{ objectColor }}" color_name: "{{ objectColor }}"
``` ```
@ -236,7 +237,7 @@ intent_script:
text: "OK, opening the garage door" text: "OK, opening the garage door"
action: action:
- service: cover.open_cover - service: cover.open_cover
data: target:
entity_id: garage_door entity_id: garage_door
``` ```

View File

@ -164,9 +164,10 @@ condition:
{{ trigger.from_state.attributes.queue_position < trigger.to_state.attributes.queue_position }} {{ trigger.from_state.attributes.queue_position < trigger.to_state.attributes.queue_position }}
action: action:
- service: sonos.remove_from_queue - service: sonos.remove_from_queue
data: target:
entity_id: > entity_id: >
{{ trigger.entity_id }} {{ trigger.entity_id }}
data:
queue_position: > queue_position: >
{{ trigger.from_state.attributes.queue_position }} {{ trigger.from_state.attributes.queue_position }}
``` ```

View File

@ -60,8 +60,9 @@ You can switch between one of your 6 pre-configured presets using ```media_playe
```yaml ```yaml
# Play media preset # Play media preset
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.soundtouch_living_room entity_id: media_player.soundtouch_living_room
data:
media_content_id: 1..6 media_content_id: 1..6
media_content_type: PLAYLIST media_content_type: PLAYLIST
``` ```
@ -71,8 +72,9 @@ You can also play HTTP (not HTTPS) URLs:
```yaml ```yaml
# Play media URL # Play media URL
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.soundtouch_living_room entity_id: media_player.soundtouch_living_room
data:
media_content_id: http://example.com/music.mp3 media_content_id: http://example.com/music.mp3
media_content_type: MUSIC media_content_type: MUSIC
``` ```

View File

@ -96,8 +96,9 @@ script:
play_jazz_guitar: play_jazz_guitar:
sequence: sequence:
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.spotify entity_id: media_player.spotify
data:
media_content_id: "https://open.spotify.com/playlist/5xddIVAtLrZKtt4YGLM1SQ?si=YcvRqaKNTxOi043Qn4LYkg" media_content_id: "https://open.spotify.com/playlist/5xddIVAtLrZKtt4YGLM1SQ?si=YcvRqaKNTxOi043Qn4LYkg"
media_content_type: playlist media_content_type: playlist
``` ```

View File

@ -30,8 +30,9 @@ transporter_toslink:
target: target:
entity_id: media_player.transporter entity_id: media_player.transporter
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.transporter entity_id: media_player.transporter
data:
media_content_id: "source:toslink" media_content_id: "source:toslink"
media_content_type: "music" media_content_type: "music"
``` ```

View File

@ -47,8 +47,9 @@ For example, the following action in an automation would take a recording from `
```yaml ```yaml
action: action:
service: camera.record service: camera.record
data: target:
entity_id: camera.quintal entity_id: camera.quintal
data:
filename: "/config/www/my_stream.mp4" filename: "/config/www/my_stream.mp4"
duration: 30 duration: 30
``` ```

View File

@ -30,11 +30,11 @@ switch:
value_template: "{{ is_state('sensor.skylight', 'on') }}" value_template: "{{ is_state('sensor.skylight', 'on') }}"
turn_on: turn_on:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.skylight_open entity_id: switch.skylight_open
turn_off: turn_off:
service: switch.turn_off service: switch.turn_off
data: target:
entity_id: switch.skylight_close entity_id: switch.skylight_close
``` ```
@ -104,11 +104,11 @@ switch:
value_template: "{{ is_state('switch.source', 'on') }}" value_template: "{{ is_state('switch.source', 'on') }}"
turn_on: turn_on:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.target entity_id: switch.target
turn_off: turn_off:
service: switch.turn_off service: switch.turn_off
data: target:
entity_id: switch.target entity_id: switch.target
``` ```
@ -129,11 +129,11 @@ switch:
value_template: "{{ is_state_attr('switch.blind_toggle', 'sensor_state', 'on') }}" value_template: "{{ is_state_attr('switch.blind_toggle', 'sensor_state', 'on') }}"
turn_on: turn_on:
service: switch.toggle service: switch.toggle
data: target:
entity_id: switch.blind_toggle entity_id: switch.blind_toggle
turn_off: turn_off:
service: switch.toggle service: switch.toggle
data: target:
entity_id: switch.blind_toggle entity_id: switch.blind_toggle
``` ```
@ -155,11 +155,11 @@ switch:
value_template: "{{ is_state('sensor.skylight', 'on') }}" value_template: "{{ is_state('sensor.skylight', 'on') }}"
turn_on: turn_on:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.skylight_open entity_id: switch.skylight_open
turn_off: turn_off:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.skylight_close entity_id: switch.skylight_close
``` ```
@ -179,11 +179,11 @@ switch:
value_template: "{{ is_state('cover.garage_door', 'on') }}" value_template: "{{ is_state('cover.garage_door', 'on') }}"
turn_on: turn_on:
service: cover.open_cover service: cover.open_cover
data: target:
entity_id: cover.garage_door entity_id: cover.garage_door
turn_off: turn_off:
service: cover.close_cover service: cover.close_cover
data: target:
entity_id: cover.garage_door entity_id: cover.garage_door
icon_template: >- icon_template: >-
{% if is_state('cover.garage_door', 'open') %} {% if is_state('cover.garage_door', 'open') %}
@ -209,11 +209,11 @@ switch:
value_template: "{{ is_state('cover.garage_door', 'on') }}" value_template: "{{ is_state('cover.garage_door', 'on') }}"
turn_on: turn_on:
service: cover.open_cover service: cover.open_cover
data: target:
entity_id: cover.garage_door entity_id: cover.garage_door
turn_off: turn_off:
service: cover.close_cover service: cover.close_cover
data: target:
entity_id: cover.garage_door entity_id: cover.garage_door
entity_picture_template: >- entity_picture_template: >-
{% if is_state('cover.garage_door', 'open') %} {% if is_state('cover.garage_door', 'open') %}

View File

@ -152,13 +152,15 @@ script:
boost_heating: boost_heating:
sequence: sequence:
- service: tado.set_climate_timer - service: tado.set_climate_timer
data: target:
entity_id: climate.heating entity_id: climate.heating
data:
time_period: "01:30:00" time_period: "01:30:00"
temperature: 25 temperature: 25
- service: tado.set_water_heater_timer - service: tado.set_water_heater_timer
data: target:
entity_id: water_heater.hot_water entity_id: water_heater.hot_water
data:
time_period: "01:30:00" time_period: "01:30:00"
``` ```
@ -184,8 +186,9 @@ automation:
# Work out what the new offset should be (tado temp less the room temp but add the current offset value) and turn that to a negative value for setting as the new offset # Work out what the new offset should be (tado temp less the room temp but add the current offset value) and turn that to a negative value for setting as the new offset
action: action:
- service: tado.set_climate_temperature_offset - service: tado.set_climate_temperature_offset
data: target:
entity_id: climate.tado entity_id: climate.tado
data:
offset: > offset: >
{% set tado_temp = states('sensor.tado_temperature')|float %} {% set tado_temp = states('sensor.tado_temperature')|float %}
{% set room_temp = states('sensor.temp_sensor_room')|float %} {% set room_temp = states('sensor.temp_sensor_room')|float %}

View File

@ -23,7 +23,7 @@ To make tags accessible to anyone in your house hold, there is also a [standalon
## Writing your first tag ## Writing your first tag
The easiest way to get started with tags is to use NFC tags ([stickers](https://amzn.to/3bQU0nN), [cards](https://amzn.to/2RlqPzM)) with the official Home Assistant mobile apps. Once you have scanned a card, hover it with your phone to scan it. The easiest way to get started with tags is to use NFC tags ([stickers](https://amzn.to/3bQU0nN), [cards](https://amzn.to/2RlqPzM)) with the official Home Assistant mobile apps. Once you have written a card, hover it with your phone to scan it.
<div class="videoWrapper"> <div class="videoWrapper">
<iframe width="853" height="480" src="https://www.youtube-nocookie.com/embed/Xc120lClUgA" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> <iframe width="853" height="480" src="https://www.youtube-nocookie.com/embed/Xc120lClUgA" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
@ -81,8 +81,9 @@ automation:
media_content_id: "{{ tags[trigger.event.data.tag_id].media_content_id }}" media_content_id: "{{ tags[trigger.event.data.tag_id].media_content_id }}"
media_content_type: "{{ tags[trigger.event.data.tag_id].media_content_type }}" media_content_type: "{{ tags[trigger.event.data.tag_id].media_content_type }}"
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: "{{ media_player_entity_id }}" entity_id: "{{ media_player_entity_id }}"
data:
media_content_id: "{{ media_content_id }}" media_content_id: "{{ media_content_id }}"
media_content_type: "{{ media_content_type }}" media_content_type: "{{ media_content_type }}"
- delay: 2 # timeout before we allow processing next scan - delay: 2 # timeout before we allow processing next scan

View File

@ -10,10 +10,7 @@ ha_domain: tensorflow
The `tensorflow` image processing platform allows you to detect and recognize objects in a camera image using [TensorFlow](https://www.tensorflow.org/). The state of the entity is the number of objects detected, and recognized objects are listed in the `summary` attribute along with quantity. The `matches` attribute provides the confidence `score` for recognition and the bounding `box` of the object for each detection category. The `tensorflow` image processing platform allows you to detect and recognize objects in a camera image using [TensorFlow](https://www.tensorflow.org/). The state of the entity is the number of objects detected, and recognized objects are listed in the `summary` attribute along with quantity. The `matches` attribute provides the confidence `score` for recognition and the bounding `box` of the object for each detection category.
## Home Assistant Core {% details "Notes for Home Assistant Core Installations" %}
If you are using the Home Assistant Core installation type, some additional requirements and steps apply.
For all other installation types, this section can be skipped.
The following packages must be installed on Debian before following the setup for the integration to work: The following packages must be installed on Debian before following the setup for the integration to work:
`sudo apt-get install libatlas-base-dev libopenjp2-7 libtiff5` `sudo apt-get install libatlas-base-dev libopenjp2-7 libtiff5`
@ -27,6 +24,8 @@ See [the official install guide](https://www.tensorflow.org/install/) for other
Furthermore, the official Python TensorFlow wheels by Google, require your CPU to support the `avx` extension. Furthermore, the official Python TensorFlow wheels by Google, require your CPU to support the `avx` extension.
If your CPU lacks those capabilities, Home Assistant will crash when using TensorFlow, without any message. If your CPU lacks those capabilities, Home Assistant will crash when using TensorFlow, without any message.
{% enddetails %}
## Preparation ## Preparation
This integration requires files to be downloaded, compiled on your computer, and added to the Home Assistant configuration directory. These steps can be performed by cloning [this repository](https://github.com/hunterjm/hass-tensorflow) into your configuration directory. Alternatively, if you wish to perform the process manually, the process is as follows: This integration requires files to be downloaded, compiled on your computer, and added to the Home Assistant configuration directory. These steps can be performed by cloning [this repository](https://github.com/hunterjm/hass-tensorflow) into your configuration directory. Alternatively, if you wish to perform the process manually, the process is as follows:

View File

@ -54,7 +54,15 @@ automation:
entity_id: scene.OnArmedAway entity_id: scene.OnArmedAway
``` ```
If you have issues running this component, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Raspbian, run the command `apt install libxml2-dev libxmlsec1-dev` with sudo. {% details "Notes for Home Assistant Core Installations" %}
If you have issues running this component, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Raspbian, run the command:
```bash
sudo apt install libxml2-dev libxmlsec1-dev
```
{% enddetails %}
## Alarm Control Panel ## Alarm Control Panel

View File

@ -102,33 +102,35 @@ media_player:
commands: commands:
turn_on: turn_on:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.living_room_tv entity_id: switch.living_room_tv
turn_off: turn_off:
service: switch.turn_off service: switch.turn_off
data: target:
entity_id: switch.living_room_tv entity_id: switch.living_room_tv
volume_up: volume_up:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.living_room_volume_up entity_id: switch.living_room_volume_up
volume_down: volume_down:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.living_room_volume_down entity_id: switch.living_room_volume_down
volume_mute: volume_mute:
service: switch.turn_on service: switch.turn_on
data: target:
entity_id: switch.living_room_mute entity_id: switch.living_room_mute
select_source: select_source:
service: media_player.select_source service: media_player.select_source
data: target:
entity_id: media_player.receiver entity_id: media_player.receiver
data:
source: "{{ source }}" source: "{{ source }}"
volume_set: volume_set:
service: media_player.volume_set service: media_player.volume_set
data: target:
entity_id: media_player.receiver entity_id: media_player.receiver
data:
volume_level: "{{ volume_level }}" volume_level: "{{ volume_level }}"
attributes: attributes:
@ -176,11 +178,11 @@ media_player:
commands: commands:
turn_on: turn_on:
service: media_player.turn_on service: media_player.turn_on
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
turn_off: turn_off:
service: media_player.turn_off service: media_player.turn_off
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
attributes: attributes:
is_volume_muted: media_player.kodi|is_volume_muted is_volume_muted: media_player.kodi|is_volume_muted
@ -191,25 +193,27 @@ media_player:
host: 192.168.1.10 host: 192.168.1.10
turn_on_action: turn_on_action:
- service: input_boolean.turn_on - service: input_boolean.turn_on
data: target:
entity_id: input_boolean.kodi_tv_state entity_id: input_boolean.kodi_tv_state
- service: media_player.kodi_call_method - service: media_player.kodi_call_method
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
method: Addons.ExecuteAddon method: Addons.ExecuteAddon
addonid: script.json-cec addonid: script.json-cec
params: params:
command: activate command: activate
turn_off_action: turn_off_action:
- service: input_boolean.turn_off - service: input_boolean.turn_off
data: target:
entity_id: input_boolean.kodi_tv_state entity_id: input_boolean.kodi_tv_state
- service: media_player.media_stop - service: media_player.media_stop
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
- service: media_player.kodi_call_method - service: media_player.kodi_call_method
data: target:
entity_id: media_player.kodi entity_id: media_player.kodi
data:
method: Addons.ExecuteAddon method: Addons.ExecuteAddon
addonid: script.json-cec addonid: script.json-cec
params: params:
@ -281,8 +285,9 @@ media_player:
command: VolumeDown command: VolumeDown
select_source: select_source:
service: remote.turn_on service: remote.turn_on
data: target:
entity_id: remote.alexander_down_guest entity_id: remote.alexander_down_guest
data:
activity: "{{ source }}" activity: "{{ source }}"
device_class: tv device_class: tv
``` ```

View File

@ -218,8 +218,9 @@ kitchen_fade_on:
description: "Turn on kitchen light to 75% over a period of 10 seconds" description: "Turn on kitchen light to 75% over a period of 10 seconds"
sequence: sequence:
- service: upb.light_fade_start - service: upb.light_fade_start
data: target:
entity_id: light.kitchen entity_id: light.kitchen
data:
brightness_pct: 75 brightness_pct: 75
rate: 10 rate: 10
``` ```

View File

@ -526,8 +526,9 @@ Service trigger example:
entity_id: sensor.sensor entity_id: sensor.sensor
action: action:
service: vacuum.send_command service: vacuum.send_command
data: target:
entity_id: vacuum.vacuum_entity entity_id: vacuum.vacuum_entity
data:
command: "custom_command" command: "custom_command"
params: params:
- key: value - key: value
@ -601,8 +602,9 @@ Service trigger example:
entity_id: sensor.sensor entity_id: sensor.sensor
action: action:
service: vacuum.send_command service: vacuum.send_command
data: target:
entity_id: vacuum.vacuum_entity entity_id: vacuum.vacuum_entity
data:
command: "custom_command" command: "custom_command"
params: params:
- key: value - key: value

View File

@ -116,20 +116,23 @@ vacuum:
living_room_vacuum: living_room_vacuum:
start: start:
- service: remote.send_command - service: remote.send_command
data: target:
entity_id: remote.harmony_hub entity_id: remote.harmony_hub
data:
command: Clean command: Clean
device: 52840686 device: 52840686
return_to_base: return_to_base:
- service: remote.send_command - service: remote.send_command
data: target:
entity_id: remote.harmony_hub entity_id: remote.harmony_hub
data:
command: Home command: Home
device: 52840686 device: 52840686
clean_spot: clean_spot:
- service: remote.send_command - service: remote.send_command
data: target:
entity_id: remote.harmony_hub entity_id: remote.harmony_hub
data:
command: SpotCleaning command: SpotCleaning
device: 52840686 device: 52840686
``` ```

View File

@ -85,8 +85,9 @@ automation:
platform: state platform: state
action: action:
- service: input_select.select_option - service: input_select.select_option
data: target:
entity_id: input_select.ventilation_profile entity_id: input_select.ventilation_profile
data:
option: "{{ states('sensor.vallox_current_profile') }}" option: "{{ states('sensor.vallox_current_profile') }}"
``` ```

View File

@ -118,8 +118,9 @@ For example, the following action in an automation would send an `hls` live stre
```yaml ```yaml
action: action:
service: camera.play_stream service: camera.play_stream
data: target:
entity_id: camera.yourcamera entity_id: camera.yourcamera
data:
media_player: media_player.chromecast media_player: media_player.chromecast
``` ```
@ -157,8 +158,9 @@ For example, the following action is an automation that would take a snapshot fr
```yaml ```yaml
action: action:
service: camera.snapshot service: camera.snapshot
data: target:
entity_id: camera.front_door_camera entity_id: camera.front_door_camera
data:
filename: '/tmp/yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg' filename: '/tmp/yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
``` ```

View File

@ -47,8 +47,9 @@ automation:
at: "07:15:00" at: "07:15:00"
action: action:
- service: water_heater.set_temperature - service: water_heater.set_temperature
data: target:
entity_id: water_heater.demo entity_id: water_heater.demo
data:
temperature: 24 temperature: 24
operation_mode: eco operation_mode: eco
``` ```
@ -71,8 +72,9 @@ automation:
at: "07:15:00" at: "07:15:00"
action: action:
- service: water_heater.set_operation_mode - service: water_heater.set_operation_mode
data: target:
entity_id: water_heater.demo entity_id: water_heater.demo
data:
operation_mode: eco operation_mode: eco
``` ```
@ -94,7 +96,8 @@ automation:
at: "07:15:00" at: "07:15:00"
action: action:
- service: water_heater.set_away_mode - service: water_heater.set_away_mode
data: target:
entity_id: water_heater.demo entity_id: water_heater.demo
data:
away_mode: true away_mode: true
``` ```

View File

@ -85,8 +85,9 @@ Say to the `media_player.living_room` device entity:
```yaml ```yaml
- service: tts.watson_tts_say - service: tts.watson_tts_say
data: target:
entity_id: media_player.living_room entity_id: media_player.living_room
data:
message: > message: >
<speak> <speak>
Hello from Watson Hello from Watson

View File

@ -149,15 +149,17 @@ The `play_media` service can be used in a script to switch to the specified TV c
```yaml ```yaml
# Example action entry in script to switch to channel number 1 # Example action entry in script to switch to channel number 1
service: media_player.play_media service: media_player.play_media
data: target:
entity_id: media_player.lg_webos_smart_tv entity_id: media_player.lg_webos_smart_tv
data:
media_content_id: 1 media_content_id: 1
media_content_type: "channel" media_content_type: "channel"
# Example action entry in script to switch to channel including 'TF1' in its name # Example action entry in script to switch to channel including 'TF1' in its name
service: media_player.play_media service: media_player.play_media
data: target:
entity_id: media_player.lg_webos_smart_tv entity_id: media_player.lg_webos_smart_tv
data:
media_content_id: "TF1" media_content_id: "TF1"
media_content_type: "channel" media_content_type: "channel"
``` ```
@ -207,15 +209,17 @@ script:
home_button: home_button:
sequence: sequence:
- service: webostv.button - service: webostv.button
data: target:
entity_id: media_player.lg_webos_smart_tv entity_id: media_player.lg_webos_smart_tv
data:
button: "HOME" button: "HOME"
open_google_command: open_google_command:
sequence: sequence:
- service: webostv.command - service: webostv.command
data: target:
entity_id: media_player.lg_webos_smart_tv entity_id: media_player.lg_webos_smart_tv
data:
command: "system.launcher/open" command: "system.launcher/open"
payload: payload:
target: https://www.google.com target: https://www.google.com

View File

@ -349,8 +349,9 @@ script:
set_dial_1_value: set_dial_1_value:
sequence: sequence:
- service: wink.set_nimbus_dial_state - service: wink.set_nimbus_dial_state
data: target:
entity_id: wink.nimbus_dial_1 entity_id: wink.nimbus_dial_1
data:
value: 150 value: 150
labels: labels:
- "Dial 1" - "Dial 1"
@ -379,8 +380,9 @@ script:
set_dial_1_value: set_dial_1_value:
sequence: sequence:
- service: wink.set_nimbus_dial_state - service: wink.set_nimbus_dial_state
data: target:
entity_id: wink.nimbus_dial_1 entity_id: wink.nimbus_dial_1
data:
rotation: "ccw" rotation: "ccw"
``` ```

View File

@ -121,8 +121,9 @@ You can automate changing the effect using a service call like this:
```yaml ```yaml
service: wled.effect service: wled.effect
data: target:
entity_id: light.wled entity_id: light.wled
data:
effect: "{{ state_attr('light.wled', 'effect_list') | random }}" effect: "{{ state_attr('light.wled', 'effect_list') | random }}"
``` ```
@ -148,8 +149,9 @@ In this case (using WLED v0.11.0) there are 54 palettes, so the following servic
```yaml ```yaml
service: wled.effect service: wled.effect
data: target:
entity_id: light.wled entity_id: light.wled
data:
palette: "{{ range(0,53) | random }}" palette: "{{ range(0,53) | random }}"
``` ```

View File

@ -202,7 +202,7 @@ This example toggles the living room lamp on a double click of the button.
click_type: double click_type: double
action: action:
service: light.toggle service: light.toggle
data: target:
entity_id: light.living_room_lamp entity_id: light.living_room_lamp
``` ```
@ -231,16 +231,5 @@ That means that Home Assistant is not getting any response from your Xiaomi gate
- You should generate the key again using an Android Phone or alternatively an emulator such as [bluestacks](https://www.bluestacks.com). In some instances, there is an issue with keys being generated using the iOS application. - You should generate the key again using an Android Phone or alternatively an emulator such as [bluestacks](https://www.bluestacks.com). In some instances, there is an issue with keys being generated using the iOS application.
- You need to make sure to have multicast support on your network. If you are running Home Assistant in a virtual machine (like Proxmox), try `echo 0 >/sys/class/net/vmbr0/bridge/multicast_snooping` on the host and restart the service or reboot the host. - You need to make sure to have multicast support on your network. If you are running Home Assistant in a virtual machine (like Proxmox), try `echo 0 >/sys/class/net/vmbr0/bridge/multicast_snooping` on the host and restart the service or reboot the host.
- If the required library "PyXiaomiGateway" cannot be installed you will need to install some missing system dependencies `python3-dev`, `libssl-dev`, `libffi-dev` manually (e.g., `$ sudo apt-get install python3-dev libssl-dev libffi-dev`). - If the required library "PyXiaomiGateway" cannot be installed you will need to install some missing system dependencies `python3-dev`, `libssl-dev`, `libffi-dev` manually (e.g., `$ sudo apt-get install python3-dev libssl-dev libffi-dev`).
- If your gateway's MAC address starts with `04:CF:8C` or `7C:49:EB`, there is a good chance that the required port `9898` is closed on your gateway (you can check it with the Nmap utility, using the command `sudo nmap -sU {gateway_ip} -p 9898`). To fix that issue, you need to do these steps:
- Find a specific screw bit (like a fork) to open the gateway case. If your gateway's MAC address starts with `04:CF:8C` or `7C:49:EB`, there is a good chance that the required port `9898` is closed on your gateway and thus, this method doesn't work. There are workarounds available online, however this requires soldering and working with electricity.
- Find a USB-UART cable/module and connect it to your computer.
- Solder 3 wires - RX, TX and GND like [here](https://cs5-3.4pda.to/14176168/IMG_20181020_201150.jpg).
- Turn on the gateway (220V).
- Open a serial terminal application (e.g., PuTTY) and connect to the serial port assigned to the USB-UART module (baudrate: 115200).
- Wait until the gateway is booted up, connect the RX, TX and GND wires to the UART module (don't connect the Vcc (power) wire!).
- RX on UART to TX on gateway
- TX on UART to RX on gateway
- You will see all the messages from the gateway.
- Send the command `psm-set network open_pf 3` (the command has to end with a `CR` newline character).
- Check your settings executing the command `psm-get network open_pf` to be sure it's OK.
- Restart the gateway.

View File

@ -1259,8 +1259,9 @@ automation:
condition: [] condition: []
action: action:
- service: xiaomi_miio.vacuum_clean_zone - service: xiaomi_miio.vacuum_clean_zone
data: target:
entity_id: vacuum.xiaomi_vacuum entity_id: vacuum.xiaomi_vacuum
data:
repeats: "{{states('input_number.vacuum_passes')|int}}" repeats: "{{states('input_number.vacuum_passes')|int}}"
zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]] zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]]
``` ```
@ -1279,8 +1280,9 @@ automation:
condition: [] condition: []
action: action:
- service: xiaomi_miio.vacuum_clean_zone - service: xiaomi_miio.vacuum_clean_zone
data: target:
entity_id: vacuum.xiaomi_vacuum entity_id: vacuum.xiaomi_vacuum
data:
repeats: "{{states('input_number.vacuum_passes')|int}}" repeats: "{{states('input_number.vacuum_passes')|int}}"
zone: zone:
- [30914,26007,35514,28807] - [30914,26007,35514,28807]
@ -1300,8 +1302,9 @@ automation:
condition: [] condition: []
action: action:
- service: xiaomi_miio.vacuum_clean_zone - service: xiaomi_miio.vacuum_clean_zone
data: target:
entity_id: vacuum.xiaomi_vacuum entity_id: vacuum.xiaomi_vacuum
data:
repeats: 1 repeats: 1
zone: zone:
- - 30914 - - 30914
@ -1345,8 +1348,9 @@ automation:
condition: [] condition: []
action: action:
- service: xiaomi_miio.vacuum_clean_segment - service: xiaomi_miio.vacuum_clean_segment
data: target:
entity_id: vacuum.xiaomi_vacuum entity_id: vacuum.xiaomi_vacuum
data:
segments: [1,2] segments: [1,2]
``` ```
@ -1361,8 +1365,9 @@ automation:
condition: [] condition: []
action: action:
- service: xiaomi_miio.vacuum_clean_segment - service: xiaomi_miio.vacuum_clean_segment
data: target:
entity_id: vacuum.xiaomi_vacuum entity_id: vacuum.xiaomi_vacuum
data:
segments: 1 segments: 1
``` ```
@ -1411,8 +1416,9 @@ vacuum_kitchen:
alias: "Clean the kitchen" alias: "Clean the kitchen"
sequence: sequence:
- service: vacuum.send_command - service: vacuum.send_command
data: target:
entity_id: vacuum.xiaomi_vacuum_cleaner entity_id: vacuum.xiaomi_vacuum_cleaner
data:
command: app_segment_clean command: app_segment_clean
params: [18] params: [18]
``` ```
@ -1432,8 +1438,9 @@ reset_main_brush_left:
alias: "Reset hours for main brush replacement" alias: "Reset hours for main brush replacement"
sequence: sequence:
- service: vacuum.send_Command - service: vacuum.send_Command
data: target:
entity_id: vacuum.xiaomi_vacuum_cleaner entity_id: vacuum.xiaomi_vacuum_cleaner
data:
command: reset_consumable command: reset_consumable
params: ['main_brush_work_time'] params: ['main_brush_work_time']
``` ```
@ -1466,8 +1473,9 @@ vacuum_kitchen:
alias: "vacuum kitchen" alias: "vacuum kitchen"
sequence: sequence:
- service: vacuum.send_command - service: vacuum.send_command
data: target:
entity_id: "vacuum.xiaomi_vacuum_cleaner" entity_id: "vacuum.xiaomi_vacuum_cleaner"
data:
command: app_zoned_clean command: app_zoned_clean
params: [[23084,26282,27628,29727,1]] params: [[23084,26282,27628,29727,1]]
``` ```

View File

@ -116,15 +116,17 @@ script:
alias: "Radio Paradise Porch" alias: "Radio Paradise Porch"
sequence: sequence:
- service: media_player.turn_on - service: media_player.turn_on
data: target:
entity_id: media_player.living_room_stereo_zone_2 entity_id: media_player.living_room_stereo_zone_2
- service: media_player.volume_set - service: media_player.volume_set
data: target:
entity_id: media_player.living_room_stereo_zone_2 entity_id: media_player.living_room_stereo_zone_2
data:
volume_level: 0.48 volume_level: 0.48
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: media_player.living_room_stereo_zone_2 entity_id: media_player.living_room_stereo_zone_2
data:
media_content_type: "NET RADIO" media_content_type: "NET RADIO"
media_content_id: "Bookmarks>Internet>Radio Paradise" media_content_id: "Bookmarks>Internet>Radio Paradise"

View File

@ -68,7 +68,7 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl
- Silicon Labs EmberZNet based radios using the EZSP protocol (via the [bellows](https://github.com/zigpy/bellows) library for zigpy) - Silicon Labs EmberZNet based radios using the EZSP protocol (via the [bellows](https://github.com/zigpy/bellows) library for zigpy)
- [ITEAD Sonoff ZBBridge](https://www.itead.cc/smart-home/sonoff-zbbridge.html) (Note! This first have to be flashed with [Tasmota firmware and Silabs EmberZNet NCP EZSP UART Host firmware](https://www.digiblur.com/2020/07/how-to-use-sonoff-zigbee-bridge-with.html)) - [ITEAD Sonoff ZBBridge](https://www.itead.cc/smart-home/sonoff-zbbridge.html) (Note! This first have to be flashed with [Tasmota firmware and Silabs EmberZNet NCP EZSP UART Host firmware](https://www.digiblur.com/2020/07/how-to-use-sonoff-zigbee-bridge-with.html))
- [Nortek GoControl QuickStick Combo Model HUSBZB-1 (Z-Wave & Zigbee Ember 3581 USB Adapter)](https://www.nortekcontrol.com/products/2gig/husbzb-1-gocontrol-quickstick-combo/) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/walthowd/husbzb-firmware)) - [Nortek GoControl QuickStick Combo Model HUSBZB-1 (Z-Wave & Zigbee Ember 3581 USB Adapter)](https://www.nortekcontrol.com/products/2gig/husbzb-1-gocontrol-quickstick-combo/) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/walthowd/husbzb-firmware))
- [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility)) - [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html)/[POPP ZB-Stick](https://shop.zwave.eu/detail/index/sArticle/2496) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility))
- [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility)) - [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility))
- Bitron Video/Smabit BV AV2010/10 USB-Stick with Silicon Labs Ember 3587 - Bitron Video/Smabit BV AV2010/10 USB-Stick with Silicon Labs Ember 3587
- Telegesis ETRX357USB (Note! This first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware)) - Telegesis ETRX357USB (Note! This first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware))

View File

@ -88,12 +88,14 @@ automation:
at: "20:00:00" at: "20:00:00"
action: action:
- service: climate.set_hvac_mode - service: climate.set_hvac_mode
data: target:
entity_id: climate.remotec_zxt120_heating_1_id entity_id: climate.remotec_zxt120_heating_1_id
data:
hvac_mode: Heat hvac_mode: Heat
- service: climate.set_temperature - service: climate.set_temperature
data: target:
entity_id: climate.remotec_zxt120_heating_1_39 entity_id: climate.remotec_zxt120_heating_1_39
data:
temperature: 24 temperature: 24
``` ```
@ -107,8 +109,9 @@ automation:
at: "21:00:00" at: "21:00:00"
action: action:
- service: climate.set_hvac_mode - service: climate.set_hvac_mode
data: target:
entity_id: climate.remotec_zxt120_heating_1_id entity_id: climate.remotec_zxt120_heating_1_id
data:
hvac_mode: "Off" hvac_mode: "Off"
``` ```

View File

@ -41,7 +41,7 @@ automation:
{% else %} {% else %}
switch.turn_off switch.turn_off
{% endif %} {% endif %}
data: target:
entity_id: switch.{{ states('input_select.is') }} entity_id: switch.{{ states('input_select.is') }}
``` ```

View File

@ -105,7 +105,7 @@ script:
message: "The washing machine has finished its cycle, please empty it!" message: "The washing machine has finished its cycle, please empty it!"
- alias: "Living Room Lights Blue" - alias: "Living Room Lights Blue"
service: scene.turn_on service: scene.turn_on
data: target:
entity_id: scene.blue entity_id: scene.blue
``` ```

View File

@ -110,7 +110,7 @@ intent_script:
content: I have turned on the lights. content: I have turned on the lights.
action: action:
service: light.turn_on service: light.turn_on
data: target:
entity_id: light.kitchen entity_id: light.kitchen
conversation: conversation:

View File

@ -361,8 +361,9 @@ automation:
condition: [] condition: []
action: action:
- service: xiaomi_miio.vacuum_clean_zone - service: xiaomi_miio.vacuum_clean_zone
data: target:
entity_id: vacuum.xiaomi_vacuum entity_id: vacuum.xiaomi_vacuum
data:
repeats: "{{states('input_number.vacuum_passes')|int}}" repeats: "{{states('input_number.vacuum_passes')|int}}"
zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]] zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]]
``` ```

View File

@ -99,8 +99,9 @@ automation:
media_content_id: "{{ tags[trigger.event.data.tag_id].media_content_id }}" media_content_id: "{{ tags[trigger.event.data.tag_id].media_content_id }}"
media_content_type: "{{ tags[trigger.event.data.tag_id].media_content_type }}" media_content_type: "{{ tags[trigger.event.data.tag_id].media_content_type }}"
- service: media_player.play_media - service: media_player.play_media
data: target:
entity_id: "{{ media_player_entity_id }}" entity_id: "{{ media_player_entity_id }}"
data:
media_content_id: "{{ media_content_id }}" media_content_id: "{{ media_content_id }}"
media_content_type: "{{ media_content_type }}" media_content_type: "{{ media_content_type }}"
- delay: 2 # timeout before we allow processing next scan - delay: 2 # timeout before we allow processing next scan

View File

@ -958,8 +958,9 @@ script:
learn_tv_power: learn_tv_power:
sequence: sequence:
- service: remote.learn_command - service: remote.learn_command
data: target:
entity_id: remote.bedroom entity_id: remote.bedroom
data:
device: tv device: tv
command: power command: power
``` ```
@ -983,8 +984,9 @@ script:
send_tv_power: send_tv_power:
sequence: sequence:
- service: remote.send_command - service: remote.send_command
data: target:
entity_id: remote.bedroom entity_id: remote.bedroom
data:
command: b64:JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA= command: b64:JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=
``` ```
@ -995,8 +997,9 @@ script:
send_tv_power: send_tv_power:
sequence: sequence:
- service: remote.send_command - service: remote.send_command
data: target:
entity_id: remote.bedroom entity_id: remote.bedroom
data:
device: tv device: tv
command: power command: power
``` ```

View File

@ -0,0 +1,85 @@
---
title: "Community Highlights: 9th edition"
description: "Add-on for DSMR Reader and show the condition of your washing machine with a Laundry card"
date: 2021-02-18 00:00:00
date_formatted: "February 19, 2021"
author: Klaas Schoute
author_twitter: klaasnicolaas
categories: Community
og_image: /images/blog/2021-02-19-community-highlights/social.png
---
The 9th edition of the Home Assistant Community Highlights! Some interesting
things popped up around our community, we thought was worth sharing.
But before we move on to the highlights of this week, let's start with a
little hooray because yesterday both Pascal Vizeli and I had their birthday!
Hip hip hooray! 🎂🥳
./Klaas
O and would you like to keep track of your birthdays in Home Assistant? Then
try this custom integration of [Miicroo](https://github.com/Miicroo).
<object type="image/svg+xml" data="https://gh-card.dev/repos/Miicroo/ha-birthdays.svg?link_target=_blank"></object>
## Help each other with any question
Last week, we found a burning question on the [Home Assistant subreddit][reddit]
forum from [Horror_Fondant_7165](https://www.reddit.com/user/Horror_Fondant_7165/).
Some paint had gotten on his curtain and he just can't get the paint stain
out of his curtain.
Maybe we can give him some community love and help with his question? 😄
<blockquote class="reddit-card" data-card-created="1613656706"><a href="https://www.reddit.com/r/homeassistant/comments/lixarb/i_accidentally_got_some_paint_on_a_curtain_in_my/">I accidentally got some paint on a curtain in my house, its oil paint, how do I get it out without taking my curtain down?</a> from <a href="http://www.reddit.com/r/homeassistant">r/homeassistant</a></blockquote>
<script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script>
## DSMR Reader add-on
Good news for those who would like to get started with DSMR Reader!
[sanderdw](https://github.com/sanderdw) has made an add-on so that you can
easily use it with Home Assistant. Please note, the add-on is still in an __Alpha__ state.
<object type="image/svg+xml" data="https://gh-card.dev/repos/sanderdw/hassio-addons.svg?link_target=_blank"></object>
<a href="https://community.home-assistant.io/t/dsmr-reader-add-on-for-home-assistant/279087" target="_blank">
<img
src='/images/blog/2021-02-19-community-highlights/dsmr-reader.png'
alt="Screenshot from the DSMR Reader add-on"
style='border: 0;box-shadow: none;'
/>
</a>
## Laundry card
Would you like to display the state of your smart washing machine (such as an LG ThinQ)
in a fun way in Lovelace? Perhaps the example below could inspire you. You can find the
Lovelace YAML code [here](https://pastebin.com/S3uVcQHT).
<blockquote class="reddit-card" data-card-created="1613656949"><a href="https://www.reddit.com/r/homeassistant/comments/ll5ioi/took_some_trickery_but_my_laundry_card_is_done/">Took some trickery but my laundry card is done</a> from <a href="http://www.reddit.com/r/homeassistant">r/homeassistant</a></blockquote>
<script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script>
## Got a tip for the next edition?
Have you seen (or made) something awesome, interesting, unique, amazing,
inspirational, unusual or funny, using Home Assistant?
[Click here to send us your Community Highlight suggestion](/suggest-community-highlight).
Also, don't forget to share your creations with us via Social Media:
- Twitter it! Be sure to mention [@home_assistant][twitter]
- Share it on our [Facebook group][facebook-group]
- Post it to our [subreddit][reddit]
- Tag [@homeasssistant][instagram] on Instagram
- Or via chat, drop us a line in the [#lounge at Discord][chat]
See you next edition!
[chat]: https://www.home-assistant.io/join-chat
[facebook-group]: https://www.facebook.com/groups/HomeAssistant/
[instagram]: https://www.instagram.com/homeassistant/
[reddit]: https://www.reddit.com/r/homeassistant
[twitter]: https://www.twitter.com/home_assistant

View File

@ -578,31 +578,36 @@ og_image: /images/blue/blue_hero.jpg
<h1 class="sub-title">FAQs</h1> <h1 class="sub-title">FAQs</h1>
<div class="faq-list"> <div class="faq-list">
{% details %} {% details "I already run Home Assistant. Is this for me?" %}
- title: I already run Home Assistant. Is this for me?
content: |
If your Home Assistant installation has outgrown your Raspberry
Pi or if you want a well supported, dedicated system, Home Assistant Blue is
for you.
<br /><br />
Or if you are still looking for a present for friends and family.
- title: What is limited about the bundle? If your Home Assistant installation has outgrown your Raspberry
content: | Pi or if you want a well supported, dedicated system, Home Assistant Blue is
We have only created a limited amount of cases. Once they are sold out, for you.
we don't currently have plans to make more. <br /><br />
All other parts of the bundle will remain available for purchase. Or if you are still looking for a present for friends and family.
- title: I already own an ODROID-N2+. Do I run the same software?
content: |
Yes! Home Assistant Blue runs the exact same software as that you're
currently using and you're benefitting from all the improvements.
- title: Will Home Assistant drop support for the Raspberry Pi?
content: |
Nope! We are committed to keep supporting all platforms that are currently available.
{% enddetails %} {% enddetails %}
</div> {% details "What is limited about the bundle?" %}
We have only created a limited amount of cases. Once they are sold out,
we don't currently have plans to make more.
All other parts of the bundle will remain available for purchase.
{% enddetails %}
{% details "I already own an ODROID-N2+. Do I run the same software?" %}
Yes! Home Assistant Blue runs the exact same software as that you're
currently using and you're benefitting from all the improvements.
{% enddetails %}
{% details "Will Home Assistant drop support for the Raspberry Pi?" %}
Nope! We are committed to keep supporting all platforms that are currently available.
{% enddetails %}
</div>
<a class="blue3d" href="https://www.thingiverse.com/thing:4684826" target="_blank"> <a class="blue3d" href="https://www.thingiverse.com/thing:4684826" target="_blank">
<div class="material-card text blue3d-container"> <div class="material-card text blue3d-container">

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@ title: "Automating Home Assistant"
description: "A quick intro on getting your first automation going." description: "A quick intro on getting your first automation going."
--- ---
Once your devices are set up, it's time to put the cherry on the pie: automation. In this guide we're going to create a simple automation rule to **turn on the lights when the sun sets**. Once your devices are set up, it's time to put the cherry on the pie: automation. In this guide we're going to create a simple automation rule to **turn on the lights when the sun sets**. Of course, this assumes that you have set up an integration that provides a light at this point.
In the user interface, click Configuration in the sidebar, then click Automation. You will now see the automation screen from which you can manage all the automations in Home Assistant. In the user interface, click Configuration in the sidebar, then click Automation. You will now see the automation screen from which you can manage all the automations in Home Assistant.

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

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