Merge branch 'current' into next

This commit is contained in:
DetroitEE 2018-08-06 07:42:20 -04:00 committed by GitHub
commit d5c33038e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2064 changed files with 41856 additions and 12158 deletions

View File

@ -5,7 +5,7 @@
## Checklist:
- [ ] Branch: Fixes, changes and adjustments should be created against `current`. New documentation for platforms/components and features should go to `next`.
- [ ] The documentation follow the [standards][standards].
- [ ] Branch: Fixes, changes and adjustments should be created against `current`. New documentation for platforms/components and features should go to `next`.
- [ ] The documentation follow the [standards][standards].
[standards]: https://home-assistant.io/developers/documentation/standards/

13
.github/move.yml vendored Normal file
View File

@ -0,0 +1,13 @@
# Configuration for move-issues - https://github.com/dessant/move-issues
# Delete the command comment. Ignored when the comment also contains other content
deleteCommand: true
# Close the source issue after moving
closeSourceIssue: true
# Lock the source issue after moving
lockSourceIssue: false
# Set custom aliases for targets
# aliases:
# r: repo
# or: owner/repo

9
.gitignore vendored
View File

@ -12,4 +12,11 @@ vendor
node_modules
source/.jekyll-metadata
*.iml
.idea/
.idea/
/.vs/home-assistant.github.io/v15/.suo
/.vs/ProjectSettings.json
/.vs/slnx.sqlite
/.vs/config/applicationhost.config
/.vs/slnx.sqlite-journal
/.vs/VSWorkspaceState.json
.vscode

View File

@ -1 +1 @@
2.4.1
2.4.3

View File

