mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-08 18:06:54 +00:00
Merge branch 'current' into next
This commit is contained in:
commit
28fd5114d6
@ -140,11 +140,11 @@ social:
|
|||||||
# Home Assistant release details
|
# Home Assistant release details
|
||||||
current_major_version: 0
|
current_major_version: 0
|
||||||
current_minor_version: 52
|
current_minor_version: 52
|
||||||
current_patch_version: 0
|
current_patch_version: 1
|
||||||
date_released: 2017-08-26
|
date_released: 2017-08-28
|
||||||
|
|
||||||
# Either # or the anchor link to latest release notes in the blog post.
|
# Either # or the anchor link to latest release notes in the blog post.
|
||||||
# Must be prefixed with a # and have double quotes around it.
|
# Must be prefixed with a # and have double quotes around it.
|
||||||
# Major release:
|
# Major release:
|
||||||
patch_version_notes: "#"
|
patch_version_notes: "#release-0521---august-28"
|
||||||
# Minor release (Example #release-0431---april-25):
|
# Minor release (Example #release-0431---april-25):
|
||||||
|
76
plugins/filters.rb
Normal file
76
plugins/filters.rb
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
module Jekyll
|
||||||
|
module AssetFilter
|
||||||
|
# Octopress filters
|
||||||
|
# Copyright (c) 2014 Brandon Mathis
|
||||||
|
|
||||||
|
# MIT License
|
||||||
|
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
# a copy of this software and associated documentation files (the
|
||||||
|
# "Software"), to deal in the Software without restriction, including
|
||||||
|
# without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
# permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
# the following conditions:
|
||||||
|
|
||||||
|
# The above copyright notice and this permission notice shall be
|
||||||
|
# included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
|
||||||
|
def site_url
|
||||||
|
'https://home-assistant.io'
|
||||||
|
end
|
||||||
|
|
||||||
|
# Prepend a url with the full site url
|
||||||
|
#
|
||||||
|
# input - a url
|
||||||
|
#
|
||||||
|
# Returns input with all urls expanded to include the full site url
|
||||||
|
# e.g. /images/awesome.gif => http://example.com/images/awesome.gif
|
||||||
|
#
|
||||||
|
def full_url(input)
|
||||||
|
expand_url(input, site_url)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Prepends input with a url fragment
|
||||||
|
#
|
||||||
|
# input - An absolute url, e.g. /images/awesome.gif
|
||||||
|
# url - The fragment to prepend the input, e.g. /blog
|
||||||
|
#
|
||||||
|
# Returns the modified url, e.g /blog
|
||||||
|
#
|
||||||
|
def expand_url(input, url=nil)
|
||||||
|
url ||= root
|
||||||
|
|
||||||
|
url = if input.start_with?("http", url)
|
||||||
|
input
|
||||||
|
else
|
||||||
|
File.join(url, input)
|
||||||
|
end
|
||||||
|
|
||||||
|
smart_slash(url)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Ensure a trailing slash if a url ends with a directory
|
||||||
|
def smart_slash(input)
|
||||||
|
if !(input =~ /\.\w+$/)
|
||||||
|
input = File.join(input, '/')
|
||||||
|
end
|
||||||
|
input
|
||||||
|
end
|
||||||
|
|
||||||
|
# Convert url input into a standard canonical url by expanding urls and
|
||||||
|
# removing url fragments ending with `index.[ext]`
|
||||||
|
def canonical_url(input)
|
||||||
|
full_url(input).sub(/index\.\w+$/i, '')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Liquid::Template.register_filter(Jekyll::AssetFilter)
|
@ -29,7 +29,7 @@ binary_sensor:
|
|||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **ports** array (*Required*): Array of used ports.
|
- **ports** array (*Required*): Array of used ports.
|
||||||
- **port: name** (*Required*): Port numbers and corresponding names.
|
- **port: name** (*Required*): Port numbers (BCM mode pin numbers) and corresponding names.
|
||||||
- **pull_mode** (*Optional*): The internal pull to use (UP or DOWN). Default is UP.
|
- **pull_mode** (*Optional*): The internal pull to use (UP or DOWN). Default is UP.
|
||||||
- **bouncetime** (*Optional*): The time in milliseconds for port debouncing. Default is 50ms.
|
- **bouncetime** (*Optional*): The time in milliseconds for port debouncing. Default is 50ms.
|
||||||
- **invert_logic** (*Optional*): If true, inverts the output logic to ACTIVE LOW. Default is false (ACTIVE HIGH).
|
- **invert_logic** (*Optional*): If true, inverts the output logic to ACTIVE LOW. Default is false (ACTIVE HIGH).
|
||||||
|
@ -98,19 +98,6 @@ binary_sensor:
|
|||||||
- sensor.kitchen_co_status
|
- sensor.kitchen_co_status
|
||||||
- sensor.wardrobe_co_status
|
- sensor.wardrobe_co_status
|
||||||
```
|
```
|
||||||
### {% linkable_title Change the icon %}
|
|
||||||
|
|
||||||
This example shows how to change the icon based on the day/night cycle.
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
sensor:
|
|
||||||
- platform: template
|
|
||||||
sensors:
|
|
||||||
day_night:
|
|
||||||
friendly_name: 'Day/Night'
|
|
||||||
value_template: {% raw %}'{% if is_state("sun.sun", "above_horizon") %}Day{% else %}Night{% endif %}'{% endraw %}
|
|
||||||
icon_template: {% raw %}'{% if is_state("sun.sun", "above_horizon") %}mdi:weather-sunny{% else %}mdi:weather-night{% endif %}'{% endraw %}
|
|
||||||
```
|
|
||||||
|
|
||||||
### {% linkable_title Washing Machine Running %}
|
### {% linkable_title Washing Machine Running %}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ cover:
|
|||||||
covers:
|
covers:
|
||||||
garage_door:
|
garage_door:
|
||||||
friendly_name: "Garage Door"
|
friendly_name: "Garage Door"
|
||||||
value_template: "{% raw %}{{is_state('sensor.garage_door > 0'}}{% endraw %}"
|
value_template: "{% raw %}'{{is_state('sensor.garage_door > 0'}}'{% endraw %}"
|
||||||
open_cover:
|
open_cover:
|
||||||
service: script.open_garage_door
|
service: script.open_garage_door
|
||||||
close_cover:
|
close_cover:
|
||||||
@ -63,12 +63,13 @@ In this section you will find some real life examples of how to use this cover.
|
|||||||
This example converts a garage door with a controllable switch and position sensor into a cover.
|
This example converts a garage door with a controllable switch and position sensor into a cover.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
{% raw %}
|
||||||
cover:
|
cover:
|
||||||
- platform: template
|
- platform: template
|
||||||
covers:
|
covers:
|
||||||
garage_door:
|
garage_door:
|
||||||
friendly_name: 'Garage Door'
|
friendly_name: 'Garage Door'
|
||||||
value_template: "{% raw %}{{ sensor.garage_door }}{% endraw %}"
|
value_template: "{{ sensor.garage_door }}"
|
||||||
open_cover:
|
open_cover:
|
||||||
service: switch.turn_on
|
service: switch.turn_on
|
||||||
entity_id: switch.garage_door
|
entity_id: switch.garage_door
|
||||||
@ -78,6 +79,109 @@ cover:
|
|||||||
stop_cover:
|
stop_cover:
|
||||||
service: switch.turn_on
|
service: switch.turn_on
|
||||||
entity_id: switch.garage_door
|
entity_id: switch.garage_door
|
||||||
icon_template: "{% raw %}{% if not is_state('sensor.garage_door', 'on') %}mdi:garage-open{% else %}mdi:garage{% endif %}{% endraw %}"
|
icon_template: "{% if not is_state('sensor.garage_door', 'on') %}mdi:garage-open{% else %}mdi:garage{% endif %}"{% endraw %}
|
||||||
|
```
|
||||||
|
|
||||||
|
### {% linkable_title Multi Covers %}
|
||||||
|
|
||||||
|
This example allows you to control two or more covers at once.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
{% raw %}
|
||||||
|
homeassistant:
|
||||||
|
customize:
|
||||||
|
all_covers:
|
||||||
|
assume_state: true
|
||||||
|
|
||||||
|
cover:
|
||||||
|
- platform: template
|
||||||
|
covers:
|
||||||
|
all_covers:
|
||||||
|
friendly_name: 'All Covers'
|
||||||
|
open_cover:
|
||||||
|
service: script.cover_all_open
|
||||||
|
close_cover:
|
||||||
|
service: script.cover_all_close
|
||||||
|
stop_cover:
|
||||||
|
service: script.cover_all_stop
|
||||||
|
set_cover_position:
|
||||||
|
service: script.cover_all_set_position
|
||||||
|
data_template:
|
||||||
|
position: "{{ position }}"
|
||||||
|
value_template: >
|
||||||
|
{% if is_state('sensor.all_covers', 'open') %}
|
||||||
|
open
|
||||||
|
{% else %}
|
||||||
|
closed
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
icon_template: >
|
||||||
|
{% if is_state('sensor.all_covers', 'open') %}
|
||||||
|
mdi:window-open
|
||||||
|
{% else %}
|
||||||
|
mdi:window-closed
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
entity_id:
|
||||||
|
- cover.bedroom
|
||||||
|
- cover.livingroom
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: template
|
||||||
|
sensors:
|
||||||
|
all_covers:
|
||||||
|
value_template: >
|
||||||
|
{% if is_state('cover.bedroom', 'open') %}
|
||||||
|
open
|
||||||
|
{% elif is_state('cover.livingroom', 'open') %}
|
||||||
|
open
|
||||||
|
{% else %}
|
||||||
|
closed
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
entity_id:
|
||||||
|
- cover.bedroom
|
||||||
|
- cover.livingroom
|
||||||
|
|
||||||
|
script:
|
||||||
|
cover_all_open:
|
||||||
|
sequence:
|
||||||
|
- service: cover.open_cover
|
||||||
|
entity_id: cover.bedroom
|
||||||
|
- service: cover.open_cover
|
||||||
|
entity_id: cover.livingroom
|
||||||
|
cover_all_stop:
|
||||||
|
sequence:
|
||||||
|
- service: cover.stop_cover
|
||||||
|
entity_id: cover.bedroom
|
||||||
|
- service: cover.stop_cover
|
||||||
|
entity_id: cover.livingroom
|
||||||
|
cover_all_close:
|
||||||
|
sequence:
|
||||||
|
- service: cover.close_cover
|
||||||
|
entity_id: cover.bedroom
|
||||||
|
- service: cover.close_cover
|
||||||
|
entity_id: cover.livingroom
|
||||||
|
cover_all_set_position:
|
||||||
|
sequence:
|
||||||
|
- service: cover.set_cover_position
|
||||||
|
entity_id: cover.bedroom
|
||||||
|
data_template:
|
||||||
|
position: "{{ position }}"
|
||||||
|
- service: cover.set_cover_position
|
||||||
|
entity_id: cover.livingroom
|
||||||
|
data_template:
|
||||||
|
position: "{{ position }}"
|
||||||
|
|
||||||
|
automation:
|
||||||
|
- alias: 'Close covers at night'
|
||||||
|
trigger:
|
||||||
|
- platform: sun
|
||||||
|
event: sunset
|
||||||
|
offset: '+00:30:00'
|
||||||
|
action:
|
||||||
|
service: cover.set_cover_position
|
||||||
|
entity_id: cover.all_covers
|
||||||
|
data_template:
|
||||||
|
position: 25{% endraw %}
|
||||||
```
|
```
|
||||||
|
@ -58,7 +58,7 @@ Configuration variables:
|
|||||||
|
|
||||||
- **view** (*Optional*): If yes then the entry will be shown as a view (tab) at the top.
|
- **view** (*Optional*): If yes then the entry will be shown as a view (tab) at the top.
|
||||||
- **name** (*Optional*): Name of the group.
|
- **name** (*Optional*): Name of the group.
|
||||||
- **icon** (*Optional*): If the group is a view, this icon will show at the top in the frontend instead of the name. If it's not a view, then the icon shows when this group is used in another group.
|
- **icon** (*Optional*): If the group is a view, this icon will show at the top in the frontend instead of the name. If the group is a view and both name and icon have been specified, the icon will appear at the top of the fronted and the name will be displayed as the mouse-over text. If it's not a view, then the icon shows when this group is used in another group.
|
||||||
- **control** (*Optional*): Set value to `hidden`. If hidden then the group switch will be hidden.
|
- **control** (*Optional*): Set value to `hidden`. If hidden then the group switch will be hidden.
|
||||||
- **entities** (*Required*): array or comma delimited string, list of entities to group.
|
- **entities** (*Required*): array or comma delimited string, list of entities to group.
|
||||||
|
|
||||||
|
@ -13,6 +13,8 @@ ha_category: Automation
|
|||||||
|
|
||||||
The `input_boolean` component allows the user to define boolean values that can be controlled via the frontend and can be used within conditions of automation. This can for example be used to disable or enable certain automations.
|
The `input_boolean` component allows the user to define boolean values that can be controlled via the frontend and can be used within conditions of automation. This can for example be used to disable or enable certain automations.
|
||||||
|
|
||||||
|
To enable input booleans in your installation, add the following lines to your `configuration.yaml`:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
input_boolean:
|
input_boolean:
|
||||||
@ -25,9 +27,9 @@ input_boolean:
|
|||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **[alias]** (*Required*): Alias for the input.
|
- **[alias]** (*Required*): Alias for the input.
|
||||||
- **name** (*Optional*): Friendly name of the input.
|
- **name** (*Optional*): Friendly name of the input.
|
||||||
- **initial** (*Optional*): Initial value when Home Assistant starts.
|
- **initial** (*Optional*): Initial value when Home Assistant starts. Defaults to `False`.
|
||||||
- **icon** (*Optional*): Icon for entry.
|
- **icon** (*Optional*): Icon for entry.
|
||||||
|
|
||||||
Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
|
Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ ha_release: 0.13
|
|||||||
|
|
||||||
The `input_select` component allows the user to define a list of values that can be selected via the frontend and can be used within conditions of automation. When a user selects a new item, a state transition event is generated. This state event can be used in an `automation` trigger.
|
The `input_select` component allows the user to define a list of values that can be selected via the frontend and can be used within conditions of automation. When a user selects a new item, a state transition event is generated. This state event can be used in an `automation` trigger.
|
||||||
|
|
||||||
To enable this platform, add the following lines to your `configuration.yaml`:
|
To enable this platform in your installation, add the following lines to your `configuration.yaml`:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -35,11 +35,11 @@ input_select:
|
|||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **[alias]** (*Required*): Alias for the input.
|
- **[alias]** array (*Required*): Alias for the input. Multiple entries are allowed..
|
||||||
- **name** (*Optional*): Friendly name of the input.
|
- **name** (*Optional*): Friendly name of the input.
|
||||||
- **options** array: List of options to choose from
|
- **options** array (*Required*): List of options to choose from.
|
||||||
- **initial** (*Optional*): Initial value when Home Assistant starts.
|
- **initial** (*Optional*): Initial value when Home Assistant starts.
|
||||||
- **icon** (*Optional*): Icon for entry.
|
- **icon** (*Optional*): Icon for entry.
|
||||||
|
|
||||||
Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
|
Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
|
||||||
|
|
||||||
@ -71,6 +71,22 @@ automation:
|
|||||||
option: Paulus
|
option: Paulus
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To dynamically set the `input_select` options you can call `input_select.set_options`. The following example can be used in an automation rule:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
automation:
|
||||||
|
- alias: example automation
|
||||||
|
trigger:
|
||||||
|
platform: event
|
||||||
|
event_type: MY_CUSTOM_EVENT
|
||||||
|
action:
|
||||||
|
- service: input_select.set_options
|
||||||
|
data:
|
||||||
|
entity_id: input_select.who_cooks
|
||||||
|
options: ["Item A", "Item B", "Item C"]
|
||||||
|
```
|
||||||
|
|
||||||
### {% linkable_title Scenes %}
|
### {% linkable_title Scenes %}
|
||||||
|
|
||||||
To specify a target option in a [Scene](/components/scene/) you have to specify the target as `option` attribute:
|
To specify a target option in a [Scene](/components/scene/) you have to specify the target as `option` attribute:
|
||||||
|
@ -14,6 +14,8 @@ ha_release: 0.16
|
|||||||
|
|
||||||
The `input_slider` component allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. Changes to the slider generate state events. These state events can be utilized as `automation` triggers as well.
|
The `input_slider` component allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. Changes to the slider generate state events. These state events can be utilized as `automation` triggers as well.
|
||||||
|
|
||||||
|
To enable this input sliders in your installation, add the following lines to your `configuration.yaml`:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
input_slider:
|
input_slider:
|
||||||
@ -27,12 +29,12 @@ input_slider:
|
|||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **[alias]** (*Required*): Alias for the slider input.
|
- **[alias]** (*Required*): Alias for the slider input. Multiple entries are allowed.
|
||||||
- **min** (*Required*): Minimum value for the slider.
|
- **min** (*Required*): Minimum value for the slider.
|
||||||
- **max** (*Required*): Maximum value for the slider.
|
- **max** (*Required*): Maximum value for the slider.
|
||||||
- **name** (*Optional*): Friendly name of the slider input.
|
- **name** (*Optional*): Friendly name of the slider input.
|
||||||
- **initial** (*Optional*): Initial value when Home Assistant starts.
|
- **initial** (*Optional*): Initial value when Home Assistant starts. Defaults to 0.
|
||||||
- **step** (*Optional*): Step value for the slider.
|
- **step** (*Optional*): Step value for the slider. Defaults to 1.
|
||||||
|
|
||||||
## {% linkable_title Automation Examples %}
|
## {% linkable_title Automation Examples %}
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ A device is created by creating a directory, with the name for the device, under
|
|||||||
* *HA.lock* will create a lock
|
* *HA.lock* will create a lock
|
||||||
* *HA.switch* will create a switch
|
* *HA.switch* will create a switch
|
||||||
|
|
||||||
A program, named *status*, is required under the program device directory. A program, named *actions*, is required for all program devices except for binary_sensor. Any other programs in these device directories will be ignored.
|
A program, named *status*, is required under the program device directory. A program, named *actions*, is required for all program devices except for binary_sensor. Any other programs in these device directories will be ignored. The *status* program requires that you create a variable with the name of your choice. This variable will store the actual status of the new device and will be updated by the *action* program.
|
||||||
|
|
||||||
<p class='img'>
|
<p class='img'>
|
||||||
<img src='{{site_root}}/images/isy994/isy994_CoverExample.png' />
|
<img src='{{site_root}}/images/isy994/isy994_CoverExample.png' />
|
||||||
|
@ -9,7 +9,7 @@ sharing: true
|
|||||||
footer: true
|
footer: true
|
||||||
logo: bluesound.png
|
logo: bluesound.png
|
||||||
ha_category: Media Player
|
ha_category: Media Player
|
||||||
featured: true
|
featured: false
|
||||||
ha_release: 0.51
|
ha_release: 0.51
|
||||||
ha_iot_class: "Local Polling"
|
ha_iot_class: "Local Polling"
|
||||||
---
|
---
|
||||||
|
@ -15,7 +15,7 @@ ha_iot_class: "Local Polling"
|
|||||||
|
|
||||||
The `braviatv` platform allows you to control a [Sony Bravia TV](http://www.sony.com).
|
The `braviatv` platform allows you to control a [Sony Bravia TV](http://www.sony.com).
|
||||||
|
|
||||||
Almost all [Sony Bravia TV 2013 and newer](http://info.tvsideview.sony.net/en_ww/home_device.html#bravia) are supported.
|
Almost all [Sony Bravia TV 2013 and newer](http://info.tvsideview.sony.net/en_ww/home_device.html#bravia) are supported. A more generic method for older TVs connected to a Raspberry Pi with HDMI-CEC is explained further below.
|
||||||
|
|
||||||
You will need to configure your TV to allow the Home Assistant for remote usage. To do that, ensure that your TV is turned on. Open the configuration popup on Home Assistant and enter a random PIN (for example 0000). After that, the TV will show you a PIN and Home Assistant will allow you to re-enter that PIN. Enter the PIN shown on your TV and Home Assistant will be able to control your Sony Bravia TV.
|
You will need to configure your TV to allow the Home Assistant for remote usage. To do that, ensure that your TV is turned on. Open the configuration popup on Home Assistant and enter a random PIN (for example 0000). After that, the TV will show you a PIN and Home Assistant will allow you to re-enter that PIN. Enter the PIN shown on your TV and Home Assistant will be able to control your Sony Bravia TV.
|
||||||
|
|
||||||
@ -33,8 +33,43 @@ Configuration variables:
|
|||||||
- **host** (*Required*): The IP of the Sony Bravia TV, eg. 192.168.0.10
|
- **host** (*Required*): The IP of the Sony Bravia TV, eg. 192.168.0.10
|
||||||
- **name** (*Optional*): The name to use on the frontend.
|
- **name** (*Optional*): The name to use on the frontend.
|
||||||
|
|
||||||
You are also able to configure the TV manually by placing a `bravia.conf` file in your `.homeassistant` config directory with the following information - please update the details to match your setup:
|
You are also able to configure the TV manually by placing a `bravia.conf` file in your [configuration directory](/docs/configuration/) with the following information - please update the details to match your setup:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{"192.168.0.10": {"pin": "7745", "mac": "ac:1e:0a:e1:0c:01"}}
|
{"192.168.0.10": {"pin": "7745", "mac": "ac:1e:0a:e1:0c:01"}}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## {% linkable_title For TVs older than 2013 %}
|
||||||
|
|
||||||
|
Users of TVs older than 2013 have another option for controlling their TV via Home Assistant.
|
||||||
|
|
||||||
|
### {% linkable_title Using HDMI-CEC %}
|
||||||
|
|
||||||
|
If you have a Raspberry Pi connected to your TV:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
switch:
|
||||||
|
- platform: command_line
|
||||||
|
switches:
|
||||||
|
tv_rpi:
|
||||||
|
command_on: ssh root@[IP] "echo 'on 0' | cec-client -s"
|
||||||
|
command_off: ssh root@[IP] "echo 'standby 0' | cec-client -s"
|
||||||
|
command_state: ssh root@[IP] "echo 'pow 0' | cec-client -s |grep 'power status:'"
|
||||||
|
value_template: {% raw %}'{{ value == "power status: on" }}{% endraw %}'
|
||||||
|
```
|
||||||
|
|
||||||
|
Using `cec-client` is a great method to turn your TV off/on, however the trade off is if you're using Kodi, it will no longer be able to control your TV using the TV Remote.
|
||||||
|
|
||||||
|
This is because only one process can control the CEC functionality within the Raspberry Pi at a time and running the above commands terminates the functionality inside libCEC within Kodi. Kodi must be restarted for TV remove functionality to work again.
|
||||||
|
|
||||||
|
**Workaround:**
|
||||||
|
|
||||||
|
If your desire is only to turn on your TV, the following "workaround" may be desirable:
|
||||||
|
|
||||||
|
Change the 'on' command to a restart for Kodi. This doesn't reboot the Kodi device.
|
||||||
|
|
||||||
|
Restarting Kodi will trigger a HDMI-CEC event to bring the TV out of standby. The following can replace your TV 'on' command.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
command_on: ssh root@[IP] "systemctl restart kodi"
|
||||||
|
```
|
||||||
|
@ -27,6 +27,7 @@ Supported devices:
|
|||||||
- Marantz M-CR603
|
- Marantz M-CR603
|
||||||
- Marantz M-RC610
|
- Marantz M-RC610
|
||||||
- Marantz SR5008
|
- Marantz SR5008
|
||||||
|
- Marantz SR6007 - SR6010
|
||||||
- Marantz NR1604
|
- Marantz NR1604
|
||||||
- Other Denon AVR receivers (untested)
|
- Other Denon AVR receivers (untested)
|
||||||
- Marantz receivers (experimental)
|
- Marantz receivers (experimental)
|
||||||
@ -44,6 +45,7 @@ media_player:
|
|||||||
host: IP_ADDRESS
|
host: IP_ADDRESS
|
||||||
name: NAME
|
name: NAME
|
||||||
show_all_sources: True / False
|
show_all_sources: True / False
|
||||||
|
timeout: POSITIVE INTEGER
|
||||||
zones:
|
zones:
|
||||||
- zone: Zone2 / Zone3
|
- zone: Zone2 / Zone3
|
||||||
name: NAME
|
name: NAME
|
||||||
@ -54,6 +56,7 @@ Configuration variables:
|
|||||||
- **host** (*Optional*): IP address of the device. Example: 192.168.1.32. If not set, auto discovery is used.
|
- **host** (*Optional*): IP address of the device. Example: 192.168.1.32. If not set, auto discovery is used.
|
||||||
- **name** (*Optional*): Name of the device. If not set, friendlyName of receiver is used.
|
- **name** (*Optional*): Name of the device. If not set, friendlyName of receiver is used.
|
||||||
- **show_all_sources** (*Optional*): If True all sources are displayed in sources list even if they are marked as deleted in the receiver. If False deleted sources are not displayed (default). Some receivers have a bug that marks all sources as deleted in the interface. In this case this option could help.
|
- **show_all_sources** (*Optional*): If True all sources are displayed in sources list even if they are marked as deleted in the receiver. If False deleted sources are not displayed (default). Some receivers have a bug that marks all sources as deleted in the interface. In this case this option could help.
|
||||||
|
- **timeout** (*Optional*): Timeout for HTTP requests to the receiver. Defaults to 2 seconds if not provided.
|
||||||
- **zones** (*Optional*): List of additional zones to be activated. They are displayed as additional media players with the same functionality Main Zone of the device supports
|
- **zones** (*Optional*): List of additional zones to be activated. They are displayed as additional media players with the same functionality Main Zone of the device supports
|
||||||
- **zone**: Zone which should be activated. Valid options are Zone2 and Zone3
|
- **zone**: Zone which should be activated. Valid options are Zone2 and Zone3
|
||||||
- **name** (*Optional*): Name of the zone. If not set the name of the main device + zone as suffix is taken.
|
- **name** (*Optional*): Name of the zone. If not set the name of the main device + zone as suffix is taken.
|
||||||
|
@ -63,3 +63,5 @@ Currently only supports Spotify.
|
|||||||
| ---------------------- | -------- | ---------------------------------------------------- |
|
| ---------------------- | -------- | ---------------------------------------------------- |
|
||||||
| `entity_id` | no | Target a specific media player. For example `media_player.spotify`|
|
| `entity_id` | no | Target a specific media player. For example `media_player.spotify`|
|
||||||
| `shuffle` | no | `true`/`false` for enabling/disabling shuffle |
|
| `shuffle` | no | `true`/`false` for enabling/disabling shuffle |
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,6 +61,7 @@ Currently tested but not working models:
|
|||||||
- J5200 - Unable to see state and unable to control
|
- J5200 - Unable to see state and unable to control
|
||||||
- JU7000 - Unable to see state and unable to control (but port 8001 *is* open)
|
- JU7000 - Unable to see state and unable to control (but port 8001 *is* open)
|
||||||
- JU7500 - Unable to see state and unable to control
|
- JU7500 - Unable to see state and unable to control
|
||||||
|
- JS9000 - State is always "on" and unable to control (but port 8001 *is* open)
|
||||||
- JS9500 - State is always "on" and unable to control (but port 8001 *is* open)
|
- JS9500 - State is always "on" and unable to control (but port 8001 *is* open)
|
||||||
|
|
||||||
If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_components/media_player.samsungtv.markdown).
|
If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_components/media_player.samsungtv.markdown).
|
||||||
|
@ -14,9 +14,9 @@ ha_release: "0.40"
|
|||||||
|
|
||||||
The `ciscospark` notification platform allows you to deliver notifications from Home Assistant to [Cisco Spark](https://ciscospark.com/).
|
The `ciscospark` notification platform allows you to deliver notifications from Home Assistant to [Cisco Spark](https://ciscospark.com/).
|
||||||
|
|
||||||
To use this notification platform you need to get a developer token. To obtain a token visit [Spark for Devleopers](https://developer.ciscospark.com/index.html)
|
To use this notification platform you need to get a developer token. To obtain a token visit [Spark for Developers](https://developer.ciscospark.com/index.html)
|
||||||
|
|
||||||
At this time you also need to specify the `Cisco Spark` `roomid`. The `roomid` can also be found at [Spark for Devleopers](https://developer.ciscospark.com/index.html). Just look in the Doumentation under Rooms.
|
At this time you also need to specify the `Cisco Spark` `roomid`. The `roomid` can also be found at [Spark for Developers](https://developer.ciscospark.com/index.html). Just look in the Doumentation under Rooms.
|
||||||
|
|
||||||
To enable the Cisco Spark notification in your installation, add the following to your `configuration.yaml` file:
|
To enable the Cisco Spark notification in your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ action:
|
|||||||
|
|
||||||
### {% linkable_title Test if it works %}
|
### {% linkable_title Test if it works %}
|
||||||
|
|
||||||
A simple way to test if you have set up your notify platform correctly is to use <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **Services** from the **Developer Tools**. Choose your service (*notify/xyz*) from the list of **Available services:** and enter something like the sample below into the **Service Data** field and hit **CALL SERVICE**.
|
A simple way to test if you have set up your notify platform correctly, is to use <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **Services** from the **Developer Tools**. Choose your service from the dropdown menu **Service**, enter something like the sample below into the **Service Data** field, and hit **CALL SERVICE**.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -84,6 +84,21 @@ action:
|
|||||||
|
|
||||||
- **file** (*Required*): File to send with Pushbullet.
|
- **file** (*Required*): File to send with Pushbullet.
|
||||||
|
|
||||||
|
|
||||||
|
### {% linkable_title File URL support %}
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
action:
|
||||||
|
service: notify.NOTIFIER_NAME
|
||||||
|
data:
|
||||||
|
title: Send file
|
||||||
|
message: This is a file URL
|
||||||
|
data:
|
||||||
|
file_url: https://cdn.pixabay.com/photo/2014/06/03/19/38/test-361512_960_720.jpg
|
||||||
|
```
|
||||||
|
|
||||||
|
- **file_url** (*Required*): File to send with Pushbullet.
|
||||||
|
|
||||||
<p class='note'>
|
<p class='note'>
|
||||||
Don't forget to [whitelist external directories](/docs/configuration/basic/), so Home Assistant has access to them.
|
Don't forget to [whitelist external directories](/docs/configuration/basic/), so Home Assistant has access to them.
|
||||||
</p>
|
</p>
|
||||||
|
@ -13,7 +13,7 @@ ha_release: 0.12
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
The `twitter` platform uses [Twitter](https://twitter.com) to delivery notifications from Home Assistant.
|
The `twitter` platform uses [Twitter](https://twitter.com) to deliver notifications from Home Assistant.
|
||||||
|
|
||||||
Go to [Twitter Apps](https://apps.twitter.com/app/new) and create an application. Visit "Keys and Access Tokens" of the application to get the details ("Consumer Key", "Consumer Secret", "Access Token" and "Access Token Secret" which needs to be generated).
|
Go to [Twitter Apps](https://apps.twitter.com/app/new) and create an application. Visit "Keys and Access Tokens" of the application to get the details ("Consumer Key", "Consumer Secret", "Access Token" and "Access Token Secret" which needs to be generated).
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "RSS feed template"
|
title: "RSS feed template"
|
||||||
description: "Instructions how to setup an RSS feed for sensor information and other."
|
description: "Use this component to generate RSS feeds showing your latest data."
|
||||||
date: 2017-04-11 20:42
|
date: 2017-04-11 20:42
|
||||||
sidebar: true
|
sidebar: true
|
||||||
comments: false
|
comments: false
|
||||||
@ -19,9 +19,11 @@ For example, on Android, the app "Simple RSS Widget" can be used to display temp
|
|||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yml entry
|
# Example configuration.yml entry
|
||||||
rss_feed_template:
|
rss_feed_template:
|
||||||
|
# Accessible on <home assistant url>/api/rss_template/garden
|
||||||
|
# Example: https://localhost:8123/api/rss_template/garden
|
||||||
garden:
|
garden:
|
||||||
requires_api_password: False
|
requires_api_password: False
|
||||||
title: "Garden {% raw %}{{ as_timestamp(now())|timestamp_custom('%H:%m', True) }}{% endraw %}"
|
title: "Garden {% raw %}{{ as_timestamp(now())|timestamp_custom('%H:%M', True) }}{% endraw %}"
|
||||||
items:
|
items:
|
||||||
- title: "Outside temperature"
|
- title: "Outside temperature"
|
||||||
description: "{% raw %}{% if is_state('sensor.temp_outside','unknown') %}---{% else %}{{states.sensor.temp_outside.state}} °C{% endif %}{% endraw %}"
|
description: "{% raw %}{% if is_state('sensor.temp_outside','unknown') %}---{% else %}{{states.sensor.temp_outside.state}} °C{% endif %}{% endraw %}"
|
||||||
|
@ -56,7 +56,7 @@ sensor:
|
|||||||
command: "cat /home/homeassistant/.homeassistant/.HA_VERSION"
|
command: "cat /home/homeassistant/.homeassistant/.HA_VERSION"
|
||||||
```
|
```
|
||||||
|
|
||||||
You might think that a [`rest` sensor](/components/sensor.rest/) could work to but it will not as Home Assistant is not ready when the sensor get initialized.
|
You might think that a [`rest` sensor](/components/sensor.rest/) could work, too, but it will not as Home Assistant is not ready when the sensor get initialized.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
sensor:
|
sensor:
|
||||||
|
@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling"
|
|||||||
---
|
---
|
||||||
|
|
||||||
The `usps` platform allows one to track deliveries and inbound mail from the [US Postal Service (USPS)](https://www.usps.com/).
|
The `usps` platform allows one to track deliveries and inbound mail from the [US Postal Service (USPS)](https://www.usps.com/).
|
||||||
In addition to having a USPS account, you will need to complete the "Opt-In" process by clicking "Get Started Now" on [this page](https://my.usps.com/mobileWeb/pages/intro/start.action). You must also "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see inbound mail.
|
In addition to having a USPS account, you will need to complete the "Opt-In" process for packages by clicking "Get Started Now" on [this page](https://my.usps.com/mobileWeb/pages/intro/start.action). You must also "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see inbound mail.
|
||||||
|
|
||||||
To enable this component, add the following lines to your `configuration.yaml`:
|
To enable this component, add the following lines to your `configuration.yaml`:
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ The `xiaomi` vacuum platform allows you to control the state of your [Xiaomi Mi
|
|||||||
|
|
||||||
Current supported features are `turn_on`, `pause`, `stop`, `return_to_home`, `turn_off` (stops goes to dock), `locate`, `clean_spot`, `set_fanspeed` and even remote control your robot.
|
Current supported features are `turn_on`, `pause`, `stop`, `return_to_home`, `turn_off` (stops goes to dock), `locate`, `clean_spot`, `set_fanspeed` and even remote control your robot.
|
||||||
|
|
||||||
Please follow the instructions on [Retrieving the Access Token](/xiaomi/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
|
Please follow the instructions on [Retrieving the Access Token](/components/xiaomi/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
|
||||||
|
|
||||||
To add a vacuum to your installation, add the following to your `configuration.yaml` file:
|
To add a vacuum to your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
@ -42,4 +42,4 @@ Configuration variables:
|
|||||||
- **usb_path** (*Required*): Path to the serial device for the radio.
|
- **usb_path** (*Required*): Path to the serial device for the radio.
|
||||||
- **database_path** (*Required*): Path to the database which will keep persistent network data.
|
- **database_path** (*Required*): Path to the database which will keep persistent network data.
|
||||||
|
|
||||||
To add new devices to the network, call the `permit` service on the `zha` domain, and then follow the device instructions for doing a scan or factory reset. In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: https://github.com/vanviegen/hue-thief
|
To add new devices to the network, call the `permit` service on the `zha` domain, and then follow the device instructions for doing a scan or factory reset. In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: [https://github.com/vanviegen/hue-thief/](https://github.com/vanviegen/hue-thief/)
|
||||||
|
@ -10,7 +10,7 @@ footer: true
|
|||||||
ha_category: Automation Examples
|
ha_category: Automation Examples
|
||||||
---
|
---
|
||||||
|
|
||||||
This requires a [Kodi](/components/mediaplayer.kodi/) media player, and consists of commands that perform queries in the Kodi library, and a selection box (`input_select`) that shows the available options. By clicking the commands, the selection box is updated, and when selecting an option, Kodi plays the media.
|
This requires a [Kodi](/components/media_player.kodi/) media player, and consists of commands that perform queries in the Kodi library, and a selection box (`input_select`) that shows the available options. By clicking the commands, the selection box is updated, and when selecting an option, Kodi plays the media.
|
||||||
|
|
||||||
Option filling is done in an [AppDaemon](https://home-assistant.io/docs/ecosystem/appdaemon/tutorial/) app, which listens for events that are triggered with the results of the Kodi JSONRPC API queries when scripts run. This application also listens to the selection box and calls the play media service with the corresponding parameters.
|
Option filling is done in an [AppDaemon](https://home-assistant.io/docs/ecosystem/appdaemon/tutorial/) app, which listens for events that are triggered with the results of the Kodi JSONRPC API queries when scripts run. This application also listens to the selection box and calls the play media service with the corresponding parameters.
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ automation:
|
|||||||
|
|
||||||
#### {% linkable_title Natural wake up light %}
|
#### {% linkable_title Natural wake up light %}
|
||||||
|
|
||||||
_Note, Philips Hue is currently the only light platform that support transitions._
|
_Note, Philips Hue and LIFX are currently the only light platforms that support transitions._
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
automation:
|
automation:
|
||||||
|
12
source/_cookbook/configuration_yaml_by_vasiley.markdown
Normal file
12
source/_cookbook/configuration_yaml_by_vasiley.markdown
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Configuration.yaml by Vasiley"
|
||||||
|
description: ""
|
||||||
|
date: 2017-09-04 13:50
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
ha_category: Example configuration.yaml
|
||||||
|
ha_external_link: https://github.com/Vasiley/Home-Assistant-Main
|
||||||
|
---
|
163
source/_cookbook/dim_and_brighten_lights.markdown
Normal file
163
source/_cookbook/dim_and_brighten_lights.markdown
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Dim (and brighten) lights via a remote"
|
||||||
|
description: "The scripts and automations to allow you to use a remote to dim and brighten a light"
|
||||||
|
date: 2017-09-06 18:30
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
ha_category: Automation Examples
|
||||||
|
---
|
||||||
|
|
||||||
|
This requires both a dimmable light, and a Z-Wave remote control that sends one scene when a button is held, and another when released. This ensures that the scripts (which follow) are stopped, avoiding the risks of a script that never ends.
|
||||||
|
|
||||||
|
In the following automation, replace `zwave.YOUR_REMOTE` with the actual entity ID of your controller. For the controller this was written for scene ID 13 was sent when the up button was held, and 15 when released. Similarly, scene 14 when the down button was held, and 16 when released. You'll need to use the scene IDs that are sent by your remote if different.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
automation:
|
||||||
|
|
||||||
|
- alias: 'Make the lights go bright'
|
||||||
|
initial_state: 'on'
|
||||||
|
trigger:
|
||||||
|
- platform: event
|
||||||
|
event_type: zwave.scene_activated
|
||||||
|
event_data:
|
||||||
|
scene_id: 13
|
||||||
|
entity_id: zwave.YOUR_REMOTE
|
||||||
|
action:
|
||||||
|
- service: script.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: script.light_bright
|
||||||
|
|
||||||
|
- alias: 'Stop the bright just there'
|
||||||
|
initial_state: 'on'
|
||||||
|
trigger:
|
||||||
|
- platform: event
|
||||||
|
event_type: zwave.scene_activated
|
||||||
|
event_data:
|
||||||
|
scene_id: 15
|
||||||
|
entity_id: zwave.YOUR_REMOTE
|
||||||
|
action:
|
||||||
|
- service: script.turn_off
|
||||||
|
data_template:
|
||||||
|
entity_id: script.light_bright
|
||||||
|
- service: script.turn_off
|
||||||
|
data:
|
||||||
|
entity_id: script.light_bright_pause
|
||||||
|
|
||||||
|
- alias: 'Make the lights go dim'
|
||||||
|
initial_state: 'on'
|
||||||
|
trigger:
|
||||||
|
- platform: event
|
||||||
|
event_type: zwave.scene_activated
|
||||||
|
event_data:
|
||||||
|
scene_id: 14
|
||||||
|
entity_id: zwave.YOUR_REMOTE
|
||||||
|
action:
|
||||||
|
- service: script.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: script.light_dim
|
||||||
|
|
||||||
|
- alias: 'Stop the dim just there'
|
||||||
|
initial_state: 'on'
|
||||||
|
trigger:
|
||||||
|
- platform: event
|
||||||
|
event_type: zwave.scene_activated
|
||||||
|
event_data:
|
||||||
|
scene_id: 16
|
||||||
|
entity_id: zwave.YOUR_REMOTE
|
||||||
|
action:
|
||||||
|
- service: script.turn_off
|
||||||
|
data_template:
|
||||||
|
entity_id: script.light_dim
|
||||||
|
- service: script.turn_off
|
||||||
|
data:
|
||||||
|
entity_id: script.light_dim_pause
|
||||||
|
```
|
||||||
|
|
||||||
|
There are 2 variables that control the speed of the change for the scripts below. The first is the `step`, small steps create a smooth transition. The second is the delay, larger delays will create a slower transition.
|
||||||
|
|
||||||
|
To allow flexibility, an [Input Slider](/components/input_slider/) is used for the step (at the time of writing this, it's not possible to template the delay when the delay uses milliseconds). Two additional [Input Sliders](/components/input_slider/) are used to set the minimum and maximum brightness, so that it's easy to tune that (or manage it through an automation).
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
input_slider:
|
||||||
|
light_step:
|
||||||
|
name: 'Step the lights this much'
|
||||||
|
initial: 20
|
||||||
|
min: 1
|
||||||
|
max: 64
|
||||||
|
step: 1
|
||||||
|
|
||||||
|
light_minimum:
|
||||||
|
name: 'No dimmer than this'
|
||||||
|
initial: 5
|
||||||
|
min: 1
|
||||||
|
max: 255
|
||||||
|
step: 1
|
||||||
|
|
||||||
|
light_maximum:
|
||||||
|
name: 'No brighter than this'
|
||||||
|
initial: 255
|
||||||
|
min: 50
|
||||||
|
max: 255
|
||||||
|
step: 1
|
||||||
|
```
|
||||||
|
|
||||||
|
Now the scripts. There are 2 pairs of scripts. The first steps the light brighter to the maximum and the second provides the delay. These call each other until both are stopped. The second pair does the same for dimming.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Replace YOURLIGHT with the actual light entity
|
||||||
|
script:
|
||||||
|
light_bright:
|
||||||
|
sequence:
|
||||||
|
- service: light.turn_on
|
||||||
|
data_template:
|
||||||
|
entity_id: light.YOUR_LIGHT
|
||||||
|
brightness: >-
|
||||||
|
{% raw %}{% set current = states.light.YOUR_LIGHT.attributes.brightness|default(0)|int %}
|
||||||
|
{% set step = states('input_slider.light_step')|int %}
|
||||||
|
{% set next = current + step %}
|
||||||
|
{% if next > states('input_slider.light_maximum')|int %}
|
||||||
|
{% set next = states('input_slider.light_maximum')|int %}
|
||||||
|
{% endif %}
|
||||||
|
{{ next }}{% endraw %}
|
||||||
|
|
||||||
|
- service: script.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: script.light_bright_pause
|
||||||
|
|
||||||
|
light_bright_pause:
|
||||||
|
sequence:
|
||||||
|
- delay:
|
||||||
|
milliseconds: 1
|
||||||
|
- service: script.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: script.light_bright
|
||||||
|
|
||||||
|
light_dim:
|
||||||
|
sequence:
|
||||||
|
- service: light.turn_on
|
||||||
|
data_template:
|
||||||
|
entity_id: light.YOUR_LIGHT
|
||||||
|
brightness: >-
|
||||||
|
{% raw %}{% set current = states.light.YOUR_LIGHT.attributes.brightness|default(0)|int %}
|
||||||
|
{% set step = states('input_slider.light_step')|int %}
|
||||||
|
{% set next = current - step %}
|
||||||
|
{% if next < states('input_slider.light_minimum')|int %}
|
||||||
|
{% set next = states('input_slider.light_minimum')|int %}
|
||||||
|
{% endif %}
|
||||||
|
{{ next }}{% endraw %}
|
||||||
|
|
||||||
|
- service: script.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: script.light_dim_pause
|
||||||
|
|
||||||
|
light_dim_pause:
|
||||||
|
sequence:
|
||||||
|
- delay:
|
||||||
|
milliseconds: 1
|
||||||
|
- service: script.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: script.light_dim
|
||||||
|
```
|
@ -73,7 +73,7 @@ Event `platform_discovered` is fired when a new platform has been discovered by
|
|||||||
Field | Description
|
Field | Description
|
||||||
----- | -----------
|
----- | -----------
|
||||||
`service` | The service that is discovered. Example: `zwave`.
|
`service` | The service that is discovered. Example: `zwave`.
|
||||||
`discovered` | Information that is discovered. Can be a dict, tuple etc. Example: `(192.168.1.10, 8889)`.
|
`discovered` | Dictionary containing discovery information. Example: `{ "host": "192.168.1.10", "port": 8889}`.
|
||||||
|
|
||||||
|
|
||||||
### {% linkable_title Event `component_loaded` %}
|
### {% linkable_title Event `component_loaded` %}
|
||||||
|
@ -85,10 +85,15 @@ Home Assistant adds extensions to allow templates to access all of the current s
|
|||||||
|
|
||||||
[strp-format]: https://docs.python.org/3.4/library/datetime.html#strftime-and-strptime-behavior
|
[strp-format]: https://docs.python.org/3.4/library/datetime.html#strftime-and-strptime-behavior
|
||||||
|
|
||||||
<p class='note warning'>
|
<p class='note'>
|
||||||
If your template uses an `entity_id` that begins with a number (example: `states.device_tracker.2008_gmc`) you must use a bracket syntax to avoid errors caused by rendering the `entity_id` improperly. In the example given, the correct syntax for the device tracker would be: `states.device_tracker['2008_gmc']`
|
If your template uses an `entity_id` that begins with a number (example: `states.device_tracker.2008_gmc`) you must use a bracket syntax to avoid errors caused by rendering the `entity_id` improperly. In the example given, the correct syntax for the device tracker would be: `states.device_tracker['2008_gmc']`
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
## {% linkable_title Home Assistant template extensions %}
|
||||||
|
|
||||||
|
In templates, besides the normal [state object methods and properties](/topics/state_object/), there are also some extra things available:
|
||||||
|
|
||||||
|
- `states.sensor.temperature.state_with_unit` will print the state of the entity and, if available, the unit.
|
||||||
|
|
||||||
## {% linkable_title Examples %}
|
## {% linkable_title Examples %}
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ Steps we will take:
|
|||||||
- 2 - Set up port forwarding without TLS/SSL and test connection
|
- 2 - Set up port forwarding without TLS/SSL and test connection
|
||||||
- 3 - Set up a DuckDNS account
|
- 3 - Set up a DuckDNS account
|
||||||
- 4 - Obtain a TLS/SSL certificate from Let's Encrypt
|
- 4 - Obtain a TLS/SSL certificate from Let's Encrypt
|
||||||
- 5 - Check the incoming conection
|
- 5 - Check the incoming connection
|
||||||
- 6 - Clean up port forwards
|
- 6 - Clean up port forwards
|
||||||
- 7 - Set up a sensor to monitor the expiry date of the certificate
|
- 7 - Set up a sensor to monitor the expiry date of the certificate
|
||||||
- 8 - Set up an automatic renewal of the TLS/SSL certificate
|
- 8 - Set up an automatic renewal of the TLS/SSL certificate
|
||||||
@ -290,7 +290,7 @@ $ sudo chmod 755 /etc/letsencrypt/archive/
|
|||||||
|
|
||||||
Did all of that go without a hitch? Wahoo! Your Let's Encrypt certificate is now ready to be used with Home Assistant. Move to step 5 to put it all together
|
Did all of that go without a hitch? Wahoo! Your Let's Encrypt certificate is now ready to be used with Home Assistant. Move to step 5 to put it all together
|
||||||
|
|
||||||
### {% linkable_title 5 - Check the incoming conection %}
|
### {% linkable_title 5 - Check the incoming connection %}
|
||||||
|
|
||||||
<p class='note'>
|
<p class='note'>
|
||||||
Following on from Step 4 your SSH will still be in the certbot folder. If you edit your configuration files over SSH you will need to change to your `homeassistant` folder:
|
Following on from Step 4 your SSH will still be in the certbot folder. If you edit your configuration files over SSH you will need to change to your `homeassistant` folder:
|
||||||
|
@ -31,6 +31,11 @@ Install Home Assistant itself.
|
|||||||
|
|
||||||
Create an `/etc/rc.local` file to enable Home Assistant to start when the jail starts. The command in `/etc/rc.local` can also be run in a terminal session but Home Assistant will exit when that session is closed.
|
Create an `/etc/rc.local` file to enable Home Assistant to start when the jail starts. The command in `/etc/rc.local` can also be run in a terminal session but Home Assistant will exit when that session is closed.
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# cd / && mkdir /home && /home/.homeassistant/
|
||||||
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# /usr/local/bin/hass --open-ui --config /home/.homeassistant/ &
|
# /usr/local/bin/hass --open-ui --config /home/.homeassistant/ &
|
||||||
```
|
```
|
||||||
|
@ -25,4 +25,4 @@ The script editor reads and writes to the file `scripts.yaml` in your [configura
|
|||||||
script: !include scripts.yaml
|
script: !include scripts.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
The conten that was under `script:` should now be moved to `scripts.yaml` to be editable.
|
The content that was under `script:` should now be moved to `scripts.yaml` to be editable.
|
||||||
|
@ -18,7 +18,7 @@ There is currently support for climate, covers, lights, locks, sensors, switches
|
|||||||
|
|
||||||
As of version 0.45, Home Assistant automatically installs python-openzwave from PyPI as needed.
|
As of version 0.45, Home Assistant automatically installs python-openzwave from PyPI as needed.
|
||||||
|
|
||||||
There is one dependency you will need to have installed ahead of time:
|
There is one dependency you will need to have installed ahead of time (included in `systemd-devel` on Fedora/RHEL systems):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sudo apt-get install libudev-dev
|
$ sudo apt-get install libudev-dev
|
||||||
@ -101,6 +101,10 @@ An easy script to generate a random key:
|
|||||||
cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g'
|
cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### {% linkable_title Battery Powered Devices %}
|
||||||
|
|
||||||
|
Battery powered devices need to be awake before you can use the Z-Wave control panel to update their settings. How to wake your device is device specific, and some devices will stay awake for only a couple of seconds. Please refer to the manual of your device for more details.
|
||||||
|
|
||||||
### {% linkable_title Events %}
|
### {% linkable_title Events %}
|
||||||
|
|
||||||
#### {% linkable_title zwave.network_complete %}
|
#### {% linkable_title zwave.network_complete %}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "Classifying the Internet of Things"
|
title: "Classifying the Internet of Things"
|
||||||
description: ""
|
description: ""
|
||||||
date: 2016-02-11 22:31:00 -0800
|
date: 2016-02-12 22:31:00 UTC
|
||||||
date_formatted: "February 12, 2016"
|
date_formatted: "February 12, 2016"
|
||||||
author: Paulus Schoutsen
|
author: Paulus Schoutsen
|
||||||
author_twitter: balloob
|
author_twitter: balloob
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors"
|
title: "0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors"
|
||||||
description: "Home Assistant 0.13 brings test coverage to a whopping 90% and adds a whole bunch of new components."
|
description: "Home Assistant 0.13 brings test coverage to a whopping 90% and adds a whole bunch of new components."
|
||||||
date: 2016-02-12 22:15:00 -0800
|
date: 2016-02-13 22:15:00 UTC
|
||||||
date_formatted: "February 13, 2016"
|
date_formatted: "February 13, 2016"
|
||||||
author: Paulus Schoutsen
|
author: Paulus Schoutsen
|
||||||
author_twitter: balloob
|
author_twitter: balloob
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "Your hub should be local and open"
|
title: "Your hub should be local and open"
|
||||||
description: "Running a hub that depends on the cloud is a risk that can cost you your home automation."
|
description: "Running a hub that depends on the cloud is a risk that can cost you your home automation."
|
||||||
date: 2016-04-04 21:11:00 -0700
|
date: 2016-04-05 21:11:00 UTC
|
||||||
date_formatted: "April 5, 2016"
|
date_formatted: "April 5, 2016"
|
||||||
author: Paulus Schoutsen
|
author: Paulus Schoutsen
|
||||||
author_twitter: balloob
|
author_twitter: balloob
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "0.17: Onkyo, Panasonic, GTFS and config validation"
|
title: "0.17: Onkyo, Panasonic, GTFS and config validation"
|
||||||
description: "Home Assistant 0.17 has arrived."
|
description: "Home Assistant 0.17 has arrived."
|
||||||
date: 2016-04-08 23:10:00 -0700
|
date: 2016-04-09 23:10:00 UTC
|
||||||
date_formatted: "April 9, 2016"
|
date_formatted: "April 9, 2016"
|
||||||
author: Paulus Schoutsen
|
author: Paulus Schoutsen
|
||||||
author_twitter: balloob
|
author_twitter: balloob
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "Updated documentation"
|
title: "Updated documentation"
|
||||||
description: "We have reorganised our documentation which should make it easier to get started and develop for Home Assistant."
|
description: "We have reorganised our documentation which should make it easier to get started and develop for Home Assistant."
|
||||||
date: 2016-04-16 23:09:00 -0700
|
date: 2016-04-17 23:09:00 UTC
|
||||||
date_formatted: "April 17, 2016"
|
date_formatted: "April 17, 2016"
|
||||||
author: Paulus Schoutsen
|
author: Paulus Schoutsen
|
||||||
author_twitter: balloob
|
author_twitter: balloob
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "To Infinity and Beyond 🚀"
|
title: "To Infinity and Beyond 🚀"
|
||||||
description: "The state of Home Assistant: past, present, future."
|
description: "The state of Home Assistant: past, present, future."
|
||||||
date: 2016-04-18 22:44:00 -0700
|
date: 2016-04-19 22:44:00 UTC
|
||||||
date_formatted: "April 19, 2016"
|
date_formatted: "April 19, 2016"
|
||||||
author: Paulus Schoutsen
|
author: Paulus Schoutsen
|
||||||
author_twitter: balloob
|
author_twitter: balloob
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "0.18: Bluetooth, LG WebOS TVs and Roombas."
|
title: "0.18: Bluetooth, LG WebOS TVs and Roombas."
|
||||||
description: "Home Assistant 0.18 has arrived."
|
description: "Home Assistant 0.18 has arrived."
|
||||||
date: 2016-04-19 23:10:00 -0700
|
date: 2016-04-20 23:10:00 UTC
|
||||||
date_formatted: "April 21, 2016"
|
date_formatted: "April 20, 2016"
|
||||||
author: Paulus Schoutsen
|
author: Paulus Schoutsen
|
||||||
author_twitter: balloob
|
author_twitter: balloob
|
||||||
comments: true
|
comments: true
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "0.27 is here to break eggs and take names: notifications, Hue fakery, safety and unification come to Home Assistant"
|
title: "0.27 is here to break eggs and take names: notifications, Hue fakery, safety and unification come to Home Assistant"
|
||||||
description: "HTML5 push notifications and grouping support, Configuration validations and checking, cover, climate and fan."
|
description: "HTML5 push notifications and grouping support, Configuration validations and checking, cover, climate and fan."
|
||||||
date: 2016-08-27 20:30:25 -0700
|
date: 2016-08-28 20:30:25 UTC
|
||||||
date_formatted: "August 27, 2016"
|
date_formatted: "August 28, 2016"
|
||||||
author: Robbie Trencheny
|
author: Robbie Trencheny
|
||||||
author_twitter: Robbie
|
author_twitter: Robbie
|
||||||
comments: true
|
comments: true
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "Explaining the Updater"
|
title: "Explaining the Updater"
|
||||||
description: "An update to the recent updater component changes"
|
description: "An update to the recent updater component changes"
|
||||||
date: 2016-10-24 21:30:00 -0700
|
date: 2016-10-25 21:30:00 UTC
|
||||||
date_formatted: "October 24, 2016"
|
date_formatted: "October 25, 2016"
|
||||||
author: Paulus Schoutsen
|
author: Paulus Schoutsen
|
||||||
author_twitter: balloob
|
author_twitter: balloob
|
||||||
comments: true
|
comments: true
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "Thank You"
|
title: "Thank You"
|
||||||
description: "Thanks to all our contributors, dependencies and companies that help make Home Assistant awesome."
|
description: "Thanks to all our contributors, dependencies and companies that help make Home Assistant awesome."
|
||||||
date: 2016-12-18 21:04:05 -0800
|
date: 2016-12-19 21:04:05 UTC
|
||||||
date_formatted: "December 19, 2016"
|
date_formatted: "December 19, 2016"
|
||||||
author: Paulus Schoutsen
|
author: Paulus Schoutsen
|
||||||
author_twitter: balloob
|
author_twitter: balloob
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
layout: post
|
layout: post
|
||||||
title: "Smart Baby Monitor"
|
title: "Smart Baby Monitor"
|
||||||
description: "How to build your own smart baby monitor"
|
description: "How to build your own smart baby monitor"
|
||||||
date: 2017-02-04 00:00:00 +0100
|
date: 2017-02-03 01:00:00 UTC
|
||||||
date_formatted: "February 4, 2017"
|
date_formatted: "February 3, 2017"
|
||||||
author: Pascal Vizeli
|
author: Pascal Vizeli
|
||||||
comments: true
|
comments: true
|
||||||
categories: How-To
|
categories: How-To
|
||||||
|
@ -48,6 +48,17 @@ script: !include scripts.yaml
|
|||||||
- Add support for Prowl notifications. ([@mbrrg] - [#9028]) ([notify.prowl docs]) (new-platform)
|
- Add support for Prowl notifications. ([@mbrrg] - [#9028]) ([notify.prowl docs]) (new-platform)
|
||||||
- Add worldtidesinfo sensor component ([@aetolus] - [#8860]) ([sensor.worldtidesinfo docs]) (new-platform)
|
- Add worldtidesinfo sensor component ([@aetolus] - [#8860]) ([sensor.worldtidesinfo docs]) (new-platform)
|
||||||
|
|
||||||
|
## {% linkable_title Release 0.52.1 - August 28 %}
|
||||||
|
|
||||||
|
- Close stream request once we end up with proxy ([@foxel] - [#9110])
|
||||||
|
- Fix issue #9116 in pushbullet ([@danielhiversen] - [#9128]) ([notify.pushbullet docs])
|
||||||
|
- bug fix pushbullet ([@danielhiversen] - [#9139]) ([notify.pushbullet docs])
|
||||||
|
- Fix import for foscam ([@sdague] - [#9140]) ([camera.foscam docs])
|
||||||
|
- Bump aioautomatic to prevent leaking exceptions ([@armills] - [#9148]) ([device_tracker.automatic docs])
|
||||||
|
- Wrap state when iterating a domain in templates ([@balloob] - [#9157])
|
||||||
|
- Prevent iCloud exceptions in logfile ([@mjj4791] - [#9179]) ([device_tracker.icloud docs])
|
||||||
|
- bump ecobee version to fix issue 9190 ([@nkgilley] - [#9191]) ([ecobee docs]) ([climate.ecobee docs])
|
||||||
|
|
||||||
## {% linkable_title If you need help... %}
|
## {% linkable_title If you need help... %}
|
||||||
...don't hesitate to use our very active [forums][forum] or join us for a little [chat][discord]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
|
...don't hesitate to use our very active [forums][forum] or join us for a little [chat][discord]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
|
||||||
|
|
||||||
@ -374,3 +385,16 @@ usps:
|
|||||||
[forum]: https://community.home-assistant.io/
|
[forum]: https://community.home-assistant.io/
|
||||||
[issue]: https://github.com/home-assistant/home-assistant/issues
|
[issue]: https://github.com/home-assistant/home-assistant/issues
|
||||||
[discord]: https://discord.gg/c5DvZ4e
|
[discord]: https://discord.gg/c5DvZ4e
|
||||||
|
[#9110]: https://github.com/home-assistant/home-assistant/pull/9110
|
||||||
|
[#9128]: https://github.com/home-assistant/home-assistant/pull/9128
|
||||||
|
[#9139]: https://github.com/home-assistant/home-assistant/pull/9139
|
||||||
|
[#9140]: https://github.com/home-assistant/home-assistant/pull/9140
|
||||||
|
[#9148]: https://github.com/home-assistant/home-assistant/pull/9148
|
||||||
|
[#9157]: https://github.com/home-assistant/home-assistant/pull/9157
|
||||||
|
[#9179]: https://github.com/home-assistant/home-assistant/pull/9179
|
||||||
|
[#9191]: https://github.com/home-assistant/home-assistant/pull/9191
|
||||||
|
[@foxel]: https://github.com/foxel
|
||||||
|
[@sdague]: https://github.com/sdague
|
||||||
|
[camera.foscam docs]: https://home-assistant.io/components/camera.foscam/
|
||||||
|
[climate.ecobee docs]: https://home-assistant.io/components/climate.ecobee/
|
||||||
|
[device_tracker.icloud docs]: https://home-assistant.io/components/device_tracker.icloud/
|
||||||
|
@ -30,7 +30,7 @@ def async_look_my_coroutine(target):
|
|||||||
if result:
|
if result:
|
||||||
print("hello {}".format(target))
|
print("hello {}".format(target))
|
||||||
|
|
||||||
hass.loop.create_task(async_look_my_coroutine("world")
|
hass.loop.create_task(async_look_my_coroutine("world"))
|
||||||
```
|
```
|
||||||
|
|
||||||
In this example, we schedule the coroutine by calling `hass.loop.create_task`. This will add the coroutine to the queue of tasks to be run. When the event loop is running `async_look_my_coroutine` it will suspend the task when `yield from entity.async_turn_on()` is called. At that point a new task will be scheduled to execute `entity.async_turn_on()`. When that job has been executed, `async_look_my_coroutine` will resume.
|
In this example, we schedule the coroutine by calling `hass.loop.create_task`. This will add the coroutine to the queue of tasks to be run. When the event loop is running `async_look_my_coroutine` it will suspend the task when `yield from entity.async_turn_on()` is called. At that point a new task will be scheduled to execute `entity.async_turn_on()`. When that job has been executed, `async_look_my_coroutine` will resume.
|
||||||
|
@ -27,7 +27,7 @@ Those points may require that you adjust your IDE or editor settings.
|
|||||||
|
|
||||||
## {% linkable_title Our recommandations %}
|
## {% linkable_title Our recommandations %}
|
||||||
|
|
||||||
For some cases [PEPs](https://www.python.org/dev/peps/) don't make a statement. This section covers our recommandations about the code style. Those points were collected from the exisiting code and based on what contributors and developers were using the most. This is basically a majority decision, thus you may not agree with it. But we would like to encourage you follow those recommandations to keep the code unified.
|
For some cases [PEPs](https://www.python.org/dev/peps/) don't make a statement. This section covers our recommendations about the code style. Those points were collected from the exisiting code and based on what contributors and developers were using the most. This is basically a majority decision, thus you may not agree with it. But we would like to encourage you follow those recommandations to keep the code unified.
|
||||||
|
|
||||||
### {% linkable_title Quotes %}
|
### {% linkable_title Quotes %}
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ While you are developing, you need to have Rollup running to have changes you ma
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ cd homeassistant/components/frontend/www_static/home-assistant-polymer
|
$ cd homeassistant/components/frontend/www_static/home-assistant-polymer
|
||||||
$ npm run js_dev
|
$ npm run dev
|
||||||
```
|
```
|
||||||
|
|
||||||
The source code for the frontend can be found in two different directories:
|
The source code for the frontend can be found in two different directories:
|
||||||
|
@ -34,6 +34,11 @@ Step 3 in the link above, shows the path to the private key file `id_rsa` for yo
|
|||||||
Make sure when you are copying the public key to the root of the /boot partition of the SD card that you rename the file correctly with no `.pub` file extension.
|
Make sure when you are copying the public key to the root of the /boot partition of the SD card that you rename the file correctly with no `.pub` file extension.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
You should then be able to SSH into your Hass.io device. On mac/linux, use:
|
||||||
|
```
|
||||||
|
ssh root@hassio.local -p 22222
|
||||||
|
```
|
||||||
|
|
||||||
## {% linkable_title Checking the logs %}
|
## {% linkable_title Checking the logs %}
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -21,11 +21,11 @@ Connect your websocket implementation to `ws://localhost:8123/api/websocket`.
|
|||||||
|
|
||||||
1. Client connects
|
1. Client connects
|
||||||
2. Authentication phase starts
|
2. Authentication phase starts
|
||||||
a. If no further authentication necessary for the user: go to 3
|
- If no further authentication necessary for the user: go to 3
|
||||||
b. Server sends `auth_required` message
|
- Server sends `auth_required` message
|
||||||
c. Client sends `auth` message
|
- Client sends `auth` message
|
||||||
d. If `auth` message correct: go to 3.
|
- If `auth` message correct: go to 3.
|
||||||
e. Server sends `auth_invalid`. Go to 6.
|
- Server sends `auth_invalid`. Go to 6.
|
||||||
3. Send `auth_ok` message
|
3. Send `auth_ok` message
|
||||||
4. Authentication phase ends.
|
4. Authentication phase ends.
|
||||||
5. Command phase starts.
|
5. Command phase starts.
|
||||||
|
@ -46,8 +46,12 @@ Looking for [talking points](/help/talking-points/) or [trivia](/help/trivia)?
|
|||||||
|
|
||||||
Don't miss the regular [Home Assistant podcasts](https://hasspodcast.io/).
|
Don't miss the regular [Home Assistant podcasts](https://hasspodcast.io/).
|
||||||
|
|
||||||
|
- [Control home automation hardware with Home Assistant](http://www.linux-magazine.com/Issues/2017/203/Home-Assistant) - August 2017
|
||||||
|
- [Smart Home Home Assistant KNX Alexa Sprachsteuerung](http://onesmarthome.de/smart-home-home-assistant-knx-alexa-sprachsteuerung/) - August 2017
|
||||||
- [Episode #122: Home Assistant: Pythonic Home Automation](https://talkpython.fm/episodes/show/122/home-assistant-pythonic-home-automation) - July 2017
|
- [Episode #122: Home Assistant: Pythonic Home Automation](https://talkpython.fm/episodes/show/122/home-assistant-pythonic-home-automation) - July 2017
|
||||||
|
- [Smart Home Home Assistant Konfiguration mit YAML](http://onesmarthome.de/smart-home-home-assistant-konfiguration/) - July 2017
|
||||||
- [Why can't we have the Internet of Nice Things?](https://opensource.com/article/17/7/home-automation-primer) - July 2017
|
- [Why can't we have the Internet of Nice Things?](https://opensource.com/article/17/7/home-automation-primer) - July 2017
|
||||||
|
- [Smart Home Home Assistant Raspberry Pi Installation Hassbian](http://onesmarthome.de/smart-home-home-assistant-raspberry-pi-installation-hassbian/) - July 2017
|
||||||
- [Integrating Snips with Home Assistant](https://medium.com/snips-ai/integrating-snips-with-home-assistant-314723645c77) - June 2017
|
- [Integrating Snips with Home Assistant](https://medium.com/snips-ai/integrating-snips-with-home-assistant-314723645c77) - June 2017
|
||||||
- [Jupiter Broadcasting - No Privacy Compromise Home Automation](http://www.jupiterbroadcasting.com/115566/no-privacy-compromise-home-automation/) - June 2017
|
- [Jupiter Broadcasting - No Privacy Compromise Home Automation](http://www.jupiterbroadcasting.com/115566/no-privacy-compromise-home-automation/) - June 2017
|
||||||
- [Castálio Podcast - Episódio 102: Marcelo Mello - Red Hat e Automação Residencial com Home Assistant](https://youtu.be/hZq8ucpzjCs) - May 2017
|
- [Castálio Podcast - Episódio 102: Marcelo Mello - Red Hat e Automação Residencial com Home Assistant](https://youtu.be/hZq8ucpzjCs) - May 2017
|
||||||
|
BIN
source/images/press/LinuxMagazine.png
Normal file
BIN
source/images/press/LinuxMagazine.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.0 KiB |
@ -119,6 +119,9 @@ description: Open-source home automation platform running on Python 3. Track and
|
|||||||
<a href='https://www.wired.com/2016/07/now-can-hide-smart-home-darknet/'><img src='/images/press/wired.com.svg' alt='Wired.com logo'></a>
|
<a href='https://www.wired.com/2016/07/now-can-hide-smart-home-darknet/'><img src='/images/press/wired.com.svg' alt='Wired.com logo'></a>
|
||||||
|
|
||||||
<a href='https://opensource.com/article/17/7/home-automation-primer'><img src='/images/press/opensource.com.svg' alt='OpenSource.com logo'></a>
|
<a href='https://opensource.com/article/17/7/home-automation-primer'><img src='/images/press/opensource.com.svg' alt='OpenSource.com logo'></a>
|
||||||
|
|
||||||
|
<a href='http://www.linux-magazine.com/Issues/2017/203/Home-Assistant'><img src='/images/press/LinuxMagazine.png' alt='Linux Magazine logo'></a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user