Merge remote-tracking branch 'origin/next' into rc

This commit is contained in:
Paulus Schoutsen 2019-10-23 13:39:04 -07:00
commit 4b8212f228
558 changed files with 3881 additions and 1954 deletions

3
CLA.md
View File

@ -40,7 +40,7 @@ restriction (like related patents, trademarks, and license agreements) of which
## Attribution
This Contributor License Agreement is adapted from the [GitHub CLA][github-cla].
This Contributor License Agreement is adapted from the GitHub CLA.
## Signing
@ -50,5 +50,4 @@ To sign this CLA you must first submit a pull request to a repository under the
This Contributor License Agreement (CLA) was first announced on January 21st, 2017 in [this][cla-blog] blog post and adopted January 28th, 2017.
[github-cla]: https://cla.github.com/agreement
[cla-blog]: https://home-assistant.io/blog/2017/01/21/home-assistant-governance/

View File

@ -1,5 +1,4 @@
[![Discord](https://img.shields.io/discord/330944238910963714.svg)](https://discord.gg/CxqDrfU)
[![Travis branch](https://img.shields.io/travis/home-assistant/home-assistant.github.io/next.svg)](https://travis-ci.org/home-assistant/home-assistant.github.io)
[![Krihelimeter](https://img.shields.io/badge/Krihelimeter-unknown-brightgreen.svg)](http://www.krihelinator.xyz)
[![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/)

View File

@ -101,8 +101,8 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 100
current_patch_version: 0
date_released: 2019-10-10
current_patch_version: 3
date_released: 2019-10-21
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
@ -134,5 +134,6 @@ defaults:
# Support for files Jekyll will normally exclude
include:
- ".well-known"
- "_headers"
- "_redirects"
- ".well-known"

View File

@ -2,7 +2,7 @@ module Jekyll
class EnvironmentVariablesGenerator < Generator
def generate(site)
# https://www.netlify.com/docs/continuous-deployment/#build-environment-variables
repo_url = ENV['REPOSITORY_URL'] || 'https://github.com/home-assistant/home-assistant.github.io'
repo_url = ENV['REPOSITORY_URL'] || 'https://github.com/home-assistant/home-assistant.io'
# Rewrite urls if repo url is the ssh format.
if repo_url.start_with? 'git@github.com:'

View File

@ -100,13 +100,10 @@ module Jekyll
if minor.length == 1
"#{major}.X"
else
"#{major}.#{minor[0]}X"
"#{major}.#{minor.chop}X"
end
}.map { |v|
sort_key = v[1][-1]["sort_key"]
if v[0] == "0.X"
sort_key = "0.01" # Ensure 0.X is always sorted at bottom.
end
total_new_components = 0
@ -115,7 +112,7 @@ module Jekyll
end
{ "label" => v[0], "versions" => v[1], "new_components_count" => total_new_components, "sort_key" => sort_key }
}.sort_by { |v| v["sort_key"] }.reverse
}.sort_by { |v| Gem::Version.new(v["sort_key"]) }.reverse
end
# Get version N behind current

View File

@ -535,7 +535,7 @@ code {
font-size: 0.8em;
color: #1990b8;
word-spacing: normal;
word-break: break-word;
word-break: normal;
word-wrap: normal;
-moz-tab-size: 4;
@ -556,4 +556,4 @@ code {
border: 1px solid #ddd;
border-radius: 0.4em;
padding: .1em .4em
}
}

View File

@ -86,7 +86,7 @@ hosts:
required: true
type: string
ip:
description: Fix ip address for device.
description: Fix IP address for device.
required: true
type: string
{% endconfiguration %}

View File

@ -11,14 +11,14 @@ Set up a [MariaDB](https://mariadb.org/) SQL server. It supports multiple databa
"logins": [
{
"username": "hass",
"host": "homeassistant",
"host": "%.local.hass.io",
"password": "securePassword"
}
],
"rights": [
{
"username": "hass",
"host": "homeassistant",
"host": "%.local.hass.io",
"database": "homeassistant",
"grant": "ALL PRIVILEGES ON"
}
@ -41,7 +41,7 @@ logins:
required: true
type: string
host:
description: Host for account. If you need an account on multiple hosts, use '%'.
description: Host for account. Use '%', to accept connections for this account from any host.
required: true
type: string
password:

View File

@ -17,7 +17,8 @@ In the `http` section of the `configuration.yaml` file remove `ssl_certificate`,
"active": false,
"default": "nginx_proxy_default*.conf",
"servers": "nginx_proxy/*.conf"
}
},
"cloudflare": false
}
```
@ -43,6 +44,11 @@ customize:
required: false
type: boolean
default: false
cloudflare:
description: If enabled, configure Nginx with a list of IP addresses directly from Cloudflare that will be used for `set_real_ip_from` directive Nginx config.
required: false
type: boolean
default: false
{% endconfiguration %}
<div class='note'>

View File

@ -92,7 +92,7 @@ For more information about the configuration including protocols, see the [telld
If you wish to teach a self-learning device in your TellStick configuration:
Go to Home Assistant [service call](http://hassio.local:8123/dev-service) in Developer tools and select.
Go to Home Assistant service call in Developer tools and select.
- Service: `hassio.addon_stdin`
- Enter service Data:

View File

@ -0,0 +1,103 @@
---
title: "Solar-Log Sensor"
description: "Instructions on how to integrate Solar-Log sensors within Home Assistant."
logo: solar-log.png
ha_category: Sensor
ha_release: 0.101
ha_iot_class: Local Polling
---
The `solarlog` integration uses the open JSON interface on Solar-Log PV monitoring systems to allow you to get details from your Solar-Log device and integrate these into your Home Assistant installation.
Before being able to use the integration, you have to activate the open JSON interface on your Solar-Log device. This can be activated from the Configuration | System | Access control menu of your Solar-Log device.
When activating the interface, a red warning triangle with security information and risks is displayed.
The `solarlog` integration uses the default host address "http://solar-log" if you don't specify a host. If your device isn't accessible on this address, use its IP Address instead.
<div class='note warning'>
The open JSON interface is deactivated by default. To activate the open JSON interface, a user password must first be set. The password isn't needed for accessing the open JSON interface.
</div>
## Configuration
There are 2 options in configuring the `solarlog` integration:
- Via the Home Assistant user interface where it will let you enter the name and host to connect to your Solar-Log device.
- Via the Home Assistant `configuration.yaml` file.
```yaml
# Example configuration.yaml entry
sensor:
platform: solarlog
```
{% configuration %}
host:
description: The IP Address or host address of your Solar-Log device.
required: false
default: http://solar-log
type: string
name:
description: Let you overwrite the name of the device in the frontend.
required: false
default: solarlog
type: string
{% endconfiguration %}
### Full configuration sample
A full configuration entry would look like the sample below.
```yaml
# Example configuration.yaml entry
sensor:
- platform: solarlog
name: solarlog
host: 192.168.1.123
```
In case you would like to convert the values, for example, to Wh instead of the default kWh, you can use the [template platform](/integrations/template/).
{% raw %}
```yaml
# Example configuration.yaml entry for sensor template platform
sensor:
- platform: template
sensors:
solarlog_yield_day_template:
value_template: "{{ (states('sensor.solarlog_yield_day') | float * 1000) | round(0) }}"
```
{% endraw %}
## Sensors
The following sensors are available in the library:
| name | Unit | Description |
|-----------------------|--------|:-------------------------------------------|
| last_update | | Time of latest data update. |
| power_ac | W | Total output PAC from all of the inverters and meters in inverter mode. |
| power_dc | W | Total output PAC from all of the inverters. |
| voltage_ac | V | Average voltage AC from the inverter. |
| voltage_dc | V | Average voltage DC from the inverter |
| yield_day | kWh | Total yield for the day from all of the inverters |
| yield_yesterday | kWh | Total yield for the previous day from all of the inverters. |
| yield_month | kWh | Total yield for the month from all of the inverters. |
| yield_year | kWh | Total yield for the year from all of the inverters. |
| yield_total | kWh | Total yield from all of the inverters. |
| consumption_ac | kWh | Current total consumption AC from all of the consumption meters. |
| consumption_day | kWh | Total consumption for the day from all of the consumption meters. |
| consumption_yesterday | kWh | Total consumption for the previous day from all of the consumption meters. |
| consumption_month | kWh | Total consumption for the month from all of the consumption meters. |
| consumption_year | kWh | Total consumption for the year from all of the consumption meters. |
| consumption_total | kWh | Accumulated total consumption from all consumption meters. |
| total_power | Wp | Installed generator power. |
| alternator_loss | W | Altenator loss (equals to power_dc - power_ac) |
| capacity | % | Capacity (equals to power_dc / total power) |
| efficiency | % W/Wp | Efficiency (equals to power_ac / power_dc |
| power_available | W | Available power (equals to power_ac - consumption_ac) |
| usage | | Usage (equals to consumption_ac / power_ac) |
<div class='note'>
The solarlog integration is using the sunwatcher pypi package to get the data from your Solar-Log device. The last five sensors are not reported by your Solar-Log device directly, but are computed by the sunwatcher package.
</div>

View File

@ -17,7 +17,7 @@ automation:
entity_id: group.all_devices
state: home
action:
service: homeassistant.turn_on
service: light.turn_on
entity_id: group.living_room_lights
```

View File

@ -1,6 +0,0 @@
---
title: "Configuration.yaml by cbulock"
description: ""
ha_category: Example configuration.yaml
ha_external_link: https://github.com/cbulock/home-assistant-configs
---

View File

@ -1,6 +0,0 @@
---
title: "Configuration.yaml by chriskacerguis"
description: ""
ha_category: Example configuration.yaml
ha_external_link: https://github.com/chriskacerguis/Home-AssistantConfig
---

View File

@ -1,6 +0,0 @@
---
title: "Configuration.yaml by Ciquattro"
description: ""
ha_category: Example configuration.yaml
ha_external_link: https://github.com/CiquattroFPV/Homeassistant-Example-Config
---

View File

@ -1,6 +0,0 @@
---
title: "Configuration.yaml by René-Marc Simard"
description: ""
ha_category: Example configuration.yaml
ha_external_link: https://github.com/renemarc/home-assistant-config
---

View File

@ -4,7 +4,7 @@ description: "Example of how to set Foscam to only have Motion Detection Recordi
ha_category: Automation Examples
---
This requires a [Foscam IP Camera](/integrations/foscam) camera with PTZ (Pan, Tilt, Zoom) and CGI functionality ([Source](http://www.foscam.es/descarga/Foscam-IPCamera-CGI-User-Guide-AllPlatforms-2015.11.06.pdf))
This requires a [Foscam IP Camera](/integrations/foscam) camera with PTZ (Pan, Tilt, Zoom) and CGI functionality ([Source](https://www.foscam.es/descarga/Foscam-IPCamera-CGI-User-Guide-AllPlatforms-2015.11.06.pdf))
Foscam Cameras can be controlled by Home Assistant through a number of CGI commands.
The following outlines examples of the switch, services, and scripts required to move between 2 preset destinations while controlling motion detection, but many other options of movement are provided in the Foscam CGI User Guide linked above.

View File

@ -29,9 +29,11 @@ notify:
- platform: pushbullet
api_key: ***
name: pushbullet
wemo:
discovery: true
switch:
- platform: wemo
- platform: mqtt
state_topic: "home/killhass"
command_topic: "home/killhass"

View File

@ -16,7 +16,7 @@ automation:
entity_id: sensor.motion_sensor
to: 'on'
action:
service: homeassistant.turn_on
service: light.turn_on
entity_id: light.kitchen_light
- alias: Turn off kitchen light 10 minutes after last movement
@ -27,7 +27,7 @@ automation:
for:
minutes: 10
action:
service: homeassistant.turn_off
service: light.turn_off
entity_id: light.kitchen_light
```
@ -41,7 +41,7 @@ automation:
entity_id: sensor.motion_sensor, binary_sensor.front_door, binary_sensor.doorbell
to: 'on'
action:
- service: homeassistant.turn_on
- service: light.turn_on
data:
entity_id:
- light.hallway_0
@ -57,7 +57,7 @@ automation:
event_data:
entity_id: timer.hallway
action:
service: homeassistant.turn_off
service: light.turn_off
data:
entity_id:
- light.hallway_0
@ -99,4 +99,4 @@ You can also restrict lights from turning on based on time of day and implement
entity_id: group.office_lights
data:
transition: 160
```
```

View File

@ -2,16 +2,22 @@
description: "[Actions](/docs/automation/action/) are events that fires once all triggers and conditions have been met."
- topic: Automation
description: "[Automations](/docs/automation/) offer the capability to call a service based on a simple or complex trigger. Automation allows a condition such as a sunset to cause an event, such as a light turning on."
- topic: Binary sensor
description: "A [binary sensor](/integrations/binary_sensor) returns information about things that only have two states - such as on or off."
- topic: Component
description: "Integrations (see below) used to be known as components."
- topic: Condition
description: "[Conditions](/docs/scripts/conditions/) are an optional part of an automation that will prevent an action from firing if they are not met."
- topic: Cookbook
description: "The [Cookbook](/cookbook/) contains a set of configuration examples of Home Assistant from the community."
- topic: Cover
description: "[Covers](/integrations/cover) are devices such as blinds, garage doors, etc than can be opened and closed and optionally set to a specific position."
- topic: Customize
description: "[Customization](/docs/configuration/customizing-devices/) allows you to overwrite the default parameter of your devices in the configuration."
- topic: Device
description: "A device is usually a physical unit which can do or observe something."
- topic: Device tracker
description: "[Device trackers](/integrations/device_tracker) are used to track the presence, or location, of a device."
- topic: Discovery
description: "[Discovery](/integrations/discovery/) is the automatic setup of zeroconf/mDNS and uPnP devices after they are discovered."
- topic: Entity
@ -30,6 +36,10 @@
description: "[Integrations](/integrations/) provide the core logic for the functionality in Home Assistant. Like `notify` provides sending notifications."
- topic: Lovelace
description: "[Lovelace](/lovelace/) is the name of the current frontend."
- topic: Light
description: "A [light](/integrations/light) has a brightness you can control, and optionally color temperature or RGB color control."
- topic: Notification
description: "You can use [notifications](/integrations/#notifications) to send messages, pictures, and more, to devices."
- topic: Packages
description: "[Packages](/docs/configuration/packages/) allow you to bundle different component configurations together."
- topic: Platform
@ -38,11 +48,17 @@
description: "[Scenes](/integrations/scene/) capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red."
- topic: Script
description: "[Scripts](/docs/scripts/) are components that allow users to specify a sequence of actions to be executed by Home Assistant when turned on."
- topic: Sensor
description: "[Sensors](/integrations/sensor) return information about a thing, for instance the level of water in a tank."
- topic: Service
description: "[Services](/docs/scripts/service-calls/) are called to perform actions."
- topic: Switch
description: "[Switches](/integrations/switch) are things that have two states you can select between, such as turning on or off a socket."
- topic: Template
description: "A [template](/docs/automation/templating/) is an automation definition that can include variables for the service or data from the trigger values. This allows automations to generate dynamic actions."
- topic: Trigger
description: "A [trigger](/docs/automation/trigger/) is a set of values or conditions of a platform that are defined to cause an automation to run."
- topic: TTS
description: "TTS ([text to speech](/integrations/tts) allows Home Assistant to talk to you."
- topic: Zone
description: "[Zones](/integrations/zone/) are areas that can be used for presence detection."

View File

@ -117,7 +117,7 @@ homeassistant:
- group: system-users
```
First note, `trusted_users` configuration need you use `user id`, you can find it through Configuration -> Users -> View User Detail. The `trusted_users` configuration will not validate the existing of the user, so please make sure you have put in correct user id by yourself.
First note, for `trusted_users` configuration you need to use `user id`, which you can find through Configuration -> Users -> View User Detail. The `trusted_users` configuration will not validate the existing of the user, so please make sure you have put in the correct user id by yourself.
Second note, a trusted user with an IPv6 address must put the IPv6 address in quotes as shown.
@ -127,7 +127,7 @@ Specially, you can use `group: GROUP_ID` to assign all users in certain `user gr
#### Skip Login Page Examples
This is a feature to allow you bring back some of the experience before the user system be implemented. You can directly jump to main page if you are accessing from trusted networks, the `allow_bypass_login` is on, and you have ONLY ONE available user to choose in the login form.
This is a feature to allow you bring back some of the experience before the user system was implemented. You can directly jump to main page if you are accessing from trusted networks, the `allow_bypass_login` is on, and you have ONLY ONE available user to choose in the login form.
```yaml
# assuming you have only one non-system user
@ -142,7 +142,7 @@ homeassistant:
- type: homeassistant
```
Assuming you have only the owner created though onboarding process, no other users ever created. The above example configuration will allow you directly access Home Assistant main page if you access from your internal network (192.168.0.0/24) or from localhost (127.0.0.1). You will get a login abort error, then you can change to use HomeAsssitant Authentication Provider to login, if you access your Home Assistant instance from outside network.
Assuming you have only the owner created though onboarding process, no other users ever created. The above example configuration will allow you directly access Home Assistant main page if you access from your internal network (192.168.0.0/24) or from localhost (127.0.0.1). If you get a login abort error, then you can change to use HomeAsssitant Authentication Provider to login, if you access your Home Assistant instance from outside network.
### Command Line

View File

@ -226,7 +226,7 @@ automation:
{% endraw %}
If you want to get more precise, start with the US Naval Observatory [tool](http://aa.usno.navy.mil/data/docs/AltAz.php) which will help you estimate what the solar elevation will be at any specific time. Then from this, you can select from the defined twilight numbers.
If you want to get more precise, start with the US Naval Observatory [tool](https://aa.usno.navy.mil/data/docs/AltAz.php) which will help you estimate what the solar elevation will be at any specific time. Then from this, you can select from the defined twilight numbers.
Although the actual amount of light depends on weather, topography and land cover, they are defined as:
@ -279,6 +279,22 @@ The `for` template(s) will be evaluated when the `value_template` becomes `true`
Rendering templates with time (`now()`) is dangerous as trigger templates only update based on entity state changes.
</div>
As an alternative, providing you include the sensor [time](/integrations/time_date/) in your configuration, you can use the following template:
{% raw %}
```yaml
automation:
trigger:
platform: template
value_template: "{{ (as_timestamp(states.sensor.time.last_changed) - as_timestamp(states.YOUR.ENTITY.last_changed)) > 300 }}"
```
{% endraw %}
which will evaluate to `True` if `YOUR.ENTITY` changed more than 300 seconds ago.
### Time trigger
The time trigger is configured to run once at a specific point in time each day.

View File

@ -28,7 +28,7 @@ Please note that if you click on **Trigger** of an automation in the frontend, *
All this makes that Trigger feature pretty limited and nearly useless for debugging purposes so you need to find another way.
Make sure you check and adapt to your circumstances appropriate examples from Automation Trigger, Conditions and Actions.
It is also useful to go to **Configuration** -> **Server Control** and click on **Check Config** button in Configuration validation section to make sure there are no syntax errors before restarting Home Assistant.
It is also useful to go to **Configuration** -> **Server Control** and click on **Check Config** button in Configuration validation section to make sure there are no syntax errors before restarting Home Assistant. In order for **Check Config** to be visible, you must enable **Advanced Mode** on your user profile.
If your automation uses templates in any part, you can do the following to make sure it works as expected:

View File

@ -4,7 +4,7 @@ description: "Setting up the basic info of Home Assistant."
redirect_from: /getting-started/basic/
---
As part of the default onboarding proccess, Home Assistant can detect your location from IP address geolocation. Home Assistant will automatically select a temperature unit and time zone based on this location. You may adjust this during onboarding, or afterwards at Configuration -> General.
As part of the default onboarding process, Home Assistant can detect your location from IP address geolocation. Home Assistant will automatically select a temperature unit and time zone based on this location. You may adjust this during onboarding, or afterwards at Configuration -> General.
If you prefer YAML, you can add the following information to your `configuration.yaml`:
@ -63,3 +63,7 @@ whitelist_external_dirs:
required: false
type: list
{% endconfiguration %}
### Reload Core Service
Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant.reload_core_config`. This allows you to change any of the above sections and see it being applied without having to restart Home Assistant. To call this service, go to the "Service" tab under Developer Tools, select the `homeassistant.reload_core_config` service and click the "CALL SERVICE" button. Alternatively, you can press the "Reload Core" button under Configuration > Server Control.

View File

@ -58,7 +58,7 @@ entity_picture:
required: false
type: string
icon:
description: "Any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com) ([Cheatsheet](https://cdn.materialdesignicons.com/4.4.95/)). Prefix name with `mdi:`, ie `mdi:home`. Note: Newer icons may not yet be available in the current Home Assistant release. You can check when an icon was added to MaterialDesignIcons.com at [MDI History](https://materialdesignicons.com/history)."
description: "Any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com) ([Cheatsheet](https://cdn.materialdesignicons.com/4.5.95/)). Prefix name with `mdi:`, ie `mdi:home`. Note: Newer icons may not yet be available in the current Home Assistant release. You can check when an icon was added to MaterialDesignIcons.com at [MDI History](https://materialdesignicons.com/history)."
required: false
type: string
assumed_state:

View File

@ -82,7 +82,7 @@ homeassistant:
```
This uses the concept splitting the configuration and will include all files in a directory with the keys representing the filenames.
See the documentation about [splitting the configuration](/docs/configuration/splitting_configuration/) for more information about `!include_dir_named` and other include statements that might be helpful. The benefit of this approach is to pull all configurations required to integrate a system, into one file, rather than accross several.
See the documentation about [splitting the configuration](/docs/configuration/splitting_configuration/) for more information about `!include_dir_named` and other include statements that might be helpful. The benefit of this approach is to pull all configurations required to integrate a system, into one file, rather than across several.
### Customizing entities with packages

View File

@ -13,15 +13,19 @@ The workflow for moving private information to `secrets.yaml` is very similar to
The entries for password and API keys in the `configuration.yaml` file usually looks like the example below.
```yaml
http:
api_password: YOUR_PASSWORD
homeassistant:
auth_providers:
- type: legacy_api_password
api_password: YOUR_PASSWORD
```
Those entries need to be replaced with `!secret` and an identifier.
```yaml
http:
api_password: !secret http_password
homeassistant:
auth_providers:
- type: legacy_api_password
api_password: !secret http_password
```
The `secrets.yaml` file contains the corresponding password assigned to the identifier.

View File

@ -17,13 +17,13 @@ Templating is a powerful feature that allows you to control information going in
## Building templates
Templating in Home Assistant is powered by the [Jinja2](http://jinja.pocoo.org/) templating engine. This means that we are using their syntax and make some custom Home Assistant variables available to templates during rendering. Jinja2 supports a wide variety of operations:
Templating in Home Assistant is powered by the [Jinja2](https://palletsprojects.com/p/jinja) templating engine. This means that we are using their syntax and make some custom Home Assistant variables available to templates during rendering. Jinja2 supports a wide variety of operations:
- [Mathematical operation](http://jinja.pocoo.org/docs/dev/templates/#math)
- [Comparisons](http://jinja.pocoo.org/docs/dev/templates/#comparisons)
- [Logic](http://jinja.pocoo.org/docs/dev/templates/#logic)
- [Mathematical operation](https://jinja.palletsprojects.com/en/master/templates/#math)
- [Comparisons](https://jinja.palletsprojects.com/en/master/templates/#comparisons)
- [Logic](https://jinja.palletsprojects.com/en/master/templates/#logic)
We will not go over the basics of the syntax, as Jinja2 does a great job of this in their [templates documentation](http://jinja.pocoo.org/docs/dev/templates/).
We will not go over the basics of the syntax, as Jinja2 does a great job of this in their [templates documentation](https://jinja.palletsprojects.com/en/master/templates/).
The frontend has a template editor tool to help develop and debug templates. Click on the <img src='/images/screenshots/developer-tool-templates-icon.png' alt='template developer tool icon' class="no-shadow" height="38" /> icon, create your template in the _Template editor_ and check the results on the right.
@ -175,10 +175,59 @@ The same thing can also be expressed as a filter:
- For specific values: `utcnow().second`, `utcnow().minute`, `utcnow().hour`, `utcnow().day`, `utcnow().month`, `utcnow().year`, `utcnow().weekday()` and `utcnow().isoweekday()`.
- `as_timestamp()` will convert datetime object or string to UNIX timestamp. This function also be used as a filter.
- `strptime(string, format)` will parse a string to a datetime based on a [format](https://docs.python.org/3.6/library/datetime.html#strftime-and-strptime-behavior).
- `relative_time` will convert datetime object to its human-friendly "age" string. The age can be in second, minute, hour, day, month or year (but only the biggest unit is considered, e.g. if it's 2 days and 3 hours, "2 days" will be returned). Note that it only works for dates _in the past_.
- Filter `timestamp_local` will convert an UNIX timestamp to local time/data.
- Filter `timestamp_utc` will convert a UNIX timestamp to UTC time/data.
- Filter `timestamp_custom(format_string, local_boolean)` will convert a UNIX timestamp to a custom format, the use of a local timestamp is default. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime).
### To/From JSON
The `to_json` filter serializes an object to a JSON string. In some cases, it may be necessary to format a JSON string for use with a webhook, as a parameter for command line utilities or any number of other applications. This can be complicated in a template, especially when dealing with escaping special characters. Using the `to_json` filter, this is handled automatically.
The `from_json` filter operates similarly, but in the other direction, de-serializing a JSON string back into an object.
### To/From JSON examples
In this example, the special character '°' will be automatically escaped in order to produce valid JSON. The difference between the stringified object and the actual JSON is evident.
*Template*
{% raw %}
```text
{% set temp = {'temperature': 25, 'unit': '°C'} %}
stringified object: {{ temp }}
object|to_json: {{ temp|to_json }}
```
{% endraw %}
*Output*
{% raw %}
```text
stringified object: {'temperature': 25, 'unit': '°C'}
object|to_json: {"temperature": 25, "unit": "\u00b0C"}
```
{% endraw %}
Conversely, `from_json` can be used to de-serialize a JSON string back into an object to make it possible to easily extract usable data.
*Template*
{% raw %}
```text
{% set temp = '{"temperature": 25, "unit": "\u00b0C"}'|from_json %}
The temperature is {{ temp.temperature }}{{ temp.unit }}
```
{% endraw %}
*Output*
{% raw %}
```text
The temperature is 25°C
```
{% endraw %}
### Distance
- `distance()` will measure the distance in kilometers between home, entity, coordinates.
@ -262,7 +311,7 @@ Closest to some entity:
### Numeric functions and filters
Some of these functions can also be used in a [filter](http://jinja.pocoo.org/docs/dev/templates/#id11). This means they can act as a normal function like this `sqrt(2)`, or as part of a filter like this `2|sqrt`.
Some of these functions can also be used in a [filter](https://jinja.palletsprojects.com/en/master/templates/#id11). This means they can act as a normal function like this `sqrt(2)`, or as part of a filter like this `2|sqrt`.
- `log(value, base)` will take the logarithm of the input. When the base is omitted, it defaults to `e` - the natural logarithm. Can also be used as a filter.
- `sin(value)` will return the sine of the input. Can be used as a filter.

View File

@ -18,11 +18,12 @@ If you have incorrect entries in your configuration files you can use the [`chec
#### Problems with the configuration
One of the most common problems with Home Assistant is an invalid `configuration.yaml` file.
One of the most common problems with Home Assistant is an invalid `configuration.yaml` or other configuration file.
- You can test your configuration using the command line with: `hass --script check_config`.
- On Hass.io you can use the [hassio command](/hassio/commandline/#home-assistant): `hassio homeassistant check`.
- On Docker you can use `docker exec home-assistant python -m homeassistant --script check_config --config /config` - where `homeassistant` is the name of the container.
- The configuration files, including `configuration.yaml` must be UTF-8 encoded. If you see error like `'utf-8' codec can't decode byte`, edit the offending configuration and re-save it as UTF-8.
- You can verify your configuration's yaml structure using [this online YAML parser](http://yaml-online-parser.appspot.com/) or [YAML Lint](http://www.yamllint.com/).
- To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack (the examples there are specific to SaltStack, but do explain YAML issues well).

View File

@ -4,7 +4,7 @@ description: "Details about YAML to configure Home Assistant."
redirect_from: /getting-started/yaml/
---
Home Assistant uses the [YAML](http://yaml.org/) syntax for configuration. YAML might take a while to get used to but is really powerful in allowing you to express complex configurations.
Home Assistant uses the [YAML](https://yaml.org/) syntax for configuration. YAML might take a while to get used to but is really powerful in allowing you to express complex configurations.
For each integration that you want to use in Home Assistant, you add code in your `configuration.yaml` file to specify its settings.
The following example entry specifies that you want to use the [notify component](/integrations/notify) with the [pushbullet platform](/integrations/pushbullet).

View File

@ -14,7 +14,7 @@ This is useful if you want to have:
#### Subdomain
So you already have a working Apache server available at example.org. Your Home Assistant is correctly working on this web server and available at http://localhost:8123
So you already have a working Apache server available at example.org. Your Home Assistant is correctly working on this web server and available at `http://localhost:8123`
Enable [`mod_proxy_wstunnel`](https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html) by running if you encounter issues while serving Home Assistant through your proxy:
@ -22,7 +22,7 @@ Enable [`mod_proxy_wstunnel`](https://httpd.apache.org/docs/2.4/mod/mod_proxy_ws
$ sudo a2enmod proxy_wstunnel
```
To be able to access to your Home Assistant instance by using https://home.example.org, add the following file to `/etc/httpd/conf/extra/` as `hass.conf`
To be able to access to your Home Assistant instance by using `https://home.example.org`, add the following file to `/etc/httpd/conf/extra/` as `hass.conf`
```text
<VirtualHost *:443>
@ -68,9 +68,9 @@ In case you are getting occasional HTTP 504 error messages ("Gateway Timeout") o
#### Multiple Instance
You already have Home Assistant running on http://localhost:8123 and available at home.example.org as describe before. The configuration file for this Home Assistant is available in `/home/alice/.homeassistant/configuration.yaml`
You already have Home Assistant running on `http://localhost:8123` and available at home.example.org as describe before. The configuration file for this Home Assistant is available in `/home/alice/.homeassistant/configuration.yaml`
You want another instance available at https://countryside.example.org
You want another instance available at `https://countryside.example.org`
You can either :
* Create a new user, `bob`, to hold the configuration file in `/home/bob/.homeassistant/configuration.yaml` and run Home Assistant as this new user
@ -84,9 +84,9 @@ http:
...
```
Start Home Assistant: Now, you have another instance running on http://localhost:8124
Start Home Assistant: Now, you have another instance running on `http://localhost:8124`
To access this instance by using https://countryside.example.org add to `/etc/httpd/conf/extra/hass.conf`
To access this instance by using `https://countryside.example.org` add to `/etc/httpd/conf/extra/hass.conf`
```text
<VirtualHost *:443>

View File

@ -159,7 +159,7 @@ Example .travis.yml
```yaml
language: python
python:
- "3.5"
- "3.7"
before_install:
- mv travis_secrets.yaml secrets.yaml
- sudo apt-get install -y libudev-dev

View File

@ -48,12 +48,12 @@ Press Enter to Continue
If your router uses DNSMasq (for example DDWRT) add the following line to DNSMasq options:
```text
address=/mydomain.com/<hass ip>
address=/mydomain.com/<hass IP>
```
### Edit your Home Assistant configuration to use your certificates
The [`http`](/integrations/http/) section must contain the full path to the needed files.
The [`http`](/integrations/http/) section must contain the full path to the needed files.
```yaml
http:

View File

@ -13,9 +13,9 @@ This is useful if you want to have:
#### Subdomain
So you already have a working NGINX server available at example.org. Your Home Assistant is correctly working on this web server and available at http://localhost:8123
So you already have a working NGINX server available at example.org. Your Home Assistant is correctly working on this web server and available at `http://localhost:8123`
To be able to access to your Home Assistant instance by using https://home.example.org, create file `/etc/nginx/sites-enabled/homeassistant` (or symlink via `/etc/nginx/sites-available`) and add the following:
To be able to access to your Home Assistant instance by using `https://home.example.org`, create file `/etc/nginx/sites-enabled/homeassistant` (or symlink via `/etc/nginx/sites-available`) and add the following:
```nginx
server {
@ -52,9 +52,9 @@ If you don't want HTTPS, you can change `listen 443 ssl` to `listen 80` or bette
#### Multiple Instance
You already have Home Assistant running on http://localhost:8123 and available at home.example.org as describe before. The configuration file for this Home Assistant is available in `/home/alice/.homeassistant/configuration.yaml`.
You already have Home Assistant running on `http://localhost:8123` and available at home.example.org as describe before. The configuration file for this Home Assistant is available in `/home/alice/.homeassistant/configuration.yaml`.
You want another instance available at https://countryside.example.org
You want another instance available at `https://countryside.example.org`
You can either :
* Create a new user, `bob`, to hold the configuration file in `/home/bob/.homeassistant/configuration.yaml` and run Home Assistant as this new user
@ -68,9 +68,9 @@ http:
...
```
Start Home Assistant: Now, you have another instance running on http://localhost:8124
Start Home Assistant: Now, you have another instance running on `http://localhost:8124`
To access this instance by using https://countryside.example.org create the file `/etc/nginx/sites-enabled/countryside.example.org` (or symlink via `/etc/nginx/sites-available`) and add the following:
To access this instance by using `https://countryside.example.org` create the file `/etc/nginx/sites-enabled/countryside.example.org` (or symlink via `/etc/nginx/sites-available`) and add the following:
```nginx
server {

View File

@ -4,7 +4,7 @@ description: "Setup and first steps for Jupyter Notebooks and Home Assistant."
redirect_from: /ecosystem/notebooks/installation/
---
To run Jupyter Notebooks locally, an installation of [Jupyter](http://jupyter.org/) is needed. Consider running Jupyter in a [virtualenv](/getting-started/installation-virtualenv/) in order to properly manage dependencies.
To run Jupyter Notebooks locally, an installation of [Jupyter](http://jupyter.org/) is needed. Consider running Jupyter in a [virtualenv](/docs/installation/virtualenv/) in order to properly manage dependencies.
```bash
$ pip3 install jupyter matplotlib
@ -27,7 +27,7 @@ $ jupyter notebook
[I 17:22:18.922 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
```
Open [http://localhost:8888/](http://localhost:8888/) in your browser. Press "New" -> "Python3" to open a new notebook.
Open `http://localhost:8888/` in your browser. Press "New" -> "Python3" to open a new notebook.
<p class='img'>
<img src='{{site_root}}/images/screenshots/jupyter-new.png' />
@ -43,5 +43,3 @@ The downloadable version of this notebook is available in the [Home Assistant no
As you can see is the Jupyter notebook workflow is very similar to working directly with a Python shell. One advantage of notebooks is that you can go back and forth between cells as you please and save your work.

View File

@ -11,7 +11,7 @@ Synology NAS are the perfect companion to running Home Assistant. But by default
Starting with DSM 6.2.1+, you can create "custom headers" in the Application Portal:
* Go to Application Portal and edit your entry
* Click on "custom headers" tab and click the dropdon on the "Create" button
* Select "Websocket". This will automaticly add the required headers for websocket to this reverse proxy.
* Select "Websocket". This will automatically add the required headers for websocket to this reverse proxy.
* Click "OK". Home Assistant should work now with the reverse proxy.
It's not necessary anymore to change the template anymore since Version DSM 6.2.1. Changing the `Portal.mustache` is not recommended! You should use the following part only if you're using a Version before DSM 6.2.1. on your Synology.

View File

@ -71,16 +71,15 @@ There are reports that devices running with iOS prior to iOS 10, especially old
[elinks]: http://elinks.or.cz/
[Epiphany]: https://wiki.gnome.org/Apps/Web
[Firefox]: https://www.mozilla.org/en-US/firefox/
[IE]: http://windows.microsoft.com/en-us/internet-explorer/download-ie
[IE]: https://support.microsoft.com/en-us/help/17621/internet-explorer-downloads
[Iridium]: https://iridiumbrowser.de/
[Konqueror]: https://konqueror.org/
[Lynx]: http://lynx.browser.org/
[Midori]: http://midori-browser.org/
[Opera]: http://www.opera.com/
[Safari]: http://www.apple.com/safari/
[surf]: http://surf.suckless.org/
[Lynx]: https://lynx.browser.org/
[Midori]: https://www.midori-browser.org/
[Opera]: https://www.opera.com/
[Safari]: https://www.apple.com/safari/
[surf]: https://surf.suckless.org/
[Tor Browser]: https://www.torproject.org/
[Uzbl]: http://www.uzbl.org/
[Uzbl]: https://www.uzbl.org/
[w3m]: http://w3m.sourceforge.net/
[Waterfox]: https://www.waterfoxproject.org

View File

@ -24,7 +24,7 @@ hass --open-ui
Running these commands will:
- Install Home Assistant
- Launch Home Assistant and serve the web interface on [http://localhost:8123](http://localhost:8123)
- Launch Home Assistant and serve the web interface on `http://localhost:8123`
- the configuration files will be created in /home/{user}/.homeassistant

View File

@ -52,22 +52,23 @@ You will need to enable the software collection each time you log on before you
### Systemd with Software Collections
To autostart Home Assistant using systemd follow the main [instructions](/docs/autostart/systemd/) and adjust the template as follows:
To autostart Home Assistant using systemd and a python36 (from SCL) virtual environment, follow the main [instructions](/docs/autostart/systemd/) and adjust the template as follows:
Filename: `/etc/systemd/system/home-assistant@homeassistant.service`
```txt
[Unit]
Description=Home Assistant
After=network.target
After=network-online.target
[Service]
Type=simple
User=homeassistant
# Make sure the virtualenv Python binary is used
Environment=VIRTUAL_ENV="/srv/homeassistant"
Environment=PATH="$VIRTUAL_ENV/bin:$PATH"
# ExecStart using software collection:
ExecStart=/usr/bin/scl enable rh-python36 -- /srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
# %i means the username is derrived from the filename.
User=%i
# a python venv for hass exists in /opt/hass/venv
ExecStart=/srv/homeassistant/bin/hass
[Install]
WantedBy=multi-user.target
```
This works because the Python virtual environment was created using the SCL environment, thus there is no need to activate SCL.

View File

@ -36,7 +36,7 @@ If you wish to browse directly to `http://localhost:8123` from your macOS host,
$ docker run --init -d --name="home-assistant" -e "TZ=America/Los_Angeles" -v /PATH_TO_YOUR_CONFIG:/config -p 8123:8123 homeassistant/home-assistant:stable
```
Alternatively, `docker-compose` works with any recent release of `docker-ce` on macOS. Note that (further down this page) we provide an example `docker-compose.yml` however it differs from the `docker run` example above. To make the .yml directives match, you would need to make _two_ changes: first add the equivalent `ports:` directive, then _remove_ the `network_mode: host` section. This is because `Port mapping is incompatible with network_mode: host:`. More details can be found at [Docker networking docs](https://docs.docker.com/engine/userguide/networking/#default-networks). Note also the `/dev/tty*` device name used by your Arduino etc. devices will differ from the Linux example, so the compose `mount:` may require updates.
Alternatively, `docker-compose` works with any recent release of `docker-ce` on macOS. Note that (further down this page) we provide an example `docker-compose.yml` however it differs from the `docker run` example above. To make the .yml directives match, you would need to make _two_ changes: first add the equivalent `ports:` directive, then _remove_ the `network_mode: host` section. This is because `Port mapping is incompatible with network_mode: host:`. More details can be found at [Docker networking docs](https://docs.docker.com/network/). Note also the `/dev/tty*` device name used by your Arduino etc. devices will differ from the Linux example, so the compose `mount:` may require updates.
### Windows
@ -51,11 +51,11 @@ netsh interface portproxy add v4tov4 listenaddress=192.168.1.10 listenport=8123
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8123 connectaddress=10.0.50.2 connectport=8123
```
This will let you access your Home Assistant portal from <http://localhost:8123>, and if you forward port 8123 on your router to your machine IP, the traffic will be forwarded on through to the docker container.
This will let you access your Home Assistant portal from `http://localhost:8123`, and if you forward port 8123 on your router to your machine IP, the traffic will be forwarded on through to the docker container.
### Synology NAS
As Synology within DSM now supports Docker (with a neat UI), you can simply install Home Assistant using docker without the need for command-line. For details about the package (including compatibility-information, if your NAS is supported), see <https://www.synology.com/en-us/dsm/app_packages/Docker>
As Synology within DSM now supports Docker (with a neat UI), you can simply install Home Assistant using docker without the need for command-line. For details about the package (including compatibility-information, if your NAS is supported), see <https://www.synology.com/en-us/dsm/packages/Docker>
The steps would be:
* Install "Docker" package on your Synology NAS

View File

@ -11,12 +11,6 @@ Install the development package of Python.
sudo dnf -y install python3-devel redhat-rpm-config
```
and Home Assistant itself.
```bash
pip3 install homeassistant
```
To isolate the Home Assistant installation a [`venv`](https://docs.python.org/3/library/venv.html) is handy. First create a new directory to store the installation and adjust the permissions.
```bash
@ -24,19 +18,20 @@ sudo mkdir -p /opt/homeassistant
sudo useradd -rm homeassistant -G dialout
sudo chown -R homeassistant:homeassistant /opt/homeassistant
```
Now switch to the new directory, setup the `venv`, and activate it.
```bash
sudo -u homeassistant -H -s
cd /opt/homeassistant
python3.6 -m venv .
python3.8 -m venv .
source bin/activate
```
Install Home Assistant itself.
```bash
$ pip3 install homeassistant colorlog
pip3 install homeassistant colorlog
```
Check the [autostart](/docs/autostart/systemd/) section in the documentation for further details and the [Firewall section](/docs/installation/troubleshooting/#no-access-to-the-frontend) if you want to access your Home Assistant installation.

View File

@ -7,6 +7,12 @@ description: "Installation of Home Assistant on your FreeNAS."
This has been tested on FreeNAS 11.2 and should also work on FreeBSD 11.x as well. These instructions assume you already have a running and accessible jail. For more information on creating a jail read the official FreeNAS User Guide regarding [Jails](https://www.ixsystems.com/documentation/freenas/11.2/jails.html). Once you have the jail available, follow the steps below. Directories used follow standard BSD conventions but can be adjusted as you wish.
Enter the Home Assistant jail. If you don't know which name you have given the jail, you can use the `iocage list` command to check.
```bash
# If the jail is called 'HomeAssistant'
iocage exec HomeAssistant
```
Create the user and group that Home Assistant will run as. The user/group ID of `8123` can be replaced if this is already in use in your environment.
```bash
@ -14,20 +20,15 @@ pw groupadd -n homeassistant -g 8123
echo 'homeassistant:8123:8123::::::/bin/csh:' | adduser -f -
```
Install the necessary Python packages:
Install the necessary Python packages and virtualenv:
```bash
pkg update
pkg upgrade
pkg install -y python37 py37-sqlite3 ca_root_nss
python3.7 -m ensurepip
```
Create the configuration directory:
```bash
mkdir -p /usr/local/homeassistant
chown -R homeassistant:homeassistant /usr/local/homeassistant
pip3 install --upgrade pip
pip3 install --upgrade virtualenv
```
Create the installation directory:
@ -45,11 +46,38 @@ cd /usr/local/share/homeassistant
virtualenv -p python3.7 .
source ./bin/activate.csh
pip3 install homeassistant
```
While still in the `venv`, start Home Assistant to populate the configuration directory.
```bash
hass --open-ui
```
Wait until you see:
```bash
(MainThread) [homeassistant.core] Starting Home Assistant
```
Then escape and exit the `venv`.
```bash
deactivate
exit
```
Create an `rc.d` script for the system-level service that enables Home Assistant to start when the jail starts. Create a file at `/usr/local/etc/rc.d/homeassistant` with the following contents:
Create the directory and the `rc.d` script for the system-level service that enables Home Assistant to start when the jail starts.
```bash
mkdir /usr/local/etc/rc.d/
```
Then create a file at `/usr/local/etc/rc.d/homeassistant` and insert the content below:
```bash
vi /usr/local/etc/rc.d/homeassistant
```
```bash
#!/bin/sh
@ -71,7 +99,7 @@ Create an `rc.d` script for the system-level service that enables Home Assistant
# empty string as this will cause the daemon to run with group wheel.
# Default: homeassistant
# homeassistant_config_dir: Directory where config files are located.
# Default: /usr/local/homeassistant
# Default: /home/homeassistant/.homeassistant
# homeassistant_install_dir: Directory where Home Assistant is installed.
# Default: /usr/local/share/homeassistant
#
@ -89,7 +117,7 @@ load_rc_config ${name}
: ${homeassistant_enable:="NO"}
: ${homeassistant_user:="homeassistant"}
: ${homeassistant_group:="homeassistant"}
: ${homeassistant_config_dir:="/usr/local/homeassistant"}
: ${homeassistant_config_dir:="/home/homeassistant/.homeassistant"}
: ${homeassistant_install_dir:="/usr/local/share/homeassistant"}
command="/usr/sbin/daemon"
@ -127,7 +155,7 @@ run_rc_command "$1"
Make the `rc.d` script executable:
```bash
# chmod +x /usr/local/etc/rc.d/homeassistant
chmod +x /usr/local/etc/rc.d/homeassistant
```
Configure the service to start on boot and start the Home Assistant service:
@ -144,3 +172,31 @@ You can also restart the jail to ensure that Home Assistant starts on boot.
USB Z-wave sticks may give `dmesg` warnings similar to "data interface 1, has no CM over data, has no break". This doesn't impact the function of the Z-Wave stick in Home Assistant. Just make sure the proper `/dev/cu*` is used in the Home Assistant `configuration.yaml` file.
</div>
# Updating
Before updating, read the changelog to see what has changed and how it affects your Home Assistant instance. Enter the jail using `iocage exec <jailname>`. Stop the Home Assistant service:
```bash
service homeassistant stop
```
Then, enter the `venv`:
```bash
su homeassistant
cd /usr/local/share/homeassistant
source ./bin/activate.csh
```
Upgrade Home Assistant:
```bash
pip3 install homeassistant --upgrade
```
Log out of the `homeassistant` user and start Home Assistant:
```bash
exit
service homeassistant start
```

View File

@ -13,7 +13,7 @@ One of the easiest ways to install Home Assistant on your Raspberry Pi Zero, 2,
<div class='note warning'>
Please remember to ensure you're using an [appropriate power supply](https://www.raspberrypi.org/help/faqs/#powerReqs) with your Pi. Mobile chargers may not be suitable since some were only designed to provide just enough power to the device it was designed for by the manufacturer. **Do not** try to power the Pi from the USB port on a TV, computer, or similar.
Please remember to ensure you're using an [appropriate power supply](https://www.raspberrypi.org/documentation/faqs/#pi-power) with your Pi. Mobile chargers may not be suitable since some were only designed to provide just enough power to the device it was designed for by the manufacturer. **Do not** try to power the Pi from the USB port on a TV, computer, or similar.
</div>
@ -22,7 +22,7 @@ Additional information is available in this [video](https://www.youtube.com/watc
After initial boot an installer will run in the background, this will download and install the newest version of [hassbian-config](https://github.com/home-assistant/hassbian-scripts) and Home-Assistant, this takes around 10 minutes to complete, after it has finished, you will be prompted to login: `hassbian login:`. Installation is complete at this point. The default username is `pi` and the password is `raspberry`.
Open a browser on a device that's connected to the same network as your Raspberry Pi and point it to Home Assistant at [http://hassbian.local:8123]. If you want to login via SSH, the default username is `pi` and password is `raspberry` (please change this by running `passwd`). The Home Assistant configuration is located at `/home/homeassistant/.homeassistant/`.
Open a browser on a device that's connected to the same network as your Raspberry Pi and point it to Home Assistant at `http://hassbian.local:8123`. If you want to login via SSH, the default username is `pi` and password is `raspberry` (please change this by running `passwd`). The Home Assistant configuration is located at `/home/homeassistant/.homeassistant/`.
If you find that the web page is not reachable after 30 minutes or so, check that you have files in `/home/homeassistant/.homeassistant/`, if there are no files in this location then run the installer manually using this command: `sudo systemctl start install_homeassistant.service`.

View File

@ -14,7 +14,7 @@ Although these installation steps specifically mention a Raspberry Pi, you can g
<div class='note warning'>
Please remember to ensure you're using an [appropriate power supply](https://www.raspberrypi.org/help/faqs/#powerReqs) with your Pi. Mobile chargers may not be suitable, since some are designed to only provide the full power with that manufacturer's handsets. USB ports on your computer also will not supply enough power and must not be used.
Please remember to ensure you're using an [appropriate power supply](https://www.raspberrypi.org/documentation/faqs/#pi-power) with your Pi. Mobile chargers may not be suitable, since some are designed to only provide the full power with that manufacturer's handsets. USB ports on your computer also will not supply enough power and must not be used.
</div>
@ -84,7 +84,7 @@ Start Home Assistant for the first time. This will complete the installation for
```bash
(homeassistant) $ hass
```
You can now reach your installation on your Raspberry Pi over the web interface on [http://ipaddress:8123](http://ipaddress:8123).
You can now reach your installation on your Raspberry Pi over the web interface on `http://ipaddress:8123`.
<div class='note'>

View File

@ -22,7 +22,7 @@ The following configuration has been tested on Synology 413j running DSM 6.0-732
Running these commands will:
- Install Home Assistant
- Enable Home Assistant to be launched on [http://localhost:8123](http://localhost:8123)
- Enable Home Assistant to be launched on `http://localhost:8123`
Using the Synology webadmin:

View File

@ -39,7 +39,7 @@ $ sudo docker pull homeassistant/raspberrypi3-homeassistant:latest
After updating, you must start/restart Home Assistant for the changes to take effect. This means that you will have to restart `hass` itself or the [autostarting](/docs/autostart/) daemon (if applicable). Startup can take considerable amount of time (i.e. minutes) depending on your device. This is because all requirements are updated as well.
[BRUH automation](http://www.bruhautomation.com) has created [a tutorial video](https://www.youtube.com/watch?v=tuG2rs1Cl2Y) explaining how to upgrade Home Assistant.
[BRUH automation](https://www.bruhautomation.io/) has created [a tutorial video](https://www.youtube.com/watch?v=tuG2rs1Cl2Y) explaining how to upgrade Home Assistant.
#### Run a specific version

View File

@ -41,7 +41,7 @@ birth_message:
retain:
description: If the published message should have the retain flag on or not.
required: false
default: true
default: false
type: boolean
will_message:
description: Will Message
@ -64,6 +64,6 @@ will_message:
retain:
description: If the published message should have the retain flag on or not.
required: false
default: true
default: false
type: boolean
{% endconfiguration %}

View File

@ -105,7 +105,7 @@ mqtt:
### CloudMQTT
[CloudMQTT](https://www.cloudmqtt.com) is a hosted private MQTT instance that is free for up to 10 connected devices. This is enough to get started with for example [OwnTracks](/integrations/device_tracker.owntracks/) and give you a taste of what is possible.
[CloudMQTT](https://www.cloudmqtt.com) is a hosted private MQTT instance that is free for up to 10 connected devices. This is enough to get started with for example [OwnTracks](/integrations/owntracks/) and give you a taste of what is possible.
<div class='note'>
Home Assistant is not affiliated with CloudMQTT nor will receive any kickbacks.

View File

@ -20,38 +20,30 @@ The MQTT integration will register the service `mqtt.publish` which allows publi
You need to include either payload or payload_template, but not both.
</div>
```json
{
"topic": "home-assistant/light/1/command",
"payload": "on"
}
```yaml
topic: home-assistant/light/1/command
payload: on
```
{% raw %}
```json
{
"topic": "home-assistant/light/1/state",
"payload_template": "{{ states('device_tracker.paulus') }}"
}
```yaml
topic: home-assistant/light/1/state
payload_template: {{ states('device_tracker.paulus') }}
```
{% endraw %}
`payload` must be a string. If you want to send JSON then you need to format/escape it properly. Like:
```json
{
"topic": "home-assistant/light/1/state",
"payload":"{\"Status\":\"off\", \"Data\":\"something\"}"
}
```yaml
topic: home-assistant/light/1/state
payload: "{\"Status\":\"off\", \"Data\":\"something\"}"
```
Example of how to use `qos` and `retain`:
```json
{
"topic": "home-assistant/light/1/command",
"payload": "on",
"qos": 2,
"retain": true
}
```yaml
topic: home-assistant/light/1/command
payload: on
qos: 2
retain: true
```

View File

@ -34,6 +34,14 @@ The most important one is the action to call a service. This can be done in vari
brightness: 100
```
#### Activate a Scene
Scripts may also use a shortcut syntax for activating scenes instead of calling the `scene.turn_on` service.
```yaml
- scene: scene.morning_living_room
```
### Test a Condition
While executing a script you can add a condition to stop further execution. When a condition does not return `true`, the script will stop executing. There are many different conditions which are documented at the [conditions page].

View File

@ -241,7 +241,7 @@ A better weekday condition could be by using the [Workday Binary Sensor](/integr
### Zone condition
Zone conditions test if an entity is in a certain zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/integrations/device_tracker.owntracks/) and the [iCloud platform](/integrations/device_tracker.icloud/).
Zone conditions test if an entity is in a certain zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/integrations/owntracks/) and the [iCloud platform](/integrations/icloud/).
```yaml
condition:

View File

@ -21,7 +21,7 @@ See the [open ports](/docs/security/porosity/) of a Hass.io instance with variou
## HTTP SSL/TLS
Home Assistant is following the [Mozilla's Operations Security team recommendations](https://wiki.mozilla.org/Security/Server_Side_TLS) for Server side SSL/TLS settings. Home Assistant uses **Modern compatibility** by default. If an user wishes to use **Intermediate compatibilty**, this is configurable in the [`http` integration](/integrations/http/).
Home Assistant is following the [Mozilla's Operations Security team recommendations](https://wiki.mozilla.org/Security/Server_Side_TLS) for Server side SSL/TLS settings. Home Assistant uses **Modern compatibility** by default. If an user wishes to use **Intermediate compatibility**, this is configurable in the [`http` integration](/integrations/http/).
## SSH
@ -31,5 +31,5 @@ Is SSH used with the [SSH server add-on](/addons/ssh/) then the user is responsi
## Source code
Due to the lack of resources we are not able to review all of our dependencies and inspect them for malicious behavior, leakage of information or compliance with GDPR. But we have a keen interest in the development of our dependencies are try to work closely with the upstream developer.
Due to the lack of resources we are not able to review all of our dependencies and inspect them for malicious behavior, leakage of information or compliance with GDPR. But we have a keen interest in the development of our dependencies and try to work closely with the upstream developer.

View File

@ -30,22 +30,21 @@ The list of services in the “Service” drop down are automatically populated
When a Service is selected, and if that service requires an `entity_id` to be passed, the “Entity” drop down will automatically be populated with corresponding entities.
A Service may also require additional input to be passed. It is commonly referred to as “service data”. The service data is only accepted in the JSON format, and it may be optional depending on the service.
A Service may also require additional input to be passed. It is commonly referred to as “service data”. The service data is accepted in YAML format, and it may be optional depending on the service.
When an entity is selected from the Entity drop down, it automatically populates service data with the corresponding `entity_id`. The service data JSON can then be modified to pass additional \[optional\] parameters. The following is an illustration on how to call a `light.turn_on` service.
When an entity is selected from the Entity drop down, it automatically populates service data with the corresponding `entity_id`. The service data YAML can then be modified to pass additional \[optional\] parameters. The following is an illustration on how to call a `light.turn_on` service.
To turn on a light bulb, use the following steps:
1. Select `light.turn_on` from the Service drop down
2. Select the entity (typically the light bulb) from the Entity drop down (if no entity_id is selected, it turns on ALL lights)
3. If an entity is selected, the service data is populated with basic JSON that will be passed to the service. An additional data can also be passed by updating the JSON as below.
```json
{
"entity_id": "light.bedroom",
"brightness": 255,
"rgb_color": [255, 0, 0]
}
```yaml
entity_id: light.bedroom
brightness: 255
rgb_color: [255, 0, 0]
```
## States
This section shows all the available entities, their corresponding state and the attribute values. The state and the attribute information is what Home Assistant sees at run time. To update the entity with a new state, or a new attribute value, click on the entity, scroll to the top, and modify the values, and click on “SET STATE” button.
@ -60,11 +59,12 @@ This Events section is as basic as it can get. It does only one thing fires
To fire an event, simply type the name of the event, and pass the event data in JSON format.
For ex: To fire a custom event, enter the `event_type` as `event_light_state_changed` and the event data JSON as
```json
{ "state":"on" }
```yaml
state: on
```
If there is an automation that handles that event, it will be automatically triggered. See below:
```yaml
- alias: Capture Event
trigger:
@ -86,19 +86,16 @@ It is a good practice to test the template code in the template editor prior to
For more information about jinja2, visit [jinja2 documentation](http://jinja.pocoo.org/docs/dev/templates/), and also read templating document [here](/topics/templating/)
## MQTT
This section is only visible if the MQTT integration is configured. To configure MQTT, add `mqtt:` to the `configuration.yaml` file. For more information, refer to the [mqtt](/integrations/mqtt/) component.
Even though MQTT in general provides deeper functionality, the developer tools section of MQTT is limited to publishing messages to a given topic. It supports templates for the payload. To publish a message, simply specify the topic name and the payload and click “PUBLISH” button.
## Logs
This section displays `syslog` information, and the contents of `home-assistant.log` with an option to clear and refresh the logs.
## Info
The Information tab simply provides information about the current installed version, [system health](/integrations/system_health/) (if enabled), additional links and credits.

View File

@ -4,7 +4,7 @@ description: "Using Z-Wave with Home Assistant."
redirect_from: /getting-started/z-wave/
---
[Z-Wave](http://www.z-wave.com/) integration for Home Assistant allows you to observe and control connected Z-Wave devices. Z-Wave support requires a [supported Z-Wave USB stick or module](/docs/z-wave/controllers/) to be plugged into the host.
[Z-Wave](https://www.z-wave.com/) integration for Home Assistant allows you to observe and control connected Z-Wave devices. Z-Wave support requires a [supported Z-Wave USB stick or module](/docs/z-wave/controllers/) to be plugged into the host.
There is currently support for climate, covers, lights, locks, sensors, switches, and thermostats. All will be picked up automatically after configuring this platform.
@ -36,4 +36,4 @@ You can get more information on the [available services](/docs/z-wave/services/)
When you toggle a switch or control a light locally you may find that it takes some time for that to be reflected in Home Assistant. That's because Lutron had patents on the status updates using the *Hail* command class, the traditional way of allowing devices to tell the controller that something happened locally. The same result can be achieved through the *Association* command class, or *Central Scene* command class (though, *Central Scene* isn't [fully supported](https://github.com/OpenZWave/open-zwave/pull/1125) in OpenZWave).
If you search [the Z-Wave products database](http://products.z-wavealliance.org/) for your product and it lists one of those in the **Controlled** command classes (not the **Supported** command classes), then your device will be able to report state changes when they happen. If it doesn't then updates may either happen eventually, or you may need to (carefully) [enable polling](/docs/z-wave/control-panel/#entities-of-this-node).
If you search [the Z-Wave products database](https://products.z-wavealliance.org/) for your product and it lists one of those in the **Controlled** command classes (not the **Supported** command classes), then your device will be able to report state changes when they happen. If it doesn't then updates may either happen eventually, or you may need to (carefully) [enable polling](/docs/z-wave/control-panel/#entities-of-this-node).

View File

@ -69,6 +69,10 @@ After defining your network key, follow these steps to add (include) a secure Z-
3. Activate your device to be included by following the instructions provided with the device
4. With the device in its final location, run a *Heal Network*
<div class='note warning'>
Secure devices require additional bandwidth, and too many secure devices can slow down your Z-Wave network. We recommend only using secure inclusion for devices that require it, such as locks.
</div>
## Removing Devices
To remove (exclude) a Z-Wave device from your system:

View File

@ -195,7 +195,7 @@ Triple tap on|2|4
Many Zooz Zen26/27 switches that have been sold do not have firmware 2.0+. Contact Zooz to obtain the over the air firmware update instructions and new user manual for the switches.
Once the firmware is updated, the the new configuration paramters will have to be added to the `zwcfg` file. Replace the existing `COMMAND_CLASS_CONFIGURATION` with the one of the following options (depending on your model of switch):
Once the firmware is updated, the the new configuration parameters will have to be added to the `zwcfg` file. Replace the existing `COMMAND_CLASS_CONFIGURATION` with the one of the following options (depending on your model of switch):
Zen26 (On/Off Switch):
```xml
@ -329,7 +329,7 @@ For Zooz switches, you'll need to update (or possibly add) the `COMMAND_CLASS_CE
</CommandClass>
```
Go to the Z-Wave Network Management section in the Home Assistant Configuration, select the node which has just been updated and enable the scene support configuration paramter.
Go to the Z-Wave Network Management section in the Home Assistant Configuration, select the node which has just been updated and enable the scene support configuration parameter.
Once this is complete, you should see the following `zwave.scene_activated` events:

View File

@ -33,9 +33,9 @@ The key improvements are:
### Z-Wave Security 2
From 2 April 2017 all newly approved Z-Wave devices will have to support the Security 2 (S2) framework. At the time of writing this (March 2018) OpenZWave does not support the S2 framework.
From 2 April 2017 all newly approved Z-Wave devices will have to support the Security 2 (S2) framework. At the time of writing this (October 2019) OpenZWave does not support the S2 framework.
## Device power
## Device Power
Your Z-Wave mesh network is built with the devices that are mains powered (whether directly, or via a USB adapter), these relay traffic for other nodes, building the network. These devices are always awake and you can query them, or send configuration changes, at any time.
@ -65,8 +65,8 @@ Polling needs to be enabled per device, you can control this through the *pollin
The Central Scene command class isn't yet supported in OpenZWave (there is [work in progress](https://github.com/OpenZWave/open-zwave/pull/1125) to provide it it), though Home Assistant has introduced some support with [change 9178](https://github.com/home-assistant/home-assistant/pull/9178) which was part of 0.53 and [documented here](/docs/z-wave/device-specific/#homeseer-switches).
## Is my device supported
## Is my device supported?
You can check to see if OpenZWave supports your particular device by looking at the [OpenZWave github](https://github.com/OpenZWave/open-zwave/tree/master/config). Be aware that being listed here doesn't mean that it will be supported in Home Assistant, since the version of OpenZWave used by Home Assistant will often lag the github by a few months.
You can check to see if OpenZWave supports your particular device by looking at the [OpenZWave 1.4 github](https://github.com/OpenZWave/open-zwave/tree/1.4/config). Be aware that being listed here doesn't mean that it will be supported in Home Assistant, since the version of OpenZWave used by Home Assistant will often lag the github by a few months.
Even if your device isn't listed there, it's likely that it will still work as expected as long as the device complies with the Z-Wave standards. The OpenZWave wiki describes how [you can add support](https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices) for your device if it isn't listed.

19
source/_headers Normal file
View File

@ -0,0 +1,19 @@
/*
Cache-Control: public, max-age: 0, s-maxage=3600, must-revalidate
Content-Security-Policy: form-action https:
Feature-Policy: vibrate 'none'; geolocation 'none'; midi 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope 'none'; speaker 'none'; vibrate 'none'; payment 'none'
Referrer-Policy: no-referrer-when-downgrade
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
/*.css
Cache-Control: public, max-age: 604800, s-maxage=604800
/*.js
Cache-Control: public, max-age: 604800, s-maxage=604800
/assets/*
Cache-Control: public, max-age: 0, s-maxage=604800, must-revalidate
/fonts/*
Cache-Control: public, max-age: 1800, s-maxage=604800, must-revalidate
/images/*
Cache-Control: public, max-age: 1800, s-maxage=604800, must-revalidate
/static/*
Cache-Control: public, max-age: 1800, s-maxage=604800, must-revalidate

View File

@ -5,7 +5,7 @@ g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
<script type="text/javascript" src="/javascripts/prism.js"></script>
<script src="/javascripts/prism.js?{{ site.time | date: '%s' }}" type="text/javascript"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>

View File

@ -8,7 +8,7 @@
</div>
<div class="icons">
<a rel="me" href='https://twitter.com/home_assistant' title="Twitter"><i class="icon-twitter"></i></a>
<a rel="me" href='https://facebook.com/homeassistantio' title="Facebook"><i class="icon-facebook"></i></a>
<a rel="me" href='https://www.facebook.com/homeassistantio' title="Facebook"><i class="icon-facebook"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant' title="GitHub"><i class="icon-github"></i></a>
</div>
</div>
@ -26,7 +26,7 @@
</div>
<div class='grid__item one-third lap-one-half palm-one-whole'>
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the
Website powered by <a href='https://jekyllrb.com/'>Jekyll</a> and the
<a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.
Hosted by <a href='https://www.netlify.com/'>Netlify</a>.
</div>

View File

@ -28,8 +28,8 @@
<meta name="twitter:description" content="{{ page.description | default: site.description | strip_html | truncate: 200 }}">
<meta name="twitter:image" content="{{ page.og_image | default: "/images/default-social.png" | prepend: site.url }}">
<link href="/stylesheets/prism.css" rel="stylesheet">
<link href="/stylesheets/screen.css" media="screen, projection, print" rel="stylesheet">
<link href="/stylesheets/prism.css?{{ site.time | date: '%s' }}" rel="stylesheet">
<link href="/stylesheets/screen.css?{{ site.time | date: '%s' }}" media="screen, projection, print" rel="stylesheet">
<link href="{{ site.subscribe_rss }}" rel="alternate" title="{{ site.title }}" type="application/atom+xml">
<link rel='shortcut icon' href='/images/favicon.ico' />
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />

View File

@ -14,6 +14,7 @@ ha_category:
- Switch
ha_release: 0.52
ha_iot_class: Cloud Push
ha_config_flow: true
---
The `abode` integration will allow users to integrate their Abode Home Security systems into Home Assistant and use its alarm system and sensors to automate their homes.
@ -23,31 +24,23 @@ Please visit the [Abode website](https://goabode.com/) for further information a
There is currently support for the following device types within Home Assistant:
- **Alarm Control Panel**: Reports on the current alarm status and can be used to arm and disarm the system.
- [**Binary Sensor**](/integrations/abode/#binary-sensor): Reports on `Quick Actions`, `Door Contacts`, `Connectivity` sensors (remotes, keypads, and status indicators), `Moisture` sensors, and `Motion` or `Occupancy` sensors.
- [**Binary Sensor**](/integrations/abode/#binary-sensor): Reports on `Quick Actions`, `Door Contacts`, `Connectivity` sensors (remotes, keypads, and status indicators), `Moisture` sensors, and `Motion` or `Occupancy` sensors. Also lists all Abode `Quick Actions` that are set up. You can trigger these quick actions by passing the `entity_id` of your quick action binary sensor to the [trigger_quick_action service](/integrations/abode/#trigger_quick_action).
- **Camera**: Reports on `Camera` devices and will download and show the latest captured still image.
- **Cover**: Reports on `Secure Barriers` and can be used to open and close the cover.
- **Lock**: Reports on `Door Locks` and can be used to lock and unlock the door.
- [**Light**](/integrations/abode/#light): Reports on `Dimmer` lights and can be used to dim or turn the light on and off.
- [**Switch**](/integrations/abode/#switch): Reports on `Power Switch` devices and can be used to turn the power switch on and off. Also reports on `Automations` set up in the Abode system and allows you to activate or deactivate them.
- [**Switch**](/integrations/abode/#switch): Reports on `Power Switch` devices and can be used to turn the power switch on and off. Also reports on `Automations` set up in the Abode system and allows you to activate or deactivate them (does not work with Abode's CUE automations).
- **Sensor**: Reports on `Temperature`, `Humidity`, and `Light` sensors.
## Configuration
To use Abode devices in your installation,
add the following `abode` section to your `configuration.yaml` file:
To use Abode devices in your installation, add your Abode account from the integrations page. Two-factor authentication must be disabled on your Abode account. Alternatively, Abode can be configured by adding the following `abode` section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
abode:
username: abode_username
password: abode_password
name: Abode Alarm System
polling: false
exclude:
- 'ZW:0000000034'
- 'RF:00000011'
lights:
- 'ZW:0000000022'
```
{% configuration %}
@ -59,10 +52,6 @@ password:
description: Password for your Abode account.
required: true
type: string
name:
description: The name for your alarm controller.
required: false
type: string
polling:
description: >
Enable polling if cloud push updating is less reliable.
@ -70,18 +59,6 @@ polling:
required: false
type: boolean
default: false
exclude:
description: >
A list of devices to exclude from Home Assistant by their Abode `device_id`
or `automation_id`, found within the integration attributes.
required: false
type: list
lights:
description: >
A list of switch devices that Home Assistant should treat as lights by the
switches Abode `device_id`, found within the integration attributes.
required: false
type: list
{% endconfiguration %}
## Events
@ -94,6 +71,12 @@ They are grouped into the below events:
- **abode_automation**: Fired when an Automation is triggered from Abode.
- **abode_panel_fault**: Fired when there is a fault with the Abode hub. This includes events like loss of power, low battery, tamper switches, polling failures, and signal interference.
- **abode_panel_restore**: Fired when the panel fault is restored.
- **abode_disarm**: Fired when the alarm is disarmed.
- **abode_arm**: Fired when the alarm is armed (home or away).
- **abode_test**: Fired when a sensor is in test mode.
- **abode_capture**: Fired when an image is captured.
- **abode_device**: Fired for device changes/additions/deletions.
- **abode_automation_edit**: Fired for changes to automations.
All events have the fields:
@ -141,19 +124,3 @@ Trigger a quick action automation on your Abode system.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | No | String or list of strings that point at `entity_id`s of binary_sensors that represent your Abode quick actions.
### Binary Sensor
This integration will add `Door Contacts`, `Connectivity` sensors (remotes, keypads, and status indicators), `Moisture` sensors, and `Motion` or `Occupancy` sensors.
This integration will also list all Abode `Quick Actions` that are set up. You can trigger these quick actions by passing the `entity_id` of your quick action binary sensor to the [trigger_quick_action service](/integrations/abode/#trigger_quick_action).
### Light
This integration will automatically add `Lights` configured in your Abode account. You can reclassify `Switches` to show up within Home Assistant as lights by listing the Abode device ID in your [configuration](/integrations/abode/#configuration).
### Switch
This integration will automatically add `Power Switches` configured in your Abode account. You can reclassify switches to show up within Home Assistant as `Lights` by listing the Abode device ID in your [configuration](/integrations/abode/#configuration).
This integration will also list all Abode `Automations` that are set up within the Abode system, allowing you to activate and deactivate the automations.

View File

@ -8,7 +8,7 @@ ha_iot_class: Local Polling
ha_release: 0.19
---
The `acer_projector` switch platform allows you to control the state of RS232 connected projectors from [Acer](http://www.acer.com).
The `acer_projector` switch platform allows you to control the state of RS232 connected projectors from [Acer](https://www.acer.com/).
## Configuration

View File

@ -7,7 +7,7 @@ ha_category:
ha_release: 0.7
---
This platform allows you to detect presence by looking at connected devices to an [Actiontec](http://www.actiontec.com/) device.
This platform allows you to detect presence by looking at connected devices to an [Actiontec](https://www.actiontec.com/) device.
Supported devices (tested):

View File

@ -10,7 +10,7 @@ ha_release: 0.95
ha_iot_class: Local Polling
---
AdGuard Home is a network-wide ad-and-tracker blocking DNS server with parental
AdGuard Home is a network-wide ad- and tracker-blocking DNS server with parental
control (adult content blocking) capabilities. The `adguard` integration allows
you to control and monitor your AdGuard Home instance in Home Assistant.
@ -19,7 +19,7 @@ you to control and monitor your AdGuard Home instance in Home Assistant.
Menu: **Configuration** -> **Integrations**.
Click on the `+` sign to add an integration and click on **AdGuard Home**.
Follow the configuration flow, after finishing, the AdGuard Home
After completing the configuration flow, the AdGuard Home
integration will be available.
## Sensors
@ -49,8 +49,8 @@ The integration will create a number of switches:
These switches allow you to automate things easily. For example, one could
write an automation to turn off Safe Search after the kids' bedtime.
The "AdGuard Protection" switch, is a master switch. It will turn off and
bypass all AdGuard feature, regardless if they are switched on or not.
The "AdGuard Protection" switch is a master switch. It will turn off and
bypass all AdGuard features, regardless of whether they are switched on or not.
<div class="note">
Turning off Query Log will result in all sensors not receiving updates anymore.
@ -63,8 +63,8 @@ These services allow one to manage filter subscriptions in AdGuard Home.
Using these services in automations could be helpful to block certain
sites/domains at certain times.
For example, you could create a custom filter list blocking social media sites,
during the day and release them during the evening, using a simple automation.
For example, you could create a custom filter list that blocks social media sites
during the day and releases them during the evening.
### Service `add_url`
@ -105,7 +105,7 @@ Refresh all filter subscriptions in AdGuard Home.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------- |
| `force` | Yes | Force update (bypasses AdGuard Home throttling). |
| `force` | Yes | Force update (bypasses AdGuard Home throttling). |
By default, `force` is set to `false`. Forcing an update bypasses AdGuard Home's
throttling logic, so use with care.

View File

@ -13,7 +13,7 @@ ha_release: "0.60"
ha_iot_class: Local Push
---
The ADS (automation device specification) describes a device-independent and fieldbus independent interface for communication between [Beckhoff](https://www.beckhoff.com/) automation devices running [TwinCAT](http://www.beckhoff.hu/english.asp?twincat/default.htm) and other devices implementing this interface.
The ADS (automation device specification) describes a device-independent and fieldbus independent interface for communication between [Beckhoff](https://www.beckhoff.com/) automation devices running [TwinCAT](https://www.beckhoff.hu/english.asp?twincat/default.htm) and other devices implementing this interface.
There is currently support for the following device types within Home Assistant:

View File

@ -0,0 +1,41 @@
---
title: "Airly"
description: "Instructions on how to integrate Airly within Home Assistant."
logo: airly.png
ha_category:
- Health
ha_release: 0.101
ha_iot_class: Cloud Polling
---
The `airly` integration uses the [Airly](https://airly.eu/) web service as a source for air quality data for your location.
## Setup
To generate an Airly API key, go to [Airly for developers](https://developer.airly.eu/register) page.
## Configuration
To add Airly to your installation, go to **Configuration** >> **Integrations** in the UI and enable the Airly integration. By default, the values will be taken from the Home Assistant configuration.
{% configuration %}
api_key:
description: The Airly API key.
required: true
type: string
name:
description: Manually specify Name.
required: false
type: string
default: Airly
latitude:
description: Manually specify latitude.
required: false
type: float
default: Provided by Home Assistant configuration
longitude:
description: Manually specify longitude.
required: false
type: float
default: Provided by Home Assistant configuration
{% endconfiguration %}

View File

@ -8,7 +8,7 @@ ha_release: 0.53
ha_iot_class: Cloud Polling
---
The `airvisual` sensor platform queries the [AirVisual](https://airvisual.com/) API for air quality data. Data can be collected via latitude/longitude or by city/state/country. The resulting information creates sensors for the Air Quality Index (AQI), the human-friendly air quality level, and the main pollutant of that area. Sensors that conform to either/both the [U.S. and Chinese air quality standards](http://www.clm.com/publication.cfm?ID=366) can be created.
The `airvisual` sensor platform queries the [AirVisual](https://airvisual.com/) API for air quality data. Data can be collected via latitude/longitude or by city/state/country. The resulting information creates sensors for the Air Quality Index (AQI), the human-friendly air quality level, and the main pollutant of that area. Sensors that conform to either/both the [U.S. and Chinese air quality standards](https://www.clm.com/publication.cfm?ID=366) can be created.
This platform requires an AirVisual API key, which can be obtained [here](https://airvisual.com/api). Note that the platform was designed using the "Community" package; the "Startup" and "Enterprise" package keys should continue to function, but actual results may vary (or not work at all).

View File

@ -103,11 +103,11 @@ zones:
required: false
type: integer
relayaddr:
description: "Address of the relay expander board to associate with the zone. (ex: 12, 13, 14, or 15). Typically used in cases where a panel will not send bypassed zones such as motion during an armed home state, the Vista 20P is an example of this. Alarmdecoder can emulate a zone expander board and the panel can be programmed to push zone events to this virtual expander. This allows the bypassed zone binary sensors to be utilized. One example is using bypassed motion sensors at night for motion-based automated lights while the system is armed with the motion sensor bypassed."
description: "Address of the relay or zone expander board to associate with the zone. (ex: 12, 13, 14, or 15). Typically used in cases where a panel will not send bypassed zones such as motion during an armed home state, the Vista 20P is an example of this. Alarmdecoder can emulate a zone expander board and the panel can be programmed to push zone events to this virtual expander. This allows the bypassed zone binary sensors to be utilized. One example is using bypassed motion sensors at night for motion-based automated lights while the system is armed with the motion sensor bypassed."
required: inclusive
type: integer
relaychan:
description: "Channel of the relay expander board to associate with the zone. (ex: 1, 2, 3, or 4)"
description: "Channel of the relay or zone expander board to associate with the zone. (ex: 1, 2, 3, or 4 for relay expander boards, 1 - 8 for zone expander boards)"
required: inclusive
type: integer
{% endconfiguration %}

View File

@ -78,5 +78,5 @@ Please refer to the [Amazon documentation][flash-briefing-api-docs] for more inf
[small-icon]: /images/integrations/alexa/alexa-108x108.png
[templates]: /topics/templating/
[zero-three-one]: /blog/2016/10/22/flash-briefing-updater-hacktoberfest/
[alexa-settings-site]: http://alexa.amazon.com/
[alexa-settings-site]: https://alexa.amazon.com/
[emulated-hue-component]: /integrations/emulated_hue/

View File

@ -17,17 +17,11 @@ The built-in Alexa integration allows you to integrate Home Assistant into Alexa
### Requirements
Amazon requires the endpoint of a skill to be hosted via SSL. Self-signed certificates are OK because our skills will only run in development mode. Read more on [our blog][blog-lets-encrypt] about how to set up encryption for Home Assistant. When running Hass.io, using the [Let's Encrypt](/addons/lets_encrypt/) and [Duck DNS](/addons/duckdns/) add-ons is the easiest method. If you are unable to get HTTPS up and running, consider using [this AWS Lambda proxy for Alexa skills](https://community.home-assistant.io/t/aws-lambda-proxy-custom-alexa-skill-when-you-dont-have-https/5230).
- Amazon Developer Account. You can sign on [here](https://developer.amazon.com).
- An [AWS account](https://aws.amazon.com/free/) is need if you want to use Alexa Custom Skill API. Part of your Alexa Custom Skill will be hosted on [AWS Lambda](https://aws.amazon.com/lambda/pricing/). However you don't need worry the cost, AWS Lambda allow free to use up to 1 millions requests and 1GB outbound data transfer per month.
- The Alexa Custom Skill API also needs your Home Assistant instance can be accessed from Internet. We strongly suggest you host HTTPS server and use validation certificate. Read more on [our blog](/blog/2015/12/13/setup-encryption-using-lets-encrypt/) about how to set up encryption for Home Assistant. When running Hass.io using the [Duck DNS](/addons/duckdns/) add-on is the easiest method.
Additionally, note that at the time of this writing, your Alexa skill endpoint *must* accept requests over port 443 (Home Assistant default to 8123). There are two ways you can handle this:
1. In your router, forward external 443 to your Home Assistant serving port (defaults to 8123)
OR
2. Change your Home Assistant serving port to 443 this is done in the [`http`](/integrations/http/) section with the `server_port` entry in your `configuration.yaml` file
[blog-lets-encrypt]: /blog/2015/12/13/setup-encryption-using-lets-encrypt/
To get started with Alexa skills:
### Create Your Amazon Alexa Custom Skill
- Log in to [Amazon developer console][amazon-dev-console]
- Click the Alexa button at the top of the console
@ -36,12 +30,96 @@ To get started with Alexa skills:
- Name: Home Assistant
- Invocation name: home assistant (or be creative, up to you)
- Version: 1.0
- Endpoint:
- https
- `https://YOUR_HOST/api/alexa?api_password=YOUR_API_PASSWORD`
- Endpoint: This will be the ARN for the Lambda Function you will create next.
You can use this [specially sized Home Assistant logo][large-icon] as the large icon and [this one][small-icon] as the small one.
### Create Your Lambda Function
The Alexa Custom skill will trigger a AWS Lambda function to process the request, we will write a small piece of code hosted as a Lambda function to basically redirect the request to your Home Assistant instance, then the Alexa integration in Home Assistant will process the request and send back the response. Your Lambda function will deliver the response back to Alexa.
OK, let's go. You first need sign in your [AWS console](https://console.aws.amazon.com/), if you don't have an AWS account yet, you can create a new user [here](https://aws.amazon.com/free/) with 12-month free tier benefit. You don't need worry the cost if your account has already passed the first 12 months, AWS provides up to 1 million Lambda requests, 1GB of outbound data and unlimited inbound data for free every month for all users. See [Lambda pricing](https://aws.amazon.com/lambda/pricing/) for details.
#### Create an IAM Role for Lambda
The first thing you need to do after you sign in to the [AWS console](https://console.aws.amazon.com/) is to create an IAM Role for Lambda execution. AWS has very strict access control, you have to explicitly define and assign the permissions.
- Click `Service` in top navigation bar, expand the menu to display all AWS services, click `IAM` under `Security, Identity, & Compliance` section to navigate to IAM console. Or you may use this [link](https://console.aws.amazon.com/iam/home)
- Click `Roles` in the left panel, then click `Create role`, select `AWS Service` -> `Lambda` in the first page of the wizard, then click `Next: Permissions`
- Select `AWSLambdaBasicExecutionRole` policy, then click `Next: Tags`. (Tips: you can use the search box to filter the policy)
<p class='img'>
<img src='/images/integrations/alexa/create_iam_role_attach_permission.png' alt='Screenshot: Attach permission policy to IAM role'>
</p>
- You can skip `Add tags` page, click `Next: Review`.
- Give your new role a name, such as `AWSLambdaBasicExecutionRole-Intents`, then click `Create role` button. You should be able to find your new role in the roles list now.
#### Create a Lambda function and add code
Next you need to create a Lambda function.
- Click `Service` in top navigation bar, expand the menu to display all AWS services, click `Lambda` under `Compute` section to navigate to Lambda console. Or you may use this [link](https://console.aws.amazon.com/lambda/home)
- **IMPORTANT** Your current region will be displayed on the top right corner, make sure you select right region base on your Amazon account's country:
* **US East (N.Virginia)** region for English (US) or English (CA) skills
* **EU (Ireland)** region for English (UK), English (IN), German (DE), Spanish (ES) or French (FR) skills
* **US West (Oregon)** region for Japanese and English (AU) skills.
- Click `Functions` in the left navigation bar, display list of your Lambda functions.
- Click `Create function`, select `Author from scratch`, then input a `Function name`.
- Select *Python 3.6* or *Python 3.7* as `Runtime`.
- Select *Use an existing role* as `Execution role`, then select the role you just created from the `Existing role` list.
- Click `Create function`, then you can config detail of Lambda function.
- Under `Configuration` tab, expand `Designer`, then click `Alexa Skills Kit` in the left part of the panel to add a Alexa Skills Kit trigger to your Lambda function.
- Scroll down little bit, you need to input the `Skill ID` from the skill you created in previous step. (You may need to switch back to the Alexa Developer Console to copy the `Skill ID`.)
- Click your Lambda Function icon in the middle of the diagram and scroll down, you will see a `Function code` window.
- Clear the example code and copy the Python script from: [https://gist.github.com/lpomfrey/97381cf4316553b03622c665ae3a47da](https://gist.github.com/lpomfrey/97381cf4316553b03622c665ae3a47da)
- Scroll down again and you will find `Environment variables`, add the following environment variables as needed:
* BASE_URL *(required)*: your Home Assistant instance's Internet accessible URL with port if needed. *Do not include the trailing `/`*.
* NOT_VERIFY_SSL *(optional)*: set to *True* to ignore the SSL issue, if you don't have a valid SSL certificate or you are using self-signed certificate.
* DEBUG *(optional)*: set to *True* to log debugging messages.
* LONG_LIVED_ACCESS_TOKEN *(optional, not recommended)*: you will connect your Alexa Custom skill with your Home Assistant user account in the later steps, so that you don't need to use long-lived access token here. However, the access token you got from login flow is only valid for 30 minutes. It will be hard for you to test lambda function with the access token in test data. So for your convinces, you can remove the access token from the test data, [generate a long-lived access token][generate-long-lived-access-token] put here, then the function will fall back to reading the token from environment variables. (tips: You did not enable the security storage for your environment variables, so your token saved here is not that safe. You should only use it for debugging and testing purpose. You should remove and delete the long-lived access token after you finish the debugging.)
<p class='img'>
<img src='/images/integrations/alexa/lambda_function_env_var.png' alt='Screenshot: Environment variables in Lambda function'>
</p>
- Now scroll up to the top and click the `Save` button.
- Next, copy the ARN displayed in the top of the page, which is the identify of this Lambda function. Set the end point of the custom Alexa Skill you created earlier to this value.
### Account Linking
Alexa can link your Amazon account to your Home Assistant account. Therefore Home Assistant can make sure only authenticated Alexa requests are actioned. In order to link the account, you have to make sure your Home Assistant can be accessed from Internet.
- Sign in to the [Alexa Developer Console][alexa-dev-console] and go to the `Alexa Skills` page.
- Find the skill you just created and click `Edit` in the `Actions` column.
- Click `ACCOUNT LINKING` in the left navigation bar of build page
- Input all information required. Assuming your Home Assistant can be accessed by https://[YOUR HOME ASSISTANT URL:PORT]
* `Authorization URI`: https://[YOUR HOME ASSISTANT URL:PORT]/auth/authorize
* `Access Token URI`: https://[YOUR HOME ASSISTANT URL:PORT]/auth/token
* `Client ID`:
- https://pitangui.amazon.com/ if you are in US
- https://layla.amazon.com/ if you are in EU
- https://alexa.amazon.co.jp/ if you are in JP or AU
The trailing slash is important here.
* `Client Secret`: input anything you like, Home Assistant does not check this field
* `Client Authentication Scheme`: make sure you selected *Credentials in request body*. Home Assistant does not support *HTTP Basic*.
* `Scope`: input `intent`. Home Assistant doesn't use this yet, we may use it in the future when we allow more fine-grained access control.
- You can leave `Domain List` and `Default Access Token Expiration Time` as empty.
<p class='img'>
<img src='/images/integrations/alexa/account_linking.png' alt='Screenshot: Account Linking'>
</p>
- Click `Save` button in the top right corner.
- Next, you will use the Alexa Mobile App or [Alexa web-based app](#alexa-web-based-app) to link your account.
* Open the Alexa app, navigate to `Skills` -> `Your Skills` -> `Dev Skills`
* Click the Custom skill you just created.
* Click `Enable`.
* A new window will open to direct you to your Home Assistant's login screen.
* After you successfully login, you will be redirected back to Alexa app.
### Configuring your Amazon Alexa skill
Alexa works based on intents. Each intent has a name and variable slots. For example, a `LocateIntent` with a slot that contains a `User`. Example intent schema:
@ -266,3 +344,4 @@ Alexa will now respond with a random phrase each time. You can use the include f
[large-icon]: /images/integrations/alexa/alexa-512x512.png
[small-icon]: /images/integrations/alexa/alexa-108x108.png
[templates]: /topics/templating/
[generate-long-lived-access-token]: https://developers.home-assistant.io/docs/en/auth_api.html#long-lived-access-token

View File

@ -20,7 +20,7 @@ Amazon provides a Smart Home API for richer home automation control. It takes
considerable effort to configure. The easy solution is to use
[Home Assistant Cloud](/integrations/cloud/).
However, config Amazon Alexa Smart Home Skill is not a easy job, you have to allow
However, config Amazon Alexa Smart Home Skill is not an easy job, you have to allow
your Home Assistant accessible from Internet, and you need to create Amazon Developer
account and an Amazon Web Service account.
@ -37,7 +37,7 @@ For Home Assistant Cloud Users, documentation can be found [here](https://www.na
- Amazon Developer Account. You can sign on [here](https://developer.amazon.com).
- An [AWS account](https://aws.amazon.com/free/) is need if you want to use Smart Home Skill API. Part of your Smart Home Skill will be hosted on [AWS Lambda](https://aws.amazon.com/lambda/pricing/). However you don't need worry the cost, AWS Lambda allow free to use up to 1 millions requests and 1GB outbound data transfer per month.
- Smart Home API also needs your Home Assistant instance can be accessed from Internet. We strongly suggest you host HTTPS server and use validation certificate. Read more on [our blog](/blog/2015/12/13/setup-encryption-using-lets-encrypt/) about how to set up encryption for Home Assistant. When running Hass.io, using the [Let's Encrypt](/addons/lets_encrypt/) and [Duck DNS](/addons/duckdns/) add-ons is the easiest method.
- Smart Home API also needs your Home Assistant instance can be accessed from Internet. We strongly suggest you host HTTPS server and use validation certificate. Read more on [our blog](/blog/2015/12/13/setup-encryption-using-lets-encrypt/) about how to set up encryption for Home Assistant. When running Hass.io using the [Duck DNS](/addons/duckdns/) add-on is the easiest method.
### Create Your Amazon Alexa Smart Home Skill
@ -46,7 +46,9 @@ For Home Assistant Cloud Users, documentation can be found [here](https://www.na
- Input `Skill name` as you like, select your skill's `Default language`.
- Select `Smart Home` and `Provision your own`, then click `Create skill` button at top right corner.
<p class='img'>
<img src='/images/integrations/alexa/create_a_new_skill.png' alt='Screenshot: Create Smart Home skill'>
</p>
- In next screen, make sure *v3* is selected in `Payload version`.
- Now, you have created a skeleton of Smart Home skill. Next step we will do some "real" developer work. You can keep Alex Developer Console opened, we need change the skill configuration later.
@ -75,7 +77,9 @@ First thing you need to do after sing in [AWS console](https://console.aws.amazo
- Click `Roles` in the left panel, then click `Create role`, select `AWS Service` -> `Lambda` in the first page of the wizard, then click `Next: Permissions`
- Select `AWSLambdaBasicExecutionRole` policy, then click `Next: Tags`. (Tips: you can use the search box to filter the policy)
<p class='img'>
<img src='/images/integrations/alexa/create_iam_role_attach_permission.png' alt='Screenshot: Attach permission policy to IAM role'>
</p>
- You can skip `Add tags` page, click `Next: Review`.
- Give your new role a name, such as `AWSLambdaBasicExecutionRole-SmartHome`, then click `Create role` button. You should be able to find your new role in the roles list now.
@ -97,13 +101,16 @@ Next you need create a Lambda function.
- Under `Configuration` tab, expand `Designer`, then click `Alexa Smart Home` in the left part of the panel to add a Alexa Smart Home trigger to your Lambda function.
- Scroll down little bit, you need input the `Skill ID` from the skill you created in previous step. (tips: you may need switch back to Alexa Developer Console to copy the `Skill ID`.
- Click your Lambda Function icon in the middle of the diagram, scroll down you will see a `Function code` window.
- Clear the example code, copy the Python script from: <https://gist.github.com/matt2005/744b5ef548cc13d88d0569eea65f5e5b> (modified code to support Alexa's proactive mode, see details below)
- Clear the example code, copy the Python script from: [https://gist.github.com/matt2005/744b5ef548cc13d88d0569eea65f5e5b](https://gist.github.com/matt2005/744b5ef548cc13d88d0569eea65f5e5b) (modified code to support Alexa's proactive mode, see details below)
- Scroll down a little bit, you will find `Environment variables`, you need add 4 environment variables:
* BASE_URL *(required)*: your Home Assistant instance's Internet accessible URL with port if needed. *Do not include the trailing `/`*.
* NOT_VERIFY_SSL *(optional)*: you can set it to *True* to ignore the SSL issue, if you don't have a valid SSL certificate or you are using self-signed certificate.
* DEBUG *(optional)*: set to *True* to log the debug message
* LONG_LIVED_ACCESS_TOKEN *(optional, not recommend)*: you will connect your Alexa Smart Home skill with your Home Assistant user account in the later steps, so that you don't need to use long-lived access token here. However, the access token you got from login flow is only valid for 30 minutes. It will be hard for you to test lambda function with the access token in test data. So for your convinces, you can remove the access token from the test data, [generate a long-lived access token][generate-long-lived-access-token] put here, then the function will fall back to read token from environment variables. (tips: You did not enable the security storage for your environment variables, so your token saved here is not that safe. You should only use it for debugging and testing purpose. You should remove and delete the long-lived access token after you finish the debugging.)
<p class='img'>
<img src='/images/integrations/alexa/lambda_function_env_var.png' alt='Screenshot: Environment variables in Lambda function'>
</p>
- Now scroll up to the top, click `Save` button.
- You need copy the ARN displayed in the top of the page, which is the identify of this Lambda function. You will need this ARN to continue Alexa Smart Home skill configuration later.
@ -178,7 +185,9 @@ Alexa can link your Amazon account to your Home Assistant account. Therefore Hom
* `Scope`: input `smart_home`, Home Assistant is not using it yet, we may use it in the future when we allow more fine-grained access control.
- You can leave `Domain List` and `Default Access Token Expiration Time` as empty.
<p class='img'>
<img src='/images/integrations/alexa/account_linking.png' alt='Screenshot: Account Linking'>
</p>
- Click `Save` button in the top right corner.
- Next, you will use Alexa Mobile App or [Alexa web-based app](#alexa-web-based-app) to link your account.

View File

@ -12,9 +12,9 @@ Polly is a paid service via Amazon Web Services. There is a [free tier](https:/
## Setup
For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions.
For more information, please read the [AWS General Reference regarding Security Credentials](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](https://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions.
Available voices are listed in the [Amazon Documentation](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html).
Available voices are listed in the [Amazon Documentation](https://docs.aws.amazon.com/polly/latest/dg/voicelist.html).
## Configuration

View File

@ -7,7 +7,7 @@ ha_release: 0.93
ha_iot_class: Cloud Polling
---
Integrates [Ambiclimate](https://Ambiclimate.com) Air Conditioning controller into Home Assistant.
Integrates [Ambiclimate](https://ambiclimate.com/) Air Conditioning controller into Home Assistant.
You must create an application [here](https://api.ambiclimate.com/clients) to obtain a `client_id` and `client_secret`.
The `callback url` should be configured as your Home Assistant `base_url` + `/api/ambiclimate`, e.g. `https://example.com/api/ambiclimate`.

View File

@ -202,4 +202,4 @@ camera:
The `android_ip_webcam` sensor platform lets you observe states of [Android IP webcam](https://play.google.com/store/apps/details?id=com.pas.webcam) sensors through Home Assistant. Devices will be configured automatically.
You can setup your own sensors by examining the JSON file from the webcam server: http://IP:8080/sensors.json
You can setup your own sensors by examining the JSON file from the webcam server: `http://IP:8080/sensors.json`

View File

@ -29,21 +29,15 @@ For Fire TV devices, the instructions are as follows:
```yaml
# Example configuration.yaml entry
media_player:
# Use the Python ADB implementation without authentication
# Use the Python ADB implementation
- platform: androidtv
name: Android TV 1
host: 192.168.0.111
# Use the Python ADB implementation with authentication
# Use an ADB server for sending ADB commands
- platform: androidtv
name: Android TV 2
host: 192.168.0.222
adbkey: "/config/android/adbkey"
# Use an ADB server for sending ADB commands
- platform: androidtv
name: Android TV 3
host: 192.168.0.123
adb_server_ip: 127.0.0.1
```
@ -63,11 +57,11 @@ port:
default: 5555
type: integer
adbkey:
description: The path to your `adbkey` file.
description: The path to your `adbkey` file; if not provided, Home Assistant will generate a key for you (if necessary).
required: false
type: string
adb_server_ip:
description: The IP address of the ADB server.
description: The IP address of the ADB server. If this is provided, the integration will utilize an [ADB server](#1-adb-server) to communicate with the device.
required: false
type: string
adb_server_port:
@ -110,14 +104,14 @@ turn_off_command:
```yaml
# Example configuration.yaml entry
media_player:
# Use an ADB server to setup an Android TV device, provide
# an app name, override the default turn on/off commands,
# and provide custom state detection rules
# Use the Python ADB implementation with a user-provided key to setup an
# Android TV device. Provide an app name, override the default turn on/off
# commands, and provide custom state detection rules.
- platform: androidtv
name: Android TV
device_class: androidtv
host: 192.168.0.222
adb_server_ip: 127.0.0.1
adbkey: "/config/android/adbkey"
apps:
com.amazon.tv.launcher: "Fire TV"
turn_on_command: "input keyevent 3"
@ -138,19 +132,23 @@ media_player:
'wake_lock_size': 1 # this indentation is important!
- 'standby'
# Use the Python ADB implementation with authentication
# to setup a Fire TV device and don't get the running apps
# Use an ADB server to setup a Fire TV device and don't get the running apps.
- platform: androidtv
name: Fire TV
device_class: firetv
host: 192.168.0.222
adbkey: "/config/android/adbkey"
adb_server_ip: 127.0.0.1
adb_server_port: 5037
get_sources: false
```
## ADB Setup
This integration works by sending ADB commands to your Android TV / Fire TV device. There are two ways to accomplish this:
This integration works by sending ADB commands to your Android TV / Fire TV device. There are two ways to accomplish this.
<div class='note'>
When connecting to your device for the first time, a dialog will appear on your Android TV / Fire TV asking you to approve the connection. Check the box that says "always allow connections from this device" and hit OK.
</div>
### 1. ADB Server
@ -160,46 +158,29 @@ For Hass.io users, you can install the [Android Debug Bridge](https://github.com
### 2. Python ADB Implementation
The second option is to connect to your device using the `adb-shell` Python package.
The second option is to connect to your device using the `adb-shell` Python package. As of Home Assistant 0.101, if a key is needed for authentication and it is not provided by the `adbkey` configuration option, then Home Assistant will generate a key for you.
If your device requires ADB authentication, you will need to follow the instructions in the [ADB Authentication](#adb-authentication) section below. Once you have an authenticated key, this approach does not require any additional setup or addons. However, users with newer devices may find that the ADB connection is unstable. For a Fire TV device, you can try setting the `get_sources` configuration option to `false`. If the problem cannot be resolved, you should use the ADB server option.
#### ADB Authentication
If you get a "Device authentication required, no keys available" error when trying to set up your Android TV or Fire TV, then you'll need to create an adbkey and add its path to your configuration. Follow the instructions on this page to connect to your device from your computer: [Connecting to Fire TV Through adb](https://developer.amazon.com/zh/docs/fire-tv/connecting-adb-to-device.html).
<div class='note warning'>
In the dialog appearing on your Android TV / Fire TV, you must check the box that says "always allow connections from this device." ADB authentication in Home Assistant will only work using a trusted key.
</div>
Once you've successfully connected to your Android TV / Fire TV via the command `adb connect <ipaddress>:5555`, the file `adbkey` will be created on your computer. The default locations for this file are (from [https://developer.android.com/studio/command-line/adb](https://developer.android.com/studio/command-line/adb)):
- Linux and Mac: `$HOME/.android.`
- Windows: `%userprofile%\.android.`
Copy the `adbkey` file to your Home Assistant folder and add the path to the `adbkey` file to your configuration.
Prior to Home Assistant 0.101, this approach did not work well for newer devices. Efforts have been made to resolve these issues, but if you experience problems then you should use the ADB server option.
## ADB Troubleshooting
If you receive the error message `Error while setting up platform androidtv` in your log when trying to set up an Android TV or Fire TV device, then there is probably an issue with your ADB connection. Here are some possible causes.
If the setup for your Android TV or Fire TV device fails, then there is probably an issue with your ADB connection. Here are some possible causes.
1. ADB is not enabled on your device.
1. You have the wrong IP address for the device.
2. You are already connected to the Android TV / Fire TV via ADB from another device. Only one device can be connected, so disconnect the other device, restart the Android TV / Fire TV (for good measure), and then restart Home Assistant.
2. ADB is not enabled on your device.
3. If you are using the [Python ADB implementation](#2-python-adb-implementation):
3. You are already connected to the Android TV / Fire TV via ADB from another device. Only one device can be connected, so disconnect the other device, restart the Android TV / Fire TV (for good measure), and then restart Home Assistant.
* This method often does not work for newer devices. Use the [ADB server](#1-adb-server) approach instead.
4. You need to approve the ADB connection; see the note in the [ADB Setup](#adb-setup) section above.
* Your key is not pre-authenticated. Before using the `adbkey` in Home Assistant, you _**must**_ connect to your device using the ADB binary and tell it to always allow connections from this computer. For more information, see the section [ADB Authentication](#adb-authentication) above.
5. Some Android TV devices (e.g., Philips TVs running Android TV) only accept the initial ADB connection request over their Wi-Fi interface. If you have the TV wired, you need to connect it to WiFi and try the initial connection again. Once the authentication has been granted via Wi-Fi, you can connect to the TV over the wired interface as well.
* Home Assistant does not have the appropriate permissions for the `adbkey` file and so it is not able to use it. Once you fix the permissions, the integration should work.
4. Some Android TV devices (e.g., Philips TVs running Android TV) only accept the initial ADB connection request over their Wi-Fi interface. If you have the TV wired, you need to connect it to WiFi and try the initial connection again. Once the authentication has been granted via Wi-Fi, you can connect to the TV over the wired interface as well.
6. If you are using the [Python ADB implementation](#2-python-adb-implementation) approach, as mentioned above, there may be some issues with newer devices. In this case, you should use the [ADB server](#1-adb-server) approach instead.
## Services
### `media_player.select_source`
### (Fire TV devices only) `media_player.select_source`
For Fire TV devices, you can launch an app using the `media_player.select_source` command. Simply provide the app ID as the `source`. You can also stop an app by prefixing the app ID with a `!`. For example, you could define [scripts](/docs/scripts) to start and stop Netflix as follows:
@ -253,7 +234,9 @@ Available key commands include:
The full list of key commands can be found [here](https://github.com/JeffLIrion/python-androidtv/blob/bf1058a2f746535921b3f5247801469c4567e51a/androidtv/constants.py#L143-L186).
You can also use the command `GET_PROPERTIES` to retrieve the properties used by Home Assistant to update the device's state. These will be stored in the media player's `'adb_response'` attribute and logged at the INFO level, this information can be used to help improve state detection in the backend [androidtv](https://github.com/JeffLIrion/python-androidtv) package.
You can also use the command `GET_PROPERTIES` to retrieve the properties used by Home Assistant to update the device's state. These will be stored in the media player's `'adb_response'` attribute and logged at the INFO level. This information can be used to help improve state detection in the backend [androidtv](https://github.com/JeffLIrion/python-androidtv) package, and also to define your own [custom state detection](#custom-state-detection) rules.
A list of various intents can be found [here](https://gist.github.com/mcfrojd/9e6875e1db5c089b1e3ddeb7dba0f304).
## Custom State Detection

View File

@ -8,7 +8,7 @@ ha_iot_class: Local Polling
ha_release: "0.30"
---
The `anel_pwrctrl` switch platform allows you to control [ANEL PwrCtrl](http://anel-elektronik.de/SITE/produkte/produkte.htm) devices.
The `anel_pwrctrl` switch platform allows you to control [ANEL PwrCtrl](https://anel-elektronik.de/SITE/produkte/produkte.htm) devices.
Supported devices (tested):

View File

@ -12,12 +12,12 @@ Both [Anthem]'s current and last generation of A/V Receivers and Processors supp
## Supported Models
* MRX 520, MRX 720, MRX 1120, and AVM 60
* MRX 310, MRX 510, MRX 710
* [MRX 520](https://www.anthemav.com/products-current/series=mrx-series-gen3/model=mrx-520/page=overview), [MRX 720](https://www.anthemav.com/products-current/collection=performance/model=mrx-720/page=overview), [MRX 1120](https://www.anthemav.com/products-current/collection=performance/model=mrx-1120/page=overview), and [AVM 60](https://www.anthemav.com/products-current/model=avm-60/page=overview)
* [MRX 310](https://www.anthemav.com/products-archived/type=av-receiver/model=mrx-310/page=overview), [MRX 510](https://www.anthemav.com/products-archived/series=mrx-series/model=mrx-510/page=overview), [MRX 710](https://www.anthemav.com/products-archived/type=av-receiver/model=mrx-710/page=overview)
Support is provided through the Python [anthemav] module. Older, RS-232 serial-based units like the D2v use a different protocol entirely and are not currently supported.
Support is provided through the Python [anthemav] module. Older, RS-232 serial-based units like the [D2v](https://www.anthemav.com/products-current/type=av-processor/model=d2v-3d/page=overview) use a different protocol entirely and are not currently supported.
[Anthem]: http://www.anthemav.com/
[Anthem]: https://www.anthemav.com/
[anthemav]: https://github.com/nugget/python-anthemav

View File

@ -75,7 +75,7 @@ name:
## Sensor
The `apcupsd` sensor platform allows you to monitor a UPS (battery backup) by using data from the [apcaccess](http://linux.die.net/man/8/apcaccess) command.
The `apcupsd` sensor platform allows you to monitor a UPS (battery backup) by using data from the [apcaccess](https://linux.die.net/man/8/apcaccess) command.
### Configuration

View File

@ -100,7 +100,7 @@ Found Apple TVs:
Note: You must use 'pair' with devices that have home sharing disabled
```
Just copy and paste the `login_id` from the device you want to add. For more details about `atvremote`, see: [this page](http://pyatv.readthedocs.io/en/master/atvremote.html).
Just copy and paste the `login_id` from the device you want to add. For more details about `atvremote`, see: [this page](https://pyatv.readthedocs.io/en/master/atvremote.html).
### Setting up device authentication

View File

@ -0,0 +1,85 @@
---
title: "Apprise"
description: "Instructions on how to add Apprise notifications to Home Assistant."
logo: apprise.png
ha_category:
- Notifications
ha_release: 0.101
---
The [Apprise service](https://github.com/caronc/apprise/) is an all-in-one solution to open up Home Assistant to _just about_ every Notification platform (such as Amazon SNS, Discord, Telegram, Slack, MSTeams, Twilio, etc.)
To use Apprise supported notifications, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry using URLs
notify:
- platform: apprise
url: YOUR_APPRISE_URLS
```
You can also pre-define your own configuration files while storing them either remotely or locally. Simply just use the `config` option.
```yaml
# Example configuration.yaml entry using externally located Apprise
# Configuration Files/Sites:
notify:
- platform: apprise
config: YOUR_APPRISE_CONFIG_URLS
```
There is no restriction on the number of URLs or Apprise Configuration locations you wish to define. You can also use both of the lines in conjunction with one another:
```yaml
# Example configuration.yaml entry using all options
notify:
- platform: apprise
config: YOUR_APPRISE_CONFIG_URLS
url: YOUR_APPRISE_URLS
```
{% configuration %}
name:
description: The notifier will bind to the service `notify.NAME`.
required: false
type: string
default: notify
url:
description: One or more Apprise URLs
required: false
type: string
config:
description: One or more Apprise Configuration URLs
required: false
type: string
{% endconfiguration %}
#### Example service call
```yaml
- service: notify.apprise
data:
message: "A message from Home Assistant"
```
If you're using configuration files to store your Apprise URLs in, then you have the added bonus of associating tags with them. By default, Apprise in Home Assistant will only notify the elements that have no tags associated with them. You can optionally focus on only notifying a specific service based on the tag(s) you assigned them like so:
```yaml
- service: notify.apprise
data:
message: "A message from Home Assistant"
target: [
"tag_name1",
]
```
The tag `all` is reserved to notify absolutely everything, whether you have a tag associated with a URL or not.
### Notes
There are over 50 supported Notification services supported by Apprise. Each has their own tweaks and customizations you can leverage.
- For instructions on how to construct the URLs, visit [here](https://github.com/caronc/apprise/wiki#notification-services).
- For instructions on how you can customize your own Apprise configuration files (referenced through the `config` directive), check out the following:
- [Text Formatted URLs](https://github.com/caronc/apprise/wiki/config_text)
- [YAML Formatted URLs](https://github.com/caronc/apprise/wiki/config_yaml)

View File

@ -56,7 +56,7 @@ power_on_enabled:
When you set **power_on_enabled** as True, you have to turn on your TV on the first time with the remote.
Then you will be able to turn on with Home Assistant.
Also, with **power_on_enabled** as True, the Aquos logo on your TV will stay on when you turn off the TV and your TV could consumes more power.
Also, with **power_on_enabled** as True, the Aquos logo on your TV will stay on when you turn off the TV and your TV could consume more power.
</div>

View File

@ -19,7 +19,7 @@ There is currently support for the following device types within Home Assistant:
## Binary Sensor
The `arest` binary sensor platform allows you to get all data from your devices (like Arduinos with an ethernet/wifi connection, the ESP8266, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework.
The `arest` binary sensor platform allows you to get all data from your devices (like Arduinos with an ethernet/wifi connection, the ESP8266, and the Raspberry Pi) running the [aREST](https://arest.io/) RESTful framework.
To use your aREST binary sensor in your installation, add the following to your `configuration.yaml` file:
@ -33,7 +33,7 @@ binary_sensor:
{% configuration %}
resource:
description: IP address and schema of the device that is exposing an aREST API, e.g., http://192.168.1.10.
description: IP address and schema of the device that is exposing an aREST API, e.g., `http://192.168.1.10`.
required: true
type: string
pin:
@ -46,7 +46,7 @@ name:
type: string
{% endconfiguration %}
Accessing the URL http://IP_ADDRESS/digital/PIN_NUMBER should give you the state of the pin inside a JSON response as `return_value`.
Accessing the URL `http://IP_ADDRESS/digital/PIN_NUMBER` should give you the state of the pin inside a JSON response as `return_value`.
```bash
$ curl -X GET http://192.168.0.5/digital/9
@ -70,7 +70,7 @@ This sensor is not suitable for fast state changes because there is a high possi
## Sensor
The `arest` sensor platform allows you to get all data from your devices (like Arduinos with a Ethernet/Wifi connection, the ESP8266, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework.
The `arest` sensor platform allows you to get all data from your devices (like Arduinos with a Ethernet/Wifi connection, the ESP8266, and the Raspberry Pi) running the [aREST](https://arest.io/) RESTful framework.
To use your aREST enabled device in your installation, add the following to your `configuration.yaml` file:
@ -89,7 +89,7 @@ sensor:
{% configuration %}
resource:
description: "IP address and schema of the device that is exposing an aREST API, e.g., https://192.168.1.10."
description: "IP address and schema of the device that is exposing an aREST API, e.g., `https://192.168.1.10`."
required: true
type: string
name:
@ -145,7 +145,7 @@ monitored_variables:
The variables in the `monitored_variables` array must be available in the response of the device. As a starting point you could use the one of the example sketches (eg. [Ethernet](https://raw.githubusercontent.com/marcoschwartz/aREST/master/examples/Ethernet/Ethernet.ino) for an Arduino with Ethernet shield). In those sketches are two variables (`temperature` and `humidity`) available which will act as endpoints.
Accessing one of the endpoints (eg. http://192.168.1.10/temperature) will give you the value inside a JSON response.
Accessing one of the endpoints (eg. `http://192.168.1.10/temperature`) will give you the value inside a JSON response.
```json
{"temperature": 23, "id": "sensor01", "name": "livingroom", "connected": true}
@ -165,7 +165,7 @@ The root will give you a JSON response that contains all variables and their cur
}
```
`return_value` contains the sensor's data in a JSON response for a given pin (eg. http://192.168.1.10/analog/2/ or http://192.168.1.10/digital/7/).
`return_value` contains the sensor's data in a JSON response for a given pin (eg. `http://192.168.1.10/analog/2/` or `http://192.168.1.10/digital/7/`).
```json
{"return_value": 34, "id": "sensor02", "name": "livingroom", "connected": true}
@ -173,7 +173,7 @@ The root will give you a JSON response that contains all variables and their cur
## Switch
The `arest` switch platform allows you to toggle pins of your devices (like Arduino boards with an Ethernet/Wifi connection, ESP8266 based devices, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework.
The `arest` switch platform allows you to toggle pins of your devices (like Arduino boards with an Ethernet/Wifi connection, ESP8266 based devices, and the Raspberry Pi) running the [aREST](https://arest.io/) RESTful framework.
To use your aREST enabled device with pins in your installation, add the following to your `configuration.yaml` file:

View File

@ -8,7 +8,7 @@ ha_release: 0.7
---
This platform allows you to detect presence by looking at connected devices to an [Aruba Instant](http://www.arubanetworks.com/products/networking/aruba-instant/) device.
This platform allows you to detect presence by looking at connected devices to an [Aruba Instant](https://www.arubanetworks.com/products/networking/aruba-instant/) device.
Supported devices (tested):

View File

@ -7,7 +7,7 @@ ha_release: 0.31
ha_iot_class: Local Polling
---
The `arwn` sensor platform is a client for the [Ambient Radio Weather Network](http://github.com/sdague/arwn) project. This collects weather station data and makes it available in an MQTT subtree.
The `arwn` sensor platform is a client for the [Ambient Radio Weather Network](https://github.com/sdague/arwn) project. This collects weather station data and makes it available in an MQTT subtree.
To use your ARWN setup, you must already have configured the [MQTT](/integrations/mqtt/) platform. Then add the following to your `configuration.yaml` file:

View File

@ -34,7 +34,7 @@ password:
required: true
type: string
host:
description: The ip-address of the server that is running the Asterisk PBX
description: The IP-address of the server that is running the Asterisk PBX
required: true
type: string
port:

View File

@ -10,7 +10,7 @@ ha_release: 0.83
ha_iot_class: Local Polling
---
The `asuswrt` integration is the main integration to connect to a [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) based router.
The `asuswrt` integration is the main integration to connect to a [ASUSWRT](https://event.asus.com/2013/nw/ASUSWRT/) based router.
There is currently support for the following device types within Home Assistant:

View File

@ -12,7 +12,7 @@ ha_iot_class: Cloud Polling
The `atome` sensor platform is retrieving the consumption of your home from the [Direct Energy Atome electric meter](https://total.direct-energie.com/particuliers/electricite/compteur-linky/atome).
This special little device is connected to a Linky Electric Meter, and sends live data to a cloud platform.
As there is no official documentation for the API, the component retrieves data from the API used in the Atome mobile app, [hosted here](http://esoftlink.esoftthings.com).
As there is no official documentation for the API, the component retrieves data from the API used in the Atome mobile app, [hosted here](https://esoftlink.esoftthings.com/).
## Configuration

View File

@ -11,7 +11,7 @@ ha_release: 0.64
ha_iot_class: Cloud Polling
---
The `august` integration allows you to integrate your [August](http://august.com) devices in Home Assistant.
The `august` integration allows you to integrate your [August](https://august.com/) devices in Home Assistant.
There is currently support for the following device types within Home Assistant:
@ -74,4 +74,4 @@ If you have August Smart Lock with DoorSense, once you have enabled the August c
### Camera
The `august` camera platform allows you to view the latest camera image (triggered by motion) by your [August](http://august.com) device in Home Assistant.
The `august` camera platform allows you to view the latest camera image (triggered by motion) by your [August](https://august.com/) device in Home Assistant.

View File

@ -7,7 +7,7 @@ ha_release: 0.39
logo: noaa.png
---
The `aurora` platform uses the [NOAA aurora forecast](http://www.swpc.noaa.gov/products/aurora-30-minute-forecast) service to let you know if an aurora might be visible at your home location in the next 30 minutes, based off of current solar flare activity.
The `aurora` platform uses the [NOAA aurora forecast](https://www.swpc.noaa.gov/products/aurora-30-minute-forecast) service to let you know if an aurora might be visible at your home location in the next 30 minutes, based off of current solar flare activity.
This service gives a number 0-100 representing the current likelihood of visible auroras at your latitude/longitude. By default this sensor is set up to trigger when the reported likelihood for your location is > 75. It updates every 5 minutes.

View File

@ -9,7 +9,7 @@ ha_iot_class: Cloud Push
---
The `automatic` device tracker platform offers presence detection by retrieving your car's information from the [Automatic](http://automatic.com/) cloud service.
The `automatic` device tracker platform offers presence detection by retrieving your car's information from the [Automatic](https://automatic.com/) cloud service.
## Setup

View File

@ -11,8 +11,6 @@ ha_release: 0.7
Please see the [docs section](/docs/automation/) for in-depth
documentation on how to use the automation component.
Starting with 0.28 your automation rules can be controlled with the frontend.
<p class='img'>
<img src='{{site_root}}/images/screenshots/automation-switches.png' />
</p>
@ -33,3 +31,12 @@ automation:
- platform: state
...
```
## Configuration
This integration is by default enabled, unless you've disabled or removed the [`default_config:`](https://www.home-assistant.io/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually:
```yaml
# Example configuration.yaml entry
automation:
```

View File

@ -8,7 +8,7 @@ logo: avi-on.png
ha_release: 0.37
---
Support for the Avi-on Bluetooth dimmer switch [Avi-On](http://avi-on.com/).
Support for the Avi-on Bluetooth dimmer switch [Avi-On](https://avi-on.com/).
## Setup

View File

@ -72,7 +72,7 @@ region_name:
required: true
type: string
credential_name:
description: A reference to a `aws` credential. Notify platform will use the `default profile` defined in `~/.aws` if none of `credential_name`, `aws_access_key_id`, or `profile_name` was given.
description: A reference to an `aws` credential. Notify platform will use the `default profile` defined in `~/.aws` if none of `credential_name`, `aws_access_key_id`, or `profile_name` was given.
required: false
type: string
aws_access_key_id:
@ -100,7 +100,7 @@ context:
## Lambda Notify Usage
AWS Lambda is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will invoke a Lambda for all targets given in the notification payload. A target can be formatted as a function name, an entire ARN ([Amazon Resource Name](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)) or a partial ARN. For more information, please see the [botocore docs](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html#Lambda.Client.invoke).
AWS Lambda is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will invoke a Lambda for all targets given in the notification payload. A target can be formatted as a function name, an entire ARN ([Amazon Resource Name](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)) or a partial ARN. For more information, please see the [botocore docs](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html#Lambda.Client.invoke).
The Lambda event payload will contain everything passed in the service call payload. Here is an example payload that would be sent to Lambda:
@ -128,7 +128,7 @@ The context will look like this:
## SNS Notify Usage
AWS SNS is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will publish a message to all targets given in the notification payload. A target must be a SNS topic or endpoint ARN ([Amazon Resource Name](http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)). For more information, please see the [botocore docs](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/sns.html#SNS.Client.publish).
AWS SNS is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will publish a message to all targets given in the notification payload. A target must be a SNS topic or endpoint ARN ([Amazon Resource Name](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)). For more information, please see the [botocore docs](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/sns.html#SNS.Client.publish).
If one exists, the SNS Subject will be set to the title. All attributes from the payload, except the message, will be sent as stringified message attributes.
@ -154,14 +154,14 @@ If you do not download them, you will lose them and will have to recreate a new
## SQS Notify Usage
AWS SQS is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will publish a message to the queue for all targets given in the notification payload. A target must be a SQS topic URL. For more information, please see the [SQS docs](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/ImportantIdentifiers.html) and [bototcore docs](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.send_message)
AWS SQS is a notification platform and thus can be controlled by calling the `notify` service [as described here](/integrations/notify/). It will publish a message to the queue for all targets given in the notification payload. A target must be a SQS topic URL. For more information, please see the [SQS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/ImportantIdentifiers.html) and [bototcore docs](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.send_message)
The SQS event payload will contain everything passed in the service call payload. SQS payloads will be published as stringified JSON. All attributes from the payload, except message, will also be sent as stringified message attributes. Here is an example message that would be published to the SQS queue:
```json
{
"title": "Test message!",
"target": "http://sqs.us-east-1.amazonaws.com/123456789012/queue2",
"target": "https://sqs.us-east-1.amazonaws.com/123456789012/queue2%22,
"data": {
"test": "okay"
},

View File

@ -64,7 +64,7 @@ pins:
default: UP
{% endconfiguration %}
For more details about the GPIO layout, visit the [article](http://elinux.org/Beagleboard:BeagleBoneBlack) about the BeagleBone Black.
For more details about the GPIO layout, visit the [article](https://elinux.org/Beagleboard:BeagleBoneBlack) about the BeagleBone Black.
## Switch
@ -112,4 +112,4 @@ pins:
type: boolean
{% endconfiguration %}
For more details about the GPIO layout, visit the [article](http://elinux.org/Beagleboard:BeagleBoneBlack) about the BeagleBone Black.
For more details about the GPIO layout, visit the [article](https://elinux.org/Beagleboard:BeagleBoneBlack) about the BeagleBone Black.

View File

@ -14,7 +14,7 @@ The `knx` integration must be configured correctly to use this integration, see
</div>
The `knx` sensor platform allows you to monitor [KNX](http://www.knx.org) binary sensors.
The `knx` sensor platform allows you to monitor [KNX](https://www.knx.org/) binary sensors.
Binary sensors are read-only. To write to the knx-bus configure an exposure [KNX Integration - Expose](/integrations/knx/#exposing-sensor-values-or-time-to-knx-bus).

View File

@ -81,7 +81,7 @@ unique_id:
required: false
type: string
device_class:
description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend.
description: Sets the [class of the device](/integrations/binary_sensor/#device-class), changing the device state and icon that is displayed on the frontend.
required: false
type: string
expire_after:

View File

@ -37,10 +37,10 @@ For more information, visit the [serial api] of MySensors.
```cpp
/**
* Documentation: http://www.mysensors.org
* Support Forum: http://forum.mysensors.org
* Documentation: https://www.mysensors.org
* Support Forum: https://forum.mysensors.org
*
* http://www.mysensors.org/build/binary
* https://www.mysensors.org/build/binary
*/
@ -82,4 +82,4 @@ void loop()
```
[main component]: /integrations/mysensors/
[serial api]: http://www.mysensors.org/download
[serial api]: https://www.mysensors.org/download

View File

@ -238,7 +238,7 @@ binary_sensor:
### Device Tracker sensor with Latitude and Longitude Attributes
This example shows how to combine an non-GPS (e.g. NMAP) and GPS device tracker while still including latitude and longitude attributes
This example shows how to combine a non-GPS (e.g. NMAP) and GPS device tracker while still including latitude and longitude attributes
{% raw %}
```yaml

View File

@ -8,7 +8,7 @@ ha_release: "0.50"
ha_iot_class: Local Push
---
The `xiaomi aqara` binary sensor platform allows you to get data from your [Xiaomi](http://www.mi.com/en/) binary sensors.
The `xiaomi aqara` binary sensor platform allows you to get data from your [Xiaomi](https://www.mi.com/en/) binary sensors.
The requirement is that you have setup the [`xiaomi aqara` integration](/integrations/xiaomi_aqara/).
@ -99,6 +99,20 @@ The requirement is that you have setup the [`xiaomi aqara` integration](/integra
entity_id: climate.livingroom
data:
operation_mode: 'Smart schedule'
- alias: Notify if door is opened when away
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_15xxxxxxc9xx6b
from: 'off'
to: 'on'
condition:
- condition: state
entity_id: group.family
state: 'not_home'
action:
- service: notify.notify_person
data:
message: 'The door has been opened'
```
#### Smoke

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