@ -15,6 +15,7 @@
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#038FC7">
{% capture canonical %}{{ site.url }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
<link rel="canonical" href="{{ canonical }}">

View File

@ -23,7 +23,7 @@ include:
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic

View File

@ -24,3 +24,4 @@ group :jekyll_plugins do
end
gem 'sinatra', '~> 1.4.2'
gem 'nokogiri'

View File

@ -42,6 +42,9 @@ GEM
rb-inotify (~> 0.9, >= 0.9.7)
mercenary (0.3.6)
method_source (0.8.2)
mini_portile2 (2.3.0)
nokogiri (1.8.2)
mini_portile2 (~> 2.3.0)
octopress (3.0.11)
jekyll (>= 2.0)
mercenary (~> 0.3.2)
@ -68,8 +71,8 @@ GEM
method_source (~> 0.8.1)
slop (~> 3.4)
public_suffix (3.0.0)
rack (1.6.8)
rack-protection (1.5.3)
rack (1.6.9)
rack-protection (1.5.5)
rack
rake (10.5.0)
rb-fsevent (0.10.2)
@ -100,6 +103,7 @@ DEPENDENCIES
jekyll-redirect-from
jekyll-sitemap
jekyll-time-to-read
nokogiri
octopress (~> 3.0)
octopress-include-tag
pry
@ -113,4 +117,4 @@ RUBY VERSION
ruby 2.4.1p111
BUNDLED WITH
1.15.4
1.16.1

View File

@ -1,7 +1,7 @@
[![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](http://www.krihelinator.xyz/badge/home-assistant/home-assistant.github.io)](http://www.krihelinator.xyz)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![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/)
# Home Assistant website

View File

@ -16,11 +16,12 @@ deploy_branch = "master"
## -- Misc Configs -- ##
public_dir = "public/" # compiled site directory
public_dir = "public/" # compiled site directory
source_dir = "source" # source file directory
blog_index_dir = 'source/blog' # directory for your blog's index page (if you put your index in source/blog/index.html, set this to 'source/blog')
deploy_dir = "_deploy" # deploy directory (for Github pages deployment)
stash_dir = "_stash" # directory to stash posts for speedy generation
components_dir = "_components" # directory for component files
posts_dir = "_posts" # directory for blog files
themes_dir = ".themes" # directory for blog files
new_post_ext = "markdown" # default new post file extension when using the new_post task
@ -60,6 +61,13 @@ task :generate do
abort("Generating CSS failed") unless success
success = system "jekyll build"
abort("Generating site failed") unless success
if ENV["CONTEXT"] != 'production'
File.open("#{public_dir}robots.txt", 'w') do |f|
f.write "User-agent: *\n"
f.write "Disallow: /\n"
end
end
public_dir
end
desc "Watch the site and regenerate when it changes"
@ -162,18 +170,26 @@ task :new_page, :filename do |t, args|
end
# usage rake isolate[my-post]
desc "Move all other posts than the one currently being worked on to a temporary stash location (stash) so regenerating the site happens much more quickly."
desc "Move all other components and posts than the one currently being worked on to a temporary stash location (stash) so regenerating the site happens much more quickly."
task :isolate, :filename do |t, args|
stash_dir = "#{source_dir}/#{stash_dir}"
s_posts_dir = "#{stash_dir}/#{posts_dir}"
s_components_dir = "#{stash_dir}/#{components_dir}"
FileUtils.mkdir(stash_dir) unless File.exist?(stash_dir)
FileUtils.mkdir(s_posts_dir) unless File.exist?(s_posts_dir)
FileUtils.mkdir(s_components_dir) unless File.exist?(s_components_dir)
Dir.glob("#{source_dir}/#{posts_dir}/*.*") do |post|
FileUtils.mv post, stash_dir unless post.include?(args.filename)
FileUtils.mv post, s_posts_dir unless post.include?(args.filename)
end
Dir.glob("#{source_dir}/#{components_dir}/*.*") do |component|
FileUtils.mv component, s_components_dir unless component.include?(args.filename)
end
end
desc "Move all stashed posts back into the posts directory, ready for site generation."
task :integrate do
FileUtils.mv Dir.glob("#{source_dir}/#{stash_dir}/*.*"), "#{source_dir}/#{posts_dir}/"
FileUtils.mv Dir.glob("#{source_dir}/#{stash_dir}/#{posts_dir}/*.*"), "#{source_dir}/#{posts_dir}/"
FileUtils.mv Dir.glob("#{source_dir}/#{stash_dir}/#{components_dir}/*.*"), "#{source_dir}/#{components_dir}/"
end
desc "Clean out caches: .pygments-cache, .gist-cache, .sass-cache"

View File

@ -3,7 +3,7 @@
# Main Configs #
# ----------------------- #
url: https://home-assistant.io
url: https://www.home-assistant.io
title: Home Assistant
subtitle: Open-source home automation platform running on Python 3
author: Home Assistant
@ -76,6 +76,8 @@ collections:
output: true
faq:
output: true
lovelace:
output: true
# ----------------------- #
# 3rd Party Settings #
@ -139,12 +141,17 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 58
current_patch_version: 1
date_released: 2017-11-21
current_minor_version: 75
current_patch_version: 2
date_released: 2018-08-06
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
# Major release:
patch_version_notes: "#release-0581---november-21"
patch_version_notes: "#release-0752---august-6"
# Minor release (Example #release-0431---april-25):
# Date we moved to Discourse for comments
# disqus_end_date: 2018-01-26 0:00:00
# Disqus is adding gross ads, move all comments to discourse.
disqus_end_date: 2010-01-26 0:00:00

View File

@ -1,14 +1,24 @@
credits_generator
=================
This tool can be used to update the [Home Assistant's Credits page](https://home-assistant.io/developers/credits/).
This tool can be used to update the [Credits page for Home Assistant](https://home-assistant.io/developers/credits/).
Setup
-----
Fetch the dependencies with `npm`.
```bash
$ cd credits_generator
$ npm install
```
Set your personal GitHub access token as environmental variable.
Usage
-----
Go to https://github.com/settings/tokens/new and generate a new GitHub personal access token.
Give the token any name and select the `public_repo` and `read:user` scopes.
Set the environment variable `GITHUB_TOKEN` to the new token.
```bash
$ export GITHUB_TOKEN=<Your GitHub access token>

View File

@ -1,13 +1,14 @@
{
"name": "credits_generator",
"version": "1.0.0",
"private": true,
"description": "A tool to generate the Home Assistant credits page",
"main": "update_credits.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Home Assistant Community",
"license": "Apache 2.0",
"license": "Apache-2.0",
"dependencies": {
"async": "^2.1.4",
"github": "^8.1.0",

View File

@ -58,7 +58,12 @@ github.repos.getForOrg({
cb(err);
return;
}
if(userInfo.login == 'RubenKelevra') userInfo.name = 'RubenKelevra'; // ugh, because his name is `@RubenKelevra`
if (userInfo.name) {
userInfo.name = userInfo.name.replace(/^@/, '')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/[\\`*_{}[\]()#+-.!~|]/g, '\\$&');
}
usersMap[login].info.name = userInfo.name || userInfo.login;
usersMap[login].info.username = userInfo.login;
cb();

View File

@ -10,7 +10,7 @@ module Jekyll
def render(context)
href = Liquid::Template.parse(@href).render context
title = Liquid::Template.parse(@title).render context
cls = @href == context.registers[:page]["url"] ? "class='active'" : ''
cls = href == context.registers[:page]["url"] ? "class='active'" : ''
"<a #{cls} href='#{href}'>#{title}</a>"
end
end

View File

@ -2,7 +2,7 @@ module Jekyll
class ConfigurationBlock < Liquid::Block
TYPE_LINKS = {
'action' => '/docs/scripts/',
'device_class' => '/components/%{component}/#device_class',
'device_class' => '/components/%{component}/#device-class',
'template' => '/docs/configuration/templating/',
}

View File

@ -0,0 +1,17 @@
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'
# Rewrite urls if repo url is the ssh format.
if repo_url.start_with? 'git@github.com:'
repo_url = repo_url.sub 'git@github.com:', 'https://github.com/'
end
# These values will be available as {{ site.NLY_REPOSITORY_URL }}
site.config['NLY_REPOSITORY_URL'] = repo_url
site.config['NLY_HEAD'] = ENV['HEAD'] || 'current'
end
end
end

View File

@ -24,7 +24,7 @@ module Jekyll
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
def site_url
'https://home-assistant.io'
'https://www.home-assistant.io'
end
# Prepend a url with the full site url

33
plugins/no_follow.rb Normal file
View File

@ -0,0 +1,33 @@
# Jekyll Auto Nofollow Plugin
# Automatically adds rel='external nofollow' to outgoing links.
require 'jekyll'
require 'nokogiri'
module Jekyll
module NoFollow
def nofollow(content)
dom = Nokogiri::HTML.fragment(content)
# Find all links
dom.css('a').each do |link|
rel = ['external', 'nofollow']
# All external links start with 'http', skip when this one does not
next unless link.get_attribute('href') =~ /\Ahttp/i
# Play nice with our own links
next if link.get_attribute('href') =~ /\Ahttps?:\/\/\w*.?home-assistant.io/i
# Play nice with links that already have a rel attribute set
rel.unshift(link.get_attribute('rel'))
# Add rel attribute to link
link.set_attribute('rel', rel.join(' ').strip)
end
dom.to_s
end
end
end
Liquid::Template.register_filter(Jekyll::NoFollow)

View File

@ -4,6 +4,10 @@ $primary-color: #049cdb;
.site-header {
position: relative;
.site-title {
font-weight: normal;
}
}
.search-container {
@ -377,18 +381,26 @@ p.note {
}
.copyright {
text-align: center;
text-align: left;
i {
font-size: 3em;
margin-right: 8px;
position: relative;
top: -5px;
.company {
.title {
font-size: 1.5em;
}
img {
vertical-align: middle;
}
i {
font-size: 2em;
padding: 0 5px;
}
}
.credit {
text-align: left;
display: inline-block;
font-size: .8em;
ul {
margin: 0;
list-style: none;
}
}

View File

@ -11,4 +11,8 @@ footer: true
Start this add-on to activate the BCM43xx Bluetooth chipset.
<p class='note warning'>
This is not required on HassOS based Hass.io installs and should not be installed
</p>
Supported platforms: Raspberry Pi 3.

View File

@ -9,4 +9,4 @@ sharing: true
footer: true
---
Help you to discover the HDMI CEC address. Start the add-on and look into log to see all connected device on HDMI.
Help you to discover the HDMI CEC address. Start the add-on and look into the log to see all connected device on HDMI.

View File

@ -9,7 +9,7 @@ sharing: true
footer: true
---
You can use this addon to check whether your configuration files are valid against the new version of Home Assistant before you actually update your Home Assistant installation. This will help you avoid errors due to breaking changes, resulting in an smooth update.
You can use this addon to check whether your configuration files are valid against the new version of Home Assistant before you actually update your Home Assistant installation. This addon will help you avoid errors due to breaking changes, resulting in a smooth update.
```json
{

View File

@ -2,7 +2,7 @@
layout: page
title: "HASS Configurator"
description: "Browser-based configuration file editor for Home Assistant."
date: 2017-09-25 14:00
date: 2018-07-16 14:00
sidebar: true
comments: false
sharing: true
@ -11,11 +11,9 @@ featured: true
og_image: /images/hassio/screenshots/addon-hass-configurator.png
---
As long as a fully featured configuration GUI for Home Assistant is still under development, you can use this add-on to add a browser based file-editor to your Hass.IO installation. By default it will listen on port `3218` of the host Hass.IO is running on.
You can use this add-on to add a browser-based file editor to your Hass.io installation. By default it will listen on port `3218` of the host Hass.io is running on.
More information and a standalone version for regular Home Assistant installations can be found in the [GitHub repository][code].
[code]: https://github.com/danielperna84/hass-configurator
More information and a standalone version for regular Home Assistant installations can be found in the [GitHub repository](https://github.com/danielperna84/hass-configurator).
<p class='img'>
<img src='/images/hassio/screenshots/addon-hass-configurator.png'>
@ -24,16 +22,17 @@ Screenshot of the HASS Configurator.
### {% linkable_title Feature list %}
- Web-Based editor to modify your files with syntax highlighting.
- Web-based editor to modify your files with syntax highlighting and YAML linting.
- Upload and download files.
- Stage and commit changes in Git repositories, create and switch between branches, push to remotes.
- Lists of available triggers, events, entities, conditions and services. Selected element gets inserted into the editor at the last cursor position.
- Restart Home Assistant directly with the click of a button. Reloading groups, automations etc. can be done as well. An API-password is required.
- SSL support.
- Stage, stash and commit changes in Git repositories, create and switch between branches, push to remotes, view diffs.
- Lists with available entities, triggers, events, conditions and services.
- Restart Home Assistant directly with the click of a button. Reloading groups, automations, etc. can be done as well. An API password is required.
- SSL/TLS support.
- Optional authentication and IP filtering for added security.
- Direct links to Home Assistant documentation and icons.
- Execute shell commands within the add-on container.
- Editor settings are saved in your browser.
- And much more...
### {% linkable_title Add-on Configuration %}
@ -41,29 +40,52 @@ Screenshot of the HASS Configurator.
{
"username": "admin",
"password": "secret",
"ssl": false,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem",
"ssl": false,
"allowed_networks": ["192.168.0.0/16"],
"banned_ips": ["8.8.8.8"],
"verify_hostname": false,
"allowed_networks": [
"192.168.0.0/16",
"172.30.0.0/16"
],
"banned_ips": [
"8.8.8.8"
],
"banlimit": 0,
"ignore_pattern": ["__pycache__"],
"ignore_pattern": [
"__pycache__"
],
"dirsfirst": false,
"enforce_basepath": false,
"notify_service": "persistent_notification.create",
"ignore_ssl": false
}
```
- **username** (*Optional*): Set a username to access your configuration is protected.
- **username** (*Required*): Set a username to access your configuration is protected.
- **password** (*Required*): Set a password for access.
- **ssl** (*Optional*): Enable or Disable SSL for the editor.
- **allowed_networks** (*Optional*): Limit access to the configurator by adding allowed IP addresses / networks to the list.
- **banned_ips** (*Optional*): List of statically banned IP addresses.
- **banlimit** (*Optional*): Ban access from IPs after `banlimit` failed login attempts. The default value `0` disables this feature. Restart the add-on to clear the list of banned IP addresses.
- **ignore_pattern** (*Optional*): Files and folders to ignore in the UI.
- **dirsfirst** (*Optional*): List directories before files in the filebrowser.
- **ssl** (*Required*): Enable or Disable SSL/TLS for the editor.
- **certfile** (*Required*): Set the path the your SSL certificate if the ssl-option is set to `true`.
- **keyfile** (*Required*): Set the path the your SSL private key if the ssl-option is set to `true`.
- **allowed_networks** (*Required*): Limit access to the configurator by adding allowed IP addresses/networks to the list.
- **banned_ips** (*Required*): List of statically banned IP addresses.
- **banlimit** (*Required*): Ban access from IPs after `banlimit` failed login attempts. The default value `0` disables this feature. Restart the add-on to clear the list of banned IP addresses.
- **ignore_pattern** (*Required*): Files and folders to ignore in the UI.
- **dirsfirst** (*Required*): List directories before files in the file browser.
- **enforce_basepath** (*Required*): If set to `true`, access is limited to files within the `/config` directory.
- **notify_service** (*Required*): Specify a custom notify-service to be used to push notifications.
- **ignore_ssl** (*Required*): Ignore SSL errors when accessing the Home Assistant API.
- **sesame** (*Optional*): Secret token to dynamically allow access from the IP the request originates from. Open your bookmark https://hassio.yourdomain.com:8123/somesecretnobodycanguess while `allowed_networks` is set to `[]` and your IP will get whitelisted. You can use the _Network status_ menu to revoke IP addresses for which access has been granted. Regular authentication is still required.
- **sesame_totp_secret** (*Optional*): Like the `sesame` option, but instead as Base32 encoded secret string must be provided. This string then can be added to a TOTP App like Google Authenticator. This way you get a 6-digit `sesame` that changes every 30 seconds.
- **loglevel** (*Optional*): You can change the logging level from the default value `info` if you want to. Valid values are: `debug`, `info`, `warning`, `error`, `critical`.
### {% linkable_title Embedding into Home-Assistant %}
<p class='note warning'>
Be careful when setting up port forwarding to the configurator while embedding into Home Assistant. If you don't restrict access by requiring authentication and/or blocking based on client IP addresses, your configuration will be exposed to the internet!
</p>
Using the Home Assistant component [panel_iframe](https://home-assistant.io/components/panel_iframe/) it is possible to embed the configurator directly into Home Assistant, allowing you to modify your configuration within the Home Assistant frontend.
### {% linkable_title Embedding into Home Assistant %}
Using the Home Assistant component [panel_iframe](/components/panel_iframe/) it is possible to embed the configurator directly into Home Assistant, allowing you to modify your configuration from within the Home Assistant frontend.
An example configuration would look like this:
@ -75,6 +97,3 @@ panel_iframe:
url: http://hassio.local:3218
```
<p class='note warning'>
Be careful when setting up port forwarding to the configurator while embedding into Home Assistant. If you don't restrict access by requiring authentication and / or blocking based on client IP addresses, your configuration will be exposed to the internet!
</p>

View File

@ -47,7 +47,7 @@ Configuration variables:
 - **range_end** (*Required*): End address for dhcp leases.
 - **broadcast** (*Required*): Network broadcast address.
 - **gateway** (*Required*): A List of gateways.
- **interface** (*Required*): Inteface on that will be listen. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection.
- **interface** (*Required*): Interface on that will be listen. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection.
- **hosts** (*Optional*): A list of fixed IPs for devices.
- **name** (*Required*): Name/hostname of your device.
 - **mac** (*Required*): Mac address of your device.

View File

@ -11,10 +11,6 @@ footer: true
Setup and manage a [Dnsmasq](http://thekelleys.org.uk/dnsmasq/doc.html) DNS server. This allows you to manipulate DNS requests. For example, you can have your Home Assistant domain resolve with an internal address inside your network.
<p class='note info'>
`interface` options are for resinos based installation. On other system you can set it to `""`, for listen on every interface.
</p>
```json
{
"defaults": ["8.8.8.8", "8.8.4.4"],
@ -23,14 +19,12 @@ Setup and manage a [Dnsmasq](http://thekelleys.org.uk/dnsmasq/doc.html) DNS serv
],
"hosts": [
{"host": "home.mydomain.io", "ip": "192.168.1.10"}
],
"interface": "eth1"
]
}
```
Configuration variables:
- **defaults** (*Required*): A list of dns server to forward default requests.
- **defaults** (*Required*): A list of DNS servers to forward default requests to.
- **forwards** (*Optional*): A list of domains that will forward to a specific server.
- **hosts** (*Optional*): A list of hosts to resolve it static.
- **interface** (*Optional*): If a interface is set, it listen only on this interface. Need to set for resinos. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection.
- **hosts** (*Optional*): A list of hosts to resolve statically.

View File

@ -10,26 +10,27 @@ footer: true
featured: true
---
[Duck DNS](https://duckdns.org/) is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. This add-on includes support for Let's Encrypt and will automatically create and renew your certificates.
[Duck DNS](https://www.duckdns.org/) is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. This add-on includes support for Let's Encrypt and will automatically create and renew your certificates.
```json
{
"lets_encrypt": {
"accept_terms": true
"accept_terms": true,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
},
"token": "sdfj-2131023-dslfjsd-12321",
"domains": ["my-domain.duckdns.org"]
"domains": ["my-domain.duckdns.org"],
"seconds": 300
}
```
Configuration variables:
- **lets_encrypt.accept_terms** (*Required*): If you accept the [Let's Encrypt Subscriber Agreement](https://letsencrypt.org/repository/), it will generate and update Let's Encrypt certificates for your DuckDNS domain.
- **token** (*Required*): Your Duck DNS API key.
- **domains** (*Required*): A list of domains to update DNS.
- **seconds** (*Optional*): Seconds between updates to Duck DNS.
- **lets_encrypt.accept_terms** (*Optional*): If you accept the [Let's Encrypt Subscriber Agreement][le], it will generate & update Let's Enrypt certificates for your DuckDNS domain.
[le]: https://letsencrypt.org/repository/
- **seconds** (*Required*): Seconds between updates to Duck DNS.
## {% linkable_title Home Assistant configuration %}
@ -42,8 +43,12 @@ http:
ssl_key: /ssl/privkey.pem
```
If you use a other port as `8123` or a SSL proxy, change the port number.
If you use a port other than `8123` or an SSL proxy, change the port number accordingly.
## {% linkable_title Router configuration %}
You'll need to forward the port you listed in your configuration (8123 in the example above) on your router to your Home Assistant system. You can find guides on how to do this on [Port Forward](https://portforward.com/) - noting that you'll only need to forward the TCP port.
You'll need to forward the port you listed in your configuration (8123 in the example above) on your router to your Home Assistant system. You can find guides on how to do this on [Port Forward](https://portforward.com/). Noting that you'll only need to forward the TCP port.
Ensure that you allocate the Home Assistant system a fixed IP on your network before you configure port forwarding. You can do this either on the computer itself (see the [install guide](/hassio/installation/) or via a static lease on your router.
Restart Home Assistant for the configured changes to take effect. When you access the Home Assistant frontend you will now need to use `https`, even when accessing local instances, for example at `https://192.168.0.1:8123`.

View File

@ -1,6 +1,6 @@
---
layout: page
title: "GIT pull"
title: "Git pull"
description: "Load and update configuration files for Home Assistant from a GIT repository."
date: 2017-09-25 14:00
sidebar: true
@ -13,8 +13,11 @@ Load and update configuration files for Home Assistant from a GIT repository.
```json
{
"repository": "https://example.com/my_configs",
"repository": "https://example.com/my_configs.git",
"auto_restart": false,
"git_branch": "master",
"git_command": "pull",
"git_remote": "origin",
"repeat": {
"active": false,
"interval": 300
@ -32,10 +35,23 @@ Load and update configuration files for Home Assistant from a GIT repository.
}
```
- **repository** (*Required*): GIT url to your repository.
- **auto_restart** (*Optional*): Make a restart of Home-Assistant if the config have change and is valid.
- **repeat/active** (*Optional*): Pull periodic for GIT updates.
- **repository** (*Required*): Git URL to your repository (make sure to use double quotes). You have to add .git to your GitHub repository URL (see example config)
- **git_branch** (*Required*): Branch name of the git repo, leave this as 'master' if you are unsure.
- **git_remote** (*Required*): Name of the tracked repository, leave this as 'origin' if you are unsure.
- **git_command** (*Required*): Must be either 'pull' or 'reset', leave this as 'pull' if you are unsure.
* **pull**: Incorporates changes from a remote repository into the current branch. Will preserve any local changes to tracked files.
* **reset**: Will execute ```git reset --hard``` and overwrite any local changes to tracked files and update from the remote repository.
<p class='note warning'>
Using the <b>reset</b> option will overwrite changes to tracked files. Tracked files are those visible in the Github repository or those given by the output on this command: ```git ls-tree -r master --name-only```
</p>
- **auto_restart** (*Optional*): Restart Home Assistant when the configuration has changed (and is valid).
- **repeat/active** (*Optional*): Pull periodic for git updates.
- **repeat/interval** (*Optional*): Pull all x seconds and look for changes.
- **deployment_user** (*Optional*): Username to use when authenticating to a repo with a username and password.
- **deployment_password** (*Optional*): Password to use when authenticating to a repo. Ignored if deployment_user is not set.
- **deployment_key** (*Optional*): A private SSH key that will be used for communication during git operations. This key is mandatory for ssh-accessed repositories, which are the ones with the following pattern: `<user>@<host>:<repository path>`.
- **deployment_key_protocol** (*Optional*): The key protocol. Default is "rsa". Valid protocols are:
@ -45,7 +61,7 @@ Load and update configuration files for Home Assistant from a GIT repository.
* **rsa**
The protocol is typically known by the suffix of the private key --e.g., a key file named `id_rsa` will be a private key using "rsa" protocol.
<p class='note warning'>
You should only use this add-on if you do not have an existing configuration or if your existing configuration is already in a git repository. If the script does not find the necessary git files in your configuration folder, it will delete anything that might be there. Please ensure that there is a `.git` folder before using this. You can verify this by listing the items in the configuration folder including hidden files. The command is `ls -a /config`.
</p>

View File

@ -10,13 +10,21 @@ footer: true
featured: true
---
[Google Assistant][GoogleAssistant] is an AI-powered voice assistant that runs on the Raspberry Pi and x86 platforms and interact over [api.ai] with Home-Assistant. You can also use [Google Actions][GoogleActions] to extend its functionality.
<p class='note warning'>
These instructions are outdated - the add-on has been updated and these are no longer accurate or complete
</p>
<p class='note'>
If you want to integrate your Google Home, or mobile phone running Google Assistant, with Home Assistant, then you want the [Google Assistant component](/components/google_assistant/).
</p>
[Google Assistant][GoogleAssistant] is an AI-powered voice assistant that runs on the Raspberry Pi and x86 platforms and interact via the [DialogFlow][comp] integration with Home-Assistant. You can also use [Google Actions][GoogleActions] to extend its functionality.
To enable access to the Google Assistant API, do the following:
1. In the [Cloud Platform Console][project], go to the Projects page. Select an existing project or create a new project
2. Open the project. In the top of the page search for Google Assistant API or use [this link][API] and enable it.
3. Create an [OAuth Client ID][oauthclient], pick type "Other", click "Create" and download the JSON file by clicking the Download JSON button on the right side.
1. Open the project. In the top of the page search for Google Assistant API or use [this link][API] and enable it.
1. Create an [OAuth Client ID][oauthclient], pick type "Other", click "Create" and download the JSON file by clicking the Download JSON button on the right side.
Now install and activate the [Samba] add-on so you can upload your credential file. Connect to the "share" Samba share and copy your credentials over. Name the file `google_assistant.json`.
@ -48,9 +56,9 @@ Find the microphone and speakers that you want to use and note down their device
The next step is to authenticate your Google account with Google Assistant. Start the add-on and click on the "OPEN WEB UI" button to start authentication.
### Add-On configuration
### Add-on configuration
Configuration example that uses the USB microphone and use the built-in headset audio output on the Raspberry Pi. Note that card and device numbers can differ on your device.
Configuration example that uses the USB microphone and the built-in headset audio output on the Raspberry Pi. Note that card and device numbers can differ on your device.
```json
{
@ -62,19 +70,17 @@ Configuration example that uses the USB microphone and use the built-in headset
Configuration variables:
- **mic**: This is the hardware address of your microphone. Look at the add-on output
- **mic**: This is the hardware address of your microphone. Look at the add-on output
- **speaker**: This is the hardware address of your speakers. Look at the add-on output
### {% linkable_title Home Assistant configuration %}
Use the Home Assistant [api.ai component][comp] to integrate the add-on into Home Assistant.
Use the Home Assistant [DialogFlow component][comp] to integrate the add-on into Home Assistant.
[GoogleAssistant]: https://assistant.google.com/
[GoogleActions]: https://actions.google.com/
[api.ai]: https://api.ai/
[Samba]: /addons/samba/
[comp]: /components/apiai/
[comp]: /components/dialogflow/
[project]: https://console.cloud.google.com/project
[API]: https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview
[oauthclient]: https://console.developers.google.com/apis/credentials/oauthclient

View File

@ -0,0 +1,70 @@
---
layout: page
title: "HomeMatic"
description: "HomeMatic hardware support to turn you Home-Assistant into a CCU."
date: 2017-04-30 13:28
sidebar: true
comments: false
sharing: true
footer: true
---
Set up a [HomeMatic](https://github.com/eq-3/occu) hardware layer. At the moment we don't support hmIP, but that is in progress. For learning and handling devices use our internal HomeMatic panel and services (in progress) or use [Homematic-Manager](https://github.com/hobbyquaker/homematic-manager) > 2.0.
The logic layer will be Home-Assistant. There is no ReGa or other logic layer installed. You can't import an existing configuration, you'll need re-learn it into Home-Assistant.
Follow devices will be supported and tested:
- [HM-MOD-RPI-PCB](https://www.elv.ch/homematic-funkmodul-fuer-raspberry-pi-bausatz.html)
```json
{
"rf_enable": true,
"rf": [
{
"type": "CCU2",
"device": "/dev/ttyAMA0"
}
],
"wired_enable": false,
"wired": [
{
"serial": "xy",
"key": "abc",
"ip": "192.168.0.0"
}
]
}
```
Configuration variables:
- **rf_enable** (*Require*): Boolean. Enable or disable BidCoS-RF.
- **wired_enable** (*Require*): Boolean. Enable or disable BidCoS-Wired.
For RF devices
- **type** (*Require*): Device type for RFD service. Look into the manual of your device.
- **device** (*Require*): Device on the host.
For RF devices
- **serial** (*Require*): Serial number of the device.
- **key** (*Require*): Encrypted key.
- **ip** (*Require*): IP address of LAN gateway.
## {% linkable_title Home Assistant configuration %}
Use the following configuration in Home Assistant to use it:
```yaml
homematic:
interfaces:
rf:
host: core-homematic
port: 2001
```
## {% linkable_title Raspberry Pi3 %}
With HM-MOD-PRI-PCB you need to add follow into your `config.txt` on boot partition:
```
dtoverlay=pi3-miniuart-bt
```

View File

@ -2,7 +2,7 @@
layout: page
title: "Let's Encrypt"
description: "Automatically manage your SSL certificate using Let's Encrypt."
date: 2017-04-30 13:28
date: 2018-04-18 10:55
sidebar: true
comments: false
sharing: true
@ -14,15 +14,10 @@ featured: false
You should not use this if you are also using the [DuckDNS add-on]. The DuckDNS add-on has integrated Let's Encrypt support.
</p>
Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration.
<p class='note warning'>
This add-on uses ports 80/443 to verify the certificate request. You will need to stop all other add-ons that also use these ports. If you don't need a port (like with https you don't need port 80) you can remove this from network config.
</p>
Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This addon will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration. This add-on uses port 80 to verify the certificate request. You will need to stop all other add-ons that also use this port.
```json
{
"challenge": "https",
"email": "example@example.com",
"domains": ["example.com", "mqtt.example.com", "hass.example.com"]
}
@ -30,7 +25,6 @@ This add-on uses ports 80/443 to verify the certificate request. You will need t
Configuration variables:
- **challenge** (*Optional*): Default it use 443 ('https') you can change it to 'http' for use port 80.
- **email** (*Required*): Your email address for registration on Let's Encrypt.
- **domains** (*Required*): A list of domains to create/renew the certificate.
@ -45,6 +39,26 @@ http:
ssl_key: /ssl/privkey.pem
```
If you use a other port as `8123` or a SSL proxy, change the port number.
If you use another port such as `8123` or an SSL proxy, change the port number.
## {% linkable_title Enabling auto-renewals %}
Out of the box, the add-on will not automatically renew your certificate. In fact, it only starts, tries to get/renew your certificte, and then stops. It's up to you to manually start it again whenever your certificate comes close to expiry.
However, you can automate this process using Home Assistant.
Use this in your `automations.yaml` to attempt certificate renewal each day at midnight:
```yaml
- id: letsencrypt-renewal
alias: "Let's Encrypt Renewal"
trigger:
- platform: time
at: '00:00:00'
action:
- service: hassio.addon_restart
data:
addon: core_letsencrypt
```
[DuckDNS add-on]: /addons/duckdns/

View File

@ -9,7 +9,7 @@ sharing: true
footer: true
---
Set up a [mariadb](https://mariadb.org/) SQL server. It supports multiple databases, users and permission settings. If you want to only connect from inside home assistant use `core-mariadb` as the host address.
Set up a [mariadb](https://mariadb.org/) SQL server. It supports multiple databases, users and permission settings. If you want to only connect from inside Home Assistant use `core-mariadb` as the host address.
```json
{

View File

@ -18,33 +18,81 @@ Set up [Mosquitto](https://mosquitto.org/) as MQTT broker.
"ssl": false,
"anonymous": true,
"logins": [
{"username": "testuser", "password": "mypw"}
{"username": "testuser", "password": "mypw"},
{"username": "testuser2", "password": "mypw2"}
],
"customize": {
"active": false,
"folder": "mosquitto"
}
},
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
}
```
<p class='note'>
<p class='warning note'>
Make sure you use logins and disable anonymous access if you want to secure the system.
</p>
Configuration variables:
- **plain** (*Optional*): Listen to broker on port 1883 without SSL/TLS. Defaults to `true`.
- **ssl** (*Optional*): Listen to broker on port 8883 with SSL/TLS. This requires certificates. Defaults to `false`.
- **anonymous** (*Optional*): Allow anonymous connection. If *logins* is set, anonymous user can only read data. Defaults to `true`.
- **logins** (*Optional*): A list of user that will be created with *username* and *password*.
- **plain** (*Optional*): Listen on port 1883 without SSL/TLS. Defaults to `true`.
- **ssl** (*Optional*): Listen on port 8883 with SSL/TLS. This requires certificates. Defaults to `false`.
- **anonymous** (*Optional*): Allow anonymous connections. If *logins* is set, the anonymous user can only read data. Defaults to `true`.
- **logins** (*Optional*): A list of users that will be created with *username* and *password*.
- **customize** (*Optional*): If you enable it, it reads additional configuration files (`*.conf`) from `/share/mosquitto`.
### {% linkable_title Home Assistant configuration %}
To use the Mosquitto as [broker](/docs/mqtt/broker/#run-your-own) add the following entry to the `configuration.yaml` file.
To use the Mosquitto as [broker](/docs/mqtt/broker/#run-your-own), add the following entry to the `configuration.yaml` file.
```yaml
# Example configuration.yaml entry
mqtt:
broker: core-mosquitto
```
If username and password are set up in add-on, your `configuration.yaml` file should contain that data.
```yaml
mqtt:
broker: core-mosquitto
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
### {% linkable_title Listening simultaneously on SSL/TLS (8883) and insecure (1883) ports %}
1. Configure SSL/TLS as normal.
2. Set `customize` flag to `true` in your configuration.
3. Create a file in `/share/mosquitto` named `insecure.conf` with the following contents:
```text
listener 1883
protocol mqtt
```
4. Restart MQTT
<p class='note warning'>
It's recommended that you only open your firewall to the SSL/TLS port (8883) and only use the insecure port (1883) for local devices. Also, disable `anonymous:` and set `logins:`.
</p>
### {% linkable_title Access Control Lists (ACLs) %}
It is possible to restrict access to topics based upon the user logged in to Mosquitto. In this scenario it is recommended to create individual users for each of your clients and create an appropriate ACL.
See the following links for more information:
* [Mosquitto topic restrictions](http://www.steves-internet-guide.com/topic-restriction-mosquitto-configuration/)
* [Mosquitto.conf man page](https://mosquitto.org/man/mosquitto-conf-5.html)
Add the following configuration to enable ACLs:
1. Set `customize` flag to `true` in your configuration.
2. Create a file in `/share/mosquitto` named `acl.conf` with the following contents:
```text
acl_file /share/mosquitto/accesscontrollist
```
3. Create a file in `/share/mosquitto` named `accesscontrollist` and add contents according to your requirements.

View File

@ -9,21 +9,32 @@ sharing: true
footer: true
---
Setup a SSL proxy with NGINX and redirect port 80 to 443. Make sure you have generated a certificate before you start this add-on.
In the `http` section of the `configuration.yaml` file remove `ssl_certificate` and `ssl_key` and don't enter the port in the `base_url` to avoid a HTTP 502 error.
Sets up an SSL proxy with NGINX and redirect port 80 to 443. Make sure you have generated a certificate before you start this add-on.
In the `http` section of the `configuration.yaml` file remove `ssl_certificate` and `ssl_key` and don't enter the port in the `base_url` to avoid an HTTP 502 error.
```json
{
"domain": "home.example.com"
"domain": "home.example.com",
"certfile": "fullchain.pem",
"keyfile": "privkey.pem",
"hsts": "max-age=31536000; includeSubDomains",
"customize": {
"active": false,
"default": "nginx_proxy_default*.conf",
"servers": "nginx_proxy/*.conf"
}
}
```
Configuration variables:
- **domain** (*Required*): Domain they will proxy run with it.
- **certfile** (*Required*): Certificate file to use in the /ssl dir.
- **keyfile** (*Required*): Private key file to use in the /ssl dir.
- **hsts** (*Optional*): Value for the [`Strict-Transport-Security`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) HTTP header to send. If empty or `null`, the header is not sent.
- **customize** (*Optional*): If true, additional NGINX configuration files for the default server and additional servers are read from files in the /share dir specified by the `default` and `servers` variables.
<p class='note'>
It is possible to deactive port 80 if you need this for things like `emulate_hue`. Remove the host port from Network option of this add-on.
It is possible to deactivate port 80 if you need this for things like `emulate_hue`. Remove the host port from Network option of this add-on.
</p>

View File

@ -9,7 +9,7 @@ sharing: true
footer: true
---
Allow to shutdown a Windows computer with a service call from Home Assistant.
Allows you to shut down a Windows computer with a service call from Home Assistant.
```json
{
@ -23,10 +23,10 @@ Allow to shutdown a Windows computer with a service call from Home Assistant.
}
```
- **computers** (*Required*): A list of computer object to shutdown from Home-Assistant.
- **computers/alias** (*Required*): Set a alias for this record and that is the name for the input.
- **computers/address** (*Required*): IP address or netbios name of the computer for shutdown.
- **computers/credentials** (*Required*): Credentials for logging into computer. Use a `%` as delimiter of username and password.
- **computers** (*Required*): A list of computer objects to shutdown from Home-Assistant.
- **computers/alias** (*Required*): Set an alias for this record which becomes the name for the input.
- **computers/address** (*Required*): IP address or NetBIOS name of the computer for the shutdown.
- **computers/credentials** (*Required*): Credentials for logging into computer. Use a `%` as the delimiter of username and password.
## {% linkable_title Home Assistant %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Samba"
description: "Manage your Home Assistant and custom addons over Samba."
description: "Manage your Home Assistant and custom add-ons over Samba."
date: 2017-04-30 13:28
sidebar: true
comments: false
@ -10,7 +10,7 @@ footer: true
featured: true
---
This allows you to set up a [Samba](https://samba.org/) server to access hass.io folders using Windows network shares.
This addon allows you to set up a [Samba](https://samba.org/) server to access hass.io folders using Windows network shares.
```json
{
@ -22,7 +22,7 @@ This allows you to set up a [Samba](https://samba.org/) server to access hass.io
"addons": true,
"share": true,
"backup": true,
"ssl": false,
"ssl": false
},
"username": "",
"password": "",
@ -32,10 +32,14 @@ This allows you to set up a [Samba](https://samba.org/) server to access hass.io
Configuration variables:
- **name** (*Optional*): default `hassio`. Set netbios name of hassio device.
- **workgroup** (*Optional*): default `WORKGROUP`. Set network workgroup.
- **guest** (*Optional*): Allow login without a username or password. Defaults to `true`.
- **map** (*Optional*): Control which folder will be expose. `config` is for Home Assistant configuration folder. `addons` for local custom repositiory. `share` is a folder that can access from add-ons and Home Assistant too. `backup` for access to snapshot files. `ssl` for certificate storage, be careful with this option! Defaults all to `true`, except for `ssl`.
- **username** (*Optional*): The username for logging in if guest login is not used.
- **name** (*Optional*): Set netbios name of Hass.io device. Default is `hassio`.
- **workgroup** (*Optional*): Set network workgroup name. Default is `WORKGROUP`.
- **guest** (*Optional*): Allow login without a username or password. Default is `true`.
- **map** (*Optional*): Control which folders will be exposed. `config` shares the Home Assistant configuration folder. `addons` shares the local custom repository. `share` shares a folder that can be accessed by add-ons and Home Assistant. `backup` shares access to snapshot files. `ssl` shares certificate storage. Be careful with the `ssl` option! Defaults are all set to `true`, except for `ssl`.
- **username** (*Optional*): Username for logging in if guest login is not used.
- **password** (*Optional*): Password for `username`. An empty password is not supported.
- **interface** (*Optional*): Interface on that will start the share. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection.
- **interface** (*Optional*): Interface that will start the share. Normally this is `eth0` for ethernet wired connection and `wlan0` for wireless connection. If you are running on an Intel NUC this could also be `enp3s0` for ethernet or `wlp5s0` for wireless connection.
<p class='note warning'>
Be careful when setting up port forwarding to the remote access. If you don't restrict access by requiring authentication and guest access is enabled, your configuration could be exposed to the internet!
</p>

View File

@ -2,51 +2,39 @@
layout: page
title: "Snips.ai"
description: "Enhance your Hass.io installation with a local voice assistant."
date: 2017-04-30 13:28
date: 2018-05-02 13:28
sidebar: true
comments: false
sharing: true
footer: true
---
[Snips.ai] is an AI-powered voice assistant that runs on the Raspberry Pi 3 and x86 platforms. It runs on-device and is Private by Design.
[Snips.ai](https://snips.ai/) is an AI-powered voice assistant that runs on the Raspberry Pi 3 and x86 platforms. It runs on-device and is Private by Design.
To get started, follow [their tutorial] to create an assistant and download the training data.
The Snips add-on depends on the Mosquitto add on to bridge to Home Assistant, so make sure that is installed.
Now install and activate the [Samba] add-on so you can upload your training data. Connect to the "share" Samba share and copy your training data over. Name the file `assistant.zip`.
HomeAssistant comes with certain Intents builtin to handle common tasks. A complete list of Intents can be found in this wiki [Hass Snips Bundle](https://github.com/tschmidty69/hass-snips-bundle-intents/wiki).
Now it's time to start Snips for the first time. When the Snips add-on starts, it will output your audio devices:
The Snips addon by default comes with an assistant that allows you to turn on lights or switches, open covers, or add and list items to a shopping list if that component is enabled.
```text
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
If using a USB microphone and speakers plugged into the Raspberry Pi output, Snips will work without any change to the configuration. Trying saying things like:
```
Turn on kitchen light
Open garage door
What is on my shopping list
```
You need to use this information to point the add-on at the right speakers and microphone. The information describes different cards and devices. On a Raspberry Pi 3, card 0 - device 0 is the built-in headset port, card 0 - device 1 is the HDMI port. In the example above, the USB microphone showed up as card 1 - device 0.
To get started creating your own configuration, follow [their tutorial](https://snips.gitbook.io/documentation/console) to create an assistant and download the training data. You can also add the HomeAssistant Skill to your assistant to enable the built-in intents, and add or create your own intents to do more complex tasks.
Find the microphone and speakers that you want to use and note down their device and card number. We will need that to configure the add-on options `mic` (microphone to use) and `speaker` (speaker to use). The format for these options is `<card #>,<device #>`. Change the configuration options and click save.
Now install and activate the [Samba](/addons/samba/) add-on so you can upload your training data. Connect to the "share" Samba share and copy your assistant over. Name the file `assistant.zip` or whatever you have configured in the configuration options.
Now start the add-on.
Now it's time to start Snips for the first time. You can configure the microphone and sound card using the Add-on interface. Now start the add-on.
### Add-On configuration
### {% linkable_title Add-On configuration %}
```json
{
"mic": "1,0",
"speaker": "1,0",
"assistant": "assistant.zip",
"mqtt_bridge": {
"active": true,
"host": "172.17.0.1",
@ -54,23 +42,76 @@ Now start the add-on.
"user": "",
"password": ""
},
"assistant": "assistant.zip",
"language": "en",
"custom_tts": false,
"tts_platform": "amazon_polly"
}
```
Configuration variables:
- **mqtt_bridge** (*Optional*): Snips uses MQTT to communicate and defaults to their own broker. Use this config option to bridge their broker to your own.
- **mic**: This is the hardware address of your microphone. Look at the Snips
- **mqtt_bridge**: Snips uses MQTT to communicate and defaults to their own broker. Use this config option to bridge their broker to your the Mosquitto add-on.
- **assistant**: The name of your custom assistant in `/share`. If no assistant is found then a default assistant will be used.
- **language**: Language. This is used to select the default custom assistant, Currently `en`, `de` and `fr` are supported.
- **custom_tts**: Whether to use a TTS provider from Home Assistant for a variety of voices.
- **tts_platform**: Which TTS platform to use.
### {% linkable_title Home Assistant configuration %}
Use the Home Assistant [Snips.ai component][comp] to integrate the add-on into Home Assistant.
A simple configuration just requires this. Consult [Snips.ai component](/components/snips/) for more options.
```yaml
snips:
```
[Snips.ai]: https://snips.ai/
[their tutorial]: https://github.com/snipsco/snips-platform-documentation/wiki/2.-Running-your-first-end-to-end-assistant
[Samba]: /addons/samba/
[comp]: /components/snips/
### {% linkable_title Home Assistant configuration %}
There is an active [discord](https://discordapp.com/invite/3939Kqx) channel for further support.
### {% linkable_title Examples %}
So now you can turn lights on and off, let's check the weather. Log on to the [console](https://console.snips.ai/). If this is your first time, create a new assistant and add the Home Assistant skill, along with the Weather skill by snips. Download your assistant manually and copy it to the `/share` folder on your HassIO installation using the Samba addon.
Next create a weather sensor, e.g., one for (Dark Sky)[/components/sensor.darksky/] and put the `api_key` in your `secrets.yaml` file.
```yaml
- platform: darksky
name: "Dark Sky Weather"
api_key: !secret dark_sky_key
update_interval:
minutes: 10
monitored_conditions:
- summary
- hourly_summary
- temperature
- temperature_max
- temperature_min
```
Next add this to your `configuration.yaml` file to reference a new `intent_script` component. This is a good practice to [split your configuration files](/docs/configuration/splitting_configuration/) up.
```yaml
intent_script: !include intent_script.yaml
```
Finally, create this `intent_script.yaml` file in your configuration directory.
{% raw %}
```yaml
searchWeatherForecast:
speech:
type: plain
text: >
The weather is currently
{{ states('sensor.dark_sky_weather_temperature') | round(0) }}
degrees outside and {{ states('sensor.dark_sky_weather_summary') }}.
The high today will be
{{ states('sensor.dark_sky_weather_daily_high_temperature') | round(0)}}
and {{ states('sensor.dark_sky_weather_hourly_summary') }}
```
{% endraw %}
Now just restart HassIO and ask it what the weather is like.
[their tutorial]: https://github.com/snipsco/snips-platform-documentation/wiki/2.-Create-an-assistant-using-an-existing-bundle

View File

@ -10,19 +10,19 @@ footer: true
featured: true
---
Setting up an [SSH](https://openssh.org/) server allows access to your Hass.io folders with any SSH client. It also includes a command-line tool to access the [Hass.io API](https://github.com/home-assistant/hassio/blob/dev/API.md). Try it out:
Setting up an [SSH](https://openssh.com/) server allows access to your Hass.io folders with any SSH client. It also includes a command-line tool to access the [Hass.io API](https://github.com/home-assistant/hassio/blob/dev/API.md). Try it out:
```bash
$ hassio help
hassio help
```
<p class='note'>
This add-on will not enable you to install packages or do anything as root. This is not allowed with Hass.io.
</p>
To use this add-on, you must have a private/public key to log in. To generate them, follow the [instructions for Windows][win] and [these for other platforms][other]. It is possible to set a password for login since version 2.0 but for high security use private/public keys. You can not run both variant at same time.
To use this add-on, you must have a private/public key to log in. To generate them, follow the [instructions for Windows][win] and [these for other platforms][other]. It is possible to set a password for login since version 2.0 but for high security use private/public keys. You can not run both variants at the same time.
In order to start this add-on for the first time, you either need to include an ssh key (enclosed in quotation marks, on a single line without line breaks) or set a password in the options section.
To start this add-on for the first time, you either need to include a key (enclosed in quotation marks, on a single line without line breaks) or set a password in the options section.
```json
{
@ -33,14 +33,14 @@ In order to start this add-on for the first time, you either need to include an
}
```
The username for login over ssh is `root`. The complete login command is `ssh root@hassio.local`.
The username for login over SSH is `root`. The complete login command is `ssh root@hassio.local`.
After logging in, you will find yourself in this add-ons container. The Home Assistant configuration directory is mounted on the path `/config`.
Configuration variables:
- **authorized_keys** (*Optional*): Your public keys for authorized keyfile. Every element will be a line inside that file.
- **password** (*Optional*): Set a password for login. We do not recommend this variant.
- **authorized_keys** (*Optional*): Your public keys for the authorized key file. Every element will be a line inside that file.
- **password** (*Optional*): Set a password for login. We do **NOT** recommend this variant.
<div class='videoWrapper'>
@ -50,4 +50,6 @@ Configuration variables:
[win]: https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps
[other]: https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
<p class='note'>This add-on is not compatible if Hass.io was installed via the generic Linux installer.</p>
<p class='note'>
This add-on is not compatible if Hass.io was installed via the generic Linux installer.
</p>

View File

@ -0,0 +1,102 @@
---
layout: page
title: "TellStick"
description: "Telldus TellStick service enabler and tools."
date: 2017-12-04 21:31
sidebar: true
comments: false
sharing: true
footer: true
featured: false
---
Setting up the [Tellstick](http://telldus.com) service and tools contained in the [telldus-core](http://developer.telldus.com/) package and adding configuration to enable Tellstick and Tellstick Duo to work on your Hass.io.
To use this add-on, you first install it from the list of Built-in add-ons in Hass.io.
After installation you are presented with a default and example configuration, to alter this you must follow both the JSON format and also be aligned with the [valid parameters for Tellstick configuration file (tellstick.conf)](https://developer.telldus.com/wiki/TellStick_conf).
After any changes have been made to the configuration, you need to restart the add-on for the changes to take effect.
Configuration variables:
- **id** (*Required*): A number and must be unique for each device.
- **name** (*Required*): A name for easy identification of the device.
- **protocol** (*Required*): This is the protocol the device uses. More on the different protocols later down.
- **model** (*Optional*): The model parameter is only used by some protocols where there exists different types of devices using the same protocol. This can be dimmers versus non-dimmers, codeswitch versus self-learning, etc.
- **house** (*Optional*): Depending on protocol the values here can vary a lot to identify or group per house or type.
- **unit** (*Optional*): Unit identifier, in most cases a value between 1 to 16 and often used in combination with the house.
- **fade** (*Optional*): Fade is either `true` or `false` and tells a dimmer if it should fade smooth or instant between values (only for IKEA protocol as it seems).
- **code** (*Optional*): A number series based on ones and zeroes often used for dip-switch based devices.
You will need to add internal communication details to `configuration.yaml` to enable the integration from Hass.io and the add-on.
```yaml
# Example configuration.yaml entry
tellstick:
host: core-tellstick
port: [50800, 50801]
```
To add [lights](/components/light.tellstick/), [sensors](/components/sensor.tellstick/) and [switches](/components/switch.tellstick/) you follow the guidelines for each type individually that is [described for Home Assistant](/components/tellstick/)
The add-on will also enable you to interact with the `tdtool` via a Home Assistant services call, see example below for self-learning device.
## {% linkable_title Examples %}
Example for adding more devices in the add-on configuration (note the comma separator between devices):
```json
{
"devices": [
{
"id": 1,
"name": "Outdoor light",
"protocol": "everflourish",
"model": "selflearning-switch",
"house": "A",
"unit": "1"
},
{
"id": 2,
"name": "Hallway dimmer",
"protocol": "risingsun",
"model": "selflearning-dimmer",
"house": "A",
"unit": "2"
}
]
}
```
## Service calls
If you wish to teach a selflearning device in your TellStick configuration:
Go to Home Assistant [service call](http://hassio.local:8123/dev-service) in Developer tools and select.
- Service: `hassio.addon_stdin`
- Enter service Data:
`{"addon":"core_tellstick","input":{"function":"learn","device":"1"}}`
Replace `1` with the corresponding ID of the device in your TellStick configuration.
You can also use this to list devices or sensors and read the output in the add-on log:
`{"addon":"core_tellstick","input":{"function":"list-sensors"}}`
#### Supported service commands
- `"function":"list"`: List currently configured devices with name and device id and all discovered sensors.
- `"function":"list-sensors"`
- `"function":"list-devices"`: Alternative devices/sensors listing: Shows devices and/or sensors using key=value format (with tabs as separators, one device/sensor per line, no header lines.)
- `"function":"on","device":"x"`: Turns on device. x could either be an integer of the device-id, or the name of the device.
- `"function":"off","device":"x"`: Turns off device. x could either be an integer of the device-id, or the name of the device.
- `"function":"bell","device":"x"`: Sends bell command to devices supporting this. x could either be an integer of the device-id, or the name of the device.
- `"function":"learn","device":"x"`: Sends a special learn command to devices supporting this. This is normally devices of selflearning type. x could either be an integer of the device-id, or the name of the device.

View File

@ -13,7 +13,7 @@ ha_release: 0.52
ha_iot_class: "Cloud Push"
---
The `abode` component will allow users to integrate their Abode Home Security systems into Home Assistant and use its alarm system and sensors to automate their homes.
The `abode` component will allow users to integrate their Abode Home Security systems into Home Assistant and use its alarm system and sensors to automate their homes.
Please visit the [Abode website](https://goabode.com/) for further information about Abode Security.
@ -24,7 +24,7 @@ There is currently support for the following device types within Home Assistant:
- [Camera](/components/camera.abode/): Reports on `Camera` devices and will download and show the latest captured still image.
- [Cover](/components/cover.abode/): Reports on `Secure Barriers` and can be used to open and close the cover.
- [Lock](/components/cover.abode/): Reports on `Door Locks` and can be used to lock and unlock the door.
- [Light](/components/light.abode/): Reports on `Dimmer` lights and can be used to dim, change color, or turn the light on and off.
- [Light](/components/light.abode/): Reports on `Dimmer` lights and can be used to dim or turn the light on and off.
- [Switch](/components/switch.abode/): 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.
- [Sensor](/components/sensor.abode/): Reports on `Temperature`, `Humidity`, and `Light` sensors.

View File

@ -0,0 +1,58 @@
---
layout: page
title: "ADS"
description: Connect Home Assistant to TwinCAT devices via the ADS interface
date: 2017-12-05 12:00
sidebar: true
comments: false
sharing: true
footer: true
logo: beckhoff.png
ha_category: Hub
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.
To enable ADS, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
ads:
device: '127.0.0.1.1.1'
port: 48898
```
{% configuration %}
device:
required: true
description: The AMS NetId that identifies the device.
type: string
port:
required: true
description: The port that runs the AMS server on the device, typically this would be 801 or 851.
type: int
ip_address:
required: false
description: The IP address of the ADS device, if not set the first 4 bytes of the device id will be used.
type: string
{% endconfiguration %}
## {% linkable_title Service %}
The ADS component will register the service `write_by_name` allowing you to write a value to a variable on your ADS device.
```json
{
"adsvar": ".myvariable",
"adstype": "int",
"value": 123
}
```
Service parameters:
- **adsvar**: Name of the variable on the ADS device. To access global variables on *TwinCAT2* use a prepending dot `.myvariable`, for TwinCAT3 use `GBL.myvariable`.
- **adstype**: Specify the type of the variable. Use one of the following: `int`, `byte`, `uint`, `bool`
- **value**: The value that will be written in the variable.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Abode Alarm Control Panel"
description: "Instructions how to setup the Abode Alarm control panel within Home Assistant."
description: "Instructions on how to setup the Abode Alarm control panel within Home Assistant."
date: 2017-08-26 0:28
sidebar: true
comments: false
@ -13,7 +13,6 @@ ha_release: 0.52
ha_iot_class: "Cloud Push"
---
The `abode` security control panel platform allows you to control your [Abode](https://goabode.com/) alarms.
The requirement is that you have setup your [Abode hub](/components/abode/).

View File

@ -1,7 +1,7 @@
---
layout: page
title: "AlarmDecoder Alarm Control Panel"
description: "Instructions how to setup the AlarmDecoder Alarm control panel within Home Assistant."
description: "Instructions on how to setup the AlarmDecoder Alarm control panel within Home Assistant."
date: 2017-04-02 13:28
sidebar: true
comments: false
@ -13,8 +13,64 @@ ha_release: 0.43
ha_iot_class: "Local Push"
---
The `alarmdecoder` alarm control panel platform allows you to control your [AlarmDecoder](https://www.alarmdecoder.com) alarms.
The requirement is that you have setup your [AlarmDecoder hub](/components/alarmdecoder/).
### {% linkable_title Services %}
The Alarm Decoder component gives you access to several services for you to control your alarm with.
- `alarm_arm_away`: Arms the alarm in away mode; all faults will trigger the alarm.
- `alarm_arm_home`: Arms the alarm in stay mode; faults to the doors or windows will trigger the alarm.
- `alarm_arm_night`: Arms the alarm in instant mode; all faults will trigger the alarm. Additionally, the entry delay is turned off on the doors.
- `alarm_disarm`: Disarms the alarm from any state. Also clears a `check_zone` flag after an alarm was triggered.
- `alarmdecoder_alarm_toggle_chime`: Toggles the alarm's chime state.
<p class='note'>
`alarm_arm_custom_bypass` and `alarm_trigger`, while available in the services list in Home Assistant, are not currently implemented in the Alarm Decoder platform.
</p>
### {% linkable_title Attributes %}
There are several attributes available on the alarm panel to give you more information about your alarm.
- `ac_power`: Set to `true` if your system has AC power supplying it.
- `backlight_on`: Set to `true` if your keypad's backlight is on.
- `battery_low`: Set to `true` if your system's back-up battery is low.
- `check_zone`: Set to `true` if your system was recently triggered. When `check_zone` is `true`, it must be cleared by entering your code + 1 before attempting to rearm your alarm.
- `chime`: Set to `true` if your system's chime is activated. When activated, your system will beep anytime a door or window is faulted while the alarm is disarmed.
- `entry_delay_off`: Set to `true` if your system is in "Instant" mode, meaning the alarm will sound on any faults.
- `programming_mode`: Set to `true` if your system is in programming mode.
- `ready`: Set to `true` if your system is ready to be armed. Any faults, including motions sensors, will make this value `false`.
- `zone_bypassed`: Set to `true` if your system is currently bypassing a zone.
### {% linkable_title Examples %}
Using a combination of the available services and attributes, you can create switch templates.
#### {% linkable_title Chime Status and Control %}
{% raw %}
```yaml
- platform: template
switches:
alarm_chime:
friendly_name: Chime
value_template: "{{ is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) }}"
turn_on:
service: alarm_control_panel.alarmdecoder_alarm_toggle_chime
data:
code: !secret alarm_code
turn_off:
service: alarm_control_panel.alarmdecoder_alarm_toggle_chime
data:
code: !secret alarm_code
icon_template: >-
{% if is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) %}
mdi:bell-ring
{% else %}
mdi:bell-off
{% endif %}
```
{% endraw %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Alarm.com Alarm Control Panel"
description: "Instructions how to integrate Alarm.com into Home Assistant."
description: "Instructions on how to integrate Alarm.com into Home Assistant."
date: 2016-01-14 22:00
sidebar: true
comments: false
@ -30,4 +30,3 @@ Configuration variables:
- **password** (*Required*): Password for Alarm.com account.
- **name** (*Optional*): The name of the alarm. Default is 'Alarm.com'.
- **code** (*Optional*): Specifies a code to enable or disable the alarm in the frontend.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Arlo Control Panel"
description: "Instructions how to setup the Netgear Arlo Base Stations as a control panel within Home Assistant."
description: "Instructions on how to setup the Netgear Arlo Base Stations as a control panel within Home Assistant."
date: 2017-10-05 17:45
sidebar: true
comments: false
@ -13,8 +13,7 @@ ha_release: 0.56
ha_iot_class: "Cloud Polling"
---
The `arlo` control panel platform allows you to control your [Arlo](https://arlo.netgear.com/) base stations.
The `arlo` alarm control panel allows you to control your [Arlo](https://arlo.netgear.com/) base stations. You can use it to switch modes and trigger alarms from Home Assistant.
To get your [Arlo](https://arlo.netgear.com/) base stations working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo).
@ -26,6 +25,52 @@ alarm_control_panel:
- platform: arlo
```
Configuration variables:
{% configuration %}
home_mode_name:
description: "Arlo base station does not have a built-in home mode. You can map one of your custom modes to Home Assistant's home mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match exactly as you set it up in the Arlo app."
required: false
type: string
away_mode_name:
description: "Arlo base station does not have a built-in away mode. You can map one of your custom modes to Home Assistant's away mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match eactly as you set it up in the Arlo app."
required: false
type: string
default: "`Armed` mode in Arlo"
{% endconfiguration %}
- **home_mode_name**: (*Optional*): Arlo base station does not have a built-in home mode. You can map one of your custom modes to home assistant's home mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match exactly as you set it up in the Arlo app.
## {% linkable_title Examples %}
These examples are based on an Arlo base station named `my_arlo_base_station`. Replace this with the name of your base station's `entity_id`.
Arming the Arlo Base Station when leaving.
```yaml
- id: arm_arlo_when_leaving
alias: Arm Arlo cameras when leaving
trigger:
platform: state
entity_id: group.family
from: home
to: not_home
action:
service: alarm_control_panel.alarm_arm_away
entity_id: alarm_control_panel.my_arlo_base_station
```
Setting Arlo to a custom mode (mapped to `home_mode_name` in `configuration.yaml`) when arriving.
```yaml
- id: disarm_arlo_when_arriving
alias: Set Arlo cameras to Home mode when arriving
trigger:
platform: state
entity_id: group.family
from: not_home
to: home
action:
service: alarm_control_panel.alarm_arm_home
entity_id: alarm_control_panel.my_arlo_base_station
```
You can also completely disarm the Arlo base station by calling the `alarm_control_panel.alarm_disarm` service, and trigger the alarm by calling the `alarm_control_panel.alarm_trigger` service.
More examples and configuration options can be found on the [Manual Alarm Control page](/components/alarm_control_panel.manual/#examples).

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Canary Alarm Control Panel"
description: "Instructions on how to integrate your Canary devices into Home Assistant."
date: 2017-12-07 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: canary.png
ha_category: Alarm
ha_release: "0.60"
ha_iot_class: "Cloud Polling"
---
The `canary` alarm control panel platform allows you to integrate your [Canary](https://canary.is) alarm system in Home Assistant.
To add `canary` alarm control panel to your installation, follow instructions in [Canary component](/components/canary/).

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Concord232 Alarm Control Panel"
description: "Instructions how to integrate Interlogix/GE Concord4 with RS-232 Automation Control Module into Home Assistant."
description: "Instructions on how to integrate Interlogix/GE Concord4 with RS-232 Automation Control Module into Home Assistant."
date: 2016-10-11 10:00
sidebar: true
comments: false
@ -14,7 +14,9 @@ ha_release: 0.31
The `concord232` platform provides integration with GE, Interlogix (and other brands) alarm panels that support the RS-232 Automation Control Panel interface module (or have it built in). Supported panels include Concord 4.
To enable this, add the following lines to your `configuration.yaml`:
To use this platform, you will need to have the external concord232 client and server installed. The server must be running on the device which is connected to the automation module's serial port. The client must be installed on the machine running Home Assistant. These may often be the same machine, but do not have to be. For additional details in setting up and testing the client and server, see <https://github.com/JasonCarter80/concord232>
To enable this platform in Home Assistant, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
@ -26,4 +28,3 @@ Configuration variables:
- **host** (*Optional*): The host where the concord232 server process is running. Defaults to localhost.
- **port** (*Optional*): The port where the Alarm panel is listening. Defaults to 5007.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Egardia / Woonveilig Alarm Control Panel"
description: "Instructions how to integrate Egardia / Woonveilig into Home Assistant."
description: "Instructions on how to integrate Egardia / Woonveilig into Home Assistant."
date: 2016-07-02 22:00
sidebar: true
comments: false
@ -12,79 +12,5 @@ ha_release: 0.51
ha_category: Alarm
---
The `egardia` platform enables the ability to control an [Egardia](http://egardia.com/)/Woonveilig control panel. These alarm panels are known under different brand names across the world, including Woonveilig in the Netherlands. This was tested on a Gate01 version of the Egardia/Woonveilig platform.
You will need to know the IP of your alarm panel on your local network. Test if you can login to the panel by browsing to the IP address and log in using your Egardia/Woonveilig account.
To enable this, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
alarm_control_panel:
- platform: egardia
host: YOUR_HOST
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
Configuration variables:
- **host** (*Required*): The local IP address of the Egardia/Woonveilig alarm panel.
- **username** (*Required*): Username for the Egardia/Woonveilig account.
- **password** (*Required*): Password for Egardia/Woonveilig account.
- **port** (*Optional*): The port of the alarm panel. Defaults to 80.
- **name** (*Optional*): Name to use for the alarm panel. Defaults to `Egardia`.
- **report_server_enabled** (*Optional*): Enable reporting by server. Defaults to `False`.
- **report_server_port** (*Optional*): Port of the Egardia server. Defaults to 85.
- **report_server_codes** list (*Optional*): List of codes for the different states.
Note that this basic configuration will only enable you to read the armed/armed away/disarmed status of your alarm and will **not** update the status if the alarm is triggered. This is because of how Egardia built their system. The alarm triggers normally go through their servers.
You can change this, however, using the following procedure. This is a more advanced configuration.
1. Log in into your alarm system's control panel. You will need to access http://[IP of your control panel]. You know this already since you need it in the basic configuration from above. Log in to the control panel with your Egardia/Woonveilig username and password.
2. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. Also, update the port number 85 or to anything you like. The provided software that you will set up in the next steps runs on port 85 by default. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'.
3. On your Home Assistant machine run `$ sudo python3 egardiaserver.py`. Refer to the [python-egardia repository](https://github.com/jeroenterheerdt/python-egardia) for detailed documentation on parameters. This will receive status codes from your alarm control panel and display them. You will need the codes to include in your configuration.yaml. Make sure to change the status of your alarm to all states (disarm, arm, home) by all means possible (all users, remotes, web login, app) as well as trigger the alarm in all ways possible to get 100% coverage. **Before triggering the alarm it might be good to disable the siren temporarily (can be done in Panel Settings).**
4. Once you have the codes, update your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
alarm_control_panel:
 - platform: egardia
  host: YOUR_HOST
  username: YOUR_USERNAME
  password: YOUR_PASSWORD
report_server_enabled: True
report_server_port: PORT_OF_EGARDIASERVER (85 as per the instructions above)
report_server_codes:
arm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
disarm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
home: XXXXXXXXXXXXXXXX
triggered: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
ignore: XXXXXXXXXXXXXXXX
```
Note that for triggered, arm and disarm multiple codes can be entered since each sensor triggers with a different code and each user of the system has its own arm and disarm codes. Also note that your system will do regular system checks which will be reported as well. Since Home Assistant provides no way of handling them properly, you can enter those codes as ignore (again, multiple codes can be used here). The egardia component will ignore these codes and continue returning the old status if it receives any of the codes that are listed as ignore. This is useful for example when you have armed your alarm at night: normally a system check will occur at least once during the night and if that code is not specified anywhere Home Assistant will set the status of the alarm to its default, which is unarmed. This is in fact wrong. Listing the code as ignore changes this behavior and Home Assistant will continue to show the status the alarm is in (disarm, arm, home, triggered) even when system checks occur.
5. Start the `egardiaserver.py` script on boot of your Home Assistant machine, for example by using `systemctl` by `systemd`. To use this method, create a shell script named `egardiaserver.sh` that contains something like the following:
```bash
$ source /srv/homeassistant/bin/activate
$ python3 /srv/homeassistant/lib/python3.5/site-packages/pythonegardia/egardiaserver.py -host [YOURHOST] -password '[YOURPASSWORD]' -ssl True > /tmp/egardiaserver.log 2>&1
```
Mark it as executable (`$ chmod +x`) and run `sudo nano /lib/systemd/system/egardiaserver.service`. Enter the following into the `egardiaserver.service` file:
```bash
[Unit]
Description=Egardia Server Service
[Service]
ExecStart=/bin/bash /srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/pythonegardia/egardiaserver.sh
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
Alias=egardiaserver.service
```
Save and then run `sudo systemctl enable egardiaserver.service` and `sudo systemctl start egardiaserver.service`.
6. Test your setup and enjoy. The component will update if the alarm status changes, including triggers. You can use this to build your own automations and send notifications as you wish.
The `egardia` platform allows you to integrate your [Egardia](http://www.egardia.com)/[Woonveilig](http://www.woonveilig.nl) alarm control panel in Home Assistant.
You will need to set up your [Egardia hub](/components/egardia/).

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Envisalink Alarm"
description: "Instructions how to setup the Envisalink Alarm control panel within Home Assistant."
description: "Instructions on how to setup the Envisalink Alarm control panel within Home Assistant."
date: 2016-07-01 08:00
sidebar: true
comments: false

View File

@ -0,0 +1,21 @@
---
layout: page
title: "HomematicIP Cloud Alarm Control Panel"
description: "Instructions on how to integrate HomematicIP alarm control panel into Home Assistant."
date: 2018-05-18 22:40
sidebar: true
comments: false
sharing: true
footer: true
logo: homematicip_cloud.png
ha_category: Sensor
ha_release: 0.73
ha_iot_class: "Cloud Push"
---
The `homematicip_cloud` alarm_control_panel platform allows you to control your [HomematicIP](https://www.homematic-ip.com) `Security Zones` through Home Assistant.
This component will automatically add `Security Zones` configured in your HomematicIP cloud.
Please refer to the
[component](/components/homematicip_cloud/) configuration on how to setup HomematicIP Cloud.

View File

@ -0,0 +1,48 @@
---
layout: page
title: "Antifurto365 iAlarm Control Panel"
description: "Instructions on how to integrate iAlarms alarms into Home Assistant."
date: 2017-11-30 20:00
sidebar: true
comments: false
sharing: true
footer: true
logo: antifurto365-ialarm.png
ha_category: Alarm
ha_release: "0.60"
---
The `ialarm` platform provides connectivity with the [Antifurto365](https://www.antifurtocasa365.it/) iAlarm alarm systems.
This platform supports the following services: `alarm_arm_away`, `alarm_arm_home` and `alarm_disarm`.
To enable this, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
alarm_control_panel:
- platform: ialarm
host: ALARM_SYSTEM_IP
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
{% configuration %}
host:
description: The IP address of the iAlarm device on your home network.
required: true
type: string
username:
description: Username used to sign into the iAlarm web client (should be admin by default).
required: true
type: string
password:
description: Password used to sign into the iAlarm web client. If it has a leading zero you need to put the password within quotes.
required: true
type: string
name:
description: Name of device in Home Assistant.
required: false
type: string
{% endconfiguration %}

View File

@ -0,0 +1,93 @@
---
layout: page
title: "IFTTT Alarm Control Panel"
description: "Instructions on how to integrate IFTTT-controlled security systems into Home Assistant."
date: 2018-03-10 21:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ifttt.png
ha_category: Alarm
ha_release: 0.66
---
The `ifttt` platform allows you to integrate security systems that have no open API but can be controlled through [IFTTT](https://ifttt.com/discover).
This platform depends on the [IFTTT](/components/ifttt/) Home Assistant component. See the component's documentation to set it up.
<p class='note'>
It is important to note that this platform fully relies on IFTTT to receive updates when the security system's state changes. Therefore, this platform shows an assumed state.
</p>
To enable this, setup the required IFTTT applets as listed below and add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
ifttt:
key: YOUR_WEBHOOK_KEY
alarm_control_panel:
- platform: ifttt
name: YOUR_ALARM_NAME
code: YOUR_ALARM_CODE
event_arm_away: YOUR_ARM_AWAY_EVENT
event_arm_home: YOUR_ARM_HOME_EVENT
event_arm_night: YOUR_ARM_NIGHT_EVENT
event_disarm: YOUR_DISARM_EVENT
```
<p class='note warning'>
It is strongly discouraged to use this platform when you don't use encryption; otherwise, your API password will be send unprotected through the IFTTT Webhooks. It is advised to [setup encryption using Let's Encrypt](https://home-assistant.io/blog/2017/09/27/effortless-encryption-with-lets-encrypt-and-duckdns/).
</p>
{% linkable_title Required IFTTT applets %}
This platform supports the services `alarm_disarm`, `alarm_arm_away`, `alarm_arm_home` and `alarm_arm_night`. For each of these services, an IFTTT webhook will be triggered.
For this system to operate correctly, the following IFTTT applets have to be setup. Obviously, if your alarm device does not support some states, no applets have to be provided for those.
* **IF** Webhook event `YOUR_DISARM_EVENT` is called, **THEN** disarm the alarm system.
* **IF** Webhook event `YOUR_ARM_HOME_EVENT` is called, **THEN** set the alarm system to armed home.
* **IF** Webhook event `YOUR_ARM_NIGHT_EVENT` is called, **THEN** set the alarm system to armed away.
* **IF** Webhook event `YOUR_DISARM_EVENT` is called, **THEN** set the alarm system to armed night.
* **IF** the alarm system was disarmed, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "disarmed"}`.
* **IF** the alarm system state changed to armed home, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_home"}`.
* **IF** the alarm system state changed to armed away, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_away"}`.
* **IF** the alarm system state changed to armed night, **THEN** perform a Webhook `POST` web request to url `https://HASS_URL/api/services/alarm_control_panel/ifttt_push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_night"}`.
{% configuration %}
name:
description: The name of your Home Assistant alarm control panel.
required: false
type: string
code:
description: The code for the alarm control panel.
required: false
type: string
event_arm_away:
description: IFTTT webhook event to call when the state is set to armed away.
required: false
type: string
default: alarm_arm_away
event_arm_home:
description: IFTTT webhook event to call when the state is set to armed home.
required: false
type: string
default: alarm_arm_home
event_arm_night:
description: IFTTT webhook event to call when the state is set to armed night.
required: false
type: string
default: alarm_arm_night
event_disarm:
description: IFTTT webhook event to call when the state is set to disarmed.
required: false
type: string
default: alarm_disarm
optimistic:
description: Specify if the state will be updated by an ifttt_push_alarm_state call (false) or can be set immediately (true).
required: false
type: boolean
default: false
{% endconfiguration %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Manual Alarm Control Panel"
description: "Instructions how to integrate manual alarms into Home Assistant."
description: "Instructions on how to integrate manual alarms into Home Assistant."
date: 2015-10-13 19:10
sidebar: true
comments: false
@ -25,13 +25,62 @@ Configuration variables:
- **name** (*Optional*): The name of the alarm. Default is "HA Alarm".
- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend.
- **pending_time** (*Optional*): The time in seconds of the pending time before arming the alarm. Default is 60 seconds.
- **code_template** (*Optional*): If defined, returns a code to enable or disable the alarm in the frontend; an empty string disables checking the code. Inside the template, the variables **from_state** and **to_state** identify the current and desired state. Only one of **code** and **code_template** can be specified.
- **delay_time** (*Optional*): The time in seconds of the pending time before triggering the alarm. Default is 0 seconds.
- **pending_time** (*Optional*): The time in seconds of the pending time before effecting a state change. Default is 60 seconds.
- **trigger_time** (*Optional*): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds.
- **disarm_after_trigger** (*Optional*): If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state.
- **armed_home/armed_away/armed_night/triggered** (*Optional*): State specific settings
- **pending_time**: State specific pending time override.
- **armed_custom_bypass/armed_home/armed_away/armed_night/disarmed/triggered** (*Optional*): State specific settings
- **delay_time** (*Optional*): State specific setting for **delay_time** (all states except **triggered**)
- **pending_time** (*Optional*): State specific setting for **pending_time** (all states except **disarmed**)
- **trigger_time** (*Optional*): State specific setting for **trigger_time** (all states except **triggered**)
In the config example below, armed_home state will have no pending time and triggered state will have pending time of 20 second whereas armed_away state will have a default pending time of 30 seconds.
## {% linkable_title State machine %}
The state machine of the manual alarm component is complex but powerful. The
transitions are timed according to three values, **delay_time**, **pending_time**
and **trigger_time**. The values in turn can come from the default configuration
variable or from a state-specific override.
When the alarm is armed, its state first goes to **pending** for a number
of seconds equal to the destination state's **pending_time**, and then
transitions to one of the "armed" states. Note that **code_template**
never receives "pending" in the **to_state** variable; instead,
**to_state** contains the state which the user has requested. However,
**from_state** *can* contain "pending".
When the alarm is triggered, its state goes to **pending** for a number of
seconds equal to the previous state's **delay_time** plus the triggered
state's **pending_time**. Then the alarm transitions to the "triggered"
states. The code is never checked when triggering the alarm, so the
**to_state** variable of **code_template** cannot ever contain "triggered"
either; again, **from_state** *can* contain "triggered".
The alarm remains in the "triggered" state for a number of seconds equal to the
previous state's **trigger_time**. Then, depending on **disarm_after_trigger**,
it goes back to either the previous state or **disarmed**. If the previous
state's **trigger_time** is zero, the transition to "triggered" is entirely
blocked and the alarm remains in the armed state.
Each of the settings is useful in different scenarios. **pending_time** gives
you some time to leave the building (for "armed" states) or to disarm the alarm
(for the "triggered" state).
**delay_time** can also be used to allow some time to disarm the alarm, but with
more flexibility. For example, you could specify a delay time for the
"armed away" state, in order to avoid triggering the alarm while the
garage door opens, but not for the "armed home" state.
**trigger_time** is useful to disable the alarm when disarmed, but it can also
be used for example to sound the siren for a shorter time during the night.
In the config example below:
- the disarmed state never triggers the alarm;
- the armed_home state will leave no time to leave the building or disarm the alarm;
- while other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back.
```yaml
# Example configuration.yaml entry
@ -40,11 +89,13 @@ alarm_control_panel:
name: Home Alarm
code: 1234
pending_time: 30
delay_time: 20
trigger_time: 4
disarmed:
trigger_time: 0
armed_home:
pending_time: 0
triggered:
pending_time: 20
trigger_time: 4
delay_time: 0
```
## {% linkable_title Examples %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Manual Alarm Control Panel with MQTT Support"
description: "Instructions how to integrate manual alarms into Home Assistant with MQTT support."
description: "Instructions on how to integrate manual alarms into Home Assistant with MQTT support."
date: 2017-07-02 9:10
sidebar: true
comments: false
@ -9,7 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: Alarm
ha_release: 0.50
ha_release: "0.50"
---
This platform extends the [manual alarm](/components/alarm_control_panel.manual/) by adding support for MQTT control of the alarm by a remote device. It can be used to create external keypads which simply change the state of the manual alarm in Home Assistant.
@ -32,6 +32,8 @@ When the state of the manual alarm changes, Home Assistant will publish one of t
- 'pending'
- 'triggered'
To use your panel in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
alarm_control_panel:
@ -42,15 +44,21 @@ alarm_control_panel:
Configuration variables:
All configuration variables from the base manual alarm platform are available:
The following configuration variables from the base manual alarm platform are available:
- **name** (*Optional*): The name of the alarm. Default is "HA Alarm".
- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend. This code is not required for MQTT interactions.
- **pending_time** (*Optional*): The time in seconds of the pending time before arming the alarm. Default is 60 seconds.
- **code_template** (*Optional*): If defined, returns a code to enable or disable the alarm in the frontend; an empty string disables checking the code. Inside the template, the variables **from_state** and **to_state** identify the current and desired state. Only one of **code** and **code_template** can be specified.
- **delay_time** (*Optional*): The time in seconds of the pending time before triggering the alarm. Default is 0 seconds.
- **pending_time** (*Optional*): The time in seconds of the pending time before effecting a state change. Default is 60 seconds.
- **trigger_time** (*Optional*): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds.
- **disarm_after_trigger** (*Optional*): If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state.
- **armed_home|armed_away|armed_night|triggered** (*Optional*): State specific settings
- **pending_time**: State specific pending time override.
- **armed_home/armed_away/armed_night/disarmed/triggered** (*Optional*): State specific settings
- **delay_time** (*Optional*): State specific setting for **delay_time** (all states except **triggered**)
- **pending_time** (*Optional*): State specific setting for **pending_time** (all states except **disarmed**)
- **trigger_time** (*Optional*): State specific setting for **trigger_time** (all states except **triggered**)
See the documentation for the [manual alarm platform](/components/alarm_control_panel.manual/) for a description.
Additionally, the following MQTT configuration variables are also available:
@ -62,7 +70,11 @@ Additionally, the following MQTT configuration variables are also available:
- **payload_arm_away** (*Optional*): The payload to set armed-away mode on this Alarm Panel. Default is "ARM_AWAY".
- **payload_arm_night** (*Optional*): The payload to set armed-night mode on this Alarm Panel. Default is "ARM_NIGHT".
In the config example below, armed_home state will have no pending time and triggered state will have a pending time of 20 seconds whereas armed_away state will have a default pending time of 30 seconds.
In the configuration example below:
- The disarmed state never triggers the alarm.
- The armed_home state will leave no time to leave the building or disarm the alarm.
- While other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back.
```yaml
# Example configuration.yaml entry
@ -71,11 +83,13 @@ alarm_control_panel:
state_topic: home/alarm
command_topic: home/alarm/set
pending_time: 30
delay_time: 20
trigger_time: 4
disarmed:
trigger_time: 0
armed_home:
pending_time: 0
triggered:
pending_time: 20
trigger_time: 4
delay_time: 0
```
## {% linkable_title Examples %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Alarm Control Panels"
description: "Instructions how to integrate Alarm Control Panels into Home Assistant."
description: "Instructions on how to integrate Alarm Control Panels into Home Assistant."
date: 2015-10-13 19:10
sidebar: true
comments: false

View File

@ -1,7 +1,7 @@
---
layout: page
title: "MQTT Alarm Control Panel"
description: "Instructions how to integrate MQTT capable Alarm Panels into Home Assistant."
description: "Instructions on how to integrate MQTT capable Alarm Panels into Home Assistant."
date: 2015-09-14 19:10
sidebar: true
comments: false
@ -35,14 +35,56 @@ alarm_control_panel:
command_topic: "home/alarm/set"
```
Configuration variables:
- **state_topic** (*Required*): The MQTT topic subscribed to receive state updates.
- **command_topic** (*Required*): The MQTT topic to publish commands to change the alarm state.
- **name** (*Optional*): The name of the alarm. Default is 'MQTT Alarm'.
- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0. This QoS will also be used to publishing messages.
- **payload_disarm** (*Optional*): The payload to disarm your Alarm Panel. Default is "DISARM".
- **payload_arm_home** (*Optional*): The payload to set armed-home mode on your Alarm Panel. Default is "ARM_HOME".
- **payload_arm_away** (*Optional*): The payload to set armed-away mode on your Alarm Panel. Default is "ARM_AWAY".
- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend.
{% configuration %}
name:
description: The name of the alarm.
required: false
type: string
default: MQTT Alarm
state_topic:
description: The MQTT topic subscribed to receive state updates.
required: true
type: string
command_topic:
description: The MQTT topic to publish commands to change the alarm state.
required: true
type: string
qos:
description: The maximum QoS level of the state topic.
required: false
type: integer
default: 0
payload_disarm:
description: The payload to disarm your Alarm Panel.
required: false
type: string
default: DISARM
payload_arm_home:
description: The payload to set armed-home mode on your Alarm Panel.
required: false
type: string
default: ARM_HOME
payload_arm_away:
description: The payload to set armed-away mode on your Alarm Panel.
required: false
type: string
default: ARM_AWAY
code:
description: If defined, specifies a code to enable or disable the alarm in the frontend.
required: false
type: string
availability_topic:
description: The MQTT topic subscribed to receive availability (online/offline) updates.
required: false
type: string
payload_available:
description: The payload that represents the available state.
required: false
type: string
default: online
payload_not_available:
description: The payload that represents the unavailable state.
required: false
type: string
default: offline
{% endconfiguration %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "NX584 Alarm Control Panel"
description: "Instructions how to integrate NX584 into Home Assistant."
description: "Instructions on how to integrate NX584 into Home Assistant."
date: 2016-02-07 10:00
sidebar: true
comments: false

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Satel Integra Alarm Control Panel"
description: "Instructions how to setup the Satel Integra control panel within Home Assistant."
description: "Instructions on how to setup the Satel Integra control panel within Home Assistant."
date: 2017-09-07 13:28
sidebar: true
comments: false

View File

@ -1,7 +1,7 @@
---
layout: page
title: "SimpliSafe Alarm Control Panel"
description: "Instructions how to integrate SimpliSafe into Home Assistant."
description: "Instructions on how to integrate SimpliSafe into Home Assistant."
date: 2016-07-02 22:00
sidebar: true
comments: false

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Vanderbilt SPC Alarm"
description: "Instructions how to setup the Vanderbilt SPC Alarm control panel within Home Assistant."
description: "Instructions on how to setup the Vanderbilt SPC Alarm control panel within Home Assistant."
date: 2017-05-18 22:01
sidebar: true
comments: false

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Honeywell TotalConnect Alarm Control Panel"
description: "Instructions how to integrate TotalConnect alarms into Home Assistant."
description: "Instructions on how to integrate TotalConnect alarms into Home Assistant."
date: 2017-04-02 22:00
sidebar: true
comments: false
@ -34,3 +34,27 @@ Configuration variables:
- **username** (*Required*): Username used to sign into the TotalConnect app/web client.
- **password** (*Required*): Password used to sign into the TotalConnect app/web client.
Automation example:
```yaml
automation:
- alias: "Alarm: Disarmed Daytime"
trigger:
platform: state
entity_id: alarm_control_panel.total_connect
to: 'disarmed'
condition:
condition: sun
before: sunset
action:
service: scene.turn_on
entity_id: scene.OnDisarmedDaytime
- alias: "Alarm: Armed Away"
trigger:
platform: state
entity_id: alarm_control_panel.total_connect
to: 'armed_away'
action:
service: scene.turn_on
entity_id: scene.OnArmedAway
```

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Verisure Alarm"
description: "Instructions how to setup the Verisure Alarm control panel within Home Assistant."
description: "Instructions on how to setup the Verisure Alarm control panel within Home Assistant."
date: 2016-02-15 22:00
sidebar: true
comments: false

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Wink Alarm"
description: "Instructions how to setup the Wink alarms within Home Assistant."
description: "Instructions on how to setup the Wink alarms within Home Assistant."
date: 2017-01-14 12:00
sidebar: true
comments: false

View File

@ -20,7 +20,7 @@ Please visit the [AlarmDecoder website](https://www.alarmdecoder.com/) for furth
There is currently support for the following device types within Home Assistant:
- [Binary Sensor](/components/binary_sensor.alarmdecoder/): Reports on zone status
- [Sensor](/components/sensor.alarmdecoder/): Emulates an keypad display
- [Sensor](/components/sensor.alarmdecoder/): Emulates a keypad display
- [Alarm Control Panel](/components/alarm_control_panel.alarmdecoder/): Reports on alarm status, and can be used to arm/disarm the system
This is a fully event-based component. Any event sent by the AlarmDecoder device will be immediately reflected within Home Assistant.
@ -39,6 +39,7 @@ alarmdecoder:
01:
name: 'Smoke Detector'
type: 'smoke'
rfid: '0123456'
02:
name: 'Front Door'
type: 'opening'
@ -53,3 +54,6 @@ Configuration variables:
- **baudrate** (*Optional*): The baud rate of the AlarmDecoder device, if using serial type. Default: `115200`
- **panel_display** (*Optional*): Create a sensor called sensor.alarm_display to match the Alarm Keypad display. Default: `off`
- **zones** (*Optional*): AlarmDecoder has no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*
- **rfid** (*Optional*): The RF serial-number associated with RF zones. Providing this field allows Home Assistant to associate raw sensor data to a given zone, allowing direct monitoring of the state, battery, and supervision status.
- **relayaddr** (*Optional*): 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.
- **relaychan** (*Optional*): Channel of the relay expander board to associate with the zone. (ex: 1, 2, 3, or 4)

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Alert"
description: "Instructions how to setup automatic alerts within Home Assistant."
description: "Instructions on how to setup automatic alerts within Home Assistant."
date: 2017-01-15 20:00
sidebar: true
comments: false
@ -16,7 +16,9 @@ The `alert` component is designed to notify you when problematic issues arise. F
Alerts will add an entity to the front end only when they are firing. This entity allows you to silence an alert until it is resolved.
<p class='note warning'>
When using the `alert` component, it is important that the time zone used for Home Assistant and the underlying operating system match. Failing to do so may result in multiple alerts being sent at the same time (such as when Home Assistant is set to the `America/Detroit` time zone but the operating system uses `UTC`).
</P>
### {% linkable_title Basic Example %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Alexa / Amazon Echo"
description: "Instructions how to connect Alexa/Amazon Echo to Home Assistant."
description: "Instructions on how to connect Alexa/Amazon Echo to Home Assistant."
date: 2015-12-13 13:02
sidebar: true
comments: false
@ -10,13 +10,18 @@ footer: true
logo: amazon-echo.png
ha_category: Voice
featured: true
ha_release: 0.10
ha_release: '0.10'
---
<p class='note'>
Use [Home Assistant Cloud](/components/cloud/) to integrate with Alexa without any effort.
</p>
There are a few ways that you can use Amazon Echo and Home Assistant together.
- [Build custom commands to use](#i-want-to-build-custom-commands-to-use-with-echo)
- [Create a new Flash Briefing source](#flash-briefing-skills)
- [Use the Smart Home API to control lights, etc](#smart-home)
- Alternative: use the [Emulated Hue component][emulated-hue-component] to trick Alexa to thinking Home Assistant is a Philips Hue hub.
Amazon has released [Echosim], a website that simulates the Alexa service in your browser. That way it is easy to test your skills without having access to a physical Amazon Echo.
@ -41,7 +46,7 @@ Additionally, note that at the time of this writing, your Alexa skill endpoint *
OR
2. Change your Home Assistant serving port to 443 this is done in the [`http`](/components/http/) section with the `server_port` entry in your `configuration.yaml` file
[blog-lets-encrypt]: https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/
[blog-lets-encrypt]: /blog/2015/12/13/setup-encryption-using-lets-encrypt/
To get started with Alexa skills:
@ -162,7 +167,7 @@ intent_script:
text: OK
```
Here we are using [templates] to take the name we gave to Alexa e.g. `downstairs on` and replace the space with an underscore so it becomes `downstairs_on` as Home Assistant expects.
Here we are using [templates] to take the name we gave to Alexa e.g., `downstairs on` and replace the space with an underscore so it becomes `downstairs_on` as Home Assistant expects.
Now say `Alexa ask Home Assistant to activate <some scene>` and Alexa will activate that scene for you.
@ -325,9 +330,53 @@ Please refer to the [Amazon documentation][flash-briefing-api-docs] for more inf
- All other settings are up to you
- Hit "Next"
- Test
- Having passed all validations to reach this screen, you can now click on "< Back to All Skills" as your flash briefing is now available as in "Development" service.
- Having passed all validations to reach this screen, you can now click on "< Back to All Skills" as your flash briefing is now available as in "Development" service.
- To invoke your flash briefing, open the Alexa app on your phone or go to the [Alexa Settings Site][alexa-settings-site], open the "Skills" configuration section, select "Your Skills", scroll to the bottom, tap on the Flash Briefing Skill you just created, enable it, then manage Flash Briefing and adjust ordering as necessary. Finally ask your Echo for your "news","flash briefing", or "briefing".
## {% linkable_title Smart Home %}
While the Skills API described above allows for arbitrary intents, all
utterances must begin with "Alexa, tell $invocation_name ..."
The [Emulated Hue component][emulated-hue-component] provides a simpler
interface such as, "Alexa, turn on the kitchen light". However it has some
limitations since everything looks like a light bulb.
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](/components/cloud/).
If you don't want to use Home Assistant Cloud and are willing to do the
integration work yourself, Home Assistant can expose an HTTP API which makes
the integration work easier. Example configuration:
```yaml
alexa:
smart_home:
filter:
include_entities:
- light.kitchen
- light.kitchen_left
include_domains:
- switch
exclude_entities:
- switch.outside
entity_config:
light.kitchen:
name: Custom Name for Alexa
description: The light in the kitchen
switch.stairs:
display_categories: LIGHT
```
This exposes an HTTP POST endpoint at `http://your_hass_ip/api/alexa/smart_home`
which accepts and returns messages conforming to the
[Smart Home v3 payload](https://developer.amazon.com/docs/smarthome/smart-home-skill-api-message-reference.html).
You must then create an Amazon developer account with an Alexa skill and Lambda
function to integrate this endpoint. See
[Haaska](https://github.com/mike-grant/haaska) for an example.
[amazon-dev-console]: https://developer.amazon.com
[flash-briefing-api]: https://developer.amazon.com/alexa-skills-kit/flash-briefing
[flash-briefing-api-docs]: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/flash-briefing-skill-api-feed-reference

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Amcrest IP Camera"
description: "Instructions how to integrate Amcrest IP cameras within Home Assistant."
description: "Instructions on how to integrate Amcrest IP cameras within Home Assistant."
date: 2017-06-24 10:00
sidebar: true
comments: false
@ -13,23 +13,28 @@ ha_iot_class: "Local Polling"
ha_release: 0.49
---
The `amcrest` platform allows you to integrate your [Amcrest](https://amcrest.com/) IP camera in Home Assistant.
The `amcrest` camera platform allows you to integrate your [Amcrest](https://amcrest.com/) IP camera in Home Assistant.
## {% linkable_title Configuration %}
To enable your camera in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
amcrest:
- host: IP_ADDRESS
username: USERNAME
password: PASSWORD
- host: IP_ADDRESS_CAMERA_1
username: YOUR_USERNAME
password: YOUR_PASSWORD
sensors:
- motion_detector
- sdcard
switches:
- motion_detection
- motion_recording
- host: IP_ADDRESS
username: USERNAME
password: PASSWORD
- host: IP_ADDRESS_CAMERA_2
username: YOUR_USERNAME
password: YOUR_PASSWORD
resolution: low
stream_source: snapshot
sensors:
@ -45,18 +50,21 @@ Configuration variables:
- **port** (*Optional*): The port that the camera is running on. The default is 80.
- **resolution** (*Optional*): This parameter allows you to specify the camera resolution. For a high resolution (1080/720p), specify the option `high`. For VGA resolution (640x480p), specify the option `low`. If omitted, it defaults to *high*.
- **stream_source** (*Optional*): The data source for the live stream. `mjpeg` will use the camera's native MJPEG stream, whereas `snapshot` will use the camera's snapshot API to create a stream from still images. You can also set the `rtsp` option to generate the streaming via RTSP protocol. If omitted, it defaults to *snapshot*.
- **ffmpeg_arguments**: (*Optional*): Extra options to pass to ffmpeg, e.g. image quality or video filter options.
- **ffmpeg_arguments**: (*Optional*): Extra options to pass to ffmpeg, e.g., image quality or video filter options.
- **authentication**: (*Optional*): Defines which authentication method to use only when **stream_source** is **mjpeg**. Currently, *aiohttp* only support *basic*. It defaults to *basic*.
- **scan_interval** (*Optional*): Defines the update interval of the sensor in seconds. The default is 10 seconds.
- **sensors** array (*Optional*): Conditions to display in the frontend. By default, *none* of the conditions are enabled. The following conditions can be monitored.
- **motion_detector**: Return True/False when a motion is detected
- **sdcard**: Return the SD card usage by reporting the total and used space
- **ptz_preset**: Return the number of PTZ preset positions configured for the given camera
- **switches** array (*Optional*): Switches to display in the frontend. By default, *none* of the switches are shown. The following switches can be monitored.
- **motion_detection**: Enable/disable motion detection setting
- **motion_recording**: Enable/disable recording on motion detection setting
**Note:** Amcrest cameras with newer firmware no longer have the ability to stream `high` definition video with MJPEG encoding. You may need to use `low` resolution stream or the `snapshot` stream source instead. If the quality seems too poor, lower the `Frame Rate (FPS)` and max out the `Bit Rate` settings in your camera's configuration manager. If you defined the *stream_source* to **mjpeg**, make sure your camera supports *Basic* HTTP authentication. Newer Amcrest firmware may not work, then **rtsp** is recommended instead.
**Note:** If you set the `stream_source` option to `rtsp`, make sure to follow the steps mentioned at
[FFMPEG](https://home-assistant.io/components/ffmpeg/) documentation to install the `ffmpeg`.
[FFMPEG](/components/ffmpeg/) documentation to install the `ffmpeg`.
Finish its configuration by visiting the [Amcrest sensor page](/components/sensor.amcrest/) or [Amcrest camera page](/components/camera.amcrest/).

View File

@ -48,6 +48,9 @@ Sensors:
- light
- motion
- pressure
- proximity
- sound
- video_connections
Settings (Switches):
@ -76,6 +79,9 @@ android_ip_webcam:
- light
- motion
- pressure
- proximity
- sound
- video_connections
switches:
- exposure_lock
- ffc

View File

@ -0,0 +1,25 @@
---
layout: page
title: "API"
description: "Instructions on how to setup the RESTful API within Home Assistant."
date: 2018-01-21 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: home-assistant.png
ha_category: "Other"
---
The `api` component exposes a RESTful API and allows one to interact with a Home Assistant instance that is running headless. This component depends on the [`http` component](/components/http/).
<p class='note warning'>
It is HIGHLY recommended that you set the `api_password`, especially if you are planning to expose your installation to the internet.
</p>
```yaml
# Example configuration.yaml entry
api:
```
For details to use the API, please refer to the [REST API](/developers/rest_api/) or the [Python REST API documentation](/developers/python_api/) in the "Developer" section.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Apple TV"
description: "Instructions how to integrate Apple TV devices into Home Assistant."
description: "Instructions on how to integrate Apple TV devices into Home Assistant."
date: 2017-06-26 20:47
sidebar: true
comments: false
@ -13,7 +13,7 @@ ha_iot_class: "Local Push"
ha_release: 0.49
---
The `apple_tv` platform allows you to control an Apple TV (3rd and 4th generation). See the [remote platform](/components/remote.apple_tv/) if you want to send remote control buttons, e.g. arrow keys.
The `apple_tv` platform allows you to control an Apple TV (3rd and 4th generation). See the [remote platform](/components/remote.apple_tv/) if you want to send remote control buttons, e.g., arrow keys.
<p class='note'>
Currently, you must have Home Sharing enabled for this to work. Support for pairing Home Assistant with your device will be supported in a later release.
@ -56,7 +56,9 @@ In order to connect to the device, you need a *login id*. The easiest way to obt
### {% linkable_title Scanning for devices %}
To scan for devices, press the icon in the upper left corner and select the leftmost icon according to the image:
Make sure Home Sharing is enabled on the Apple TV.
To scan for devices and determine the `login_id`, press the icon in the upper left corner and select the leftmost icon according to the image:
<img src='/images/screenshots/developer-tools.png' />
@ -78,26 +80,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).
### {% linkable_title My Apple TV turns on when I restart Home Assistant %}
The Apple TV will automatically turn on if a request is sent to it, e.g., if a button is pressed, something is streamed to it via AirPlay or if current state (currently playing) is accessed. This is how Apple has designed it, and it will cause problems if you are using HDMI CEC. Every time Home Assistant is started, a new request is sent to the device to figure out what is currently playing. When using CEC, this will wake up your TV and other devices you have configured.
So, if your TV is randomly turning on, this is probably the reason. As stated, this is by design, and there is no real fix for it. There's also no known way to turn off the Apple TV via the protocol used for communication. You have the following options:
- Do not use this platform
- Disable HDMI CEC on your Apple TV
- Use "fake standby"
The first two points are quite obvious. Fake standby is a concept implemented in this platform that disables all requests to the device and makes it appear as being "off" in the web interface. This will make sure that the device is not woken up, but it will of course not show any information or allow you to control it. It is however easy to turn it on (or off) in the web interface or to use an automation with `turn_on`. To make it more useful, you can write automations that turn it on or off depending on some other device, like the input source on your receiver.
To put a device into fake standby when starting Home Assistant, add `start_off: true` to your configuration.
<p class='note warning'>
Turning the device on/off in the user interface will *not* turn the physical device on/off according to the description above.
</p>
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).
### {% linkable_title Setting up device authentication %}
@ -109,7 +92,7 @@ then device authentication is required. Press the icon in the upper left corner
<img src='/images/screenshots/developer-tools.png' />
Select `apple_tv` as domain, `apple_tv_authenticate` as service and enter `{"entity_id": "XXX"}` into "Service Data", but replace XXX with the entity id of your device (e.g. `media_player.apple_tv`). Press the button and hopefully you are presented with an input dialog asking for a pin code:
Select `apple_tv` as domain, `apple_tv_authenticate` as service and enter `{"entity_id": "XXX"}` into "Service Data", but replace XXX with the entity id of your device (e.g., `media_player.apple_tv`). Press the button and hopefully you are presented with an input dialog asking for a pin code:
<img src='/images/components/apple_tv/auth_start.jpg' />
@ -129,6 +112,24 @@ apple_tv:
Restart Home Assistant, and you should now be able to use `play_url` as before.
### {% linkable_title My Apple TV turns on when I restart Home Assistant %}
The Apple TV will automatically turn on if a request is sent to it, e.g., if a button is pressed, something is streamed to it via AirPlay or if current state (currently playing) is accessed. This is how Apple has designed it, and it will cause problems if you are using HDMI CEC. Every time Home Assistant is started, a new request is sent to the device to figure out what is currently playing. When using CEC, this will wake up your TV and other devices you have configured.
So, if your TV is randomly turning on, this is probably the reason. As stated, this is by design, and there is no real fix for it. There's also no known way to turn off the Apple TV via the protocol used for communication. You have the following options:
- Do not use this platform
- Disable HDMI CEC on your Apple TV
- Use "fake standby"
The first two points are quite obvious. Fake standby is a concept implemented in this platform that disables all requests to the device and makes it appear as being "off" in the web interface. This will make sure that the device is not woken up, but it will of course not show any information or allow you to control it. It is however easy to turn it on (or off) in the web interface or to use an automation with `turn_on`. To make it more useful, you can write automations that turn it on or off depending on some other device, like the input source on your receiver.
To put a device into fake standby when starting Home Assistant, add `start_off: true` to your configuration.
<p class='note warning'>
Turning the device on/off in the user interface will *not* turn the physical device on/off according to the description above.
</p>
## {% linkable_title Services %}
### {% linkable_title Service `apple_tv_authenticate` %}
@ -142,4 +143,3 @@ To play media on an Apple TV with device authentication enabled (e.g., ATV4 with
### {% linkable_title Service `apple_tv_scan` %}
Scans the local network for Apple TVs. All found devices are presented as a persistent notification.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Arduino"
description: "Instructions how to setup an Arduino boards within Home Assistant."
description: "Instructions on how to setup an Arduino boards within Home Assistant."
date: 2015-06-27 10:28
sidebar: true
comments: false
@ -43,7 +43,7 @@ The exact number can be determined with the command shown below.
$ ls /dev/ttyACM*
```
If that's not working, check your `dmesg` or `journalctl -f` output. Keep in mind that Arduino clones are often using a different name for the port (e.g. `/dev/ttyUSB*`).
If that's not working, check your `dmesg` or `journalctl -f` output. Keep in mind that Arduino clones are often using a different name for the port (e.g., `/dev/ttyUSB*`).
<p class='note warning'>
A word of caution: The Arduino boards are not storing states. This means that with every initialization the pins are set to off/low.

View File

@ -15,29 +15,41 @@ ha_iot_class: "Cloud Polling"
The `arlo` implementation allows you to integrate your [Arlo](https://arlo.netgear.com/) devices in Home Assistant.
## {% linkable_title Configuration %}
To enable device linked in your [Arlo](https://arlo.netgear.com/) account, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
arlo:
username: you@example.com
password: secret
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
Configuration variables:
- **username** (*Required*): The username for accessing your Arlo account.
- **password** (*Required*): The password for accessing your Arlo account.
{% configuration %}
username:
description: The username for accessing your Arlo account.
required: true
type: string
password:
description: The password for accessing your Arlo account.
required: true
type: string
scan_interval:
description: How frequently to query for new data. Defaults to 60 seconds.
required: false
type: int
{% endconfiguration %}
It is recommended to create a dedicated user on Arlo website to be used within Home Assistant and then share your Arlo cameras.
Finish its configuration by visiting the [Arlo sensor page](/components/sensor.arlo/) or [Arlo camera page](/components/camera.arlo/) or [Arlo control panel page](/components/alarm_control_panel.arlo/).
Finish its configuration by visiting the [Arlo sensor page](/components/sensor.arlo/) or [Arlo camera page](/components/camera.arlo/) or [Arlo control panel page](/components/alarm_control_panel.arlo/). Arlo also has a service call `arlo.update` that can be manually called to force an update prior to the regular scheduled interval.
The Arlo component also provides a service to enable/disable the motion detection sensor. The example below enables the motion detection every time the Home Assistant service starts.
The Arlo component also provides a camera service to enable/disable the motion detection sensor. The example below enables the motion detection every time the Home Assistant service starts.
```yaml
#automation.yaml
- alias: Enable Arlo upton HA start'
- alias: Enable Arlo upon HA start'
initial_state: 'on'
trigger:
platform: homeassistant

View File

@ -1,42 +1,51 @@
---
layout: page
title: "Asterisk Voicemail"
description: "Instructions how to integrate your existing Asterisk voicemail within Home Assistant."
description: "Instructions on how to integrate your existing Asterisk voicemail within Home Assistant."
date: 2017-06-30 18:30
sidebar: true
comments: false
sharing: true
footer: true
logo: asterisk.png
ha_category: Other
ha_version: 0.51
ha_iot_class: "Local Push"
ha_release: 0.51
---
The Asterisk Voicemail integration for Home Assistant allows you to view, listen to, and delete voicemails from an Asterisk voicemail mailbox. The component includes a panel on the frontend that provides caller-id and speech-to-text transcription (using Google's API) of messages in addition to playback and message deletion. There is also an included sensor that indicates of the number of available messages. There is no requirement that the Asterisk PBX and Home Assistant are running on the same machine.
The `asterisk_mbox` Asterisk Voicemail integration for Home Assistant allows you to view, listen to, and delete voicemails from an Asterisk voicemail mailbox. The component includes a panel on the frontend that provides caller-id and speech-to-text transcription (using Google's API) of messages in addition to playback and message deletion. There is also an included sensor that indicates of the number of available messages. There is no requirement that the Asterisk PBX and Home Assistant are running on the same machine.
To enable the component, a configuration is required in both Home Assistant as well as on the Asterisk server.
First follow the [Asterisk PBX configuration guide](/docs/asterisk_mbox) to setup the necessary server on the Asterisk PBX server (this is needed even if Asterisk and Home Assistant are running on the same server)
First follow the [Asterisk PBX configuration guide](/docs/asterisk_mbox/) to setup the necessary server on the Asterisk PBX server (this is needed even if Asterisk and Home Assistant are running on the same server)
Once that is complete, add the following entry `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
asterisk_mbox:
password: ASTERISK_PBX_PASSWORD
host: ASTERISK_PBX_SERVER_IP_ADDRESS
port: ASTERISK_PBX_SERVER_PORT
password: ASTERISK_PBX_PASSWORD
host: ASTERISK_PBX_SERVER_IP_ADDRESS
port: ASTERISK_PBX_SERVER_PORT
```
This will add a new 'Mailbox' side-panel, as well as a sensor to indicate # of messages available.
Configuration variables:
- **password** (*Required*): The password that was set during Asterisk PBX configuration
- **host** (*Required*): The ip-address of the server that is running the Asterisk PBX
- **port** (*Required*): The port on the Asterisk PBX server that was configured during Asterisk PBX configuration
{% configuration %}
password:
description: The password that was set during Asterisk PBX configuration
required: true
type: string
host:
description: The ip-address of the server that is running the Asterisk PBX
required: true
type: string
port:
description: The port on the Asterisk PBX server that was configured during Asterisk PBX configuration
required: true
type: string
{% endconfiguration %}
<p class='note warning'>
Communication between the Asterisk PBX server and the Home Assistant server is password-protected, but the data transmission is not encrypted. It is recommended to only use this component when communication is contained within a local area network.
</p>

View File

@ -0,0 +1,56 @@
---
layout: page
title: "August"
description: "Instructions on how to integrate your August devices into Home Assistant."
date: 2018-02-17 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: august.png
ha_category: Hub
ha_release: "0.64"
ha_iot_class: "Cloud Polling"
---
The `august` component allows you to integrate your [August](http://august.com) devices in Home Assistant. Currently this component supports August Lock and Doorbell.
<p class='note'>
August Lock 2nd Gen will need either August Connect or Doorbell to connect to Home Assistant.
</p>
## {% linkable_title Configuration %}
You will need your August login information (username (either phone# or email), and password) to use this module.
To set it up, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
august:
login_method: phone
username: "+16041234567"
password: YOUR_PASSWORD
```
{% configuration %}
login_method:
description: Method to login to your August account, either "email" or "phone". A verification code will be sent to your email or phone during setup.
required: true
type: string
username:
description: The username for accessing your August account. This depends on your login_method, if login_method is email, this will be your email of the account. Otherwise, this will be your phone number.
required: true
type: string
password:
description: The password for accessing your August account.
required: true
type: string
timeout:
description: Timeout to wait for connections.
required: false
type: int
default: 10
{% endconfiguration %}
Once Home Assistant is started, a configurator will pop up asking you to enter verification code that is sent to your phone number or email.

View File

@ -0,0 +1,15 @@
---
layout: page
title: "Auth"
description: "This component is responsible for providing the authentication endpoints."
date: 2018-03-19 21:04
sidebar: true
comments: false
sharing: true
footer: true
logo: home-assistant.png
ha_category: Other
ha_release: 0.73
---
This component creates the endpoints for the authentication system that is built into Home Assistant. There are no configuration options for this component directly as it relies on the auth system in the core.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Automation"
description: "Instructions how to setup automation within Home Assistant."
description: "Instructions on how to setup automation within Home Assistant."
date: 2015-01-20 22:36
sidebar: true
comments: false
@ -19,7 +19,7 @@ Starting with 0.28 your automation rules can be controlled with the frontend.
<img src='{{site_root}}/images/screenshots/automation-switches.png' />
</p>
This allows one to reload the automation without restarting Home Assistant itself. If you don't want to see the automation rule in your frontend use `hide_entity: True` to hide it. You can also use `initial_state: 'off'` so that the automation is not automatically turned on after a Home assistant reboot.
This allows one to reload the automation without restarting Home Assistant itself. If you don't want to see the automation rule in your frontend use `hide_entity: True` to hide it. You can also use `initial_state: 'off'` so that the automation is not automatically turned on after a Home Assistant reboot.
```yaml
automation:

View File

@ -68,10 +68,6 @@ axis:
location: köket
```
<p class='note'>
If you are using Python 3.6, you might need to replace the 34m with 36m in the _gi.*.so filename in the gi folder.
</p>
<p class='note'>
Any specific levels for triggers needs to be configured on the device.
</p>

View File

@ -1,7 +1,7 @@
---
layout: page
title: "BeagleBone Black GPIO"
description: "Instructions how to integrate the GPIO capability of a BeagleBone Black into Home Assistant."
description: "Instructions on how to integrate the GPIO capability of a BeagleBone Black into Home Assistant."
date: 2017-01-14 10:00
sidebar: true
comments: false

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Abode Binary Sensor"
description: "Instructions how to integrate Abode binary sensors into Home Assistant."
description: "Instructions on how to integrate Abode binary sensors into Home Assistant."
date: 2017-08-26 0:28
sidebar: true
comments: false

View File

@ -0,0 +1,41 @@
---
layout: page
title: "ADS Binary Sensor"
description: "Instructions on how to set up ADS binary sensors within Home Assistant."
date: 2017-10-25 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: beckhoff.png
ha_category: Binary Sensor
ha_release: "0.60"
ha_iot_class: "Local Push"
---
The `ads` binary sensor platform can be used to monitor a boolean value on your ADS device.
To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml`
file:
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: ads
adsvar: .boolean1
```
{% configuration %}
adsvar:
required: true
description: The name of the variable which you want to access on the ADS device.
type: string
name:
required: false
description: An identifier for the light in the frontend.
type: string
device_class:
required: false
description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
type: string
{% endconfiguration %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "AlarmDecoder Binary Sensor"
description: "Instructions how to integrate AlarmDecoder binary sensors into Home Assistant."
description: "Instructions on how to integrate AlarmDecoder binary sensors into Home Assistant."
date: 2017-04-02 13:28
sidebar: true
comments: false

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Android IP Webcam Binary Sensor"
description: "Instructions how to integrate binary motion sensors for Android IP webcam within Home Assistant."
description: "Instructions on how to integrate binary motion sensors for Android IP webcam within Home Assistant."
date: 2017-03-10 00:00
sidebar: true
comments: false

View File

@ -1,7 +1,7 @@
---
layout: page
title: "aREST Binary Sensor"
description: "Instructions how to integrate aREST binary sensors within Home Assistant."
description: "Instructions on how to integrate aREST binary sensors within Home Assistant."
date: 2015-11-20 18:15
sidebar: true
comments: false
@ -14,7 +14,7 @@ ha_release: 0.9
---
The `arest` binary 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` 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.
To use your aREST binary sensor in your installation, add the following to your `configuration.yaml` file:
@ -28,7 +28,7 @@ binary_sensor:
Configuration variables:
- **resource** (*Required*): IP address and schema of the device that is exposing an aREST API, e.g. http://192.168.1.10.
- **resource** (*Required*): IP address and schema of the device that is exposing an aREST API, e.g., http://192.168.1.10.
- **pin** (*Required*): Number of the pin to monitor.
- **name** (*Optional*): Let you overwrite the name of the device. By default *name* from the device is used.

View File

@ -0,0 +1,22 @@
---
layout: page
title: "August Binary Sensor"
description: "Instructions on how to integrate your August devices into Home Assistant."
date: 2018-02-17 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: august.png
ha_category: Binary Sensor
ha_release: "0.64"
ha_iot_class: "Cloud Polling"
---
To get your [August](http://august.com) doorbell binary sensors working within Home Assistant, please follow the instructions for the general [August component](/components/august/).
If you have August Doorbell, once you have enabled the [August component](/components/august/), you should see following sensors:
* Doorbell ding sensor
* Doorbell motion sensor
* Doorbell online sensor

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Axis Binary Sensor"
description: "Instructions how to integrate Axis binary sensors into Home Assistant."
description: "Instructions on how to integrate Axis binary sensors into Home Assistant."
date: 2017-04-01 19:00
sidebar: true
comments: false
@ -19,10 +19,9 @@ See the [Axis main component](/components/axis/) for configuration instructions.
The following sensor types are supported:
* Motion detection
* Passive IR motion detection
* Sound detection
* Day/night mode
* Tampering detection
* Input port
- Motion detection
- Passive IR motion detection
- Sound detection
- Day/night mode
- Tampering detection
- Input port

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Bayesian Binary Sensor"
description: "Instructions how to integrate threshold Bayesian sensors into Home Assistant."
description: "Instructions on how to integrate threshold Bayesian sensors into Home Assistant."
date: 2017-08-27 20:05
sidebar: true
comments: false

View File

@ -1,7 +1,7 @@
---
layout: page
title: "BeagleBone Black GPIO Binary Sensor"
description: "Instructions how to integrate the GPIO sensor capability of a BeagleBone Black into Home Assistant."
description: "Instructions on how to integrate the GPIO sensor capability of a BeagleBone Black into Home Assistant."
date: 2017-01-14 10:00
sidebar: true
comments: false
@ -33,7 +33,7 @@ Configuration variables:
- **pins** array (*Required*): Array of used pins.
- **pin_name** (*Required*): Pin numbers and corresponding names.
- **name** (*Required*): Friendly name to use for the frontend.
- **bouncetime** (*Optional*): Debounce time for reading input pin defined in miliseconds [ms]. Defaults to `50 ms`.
- **bouncetime** (*Optional*): Debounce time for reading input pin defined in milliseconds [ms]. Defaults to `50 ms`.
- **invert_logic** (*Optional*): If `true`, inverts the input logic to ACTIVE LOW. Default is `false` (ACTIVE HIGH).
- **pull_mode** (*Optional*): Type of internal pull resistor connected to input. Options are `UP` - pull-up resistor and `DOWN` - pull-down resistor. Defaults to `UP`.

View File

@ -0,0 +1,20 @@
---
layout: page
title: "BMW Connected Drive Binary Sensor"
description: "Instructions on how to setup your BMW Connected Drive account with Home Assistant."
date: 2018-02-22 23:00
sidebar: true
comments: false
sharing: true
footer: true
logo: bmw.png
ha_category: Binary Sensor
ha_release: 0.66
---
The `bmw_connected_drive` platform allows you to import data on your BMW into Home Assistant.
The binary sensors will be automatically configured if `bmw_connected_drive` component is configured.
For more configuration information see the [`bmw_connected_drive` component](/components/bmw_connected_drive/) documentation.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Command line Binary Sensor"
description: "Instructions how to integrate Command binary sensors within Home Assistant."
description: "Instructions on how to integrate Command binary sensors within Home Assistant."
date: 2016-01-13 12:15
sidebar: true
comments: false
@ -33,7 +33,8 @@ Configuration variables:
- **payload_on** (*Optional*): The payload that represents enabled state. Default is "ON".
- **payload_off** (*Optional*): The payload that represents disabled state. Default is "OFF".
- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload.
- **scan_interval** (*Optional*): Defines number of seconds for polling interval (defaults to 60 seconds).
- **scan_interval** (*Optional*): Defines number of seconds for polling interval (defaults to 60 seconds).
- **command_timeout** (*Optional*): Defines number of seconds for command timeout (defaults to 15 seconds).
## {% linkable_title Examples %}
@ -81,3 +82,27 @@ binary_sensor:
```
Consider to use the [`ping` sensor ](/components/binary_sensor.ping/) as an alternative to the samples above.
### {% linkable_title Check if a system service is running %}
The services running is listed in `/etc/systemd/system` and can be checked with the `systemctl` command:
```
$ systemctl is-active home-assistant@rock64.service
active
$ sudo service home-assistant@rock64.service stop
$ systemctl is-active home-assistant@rock64.service
inactive
```
A binary command line sensor can check this:
```yaml
binary_sensor:
- platform: command_line
command: '/bin/systemctl is-active home-assistant@rock64.service'
payload_on: 'active'
payload_off: 'inactive'
```
Note: Use single quotes!

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Concord232 Binary Sensor"
description: "Instructions how to integrate Interlogix/GE Concord4 binary sensors into Home Assistant."
description: "Instructions on how to integrate Interlogix/GE Concord4 binary sensors into Home Assistant."
date: 2016-10-11 10:00
sidebar: true
comments: false

View File

@ -0,0 +1,35 @@
---
layout: page
title: "deCONZ Binary Sensor"
description: "Instructions on how to integrate Zigbee binary sensors from deCONZ into Home Assistant."
date: 2017-11-12 16:30
sidebar: true
comments: false
sharing: true
footer: true
logo: deconz.jpeg
ha_category: Binary Sensor
ha_release: "0.61"
ha_iot_class: "Local Push"
---
See the [deCONZ main component](/components/deconz/) for configuration instructions.
The following sensor types are supported:
* Fire/Smoke detection
* Open/Close detection
* Presence detection
* Water leakage detection
Entity ids will be binary_sensor.device_name, where device_name is defined in deCONZ.
#### {% linkable_title Verified to be supported binary sensors %}
- Open/Close Detection
- Xiaomi Smart Home Security Door & Window Contact Sensor
- Presence Detection
- IKEA Trådfri Motion Sensor
- Philips Hue Motion Sensor
- Xiaomi Motion Sensor
- Xiaomi Smart Home Aqara Human Body Sensor

View File

@ -1,28 +0,0 @@
---
layout: page
title: "DoorBird Binary Sensor"
description: "Instructions how to integrate DoorBird video doorbell state into Home Assistant."
date: 2017-08-06 11:30
sidebar: true
comments: false
sharing: true
footer: true
logo: doorbird.png
ha_category: Binary Sensor
ha_release: "0.54"
ha_iot_class: "Local Polling"
---
The `doorbird` binary sensor platform allows Home Assistant to monitor when your [DoorBird](http://www.doorbird.com/) doorbell rings.
<p class='note'>
You must have the [DoorBird component](/components/doorbird/) configured to use this binary sensor.
</p>
To enable the binary sensor, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: doorbird
```

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Ecobee Binary Sensor"
description: "Instructions how to setup the Ecobee sensors within Home Assistant."
description: "Instructions on how to setup the Ecobee sensors within Home Assistant."
date: 2015-11-30 18:00
sidebar: true
comments: false

View File

@ -0,0 +1,19 @@
---
layout: page
title: "Egardia Binary Sensor"
description: "Instructions on how to integrate Egardia / Woonveilig binary sensors into Home Assistant."
date: 2018-03-02 09:00
sidebar: true
comments: false
sharing: true
footer: true
logo: egardia.png
ha_release: 0.65
ha_category: Binary Sensor
ha_iot_class: "Polling"
---
The `egardia` platform allows you to get data from your [Egardia](http://www.egardia.com)/[Woonveilig](http://www.woonveilig.nl) binary sensors from within Home Assistant.
Currently only door contacts are supported. IR sensors are not supported and will probably never be since their status cannot be read outside of the alarm control panel. Smoke sensors and others might be added but currently are not supported.
You will need to set up your [Egardia hub](/components/egardia/).

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Eight Sleep Binary Sensor"
description: "Instructions how to integrate binary motion sensors for Eight Sleep within Home Assistant."
description: "Instructions on how to integrate binary motion sensors for Eight Sleep within Home Assistant."
date: 2017-04-24 00:00
sidebar: true
comments: false

View File

@ -13,7 +13,13 @@ ha_release: 0.21
ha_iot_class: "Local Push"
---
This can typically be one of those batteryless wall switches. Currently only one type has been tested: Eltako FT55 which uses the EnOcean PTM 215 module. All switches using this module are expected to work. Other devices will most likely not work without changing the Home Assistant code.
This can typically be one of those batteryless wall switches.
Tested with:
- Eltako FT55 which uses the EnOcean PTM 215 module
- [TRIO2SYS Wall switches](http://www.trio2sys.fr/index.php/fr/produits-enocean-sans-fil-sans-pile-interoperable/emetteur-sans-fils-sans-pile-interoperable-enocean) which uses the EnOcean PTM210 DB module
All switches using theses modules are expected to work. Other devices will most likely not work without changing the Home Assistant code.
To use your EnOcean device, you first have to set up your [EnOcean hub](/components/enocean/) and then add the following to your `configuration.yaml` file:

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Envisalink Binary Sensor"
description: "Instructions how to integrate Envisalink binary sensors into Home Assistant."
description: "Instructions on how to integrate Envisalink binary sensors into Home Assistant."
date: 2016-07-01 08:00
sidebar: true
comments: false

View File

@ -42,7 +42,7 @@ Configuration variables:
- **reset** (*Optional*): The time to reset the state after no new motion is detected. Defaults to 20 seconds.
- **repeat** (*Optional*): How many events need to be detected in *repeat_time* in order to trigger a motion. Defaults to 0 repeats (deactivated).
- **repeat_time** (*Optional*): The span of time *repeat* events need to occur in before triggering a motion. Defaults to 0 seconds (deactivated).
- **extra_arguments** (*Optional*): Extra options to pass to `ffmpeg`, e.g. video denoise filtering.
- **extra_arguments** (*Optional*): Extra options to pass to `ffmpeg`, e.g., video denoise filtering.
To experiment with values (changes/100 is the scene value in `ffmpeg`):

View File

@ -39,7 +39,7 @@ Configuration variables:
- **duration** (*Optional*): Default 1 second. How long the noise needs to be over the peak to trigger the state.
- **reset** (*Optional*): Default 20 seconds. The time to reset the state after no new noise is over the peak.
- **extra_arguments** (*Optional*): Extra options to pass to `ffmpeg`, like audio frequency filtering.
- **output** (*Optional*): Allows you to send the audio output of this sensor to an Icecast server or other FFmpeg-supported output, e.g. to stream with Sonos after a state is triggered.
- **output** (*Optional*): Allows you to send the audio output of this sensor to an Icecast server or other FFmpeg-supported output, e.g., to stream with Sonos after a state is triggered.
To experiment with values:

View File

@ -1,7 +1,7 @@
---
layout: page
title: Flic Smart Button
description: "Instructions how to integrate flic buttons within Home Assistant."
description: "Instructions on how to integrate flic buttons within Home Assistant."
date: 2016-12-02 22:03
sidebar: true
comments: false

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