Merge branch 'current' into current

This commit is contained in:
javicalle 2019-01-22 22:27:56 +01:00 committed by GitHub
commit 2fcc96783b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1640 changed files with 27380 additions and 6582 deletions

View File

@ -4,7 +4,9 @@ ruby "> 2.3.0"
group :development do
gem 'rake', '~> 10.0'
gem 'jekyll', '~> 3.0'
# 3.8.5 throws errors on unfinished liquid tags in excerpts
# Wait with upgrade until release https://github.com/jekyll/jekyll/pull/7382
gem 'jekyll', '3.8.4'
gem 'compass', '~> 0.12'
gem 'sass-globbing', '~> 1.0'
gem 'stringex', '~> 1.4'

View File

@ -10,19 +10,29 @@ GEM
chunky_png (~> 1.2)
fssm (>= 0.2.7)
sass (~> 3.2.19)
ffi (1.9.18)
concurrent-ruby (1.1.3)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
ffi (1.9.25)
forwardable-extended (2.6.0)
fssm (0.2.10)
jekyll (3.5.2)
http_parser.rb (0.6.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jekyll (3.8.4)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 0.7)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1)
kramdown (~> 1.3)
jekyll-watch (~> 2.0)
kramdown (~> 1.14)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (~> 1.7)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
jekyll-paginate (1.1.0)
jekyll-redirect-from (0.12.1)
@ -33,18 +43,19 @@ GEM
jekyll (~> 3.3)
jekyll-time-to-read (0.1.2)
jekyll
jekyll-watch (1.5.0)
listen (~> 3.0, < 3.1)
kramdown (1.14.0)
liquid (4.0.0)
listen (3.0.8)
jekyll-watch (2.1.2)
listen (~> 3.0)
kramdown (1.17.0)
liquid (4.0.1)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
mercenary (0.3.6)
method_source (0.8.2)
mini_portile2 (2.3.0)
nokogiri (1.8.2)
mini_portile2 (~> 2.3.0)
mini_portile2 (2.4.0)
nokogiri (1.10.1)
mini_portile2 (~> 2.4.0)
octopress (3.0.11)
jekyll (>= 2.0)
mercenary (~> 0.3.2)
@ -64,22 +75,23 @@ GEM
octopress-tag-helpers (~> 1.0)
octopress-tag-helpers (1.0.8)
jekyll (>= 2.0)
pathutil (0.14.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
pry (0.10.4)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
public_suffix (3.0.0)
public_suffix (3.0.3)
rack (1.6.9)
rack-protection (1.5.5)
rack
rake (10.5.0)
rb-fsevent (0.10.2)
rb-fsevent (0.10.3)
rb-inotify (0.9.8)
ffi (>= 0.5.0)
redcarpet (3.4.0)
rouge (1.11.1)
rouge (3.3.0)
ruby_dep (1.5.0)
safe_yaml (1.0.4)
sass (3.2.19)
sass-globbing (1.1.5)
@ -98,7 +110,7 @@ PLATFORMS
DEPENDENCIES
compass (~> 0.12)
jekyll (~> 3.0)
jekyll (= 3.8.4)
jekyll-paginate
jekyll-redirect-from
jekyll-sitemap
@ -117,4 +129,4 @@ RUBY VERSION
ruby 2.4.1p111
BUNDLED WITH
1.16.1
1.17.1

View File

@ -32,8 +32,12 @@ destination: public/
plugins_dir: plugins
code_dir: downloads/code
category_dir: blog/categories
markdown: kramdown
highlighter: rouge
timezone: UTC
liquid:
error_mode: strict
kramdown:
input: GFM
@ -44,8 +48,6 @@ kramdown:
smart_quotes: lsquo,rsquo,ldquo,rdquo
parse_block_html: true
highlighter: rouge
plugins:
- jekyll-redirect-from
- jekyll-time-to-read
@ -141,14 +143,14 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 81
current_minor_version: 85
current_patch_version: 1
date_released: 2018-10-28
date_released: 2019-01-11
# 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-0811---october-28"
patch_version_notes: ""
# Minor release (Example #release-0431---april-25):
# Date we moved to Discourse for comments

View File

@ -1 +0,0 @@
.token

View File

@ -1,35 +0,0 @@
credits_generator
=================
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
```
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.
Put the token in this repo in a file named `.token`.
Run the script.
```bash
$ node update_credits.js
```
Commit the changes (depending on our setup).
```bash
$ git commit ../source/developers/credits.markdown
$ git push upstream
```

View File

@ -1,27 +0,0 @@
---
layout: page
title: "Credits"
description: "Credits for the developers who contributed to Home Assistant."
date: {{ headerDate }}
sidebar: true
comments: false
sharing: true
footer: true
---
This page contains a list of people who have contributed in one way or another to Home Assistant. Hover over a username to see their contributions.
### {% linkable_title Author %}
- [{{fearlessLeader.info.name}} (@{{fearlessLeader.info.username}})](https://github.com/{{fearlessLeader.info.login}} "{{fearlessLeader.countString}}")
### {% linkable_title Contributors %}
(in alphabetical order)
{{#allUsers}}- [{{info.name}} (@{{info.username}})](https://github.com/{{info.username}} "{{countString}}")
{{/allUsers}}
This page is irregularly updated using the [`credits_generator` tool](https://github.com/home-assistant/home-assistant.github.io/tree/next/credits_generator). If you think that you are missing, please let us know.
<i>This page was last updated {{ footerDate }}.</i>

View File

@ -1,116 +0,0 @@
{
"name": "credits_generator",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"agent-base": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz",
"integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=",
"requires": {
"extend": "3.0.2",
"semver": "5.0.3"
}
},
"async": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
"requires": {
"lodash": "4.17.10"
}
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"follow-redirects": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz",
"integrity": "sha1-NLkLqyqRGqNHVx2pDyK9NuzYqRk=",
"requires": {
"debug": "2.6.9",
"stream-consume": "0.1.1"
}
},
"github": {
"version": "8.2.1",
"resolved": "https://registry.npmjs.org/github/-/github-8.2.1.tgz",
"integrity": "sha1-YWsiEfvNHMhjFmmu1nZT5i61OBY=",
"requires": {
"follow-redirects": "0.0.7",
"https-proxy-agent": "1.0.0",
"mime": "1.6.0",
"netrc": "0.1.4"
}
},
"https-proxy-agent": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
"integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=",
"requires": {
"agent-base": "2.1.1",
"debug": "2.6.9",
"extend": "3.0.2"
}
},
"lodash": {
"version": "4.17.10",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
"integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg=="
},
"mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"moment": {
"version": "2.22.2",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
"integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y="
},
"moment-timezone": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz",
"integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==",
"requires": {
"moment": "2.22.2"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"mu2": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/mu2/-/mu2-0.5.21.tgz",
"integrity": "sha1-iIqPD9kOsc/anbgUdvbhmcyeWNM="
},
"netrc": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz",
"integrity": "sha1-a+lPysqNd63gqWcNxGCRTJRHJEQ="
},
"semver": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz",
"integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no="
},
"stream-consume": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz",
"integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg=="
}
}
}

View File

@ -1,18 +0,0 @@
{
"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",
"dependencies": {
"async": "^2.1.4",
"github": "^8.1.0",
"moment-timezone": "^0.5.11",
"mu2": "^0.5.21"
}
}

View File

@ -1,164 +0,0 @@
var fs = require('fs')
, async = require('async')
, GitHubApi = require('github')
, mu = require('mu2')
, moment = require('moment-timezone');
let token;
try {
token = fs.readFileSync('.token', 'utf-8').trim();
} catch (err) {
console.error('You must create a .token file that contains a GitHub token.');
return;
}
var organizationName = process.env.GITHUB_ORGANIZATION_NAME || 'home-assistant';
mu.root = __dirname;
var github = new GitHubApi({
headers: { 'user-agent': 'Home Assistant Contributors List Updater <hello@home-assistant.io>' }
});
github.authenticate({ type: 'oauth', token: token });
var usersMap = {};
github.repos.getForOrg({
org: organizationName,
type: 'public',
per_page: 100
}, function(err, repos){
var headerSource = (err && err.headers) ? err.headers : repos.meta;
var ratelimitLimit = Number(headerSource['x-ratelimit-limit']);
var ratelimitRemaining = Number(headerSource['x-ratelimit-remaining']);
console.log('Rate limits: '+ratelimitRemaining+'/'+ratelimitLimit, '(remaining/limit)');
if(err) {
if(err.code == 403 && ratelimitRemaining == 0) {
var resetUnixTime = moment.unix(err.headers['x-ratelimit-reset']);
var resetTimeFormatted = resetUnixTime.format();
var resetAt = moment().to(resetUnixTime);
console.error('Error when getting list of repos in org, because rate limits are exhausted. Rate limits reset', resetAt, 'from now ('+resetTimeFormatted+')');
} else {
console.error('Error when attempting to get a list of all repos in org...', err.message);
}
return;
}
async.each(repos, function(repo, cb){
github.repos.getContributors({ owner: organizationName, repo: repo.name, per_page: 100 }, function(err, contributors){
getContributors(err, contributors, repo, cb);
});
}, function(err){
if(err){
console.error('Error when iterating organization repos', err);
return;
}
console.log('Done getting contributors for '+repos.length+' found organization repos...');
async.each(Object.keys(usersMap), function(login, cb){
github.users.getForUser({username: login}, function(err, userInfo){
if(err){
console.error('Got error when get user details for', login, err);
cb(err);
return;
}
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();
});
}, function(err){
if(err){
console.error('Got error when running', err);
return;
} else {
console.log('Building contributors!!!');
buildContributors();
}
});
});
});
function getContributors(err, res, repo, callback){
if(err) {
console.error('Error when getting contributors', err);
callback(err);
return
} else {
console.log('Processing the '+res.length+' contributors to '+repo.name);
async.each(res, function(contributor, cb){
if(!usersMap[contributor.login]) {
usersMap[contributor.login] = {
counts: {},
info: {login: contributor.login, id: contributor.id}
};
}
usersMap[contributor.login].counts[repo.name] = contributor.contributions;
cb(null);
}, function(){
if (github.hasNextPage(res)) {
github.getNextPage(res, function(newErr, newContributors){
getContributors(newErr, newContributors, repo, callback);
});
} else {
callback(null);
}
});
}
}
function buildContributors(){
var fearlessLeader = usersMap['balloob'];
fearlessLeader.countString = buildCountString(fearlessLeader.counts);
delete usersMap['balloob'];
var users = Object.keys(usersMap).map(function (key) {
var obj = usersMap[key];
obj.countString = buildCountString(obj.counts);
return obj;
}).sort(function(a, b){
var nameA = a.info.name.toLowerCase();
var nameB = b.info.name.toLowerCase();
if (nameA < nameB) { return -1; }
if (nameA > nameB) { return 1; }
return 0;
});
var headerDate = moment().tz('UTC').format('YYYY-MM-DD HH:mm:ss ZZ');
var footerDate = moment().tz('UTC').format('dddd, MMMM Do YYYY, h:mm:ss a zz');
var output = '';
mu.compileAndRender('credits.mustache', {
allUsers: users,
fearlessLeader: fearlessLeader,
headerDate: headerDate,
footerDate: footerDate
}).on('data', function (data) {
output += data.toString();
}).on('end', function(){
fs.writeFile('../source/developers/credits.markdown', output, function (writeErr) {
if (writeErr) {
console.log('Error when writing credits.markdown', writeErr);
} else {
console.log('Done getting user info, wrote credits.markdown file!');
}
});
});
}
function buildCountString(counts){
var totalCommits = 0;
var countStrings = [];
Object.keys(counts).sort(function(a, b){
return counts[b] - counts[a];
}).forEach(function (countKey) {
var count = counts[countKey];
var word = (count > 1) ? 'commits' : 'commit';
totalCommits = totalCommits+count;
countStrings.push(count+' '+word+' to '+countKey);
});
countStrings.unshift(totalCommits+' total commits to the home-assistant organization');
return countStrings.join(', ');
}

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' => '/docs/configuration/customizing-devices/#device-class',
'template' => '/docs/configuration/templating/',
'icon' => '/docs/configuration/customizing-devices/#icon',
}

View File

@ -141,10 +141,9 @@ $primary-color: #049cdb;
}
}
.shirt-promo {
.picture-promo {
display: block;
padding-top: 30%;
background-image: url(/images/merchandise/shirt-frontpage.png);
background-size: cover;
background-position: center;
text-decoration: none;
@ -459,7 +458,7 @@ a code {
color: $primary-color;
}
twitterwidget {
twitter-widget {
margin-left: auto;
margin-right: auto;
}

View File

@ -12,7 +12,7 @@ code.highlighter-rouge {
padding: 0 .3em;
}
.highlight {
pre.highlight {
background-color: #FFF;
border: 1px solid #CCC;
font-family: "Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;

View File

@ -81,11 +81,6 @@ header .grid {
font-weight: normal;
font-size: 14px;
line-height: 1;
&.show-search {
padding-left: 0;
padding-right: 0;
}
}
.menu > li > a:hover, .menu > li > a:focus{

View File

@ -11,12 +11,25 @@ footer: true
You can use this add-on to check whether your configuration files are valid against the new version of Home Assistant before you actually update your Home Assistant installation. This add-on will help you avoid errors due to breaking changes, resulting in a smooth update.
### {% linkable_title How to use this add-on %}
1. Just start the add-on.
2. Wait (On a Raspberry Pi it can take several minutes).
3. If you see the following output then you are good to go to update Home Assistant: `[Info] Configuration check finished - no error found! :)`.
If you get errors, then you should look for **Breaking Changes** against the version you specified for this add-on and change your configuration accordingly.
### {% linkable_title Add-on configuration %}
```json
{
"version": "latest"
}
```
Configuration variables:
- **version** (*Required*): Version of Home Assistant that you plan to install.
{% configuration %}
version:
description: Version of Home Assistant that you plan to install.
required: true
type: string
{% endconfiguration %}

View File

@ -36,19 +36,63 @@ Create a simple DHCP server for your network and allow setting fixed IPs for dev
}
```
Configuration variables:
- **domain** (*Required*): Your network domain name.
- **dns** (*Required*): A list of DNS server for your network.
- **networks** (*Optional*): A list of network to provide DHCP.
 - **subnet** (*Required*): Your network schema.
 - **netmask** (*Required*): Your network netmask.
 - **range_start** (*Required*): Start address for dhcp leases.
 - **range_end** (*Required*): End address for dhcp leases.
 - **broadcast** (*Required*): Network broadcast address.
 - **gateway** (*Required*): A List of gateways.
- **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.
 - **ip** (*Required*): Fix ip address for device.
{% configuration %}
domain:
description: Your network domain name.
required: true
type: string
dns:
description: A list of DNS server for your network.
required: true
type: list
networks:
description: A list of network to provide DHCP.
required: false
type: list
keys:
subnet:
description: Your network schema.
required: true
type: string
netmask:
description: Your network netmask.
required: true
type: string
range_start:
description: Start address for DHCP leases.
required: true
type: string
range_end:
description: End address for DHCP leases.
required: true
type: string
broadcast:
description: Network broadcast address.
required: true
type: string
gateway:
description: A List of gateways.
required: true
type: list
interface:
description: Interface on that will be listen. Normally is `eth0` for ethernet wired connection and `wlan0` for wireless connection.
required: true
type: string
hosts:
description: A list of fixed IPs for devices.
required: false
type: list
keys:
name:
description: Name/hostname of your device.
required: true
type: string
mac:
description: Mac address of your device.
required: true
type: string
ip:
description: Fix ip address for device.
required: true
type: string
{% endconfiguration %}

View File

@ -23,8 +23,17 @@ Setup and manage a [Dnsmasq](http://thekelleys.org.uk/dnsmasq/doc.html) DNS serv
}
```
Configuration variables:
- **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 statically.
{% configuration %}
defaults:
description: A list of DNS servers to forward default requests to.
required: true
type: list
forwards:
description: A list of domains that will forward to a specific server.
required: false
type: list
hosts:
description: A list of hosts to resolve statically.
required: false
type: list
{% endconfiguration %}

View File

@ -25,12 +25,29 @@ featured: true
}
```
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, from your DuckDNS account page.
- **domains** (*Required*): A list of domains to update DNS.
- **seconds** (*Required*): Seconds between updates to Duck DNS.
{% configuration %}
lets_encrypt:
description: Let's Encrypt is a free, automated, and open certificate authority.
required: true
type: list
keys:
accept_terms:
description: 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.
required: true
type: boolean
token:
description: Your Duck DNS API key, from your DuckDNS account page.
required: true
type: string
domains:
description: A list of domains to update DNS.
required: true
type: list
seconds:
description: Seconds between updates to Duck DNS.
required: true
type: integer
{% endconfiguration %}
## {% linkable_title Home Assistant configuration %}
@ -51,4 +68,4 @@ You'll need to forward the port you listed in your configuration (8123 in the ex
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`.
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

@ -38,7 +38,7 @@ Load and update configuration files for Home Assistant from a [Git](https://git-
}
```
- **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 configuration)
- **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 configuration). The contents of the repository is assumed to be the root of Home Assistant `config/` folder. The configuration cannot be in a subdirectory, i.e., `configuration.yaml`, `groups.yaml`, etc. must be in the root of the repository.
- **git_branch** (*Required*): Branch name of the Git repo. If left empty, the currently checked out branch will be updated. 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_prune** (*Required*): If set to true, the add-on will cleanup branches that are deleted on the remote repository, but still have cached entries on the local machine. Leave this as `false` if you are unsure.

View File

@ -68,10 +68,16 @@ Configuration example that uses the USB microphone and the built-in headset audi
}
```
Configuration variables:
- **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
{% configuration %}
mic:
description: This is the hardware address of your microphone. Look at the add-on output.
required: true
type: float
speaker:
description: This is the hardware address of your speakers. Look at the add-on output.
required: true
type: string
{% endconfiguration %}
### {% linkable_title Home Assistant configuration %}

View File

@ -16,6 +16,7 @@ The logic layer will be Home Assistant. There is no ReGa or other logic layer in
Follow devices will be supported and tested:
- [HM-MOD-RPI-PCB](https://www.elv.ch/homematic-funkmodul-fuer-raspberry-pi-bausatz.html)
- [HmIP-RFUSB](https://www.elv.ch/elv-homematic-ip-rf-usb-stick-hmip-rfusb-fuer-alternative-steuerungsplattformen-arr-bausatz.html)
```json
{
@ -33,25 +34,74 @@ Follow devices will be supported and tested:
"key": "abc",
"ip": "192.168.0.0"
}
],
"hmip_enable": false,
"hmip": [
{
"type": "HMIP_CCU2",
"device": "/dev/ttyUSB0"
}
]
}
```
Configuration variables:
- **rf_enable** (*Required*): Boolean. Enable or disable BidCoS-RF.
- **wired_enable** (*Required*): Boolean. Enable or disable BidCoS-Wired.
For RF devices:
- **type** (*Required*): Device type for RFD service. Look into the manual of your device.
- **device** (*Required*): Device on the host.
For wired devices:
- **serial** (*Required*): Serial number of the device.
- **key** (*Required*): Encrypted key.
- **ip** (*Required*): IP address of LAN gateway.
{% configuration %}
rf_enable:
description: Enable or disable BidCoS-RF.
required: true
type: boolean
rf:
description: RF devices.
required: true
type: list
keys:
type:
description: Device type for RFD service. Look into the manual of your device.
required: true
type: string
device:
description: Device on the host.
required: true
type: string
wired_enable:
description: Enable or disable BidCoS-Wired.
required: true
type: boolean
wired:
description: Wired devices.
required: true
type: list
keys:
serial:
description: Serial number of the device.
required: true
type: string
key:
description: Encrypted key.
required: true
type: string
ip:
description: IP address of LAN gateway.
required: true
type: string
hmip_enable:
description: Enable or disable hmip.
required: true
type: boolean
hmip:
description: HMIP devices.
required: true
type: list
keys:
type:
description: Device type for RFD service. Look into the manual of your device.
required: true
type: string
device:
description: Device on the host.
required: true
type: string
{% endconfiguration %}
## {% linkable_title Home Assistant configuration %}
@ -63,6 +113,12 @@ homematic:
rf:
host: core-homematic
port: 2001
wired:
host: core-homematic
port: 2000
hmip:
host: core-homematic
port: 2010
```
## {% linkable_title Raspberry Pi3 %}
@ -72,3 +128,7 @@ With HM-MOD-RPI-PCB you need to add follow into your `config.txt` on boot partit
```text
dtoverlay=pi3-miniuart-bt
```
## {% linkable_title HmIP-RFUSB %}
HassOS > 1.11 support HmIP-RFUSB default and don't need any configuration. If you run a Linux, you need to follow the installation guide from documentation to set up the UART USB interface on your computer.

View File

@ -19,14 +19,32 @@ Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This a
```json
{
"email": "example@example.com",
"domains": ["example.com", "mqtt.example.com", "hass.example.com"]
"domains": ["example.com", "mqtt.example.com", "hass.example.com"],
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
}
```
Configuration variables:
- **email** (*Required*): Your email address for registration on Let's Encrypt.
- **domains** (*Required*): A list of domains to create/renew the certificate.
{% configuration %}
email:
description: Your email address for registration on Let's Encrypt.
required: true
type: string
domains:
description: A list of domains to create/renew the certificate.
required: true
type: list
certfile:
description: Name of the certfile that is created. Leave as default value.
required: true
type: string
default: fullchain.pem
keyfile:
description: Name of the keyfile that is created. Leave as default value.
required: true
type: string
default: privkey.pem
{% endconfiguration %}
## {% linkable_title Home Assistant configuration %}

View File

@ -32,18 +32,50 @@ Set up a [MariaDB](https://mariadb.org/) SQL server. It supports multiple databa
}
```
Configuration variables:
- **databases** (*Required*): List of databases.
- **logins** (*Required*): List of SQL accounts to create or update.
- **username** (*Required*): Username for account.
- **host** (*Required*): Host for account. If you need an account on multiple hosts, use '%'.
- **password** (*Required*): Password for account.
- **rights** (*Required*): List of rights to be granted.
- **username** (*Required*): Username for granted rights.
- **host** (*Required*): Host is a part of username like above.
- **database** (*Required*): Database name on which to grant user rights.
- **grant** (*Required*): SQL grant part for access too.
{% configuration %}
databases:
description: List of databases.
required: true
type: list
logins:
description: List of SQL accounts to create or update.
required: true
type: list
keys:
username:
description: Username for account.
required: true
type: string
host:
description: Host for account. If you need an account on multiple hosts, use '%'.
required: true
type: string
password:
description: Password for account.
required: true
type: string
rights:
description: List of rights to be granted.
required: true
type: list
keys:
username:
description: Username for granted rights.
required: true
type: string
host:
description: Host is a part of username like above.
required: true
type: string
database:
description: Database name on which to grant user rights.
required: true
type: string
grant:
description: SQL grant part for access too.
required: true
type: string
{% endconfiguration %}
## {% linkable_title Home Assistant configuration %}

View File

@ -14,13 +14,10 @@ Set up [Mosquitto](https://mosquitto.org/) as MQTT broker.
```json
{
"plain": true,
"ssl": false,
"anonymous": true,
"logins": [
{"username": "testuser", "password": "mypw"},
{"username": "testuser2", "password": "mypw2"}
{"username": "local-user", "password": "mypw"}
],
"anonymous": false,
"customize": {
"active": false,
"folder": "mosquitto"
@ -34,49 +31,51 @@ Set up [Mosquitto](https://mosquitto.org/) as MQTT broker.
Make sure you use logins and disable anonymous access if you want to secure the system.
</p>
Configuration variables:
{% configuration %}
anonymous:
description: Allow anonymous connections. If *logins* is set, the anonymous user can only read data.
required: false
default: false
type: boolean
logins:
description: A list of local users that will be created with *username* and *password*. You don't need do this because you can use Home Assistant users too without any configuration.
required: false
type: list
customize:
description: If you enable it, it reads additional configuration files (`*.conf`) from `/share/mosquitto`.
required: false
type: [boolean, string]
{% endconfiguration %}
- **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 user management %}
This add-on is attached to the Home Assistant user system, so mqtt clients can make use of these credentials. Local users may also still be set independently within the configuration options for the add-on. For the internal Hass.io ecosystem we register `homeassistant` and `addons`, so these may not be used as user names.
### {% 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), go to the integration page and install the configuration with one click. If you have old MQTT settings available, remove this old integration and restart Home Assistant to see the new one.
```yaml
# Example configuration.yaml entry
mqtt:
broker: core-mosquitto
#### {% linkable_title Using Mosquitto with Hass.io %}
1. Install the [Mosquitto add-on](/addons/mosquitto/) with the default configuration via 'Hass.io > ADD-ON STORE'. (Don't forget to start the add-on & verify that 'Start on boot' is enabled.)
2. Create a new user for MQTT via the `Configuration > Users (manage users)`. (Note: This name cannot be "homeassistant" or "addon")
3. Once back on-line, return to `Configuration > Integrations` and select configure next to `MQTT`.
```
Broker: YOUR_HASSIO_IP_ADDRESS
Port: 1883
Username: MQTT_USERNAME
Password: MQTT_PASSWORD
```
If username and password are set up in add-on, your `configuration.yaml` file should contain that data.
Note: .yaml modifications are not required.
See [testing your setup](/docs/mqtt/testing/) to verify the steps above.
```yaml
mqtt:
broker: core-mosquitto
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
### {% linkable_title Disable listening on insecure (1883) ports %}
### {% 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>
Remove the ports from the add-on page network card (set them as blank) to disable them.
### {% linkable_title Access Control Lists (ACLs) %}

View File

@ -52,5 +52,5 @@ customize:
{% endconfiguration %}
<p class='note'>
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.
It is possible to deactivate port 80 if you need this for things like `emulated_hue`. Remove the host port from Network option of this add-on.
</p>

View File

@ -12,18 +12,13 @@ featured: true
This add-on allows you to set up a [Samba](https://samba.org/) server to access Hass.io folders using Windows network shares.
<p class='note warning'>
Be careful when setting up port forwarding for remote access. If you don't restrict access by setting a username and strong password, your configuration could be exposed to the entire Internet!
</p>
```json
{
"name": "hassio",
"workgroup": "WORKGROUP",
"guest": true,
"map": {
"config": true,
"addons": true,
"share": true,
"backup": true,
"ssl": false
},
"username": "",
"password": "",
"interface": "eth0",
@ -35,17 +30,27 @@ This add-on allows you to set up a [Samba](https://samba.org/) server to access
}
```
Configuration variables:
- **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 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.
- **allow_hosts** (*Optional*): The hosts that are allowed to connect to your Samba server. By default it is limited to people within the same local network.
<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>
{% configuration %}
workgroup:
description: Set network workgroup name.
required: false
default: "`WORKGROUP`"
type: string
username:
description: Username for logging in.
required: true
type: string
password:
description: Password for `username`. An empty password is not supported.
required: true
type: string
interface:
description: 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.
required: false
type: string
allow_hosts:
description: The hosts that are allowed to connect to your Samba server. By default it is limited to people within the same local network.
required: false
default: '`["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]`'
type: list
{% endconfiguration %}

View File

@ -11,7 +11,9 @@ footer: true
[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.
<p class='warning note'>
The Snips add-on depends on the Mosquitto add on to bridge to Home Assistant, so make sure that is installed.
</p>
Home Assistant 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).
@ -25,7 +27,7 @@ Open garage door
What is on my shopping list
```
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 Home Assistant Skill to your assistant to enable the built-in intents, and add or create your own intents to do more complex tasks.
To get started creating your own configuration, follow [their tutorial](https://docs.snips.ai/getting-started/quick-start-console) to create an assistant and download the training data. You can also add the Home Assistant Skill to your assistant to enable the built-in intents, and add or create your own intents to do more complex tasks.
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.
@ -49,13 +51,20 @@ Now it's time to start Snips for the first time. You can configure the microphon
}
```
Configuration variables:
- **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.
{% configuration %}
assistant:
description: The name of your custom assistant in `/share`. If no assistant is found then a default assistant will be used.
type: string
language:
description: Language. This is used to select the default custom assistant, Currently `en`, `de` and `fr` are supported.
type: string
custom_tts:
description: Whether to use a TTS provider from Home Assistant for a variety of voices.
type: boolean
tts_platform:
description: Which TTS platform to use.
type: string
{% endconfiguration %}
### {% linkable_title Home Assistant configuration %}
@ -88,6 +97,7 @@ Next create a weather sensor, e.g., one for (Dark Sky)[/components/sensor.darksk
- 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
@ -97,6 +107,7 @@ intent_script: !include intent_script.yaml
Finally, create this `intent_script.yaml` file in your configuration directory.
{% raw %}
```yaml
searchWeatherForecast:
speech:
@ -109,6 +120,7 @@ searchWeatherForecast:
{{ 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.

View File

@ -22,7 +22,7 @@ This add-on will not enable you to install packages or do anything as root. This
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.
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.
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
{
@ -37,11 +37,16 @@ The username for login over SSH is `root`. The complete login command is `ssh ro
After logging in, you will find yourself in this add-on's container. The Home Assistant configuration directory is mounted on the path `/config`.
Configuration variables:
- **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.
{% configuration %}
authorized_keys:
description: Your public keys for the authorized key file. Every element will be a line inside that file.
required: false
type: string
password:
description: Set a password for login. We do **NOT** recommend this variant.
required: false
type: string
{% endconfiguration %}
<div class='videoWrapper'>
<iframe width="560" height="315" src="https://www.youtube.com/embed/L7PCPQYwspo" frameborder="0" allowfullscreen></iframe>

View File

@ -17,20 +17,8 @@ After installation you are presented with a default and example configuration, t
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:
@ -69,11 +57,47 @@ Example for adding more devices in the add-on configuration (note the comma sepa
}
```
{% configuration %}
id:
description: A number and must be unique for each device.
required: true
type: integer
name:
description: A name for easy identification of the device.
required: true
type: string
protocol:
description: This is the protocol the device uses. More on the different protocols later down.
required: true
type: string
model:
description: 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.
required: false
type: string
house:
description: Depending on protocol the values here can vary a lot to identify or group per house or type.
required: false
type: string
unit:
description: Unit identifier, in most cases a value between 1 to 16 and often used in combination with the house.
required: false
type: integer
fade:
description: 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).
required: false
type: boolean
code:
description: A number series based on ones and zeroes often used for dip-switch based devices.
required: false
type: string
{% endconfiguration %}
## {% linkable_title Service calls %}
If you wish to teach a self-learning device in your TellStick configuration:
Go to Home Assistant [service call](http://hassio.local:8123/dev-service) in Developer tools and select.
- Service: `hassio.addon_stdin`
- Enter service Data:
`{"addon":"core_tellstick","input":{"function":"learn","device":"1"}}`

View File

@ -0,0 +1,28 @@
---
layout: page
title: "Air Quality"
description: "Instructions on how to add air quality sensors with Home Assistant"
date: 2018-11-25 08:00
sidebar: true
comments: false
sharing: true
footer: true
redirect_from: /components/air_pollutants/
---
The `air_quality` gather information about the air quality and pollution details.
The platforms cover the following levels (if they are available):
- The particulate matter 0.1 (<= 0.1 μm) level.
- The particulate matter 2.5 (<= 2.5 μm) level.
- The particulate matter 10 (<= 10 μm) level.
- The Air Quality Index (AQI).
- The O3 (ozone) level.
- The CO (carbon monoxide) level.
- The CO2 (carbon dioxide) level.
- The SO2 (sulphur dioxide) level.
- The N2O (nitrogen oxide) level.
- The NO (nitrogen monoxide) level.
- The NO2 (nitrogen dioxide) level.

View File

@ -0,0 +1,45 @@
---
layout: page
title: "OpenSenseMap"
description: "Instructions on how to setup openSenseMap sensors in Home Assistant."
date: 2018-12-15 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: opensensemap.png
ha_category: Health
ha_release: 0.85
ha_iot_class: "Cloud Polling"
redirect_from: /components/air_pollutants.opensensemap/
---
The `opensensemap` air quality platform will query the open data API of [openSenseMap.org](https://opensensemap.org/) to monitor air quality sensor station.
## {% linkable_title Setup %}
To get the ID of a station you need to select it on the [openSense map](https://opensensemap.org/) and find it in the addressbar of your browser. It's the last part of the URL, e.g., `5b450e565dc1ec001bf7cd1d` [https://opensensemap.org/explore/5b450e565dc1ec001bf7cd1d](https://opensensemap.org/explore/5b450e565dc1ec001bf7cd1d).
## {% linkable_title Manual Configuration %}
To enable this platform, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
air_quality:
- platform: opensensemap
station_id: STATION_ID
```
{% configuration %}
station_id:
description: The ID of the station to monitor.
required: true
type: string
name:
description: Name of the sensor to use in the frontend.
required: false
default: Station name
type: string
{% endconfiguration %}

View File

@ -46,6 +46,10 @@ name:
description: Name of device in Home Assistant.
required: false
type: string
code:
description: Specifies a code to enable or disable the alarm in the frontend.
required: false
type: integer
{% endconfiguration %}
This platform has also been confirmed to work with the alarm system brands Meian and Emooluxr.

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Lupusec Alarm Control Panel"
description: "Instructions on how to setup the Lupusec Alarm control panel within Home Assistant."
date: 2018-10-03 16:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lupusec.png
ha_category: Alarm
ha_release: 0.83
ha_iot_class: "Local Polling"
---
The `lupusec` security control panel platform allows you to control your [Lupusec](https://www.lupus-electronics.de) devices.
The requirement is that you have setup your [Lupusec component](/components/lupusec/). The alarm control panel is automatically added to the Home Assistant frontend.

View File

@ -12,7 +12,7 @@ ha_category: Alarm
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.
The `mqtt` 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.
It's essentially the opposite of the [MQTT Alarm Panel](/components/alarm_control_panel.mqtt/) which allows Home Assistant to observe an existing, fully-featured alarm where all of the alarm logic is embedded in that physical device.
@ -91,15 +91,15 @@ armed_home/armed_away/armed_night/disarmed/triggered:
type: list
keys:
delay_time:
description: State specific setting for **delay_time** (all states except **triggered**)
description: State specific setting for **delay_time** (all states except **triggered**).
required: false
type: integer
pending_time:
description: State specific setting for **pending_time** (all states except **disarmed**)
description: State specific setting for **pending_time** (all states except **disarmed**).
required: false
type: integer
trigger_time:
description: State specific setting for **trigger_time** (all states except **triggered**)
description: State specific setting for **trigger_time** (all states except **triggered**).
required: false
type: integer
{% endconfiguration %}
@ -110,11 +110,11 @@ Additionally, the following MQTT configuration variables are also available.
{% configuration %}
state_topic:
description: The MQTT topic HA will publish state updates to.
description: The MQTT topic Home Assistant will publish state updates to.
required: true
type: string
command_topic:
description: The MQTT topic HA will subscribe to, to receive commands from a remote device to change the alarm state.
description: The MQTT topic Home Assistant will subscribe to, to receive commands from a remote device to change the alarm state.
required: true
type: string
qos:
@ -148,9 +148,9 @@ payload_arm_night:
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;
- 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
- Setting pending_time to 0 for triggered state allows the alarm to trigger after previous state's delay time only. If not set, the alarm will be pending for previous state's delay_time plus the default pending_time before triggering.
```yaml

View File

@ -17,11 +17,11 @@ The `mqtt` alarm panel platform enables the possibility to control MQTT capable
The component will accept the following states from your Alarm Panel (in lower case):
- 'disarmed'
- 'armed_home'
- 'armed_away'
- 'pending'
- 'triggered'
- `disarmed`
- `armed_home`
- `armed_away`
- `pending`
- `triggered`
The component can control your Alarm Panel by publishing to the `command_topic` when a user interacts with the Home Assistant frontend.
@ -43,6 +43,10 @@ name:
required: false
type: string
default: MQTT Alarm
unique_id:
description: An ID that uniquely identifies this alarm panel. If two alarm panels have the same unique ID, Home Assistant will raise an exception.
required: false
type: string
state_topic:
description: The MQTT topic subscribed to receive state updates.
required: true
@ -89,4 +93,33 @@ payload_not_available:
required: false
type: string
default: offline
device:
description: 'Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
required: false
type: map
keys:
identifiers:
description: 'A list of IDs that uniquely identify the device. For example a serial number.'
required: false
type: list, string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
manufacturer:
description: 'The manufacturer of the device.'
required: false
type: string
model:
description: 'The model of the device.'
required: false
type: string
name:
description: 'The name of the device.'
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
required: false
type: string
{% endconfiguration %}

View File

@ -0,0 +1,19 @@
---
layout: page
title: "Ness Alarm Control Panel"
description: "Instructions on how to setup the Ness alarm control panel within Home Assistant."
date: 2018-11-25 18:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ness.png
ha_category: Alarm
ha_release: 0.85
ha_iot_class: "Local Push"
---
The `ness_alarm` alarm control panel platform allows you to control your [Ness](http://nesscorporation.com/) D8x and D16x alarms.
The alarm control panel is automatically added by configuring the [Ness alarm](/components/ness_alarm/) component.

View File

@ -91,7 +91,7 @@ zones:
required: true
type: string
type:
description: "A type for the zone. Here you can find a list of [Device Classes](https://www.home-assistant.io/components/binary_sensor/#device-class)."
description: "A type for the zone. Here you can find a list of [Device Classes](/components/binary_sensor/#device-class)."
required: false
default: opening
type: string
@ -99,6 +99,10 @@ zones:
description: 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.
required: false
type: string
loop:
description: The loop number associated with RF zones (1, 2, 3, or 4). Providing this field allows Home Assistant to read open/closed status from the raw sensor data in addition to from the panel display, meaning it can correctly show a bypassed RF zone as open or closed when the alarm is armed. (This is an alternative to relayaddr/relaychan below for RF zones.)
required: false
type: integer
relayaddr:
description: "Address of the relay expander board to associate with the zone. (ex: 12, 13, 14, or 15). Typically used in cases where a panel will not send bypassed zones such as motion during an armed home state, the Vista 20P is an example of this. Alarmdecoder can emulate a zone expander board and the panel can be programmed to push zone events to this virtual expander. This allows the bypassed zone binary sensors to be utilized. One example is using bypassed motion sensors at night for motion-based automated lights while the system is armed with the motion sensor bypassed."
required: inclusive

View File

@ -42,8 +42,8 @@ alert:
entity_id: input_boolean.garage_door
state: 'on'
repeat: 30
can_acknowledge: True
skip_first: True
can_acknowledge: true
skip_first: true
notifiers:
- ryans_phone
- kristens_phone
@ -51,15 +51,9 @@ alert:
{% configuration %}
name:
description: The friendly name of the alert. This can include a [template][template].
description: The friendly name of the alert.
required: true
type: string
done_message:
description: >
A message sent after an alert transitions from `on` to `off`. Is only sent
if an alert notification was sent for transitioning from `off` to `on`. This can include a [template][template].
required: false
type: string
entity_id:
description: The ID of the entity to watch.
required: true
@ -87,6 +81,19 @@ skip_first:
required: false
type: boolean
default: false
message:
description: >
A message to be sent after an alert transitions from `off` to `on`
with [template][template] support.
required: false
type: template
done_message:
description: >
A message sent after an alert transitions from `on` to `off` with
[template][template] support. Is only sent if an alert notification
was sent for transitioning from `off` to `on`.
required: false
type: template
notifiers:
description: "List of `notification` components to use for alerts."
required: true
@ -96,7 +103,7 @@ notifiers:
In this example, the garage door status (`input_boolean.garage_door`) is watched
and this alert will be triggered when its status is equal to `on`.
This indicates that the door has been opened. Because the `skip_first` option
was set to `True`, the first notification will not be delivered immediately.
was set to `true`, the first notification will not be delivered immediately.
However, every 30 minutes, a notification will be delivered until either
`input_boolean.garage_door` no longer has a state of `on` or until the alert is
acknowledged using the Home Assistant frontend.
@ -118,15 +125,16 @@ provided by the `alert` component:
```
```yaml
freshwater_temp_alert:
name: "Warning: I have detected a problem with the freshwater tank temperature"
entity_id: binary_sensor.freshwater_temperature_status
state: 'on'
repeat: 5
can_acknowledge: true
skip_first: false
notifiers:
- john_phone_sms
alert:
freshwater_temp_alert:
name: "Warning: I have detected a problem with the freshwater tank temperature"
entity_id: binary_sensor.freshwater_temperature_status
state: 'on'
repeat: 5
can_acknowledge: true
skip_first: false
notifiers:
- john_phone_sms
```
### {% linkable_title Complex Alert Criteria %}
@ -139,12 +147,13 @@ disable the alert on certain days. Maybe the alert firing should depend on more
than one input. For all of these situations, it is best to use the alert in
conjunction with a `Template Binary Sensor`. The following example does that.
{% raw %}
```yaml
binary_sensor:
- platform: template
sensors:
motion_battery_low:
value_template: {% raw %}'{{ states.sensor.motion.attributes.battery < 15 }}'{% endraw %}
value_template: '{{ states.sensor.motion.attributes.battery < 15 }}'
friendly_name: 'Motion battery is low'
alert:
@ -156,6 +165,7 @@ alert:
- ryans_phone
- kristens_phone
```
{% endraw %}
This example will begin firing as soon as the entity `sensor.motion`'s `battery`
attribute falls below 15. It will continue to fire until the battery attribute
@ -179,8 +189,8 @@ alert:
- 15
- 30
- 60
can_acknowledge: True # Optional, default is True
skip_first: True # Optional, false is the default
can_acknowledge: true # Optional, default is true
skip_first: true # Optional, false is the default
notifiers:
- ryans_phone
- kristens_phone
@ -192,4 +202,56 @@ following notification.
For example, if the garage door opens at 2:00, a notification will be
sent at 2:15, 2:45, 3:45, 4:45, etc., continuing every 60 minutes.
### {% linkable_title Message Templates %}
It may be desirable to have the alert notifications include information
about the state of the entity. [Templates](/docs/configuration/templating/)
can be used in the message or name of the alert to make it more relevant.
The following will show for a plant how to include the problem `attribute`
of the entity.
{% raw %}
```yaml
# Example configuration.yaml entry
alert:
office_plant:
name: Plant in office needs help
entity_id: plant.plant_office
state: 'problem'
repeat: 30
can_acknowledge: true
skip_first: true
message: "Plant {{ states.plant.plant_office }} needs help ({{ state_attr('plant.plant_office', 'problem') }})"
done_message: Plant in office is fine
notifiers:
- ryans_phone
- kristens_phone
```
{% endraw %}
The resulting message could be `Plant Officeplant needs help (moisture low)`.
The next example uses a template for the alert name.
{% raw %}
```yaml
alert:
garage_door:
name: Garage has been open for {{ relative_time(states.binary_sensor.garage.last_changed) }}
done_message: Garage is closed
entity_id: binary_sensor.garage
state: 'on'
repeat:
- 30
- 60
- 120
can_acknowledge: true
skip_first: true
notifiers:
- ryans_phone
```
{% endraw %}
The resulting title of the alert could be `Garage has been open for 30 min`.
[template]: /docs/configuration/templating/

View File

@ -13,9 +13,13 @@ featured: true
ha_release: '0.10'
---
<p class='note'>
Use [Home Assistant Cloud](/components/cloud/) to integrate with Alexa without any effort.
</p>
## {% linkable_title Automatic setup via Home Assistant Cloud %}
With [Home Assistant Cloud](/cloud/), you can connect your Home Assistant instance in a few simple clicks to Amazon Alexa. With Home Assistant Cloud you don't have to deal with dynamic DNS, SSL certificates or opening ports on your router. Just log in via the user interface and a secure connection with the cloud will be established. Home Assistant Cloud requires a paid subscription after a 30-day free trial.
For Home Assistant Cloud Users, documentation can be found [here](https://www.nabucasa.com/config/amazon_alexa/).
## {% linkable_title Manual setup %}
There are a few ways that you can use Amazon Echo and Home Assistant together.
@ -50,16 +54,16 @@ Additionally, note that at the time of this writing, your Alexa skill endpoint *
To get started with Alexa skills:
- Log in to [Amazon developer console][amazon-dev-console]
- Click the Alexa button at the top of the console
- Click the yellow "Add a new skill" button in the top right
- Skill Type: Custom Interaction Model (default)
- Name: Home Assistant
- Invocation name: home assistant (or be creative, up to you)
- Version: 1.0
- Endpoint:
- https
- `https://YOUR_HOST/api/alexa?api_password=YOUR_API_PASSWORD`
- Log in to [Amazon developer console][amazon-dev-console]
- Click the Alexa button at the top of the console
- Click the yellow "Add a new skill" button in the top right
- Skill Type: Custom Interaction Model (default)
- Name: Home Assistant
- Invocation name: home assistant (or be creative, up to you)
- Version: 1.0
- Endpoint:
- https
- `https://YOUR_HOST/api/alexa?api_password=YOUR_API_PASSWORD`
You can use this [specially sized Home Assistant logo][large-icon] as the large icon and [this one][small-icon] as the small one.
@ -99,14 +103,14 @@ WhereAreWeIntent where we are
This means that we can now ask Alexa things like:
- Alexa, ask Home Assistant where Paul is
- Alexa, ask Home Assistant where we are
- Alexa, ask Home Assistant where Paul is
- Alexa, ask Home Assistant where we are
## {% linkable_title Configuring Home Assistant %}
When activated, the Alexa component will have Home Assistant's native intent support handle the incoming intents. If you want to run actions based on intents, use the [`intent_script`](/components/intent_script) component.
To enable Alexa add the following entry to your `configuration.yaml` file:
To enable Alexa, add the following entry to your `configuration.yaml` file:
```yaml
alexa:
@ -218,15 +222,16 @@ intent_script:
Now say `Alexa ask Home Assistant to run <some script>` and Alexa will run that script for you.
### {% linkable_title Support for Launch Requests %}
There may be times when you want to respond to a launch request initiated from a command such as "Alexa, Red Alert!".
To start, you need to get the skill id:
- Log into [Amazon developer console][amazon-dev-console]
- Click the Alexa button at the top of the console
- Click the Alexa Skills Kit Get Started button
- Locate the skill for which you would like Launch Request support
- Click the "View Skill ID" link and copy the ID
- Log into [Amazon developer console][amazon-dev-console]
- Click the Alexa button at the top of the console
- Click the Alexa Skills Kit Get Started button
- Locate the skill for which you would like Launch Request support
- Click the "View Skill ID" link and copy the ID
The configuration is the same as an intent with the exception being you will use your skill ID instead of the intent name.
```yaml
@ -269,13 +274,13 @@ First create a file called `alexa_confirm.yaml` with something like the followin
Then, wherever you would put some simple text for a response like `OK`, replace it with a reference to the file so that:
```
```yaml
text: OK
```
becomes:
```
```yaml
text: !include alexa_confirm.yaml
```
@ -330,10 +335,9 @@ 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
@ -354,6 +358,9 @@ the integration work easier. Example configuration:
```yaml
alexa:
smart_home:
endpoint: https://api.amazonalexa.com/v3/events
client_id: !secret alexa_client_id
client_secret: !secret alexa_client_secret
filter:
include_entities:
- light.kitchen
@ -369,13 +376,17 @@ alexa:
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.
The `endpoint`, `client_id` and `client_secret` are optional, and are only required if you want to enable Alexa's proactive mode. Please note the following if you want to enable proactive mode:
- There are different endpoint urls, depending on the region of your skill. Please check the available endpoints at <https://developer.amazon.com/docs/smarthome/send-events-to-the-alexa-event-gateway.html#endpoints>
- The `client_id` and `client_secret` are not the ones used by the skill that have been set up using "Login with Amazon" (in the Alexa Developer Console: Build > Account Linking), but rather from the "Alexa Skill Messaging" (in the Alexa Developer Console: Build > Permissions > Alexa Skill Messaging). To get them, you need to enable the "Send Alexa Events" permission.
- If the "Send Alexa Events" permission was not enabled previously, you need to unlink and relink the skill using the Alexa App, or else Home Assistant will show the following error: "Token invalid and no refresh token available."
[amazon-dev-console]: https://developer.amazon.com
[flash-briefing-api]: https://developer.amazon.com/alexa-skills-kit/flash-briefing

View File

@ -13,17 +13,17 @@ ha_release: "0.40"
ha_iot_class: "Local Polling"
---
The `android_ip_webcam` component turns an Android phone into a network camera with multiple viewing options.
The `android_ip_webcam` component turns any Android phone or tablet into a network camera with multiple viewing options.
It's setup as an MJPEG camera and all settings as switches inside of Home Assistant. You can also expose the sensors. If you have multiple phones, you can use all options inside a list.
## {% linkable_title Setup %}
Download [the IP Webcam app](https://play.google.com/store/apps/details?id=com.pas.webcam) and launch the app. You will be able to the IP address of the device.
Download [the IP Webcam app](https://play.google.com/store/apps/details?id=com.pas.webcam) and launch the app. When you press 'Start Server', it will start streaming video from your phone and the IP address of the device will be shown on screen.
## {% linkable_title Configuration %}
To set it up the component, add the following information to your `configuration.yaml` file:
To set up the component, add the following information to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry

View File

@ -35,3 +35,7 @@ port:
type: integer
default: 3551
{% endconfiguration %}
<p class='note'>
If you get `ConnectionRefusedError: Connection refused` errors in the Home assistant logs, ensure the [APCUPSd](http://www.apcupsd.org/) configuration directives used by its Network Information Server is set to permit connections from all addresses [NISIP 0.0.0.0](http://www.apcupsd.org/manual/manual.html#configuration-directives-used-by-the-network-information-server), else non-local addesses will not connect. This includes Hass.io running in Docker, even when hosted on the same machine or a virtual machine.
</p>

View File

@ -0,0 +1,70 @@
---
layout: page
title: "Asuswrt"
description: "Instructions on how to integrate Asuswrt into Home Assistant."
date: 2017-01-05 17:30
sidebar: true
comments: false
sharing: true
footer: true
logo: asus.png
ha_category: Hub
ha_release: 0.83
ha_iot_class: "Local Polling"
---
The `asuswrt` component is the main component to connect to a [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) based router.
## {% linkable_title Configuration %}
To use an ASUSWRT router in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
asuswrt:
host: YOUR_ROUTER_IP
username: YOUR_ADMIN_USERNAME
```
{% configuration %}
host:
description: "The IP address of your router, eg. `192.168.1.1`."
required: true
type: string
username:
description: "The username of a user with administrative privileges, usually `admin`."
required: true
type: string
password:
description: "The password for your given admin account (use this if no SSH key is given)."
required: false
type: string
protocol:
description: "The protocol (`ssh` or `telnet`) to use."
required: false
type: string
default: ssh
port:
description: SSH port to use.
required: false
type: integer
default: 22
mode:
description: "The operating mode of the router (`router` or `ap`)."
required: false
type: string
default: router
ssh_key:
description: The path to your SSH private key file associated with your given admin account (instead of password).
required: false
type: string
require_ip:
description: If the router is in access point mode.
required: false
type: boolean
default: true
{% endconfiguration %}
<p class='note warning'>
You need to [enable telnet](https://www.asus.com/support/faq/1005449/) on your router if you choose to use `protocol: telnet`.
</p>

View File

@ -23,9 +23,11 @@ To use your Command binary sensor in your installation, add the following to you
# Example configuration.yaml entry
binary_sensor:
- platform: command_line
command: cat /proc/sys/net/ipv4/ip_forward
command: 'cat /proc/sys/net/ipv4/ip_forward'
```
<p class='note'>
It's highly recommended to enclose the command in single quotes `'` as it ensures all characters can be used in the command and reduces the risk of unintentional escaping. To include a single quote in a command enclosed in single quotes, double it: `''`.
</p>
{% configuration %}
command:
description: The action to take to get the value.
@ -78,7 +80,7 @@ Check the state of an [SickRage](https://github.com/sickragetv/sickrage) instanc
# Example configuration.yaml entry
binary_sensor:
- platform: command_line
command: netstat -na | find "33322" | find /c "LISTENING" > nul && (echo "Running") || (echo "Not running")
command: 'netstat -na | find "33322" | find /c "LISTENING" > nul && (echo "Running") || (echo "Not running")'
name: 'sickragerunning'
device_class: moving
payload_on: "Running"
@ -105,7 +107,7 @@ An alternative solution could look like this:
binary_sensor:
- platform: command_line
name: Printer
command: ping -W 1 -c 1 192.168.1.10 > /dev/null 2>&1 && echo success || echo fail
command: 'ping -W 1 -c 1 192.168.1.10 > /dev/null 2>&1 && echo success || echo fail'
device_class: connectivity
payload_on: "success"
payload_off: "fail"
@ -134,5 +136,3 @@ binary_sensor:
payload_on: 'active'
payload_off: 'inactive'
```
Note: Use single quotes!

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Fibaro Binary Sensor"
description: "Instructions on how to integrate Fibaro binary sensors into Home Assistant."
date: 2018-11-14 23:00
sidebar: true
comments: false
sharing: true
footer: true
logo: fibaro.png
ha_category: Binary Sensor
ha_iot_class: "Local Push"
ha_release: 0.83
---
The `fibaro` platform allows you to get data from your [Fibaro](http://fibaro.com/) binary sensors connected to your Fibaro HCL or HC2 from within Home Assistant.
They will be automatically discovered if the `fibaro` component is loaded.

View File

@ -19,7 +19,7 @@ The platform does not directly interact with the buttons, *but communicates with
#### {% linkable_title Service setup %}
If you are using Hass.io, you can run the service locally by [installing](https://www.home-assistant.io/hassio/installing_third_party_addons/) the flicd add-on from [pschmitt's repository](https://github.com/pschmitt/hassio-addons). On a Hass.io installation that's not yet based on HassOS, you also need to install the [bluetooth add-on](/addons/bluetooth_bcm43xx/).
If you are using Hass.io, you can run the service locally by [installing](/hassio/installing_third_party_addons/) the flicd add-on from [pschmitt's repository](https://github.com/pschmitt/hassio-addons). On a Hass.io installation that's not yet based on HassOS, you also need to install the [bluetooth add-on](/addons/bluetooth_bcm43xx/).
For instructions on how to install the service manually, visit the GitHub repository of the service for [Linux](https://github.com/50ButtonsEach/fliclib-linux-hci), [OS X](https://github.com/50ButtonsEach/flic-service-osx) or [Windows](https://github.com/50ButtonsEach/fliclib-windows).

View File

@ -10,6 +10,7 @@ footer: true
logo: http.png
ha_category: Binary Sensor
ha_release: pre 0.7
ha_qa_scale: internal
---
The HTTP binary sensor is dynamically created with the first request that is made to its URL. You don't have to define it in the configuration first.

View File

@ -29,23 +29,26 @@ be found in the IHC project and setup as binary sensors:
## {% linkable_title Manual configuration %}
To manually configure IHC Binary Sensors
insert this section in your configuration:
To manually configure IHC Binary Sensors insert the "binary_sensor" section in your IHC configuration:
```yaml
binary_sensor:
- platform: ihc
binary_sensors:
# Example configuration.yaml entry
ihc:
- url: 'http://192.168.1.3'
username: YOUR_USERNAME
password: YOUR_PASSWORD
info: true
binary_sensor:
- id: 12345
name: mysensor
type: opening
inverting: True
- id: 12346
...
name: switch_front_door
inverting: false
note: Magnet contact
position: Switch in door
type: door
```
{% configuration %}
binary_sensors:
binary_sensor:
description: List of binary sensors to setup manually.
required: false
type: map
@ -60,7 +63,7 @@ binary_sensors:
type: boolean
default: false
name:
description: The name of the component
description: The name of the sensor.
required: false
type: string
type:
@ -70,6 +73,14 @@ binary_sensors:
for available types.
required: false
type: string
note:
description: Descriptive note
required: false
type: string
position:
description: Where is it placed
required: false
type: string
{% endconfiguration %}
The resource id should be an id of a boolean IHC resource. For more information

View File

@ -53,7 +53,7 @@ The default name of the location attributes is `lat` and `long` to avoid showing
### {% linkable_title Show position on map with camera platform %}
The [generic camera platform](/components/camera.mjpeg/) offers
the possibility to show the location of the ISS on Google Maps.
the possibility to show the location of the ISS on OpenStreetMap.
{% raw %}
```yaml

View File

@ -0,0 +1,20 @@
---
layout: page
title: "Lupusec Binary Sensor"
description: "Instructions on how to integrate Lupusec binary sensors into Home Assistant."
date: 2018-10-03 16:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lupusec.png
ha_category: Binary Sensor
ha_release: 0.83
ha_iot_class: "Local Polling"
---
The `lupusec` security control panel platform allows you to control your [Lupusec](https://www.lupus-electronics.de) devices.
This platform will add `door contacts` and `window contacts` to your Home Assistant setup.
For the sensors to work you have to setup your [`lupusec` component](/components/lupusec/).

View File

@ -13,28 +13,15 @@ ha_release: 0.9
ha_iot_class: "depends"
---
The `mqtt` binary sensor platform uses an MQTT message payload
to set the binary sensor to one of two states: `on` or `off`.
The `mqtt` binary sensor platform uses an MQTT message payload to set the binary sensor to one of two states: `on` or `off`.
The binary sensor state will be updated only after a new message is published on
`state_topic` matching `payload_on` or `payload_off`.
If these messages are published with the `retain` flag set,
the binary sensor will receive an instant state update after subscription and
Home Assistant will display the correct state on startup.
The binary sensor state will be updated only after a new message is published on `state_topic` matching `payload_on` or `payload_off`. If these messages are published with the `retain` flag set,
the binary sensor will receive an instant state update after subscription and Home Assistant will display the correct state on startup.
Otherwise, the initial state displayed in Home Assistant will be `unknown`.
## {% linkable_title Configuration %}
The `mqtt` binary sensor platform optionally supports an `availability_topic` to
receive online and offline messages (birth and LWT messages) from the MQTT
device. During normal operation, if the MQTT cover device goes offline
(i.e., publishes `payload_not_available` to `availability_topic`), Home
Assistant will display the binary sensor as `unavailable`. If these messages are
published with the `retain` flag set, the binary sensor will receive an instant
update after subscription and Home Assistant will display the correct
availability state of the binary sensor when Home Assistant starts up.
If the `retain` flag is not set, Home Assistant will display the binary sensor
as `unavailable` when Home Assistant starts up. If no `availability_topic`
The `mqtt` binary sensor platform optionally supports an `availability_topic` to receive online and offline messages (birth and LWT messages) from the MQTT device. During normal operation, if the MQTT sensor device goes offline (i.e., publishes `payload_not_available` to `availability_topic`), Home Assistant will display the binary sensor as `unavailable`. If these messages are published with the `retain` flag set, the binary sensor will receive an instant update after subscription and Home Assistant will display the correct availability state of the binary sensor when Home Assistant starts up. If the `retain` flag is not set, Home Assistant will display the binary sensor as `unavailable` when Home Assistant starts up. If no `availability_topic`
is defined, Home Assistant will consider the MQTT device to be available.
To use an MQTT binary sensor in your installation,
@ -48,15 +35,15 @@ binary_sensor:
```
{% configuration %}
state_topic:
description: The MQTT topic subscribed to receive sensor values.
required: true
type: string
name:
description: The name of the binary sensor.
required: false
type: string
default: MQTT Binary Sensor
state_topic:
description: The MQTT topic subscribed to receive sensor values.
required: true
type: string
payload_on:
description: The payload that represents the on state.
required: false
@ -68,11 +55,7 @@ payload_off:
type: string
default: "OFF"
availability_topic:
description: >
The MQTT topic subscribed to receive birth and LWT messages from the MQTT
device. If `availability_topic` is not defined, the binary sensor availability
state will always be `available`. If `availability_topic` is defined,
the binary sensor availability state will be `unavailable` by default.
description: "The MQTT topic subscribed to receive birth and LWT messages from the MQTT device. If `availability_topic` is not defined, the binary sensor availability state will always be `available`. If `availability_topic` is defined, the binary sensor availability state will be `unavailable` by default."
required: false
type: string
payload_available:
@ -85,65 +68,63 @@ payload_not_available:
required: false
type: string
default: offline
json_attributes_topic:
description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.
reqired: false
type: string
qos:
description: The maximum QoS level to be used when receiving messages.
required: false
type: integer
default: 0
unique_id:
description: >
An ID that uniquely identifies this sensor. If two sensors have
the same unique ID, Home Assistant will raise an exception.
description: An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.
required: false
type: string
device_class:
description: >
The [type/class](/components/binary_sensor/) of
the sensor to set the icon in the frontend.
description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
required: false
type: string
value_template:
description: >
Defines a [template](/docs/configuration/templating/#processing-incoming-data)
to extract a value from the payload.
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. Available variables: `entity_id`."
required: false
type: string
force_update:
description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history.
required: false
type: boolean
default: False
default: false
off_delay:
description: For sensors that only sends On state updates, this variable sets a delay in seconds after which the sensor state will be updated back to Off.
description: "For sensors that only sends `On` state updates, this variable sets a delay in seconds after which the sensor state will be updated back to `Off`."
required: false
type: integer
device:
description: 'Information about the device this binary sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
description: "Information about the device this binary sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
required: false
type: map
keys:
identifiers:
description: 'A list of IDs that uniquely identify the device. For example a serial number.'
description: A list of IDs that uniquely identify the device. For example a serial number.
required: false
type: list, string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`."
required: false
type: list, tuple
manufacturer:
description: 'The manufacturer of the device.'
description: The manufacturer of the device.
required: false
type: string
model:
description: 'The model of the device.'
description: The model of the device.
required: false
type: string
name:
description: 'The name of the device.'
description: The name of the device.
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
description: The firmware version of the device.
required: false
type: string
{% endconfiguration %}
@ -154,8 +135,8 @@ In this section, you will find some real-life examples of how to use this sensor
### {% linkable_title Full configuration %}
To test, you can use the command line tool `mosquitto_pub` shipped with
`mosquitto` or the `mosquitto-clients` package to send MQTT messages.
To test, you can use the command line tool `mosquitto_pub` shipped with `mosquitto` or the `mosquitto-clients` package to send MQTT messages.
To set the state of the binary sensor manually:
```bash
@ -182,20 +163,24 @@ binary_sensor:
```
{% endraw %}
### {% linkable_title Toggle the binary sensor each time a message is received on state_topic %}
{% raw %}
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: mqtt
state_topic: "lab_button/cmnd/POWER"
value_template: "{%if is_state(entity_id,\"on\")-%}OFF{%-else-%}ON{%-endif%}"
```
{% endraw %}
### {% linkable_title Get the state of a device with ESPEasy %}
Assuming that you have flashed your ESP8266 unit with
[ESPEasy](https://github.com/letscontrolit/ESPEasy).
Under "Config" is a name ("Unit Name:") set for your device
(here it's "bathroom"). A configuration for a "Controller" for MQTT with the
protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and
"Controller Publish:") are adjusted to match your needs.
In this example, the topics are prefixed with "home". Also, add a "Switch Input"
in the "Devices" tap with the name "switch" and "button" as value.
Assuming that you have flashed your ESP8266 unit with [ESPEasy](https://github.com/letscontrolit/ESPEasy). Under "Config" is a name ("Unit Name:") set for your device (here it's "bathroom"). A configuration for a "Controller" for MQTT with the protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and "Controller Publish:") are adjusted to match your needs. In this example, the topics are prefixed with "home". Also, add a "Switch Input" in the "Devices" tap with the name "switch" and "button" as value.
As soon as the unit is online, you will get the state of the attached button.
```bash
```
home/bathroom/status Connected
...
home/bathroom/switch/button 1
@ -203,7 +188,6 @@ home/bathroom/switch/button 1
The configuration will look like the example below:
{% raw %}
```yaml
# Example configuration.yaml entry
binary_sensor:
@ -213,4 +197,3 @@ binary_sensor:
payload_on: "1"
payload_off: "0"
```
{% endraw %}

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Ness Alarm Binary Sensor"
description: "Instructions on how to setup the Ness alarm zones within Home Assistant."
date: 2018-11-25 18:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ness.png
ha_category: Binary Sensor
ha_release: 0.85
ha_iot_class: "Local Push"
---
The `ness_alarm` binary sensor allows you to monitor your [Ness](http://nesscorporation.com/) D8x and D16x alarm zones.
Zone binary sensors are automatically added by configuring the [Ness alarm](/components/ness_alarm/) component.

View File

@ -49,11 +49,11 @@ name:
payload_on:
description: "Variable `on` value. The component will recognize this as logical '1'."
required: false
type: string
type: [string, float, integer]
payload_off:
description: "Variable `off` value. The component will recognize this as logical '0'."
required: false
type: string
type: [string, float, integer]
disarm_after_trigger:
description: Configure sensor as trigger type.
required: false
@ -80,6 +80,6 @@ binary_sensor:
payload:
unitcode: 371399
payload_on: 'closed'
disarm_after_trigger: True
disarm_after_trigger: true
reset_delay_sec: 30
```

View File

@ -13,7 +13,7 @@ ha_release: 0.43
ha_qa_scale: internal
---
The `ping` binary sensor platform allows you to using `ping` to send ICMP echo requests. This way you can check if a given host is online and determine the round trip times from your Home Assistant instance to that system.
The `ping` binary sensor platform allows you to use `ping` to send ICMP echo requests. This way you can check if a given host is online and determine the round trip times from your Home Assistant instance to that system.
## {% linkable_title Configuration %}

View File

@ -0,0 +1,35 @@
---
layout: page
title: "Minut Point Binary Sensor"
description: "Access your Minut Point Events as binary sensors."
date: 2018-11-19
sidebar: true
comments: false
sharing: true
footer: true
logo: minut.svg
ha_category: Binary Sensor
ha_release: "0.83"
ha_iot_class: "Cloud Push"
ha_qa_scale: silver
---
Each Point exposes the following binary sensors:
- **battery**: `On` means low, `Off` means normal
- **button_press**: `On` means the button was pressed, `Off` means normal
- **cold**: `On` means cold, `Off` means normal
- **connectivity**: `On` means connected, `Off` means disconnected
- **dry**: `On` means too dry, `Off` means normal
- **heat**: `On` means hot, `Off` means normal
- **light**: `On` means light detected, `Off` means no light
- **moisture**: `On` means moisture detected (wet), `Off` means no moisture (dry)
- **motion**: `On` means motion detected, `Off` means no motion (clear)
- **sound**: `On` means sound detected, `Off` means no sound (clear)
- **tamper**: `On` means the point was removed or attached
For installation instructions, see [the Point component](/components/point/).
<p class='note'>
The events sent from the Point is also sent as a webhook back to Home Assistant with `event_type` as `point_webhook_received`, please consider the documentation for the [IFTT](/components/ifttt/) component on how to write automations for webhooks.
</p>

View File

@ -17,7 +17,7 @@ The `rainmachine` binary sensor platform allows you to view crucial sensor data
within a [RainMachine smart Wi-Fi sprinkler controller](http://www.rainmachine.com/).
<p class='note'>
You must have the [RainMachine component](https://www.home-assistant.io/components/rainmachine/)
You must have the [RainMachine component](/components/rainmachine/)
configured to use this platform. After configuring that component, binary
sensors automatically appear.
</p>

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Sense binary sensors"
description: "Instructions on how to integrate Sense binary sensors into Home Assistant."
date: 2018-11-14 23:00
sidebar: true
comments: false
sharing: true
footer: true
logo: sense.png
ha_category: Energy
ha_iot_class: "Cloud Polling"
ha_release: 0.82
---
The `Sense` platform allows you to get data from your [Sense](http://Sense.com/).
They will be automatically discovered if the `sense` component is loaded.

View File

@ -14,14 +14,13 @@ logo: home-assistant.png
ha_qa_scale: internal
---
The `template` platform supports sensors which break out the `state` and
`state_attributes` from other entities. The state of a Template Binary Sensor
can only be `on` or `off`.
The `template` platform supports binary sensors which get their values from
other entities. The state of a Template Binary Sensor can only be `on` or
`off`.
## {% linkable_title Configuration %}
To enable Template Binary Sensors in your installation, add the following to
your `configuration.yaml` file:
Here is an example of adding a Template Binary Sensor to the `configuration.yaml` file:
{% raw %}
```yaml
@ -84,6 +83,8 @@ sensors:
## {% linkable_title Considerations %}
### Startup
If you are using the state of a platform that takes extra time to load, the
Template Binary Sensor may get an `unknown` state during startup. This results
in error messages in your log file until that platform has completed loading.
@ -94,6 +95,14 @@ with this equivalent that returns `true`/`false` and never gives an unknown
result:
{% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %}
### Entity IDs
The template engine will attempt to work out what entities should trigger an
update of the sensor. This can fail, for example if your template loops over
the contents of a group. In this case you can use `entity_id` to provide a
list of entity IDs that will cause the sensor to update or you can run the
service `homeassistant.update_entity` to update the sensor at will.
## {% linkable_title Examples %}
In this section you find some real-life examples of how to use this sensor.
@ -106,7 +115,7 @@ determine if the furnace is running by checking that it is over some threshold:
{% raw %}
```yaml
sensor:
binary_sensor:
- platform: template
sensors:
furnace_on:

View File

@ -52,7 +52,7 @@ sensors:
type: string
device_class:
description: >
The [type/class](/components/binary_sensor/) of
The [type/class](/components/binary_sensor/#device-class) of
the sensor to set the icon in the frontend.
required: false
type: string

View File

@ -0,0 +1,69 @@
---
layout: page
title: "W800rf32 Binary Sensor"
description: "Instructions on how to integrate W800rf32 binary sensors into Home Assistant."
date: 2018-10-16 12:45
sidebar: true
comments: false
sharing: true
footer: true
logo: w800rf32.png
ha_category: Binary Sensor
ha_release: 0.83
ha_iot_class: "Local Push"
---
The `w800rf32` platform supports X10 RF binary sensors such as Palm Pad
remotes, key chain remotes, Hawkeye motion detectors, and many, many other X10 RF devices.
Some that have specifically been used with this are the KR19A keychain, MS16A motion detector
and the RSS18 four button wall mount keypad.
# Setting up your devices
Once you have set up your [w800rf32 hub](/components/w800rf32/), add the
binary sensors to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: w800rf32
devices:
a1:
name: motion_hall
a2:
name: motion_kitchen
```
{% configuration %}
devices:
description: A list of devices.
required: true
type: map
keys:
name:
description: Override the name to use in the frontend.
required: false
type: string
device_class:
description: "The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend."
required: false
type: device_class
off_delay:
description: For sensors that only sends 'On' state updates, this variable sets a delay after which the sensor state will be updated back to 'Off'.
required: false
type: integer
{% endconfiguration %}
Binary sensors have only two states - "on" and "off". Many door or window
opening sensors will send a signal each time the door/window is open or closed.
However, depending on their hardware or on their purpose,
some sensors are only able to signal their "on" state:
- Most motion sensors send a signal each time they detect motion. They stay "on" for a few seconds and go back to sleep, ready to signal other motion events. Usually, they do not send a signal when they go back to sleep.
For those devices, use the *off_delay* parameter.
It defines a delay after which a device will go back to an "Off" state.
That "Off" state will be fired internally by Home Assistant, just as if
the device fired it by itself. If a motion sensor can only send signals
once every 5 seconds, sets the *off_delay* parameter to *seconds: 5*.

View File

@ -13,8 +13,6 @@ ha_iot_class: "Local Push"
ha_release: 0.14
---
The `wemo` platform allows you to integrate your Belkin WeMo Binary Sensor from within Home Assistant.
The `wemo` platform allows you to monitor your Belkin WeMo Binary Sensor from within Home Assistant.
They will be automatically discovered if the discovery component is enabled.
For more configuration information see the [WeMo component](/components/wemo/) documentation.
WeMo devices are automatically discovered if the `discovery` component is enabled. For more configuration information, see the [WeMo component](/components/wemo/) documentation.

View File

@ -14,19 +14,16 @@ ha_release: 0.41
ha_qa_scale: internal
---
The `workday` binary sensor indicates, whether the current day is a workday or
not. It allows specifying, which days of the week counts as workdays and also
uses the python module [holidays](https://pypi.python.org/pypi/holidays)
to incorporate information about region-specific public holidays.
The `workday` binary sensor indicates, whether the current day is a workday or not. It allows specifying, which days of the week counts as workdays and also
uses the python module [holidays](https://pypi.python.org/pypi/holidays) to incorporate information about region-specific public holidays.
## {% linkable_title Setup %}
Check the [country list](https://github.com/dr-prodigy/python-holidays#available-countries) for available province.
## {% linkable_title Configuration %}
Check the
[country list](https://github.com/dr-prodigy/python-holidays#available-countries)
for available province.
To enable the `workday` sensor in your installation,
add the following to your `configuration.yaml` file:
To enable the `workday` sensor in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -44,14 +41,11 @@ name:
default: Workday Sensor
country:
description: >
Country code according to
[holidays](https://pypi.org/project/holidays/) notation.
Country code according to [holidays](https://pypi.org/project/holidays/) notation.
required: true
type: string
province:
description: >
Province code according to
[holidays](https://pypi.org/project/holidays/) notation.
description: Province code according to [holidays](https://pypi.org/project/holidays/) notation.
required: false
type: string
workdays:
@ -65,7 +59,7 @@ excludes:
type: list
default: "[sat, sun, holiday]"
days_offset:
description: Set days offset.
description: Set days offset (e.g., -1 for yesterday, 1 for tomorrow).
required: false
type: integer
default: 0
@ -102,7 +96,6 @@ automation:
```
<p class='note'>
Please remember that [as explained here][devices] you can only have a single `automation:` entry. Add the automation to your existing automations.
Please remember that [as explained here](/docs/configuration/devices/) you can only have a single `automation:` entry. Add the automation to your existing automations.
</p>
[devices]: https://www.home-assistant.io/docs/configuration/devices/

View File

@ -21,18 +21,20 @@ The requirement is that you have setup the [`xiaomi aqara` component](/component
| Name | Zigbee entity | Model no. | States | Event | Event key | Event values |
| ---- | ------------- | --------- | ------ | ----- | --------- | ------------ |
| Motion Sensor (1st gen) | motion | RTCGQ01LM | on, off | `motion` | | |
| Motion Sensor (2nd gen) | sensor_motion.aq2 | RTCGQ11LM | on, off | `motion` | | |
| Motion Sensor (1st gen) | motion | RTCGQ01LM | on, off | `xiaomi_aqara.motion` | | |
| Motion Sensor (2nd gen) | sensor_motion.aq2 | RTCGQ11LM | on, off | `xiaomi_aqara.motion` | | |
| Door and Window Sensor (1st gen) | magnet | WSDCGQ01LM | on, off | | | |
| Door and Window Sensor (2nd gen) | sensor_magnet.aq2 | MCCGQ11LM | on, off | | | |
| Smoke Detector | smoke | JTYJ-GD-01LM/BW | on, off | | | |
| Gas Leak Detector | natgas | JTQJ-BF-01LM/BW | on, off | | | |
| Water Leak Sensor | sensor_wleak.aq1 | SJCGQ11LM | on, off | | | |
| Button (1st gen) | switch | WXKG01LM | on (through long_click_press), off | `click`| `click_type`| `long_click_press`, `long_click_release`, `hold`, `single`, `double` |
| Button (2nd gen) | sensor_switch.aq2, remote.b1acn01 | WXKG11LM | off (always) | `click` | `click_type` | `single`, `double` |
| Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `click` | `click_type` | `single` |
| Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `click` | `click_type` | `single`, `both` |
| Cube | cube | MFKZQ01LM | off (always) | `cube_action` | `action_type`, `action_value` (rotate) | `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value) |
| Button (1st gen) | switch | WXKG01LM | on (through long_click_press), off | `xiaomi_aqara.click`| `click_type`| `long_click_press`, `long_click_release`, `hold`, `single`, `double` |
| Button (2nd gen) | sensor_switch.aq2, remote.b1acn01 | WXKG11LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double` |
| Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single` |
| Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `both` |
| Aqara Wireless Switch (Single) (2nd gen) | remote.b186acn01 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long` |
| Aqara Wireless Switch (Double) (2nd gen) | remote.b286acn01 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long`, `both`, `double_both`, `long_both` |
| Cube | cube | MFKZQ01LM | off (always) | `xiaomi_aqara.cube_action` | `action_type`, `action_value` (rotate) | `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value) |
| Vibration Sensor | vibration | DJT11LM | off (always) | `xiaomi_aqara.movement` | `movement_type` | `vibrate`, `tilt`, `free_fall` |
### {% linkable_title Automation examples %}
@ -148,7 +150,7 @@ Available events are `single`, `double`, `hold`, `long_click_press` and `long_cl
- alias: Toggle dining light on single press
trigger:
platform: event
event_type: click
event_type: xiaomi_aqara.click
event_data:
entity_id: binary_sensor.switch_158d000xxxxxc2
click_type: single
@ -158,7 +160,7 @@ Available events are `single`, `double`, `hold`, `long_click_press` and `long_cl
- alias: Toggle couch light on double click
trigger:
platform: event
event_type: click
event_type: xiaomi_aqara.click
event_data:
entity_id: binary_sensor.switch_158d000xxxxxc2
click_type: double
@ -168,7 +170,7 @@ Available events are `single`, `double`, `hold`, `long_click_press` and `long_cl
- alias: Let a dog bark on long press
trigger:
platform: event
event_type: click
event_type: xiaomi_aqara.click
event_data:
entity_id: binary_sensor.switch_158d000xxxxxc2
click_type: long_click_press
@ -188,7 +190,7 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi
- alias: Cube event flip90
trigger:
platform: event
event_type: cube_action
event_type: xiaomi_aqara.cube_action
event_data:
entity_id: binary_sensor.cube_15xxxxxxxxxxxx
action_type: flip90
@ -200,7 +202,7 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi
- alias: Cube event flip180
trigger:
platform: event
event_type: cube_action
event_type: xiaomi_aqara.cube_action
event_data:
entity_id: binary_sensor.cube_15xxxxxxxxxxxx
action_type: flip180
@ -212,7 +214,7 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi
- alias: Cube event move
trigger:
platform: event
event_type: cube_action
event_type: xiaomi_aqara.cube_action
event_data:
entity_id: binary_sensor.cube_15xxxxxxxxxxxx
action_type: move
@ -224,7 +226,7 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi
- alias: Cube event tap_twice
trigger:
platform: event
event_type: cube_action
event_type: xiaomi_aqara.cube_action
event_data:
entity_id: binary_sensor.cube_15xxxxxxxxxxxx
action_type: tap_twice
@ -236,7 +238,7 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi
- alias: Cube event shake_air
trigger:
platform: event
event_type: cube_action
event_type: xiaomi_aqara.cube_action
event_data:
entity_id: binary_sensor.cube_15xxxxxxxxxxxx
action_type: shake_air
@ -255,7 +257,7 @@ The Aqara Wireless Switch is available as single-key and double-key version. Eac
- alias: Decrease brightness of the gateway light
trigger:
platform: event
event_type: click
event_type: xiaomi_aqara.click
event_data:
entity_id: binary_sensor.wall_switch_left_158xxxxxxxxx12
click_type: single
@ -277,7 +279,7 @@ The Aqara Wireless Switch is available as single-key and double-key version. Eac
- alias: Increase brightness of the gateway light
trigger:
platform: event
event_type: click
event_type: xiaomi_aqara.click
event_data:
entity_id: binary_sensor.wall_switch_right_158xxxxxxxxx12
click_type: single
@ -299,7 +301,7 @@ The Aqara Wireless Switch is available as single-key and double-key version. Eac
- alias: Turn off the gateway light
trigger:
platform: event
event_type: click
event_type: xiaomi_aqara.click
event_data:
entity_id: binary_sensor.wall_switch_both_158xxxxxxxxx12
click_type: both

View File

@ -22,8 +22,9 @@ This component provides the following platforms:
- Device tracker: The location of your car.
- Lock: Control the lock of your car.
- Sensors: Mileage, remaining range, remaining fuel, charging time remaining (electric cars), charging status (electric cars), remaining range electric (electric cars).
- Services: Turn on air condition, sound the horn, flash the lights and update the state. More details can be found [here](/components/bmw_connected_drive/#services).
## {% linkable_title Configuration %}
## {% linkable_title Configuration %}
To enable this component in your installation, add the following to your
`configuration.yaml` file:

View File

@ -129,7 +129,8 @@ entities:
offset:
description: >
A set of characters that precede a number in the event title
for designating a pre-trigger state change on the sensor.
for designating a pre-trigger state change on the sensor.
This should be in the format of HH:MM or MM.
required: false
type: string
default: "!!"

View File

@ -94,7 +94,7 @@ As you can see, there are 4 custom projects here:
You can mix-and-match these attributes to create all sorts of custom projects. You can even use [IFTTT](https://ifttt.com/todoist) to create a task with a certain label, then have Home Assistant do some kind of automation when a task with that label comes due.
Home Assistant does its best to determine what task in each project is "most" important, and it's that task which has its state reported. You can access the other tasks you have due soon via the `all_tasks` array (see below).
Home Assistant does its best to [determine what task in each project is "most" important](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/calendar/todoist.py#L432), and it's that task which has its state reported. You can access the other tasks you have due soon via the `all_tasks` array (see below).
### {% linkable_title Sensor attributes %}

View File

@ -13,7 +13,7 @@ ha_release: "0.54"
ha_iot_class: "Local Polling"
---
The `doorbird` implementation allows you to view the live video and previous images from your [DoorBird](http://www.doorbird.com/) device in Home Assistant.
The `doorbird` implementation allows you to view the live video, the last doorbell ring image, and the last motion sensor image from your [DoorBird](http://www.doorbird.com/) device in Home Assistant.
<p class='note'>
You must have the [DoorBird component](/components/doorbird/) configured to use this camera.

View File

@ -17,7 +17,7 @@ The `ffmpeg` platform allows you to use any video feed as a camera in Home Assis
## {% linkable_title Configuration %}
To enable your FFmpeg feed in your installation, add the following to your `configuration.yaml` file:
To enable your FFmpeg feed in your installation you must first configure the [ffmpeg component](/components/ffmpeg/), then add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry

View File

@ -51,7 +51,7 @@ authentication:
default: basic
type: string
limit_refetch_to_url_change:
description: True/false value. Limits re-fetching of the remote image to when the URL changes. Only relevant if using a template to fetch the remote image.
description: Limits re-fetching of the remote image to when the URL changes. Only relevant if using a template to fetch the remote image.
required: false
default: false
type: boolean

View File

@ -54,6 +54,11 @@ authentication:
required: false
type: string
default: basic
verify_ssl:
description: Validate the ssl certificate for this camera.
required: false
type: boolean
default: true
{% endconfiguration %}
## {% linkable_title Examples %}
@ -67,3 +72,15 @@ camera:
still_image_url: http://IP/image.jpg
mjpeg_url: http://IP/video/mjpg.cgi
```
Example of integrating Blue Iris Cameras from a Blue Iris server.
```yaml
camera:
- platform: mjpeg
name: Livingroom Camera
mjpeg_url: http://IP:PORT/mjpg/CAMERASHORTNAME/video.mjpeg
username: BLUE_IRIS_USERNAME
password: BLUE_IRIS_PASSWORD
authentication: basic
```

View File

@ -30,17 +30,15 @@ camera:
{% configuration %}
topic:
description: MQTT topic to subscribe to.
description: The MQTT topic to subscribe to.
required: true
type: string
name:
description: Name of the camera.
description: The name of the camera.
required: false
type: string
unique_id:
description: >
An ID that uniquely identifies this camera. If two cameras
have the same unique ID Home Assistant will raise an exception.
description: An ID that uniquely identifies this camera. If two cameras have the same unique ID Home Assistant will raise an exception.
required: false
type: string
{% endconfiguration %}

View File

@ -19,4 +19,4 @@ The `nest` platform allows you to watch still frames from a video stream (not li
You must have the [Nest component](/components/nest/) configured to use this camera. The `nest` camera will automatically be setup when you do.
</p>
Nest Camera supports `camera.turn_on` and `camera.turn_off` service since 0.75 release.
Nest Camera supports the `camera.turn_on` and `camera.turn_off` services since the 0.75 release.

View File

@ -12,7 +12,7 @@ ha_category: Camera
ha_release: 0.47
---
The `onvif` camera platform allows you to use an ONVIF camera in Home Assistant. This requires the [`ffmpeg` component](/components/ffmpeg/) to be already configured.
The `onvif` camera platform allows you to use an [ONVIF](https://www.onvif.org/) camera in Home Assistant. This requires the [`ffmpeg` component](/components/ffmpeg/) to be already configured.
## {% linkable_title Configuration %}
@ -27,21 +27,24 @@ camera:
{% configuration %}
host:
description: An IP or hostname of the camera.
description: The IP address or hostname of the camera.
required: true
type: string
name:
description: Override the name of your camera.
required: false
type: string
default: ONVIF Camera
username:
description: The username for the camera.
required: false
type: string
default: admin
password:
description: The password for the camera.
required: false
type: string
default: 888888
port:
description: The port for the camera.
required: false
@ -53,12 +56,13 @@ profile:
type: integer
default: 0
extra_arguments:
description: "Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. More details in [FFmpeg component](/components/ffmpeg)."
description: "Extra options to pass to `ffmpeg`, e.g., image quality or video filter options. More details in [`ffmpeg` component](/components/ffmpeg)."
required: false
type: string
default: -q:v 2
{% endconfiguration %}
Most of the Onvif cameras support more than one audio/video Profile. Each profile provides different image quality. Usually, the first profile has the highest quality, and it is the profile used by default. However, you may want to use a lower quality image. One of the reasons may be that your hardware isn't able to render the highest quality image in real-time - especially when running on Raspberry Pi. Therefore you can choose which profile do you want to use by setting in config `profile` variable.
Most of the ONVIF cameras support more than one audio/video profile. Each profile provides different image quality. Usually, the first profile has the highest quality and it is the profile used by default. However, you may want to use a lower quality image. One of the reasons may be that your hardware isn't able to render the highest quality image in real-time, especially when running on Raspberry Pi. Therefore you can choose which profile do you want to use by setting in config `profile` variable.
### {% linkable_title Service `camera.onvif_ptz` %}

View File

@ -13,7 +13,7 @@ ha_release: 0.65
The `proxy` camera platform allows you to pass another camera's output through post-processing routines and generate a new camera with the post-processed output.
The current post-processing supports resizing the image/MJPEG as well as limiting the maximum refresh rate.
The current post-processing supports resizing and/or cropping the image/MJPEG as well as limiting the maximum refresh rate.
The current proxy capabilities are intended to reduce the camera bandwidth for slower internet connections.
@ -39,14 +39,37 @@ name:
description: This parameter allows you to override the name of your camera.
required: false
type: string
mode:
description: The operating mode, either `resize` or `crop`.
required: false
type: string
default: resize
max_image_width:
description: The maximum width of single images taken from the camera (aspect ratio will be maintained).
description: The maximum width of single images taken from the camera (aspect ratio will be maintained on resize processing).
required: false
type: integer
max_image_height:
description: The maximum height of single images taken from the camera, only used for crop operations. If not provided, the original height is assumed by default.
required: false
type: integer
max_stream_width:
description: The maximum width of the MJPEG stream from the camera (aspect ratio will be maintained).
description: The maximum width of the MJPEG stream from the camera (aspect ratio will be maintained on resize processing).
required: false
type: integer
max_stream_height:
description: The maximum height of the MJPEG stream from the camera, only used for crop operations. If not provided, the original height is assumed by default.
required: false
type: integer
image_top:
description: The top (y) coordinate to be used as a starting point for crop operations.
required: false
type: integer
default: 0
image_left:
description: The left (x) coordinate to be used as a starting point for crop operations.
required: false
type: integer
default: 0
image_quality:
description: The quality level used for resulting JPEG for snapshots.
required: false
@ -73,7 +96,7 @@ cache_images:
## {% linkable_title Examples %}
Example of using a Camera proxy along with a Foscam camera:
Example of using two Camera proxies along with a Foscam camera:
```yaml
camera:
@ -87,4 +110,11 @@ camera:
max_stream_width: 360
max_image_width: 480
image_refresh_rate: 5.0
- platform: proxy
entity_id: camera.mycamera
name: My cropped camera
mode: crop
max_image_width: 480
max_image_height: 320
image_left: 100
```

View File

@ -25,7 +25,7 @@ The `push` camera can as an example be used with [motionEye](https://github.com/
In motionEye, under **File Storage -> Run A Command** type in:
```bash
curl -X POST -F "image=@%f" http://my.hass.server.com:8123/api/camera_push/camera.push_camera?token=12345678
curl -X POST -F "image=@%f" http://my.hass.server.com:8123/api/webhook/my_custom_webhook_id
```
Optionally configure motionEye to save only motion triggered images by going into **Still Images -> Capture Mode** and setting **Motion Triggered**. Tune your preferences under **Motion Detection**.
@ -38,7 +38,7 @@ camera:
name: MotionEye Outdoor
buffer: 3
timeout: 5
token: 12345678
webhook_id: my_custom_webhook_id
```
## {% linkable_title Configuration %}
@ -50,7 +50,7 @@ To enable this camera in your installation, add the following to your `configura
camera:
- platform: push
name: My Push Camera
token: 12345678
webhook_id: my_custom_webhook_id
```
{% configuration %}
@ -69,9 +69,9 @@ timeout:
required: false
type: time
default: 5 seconds
token:
description: User provided token acting as access control, should be a large string (more then 8 chars). Required if you can't use HA new auth system (0.77).
required: false
webhook_id:
description: User provided string acting as camera identifier and access control, should be a large string (more then 8 chars).
required: true
type: string
field:
description: HTTP POST field containing the image file

View File

@ -24,3 +24,45 @@ Once you have enabled the [Skybell component](/components/skybell), add the foll
camera:
- platform: skybell
```
{% configuration %}
monitored_conditions:
description: The camera images to display. Default is `avatar`. The full list is `avatar`, `activity`.
required: false
type: list
avatar_name:
description: Name to append to the device name for the avatar image. Default is empty string.
required: false
type: string
activity_name:
description: Name to append to the device name for the last activity image. Default is empty string.
required: false
type: string
{% endconfiguration %}
## {% linkable_title Camera Types %}
There are two available camera types "Avatar", which is the default, displays the Skybell avatar image.
It is periodically updated with a fresh image. The other type is "Activity", which displays a snapshot from
the latest event (motion, bell, or on demand) captured by the camera. You may show either camera, or both, by
specifying its name under monitored_condtions. It's recommended, but not required, to set either avatar_name or activity_name
if you are showing both cameras so you can tell them apart. The name will be appended to the skybell device name.
```yaml
# Example configuration.yaml with both images
camera:
- platform: skybell
monitored_conditions:
- avatar
- activity
activity_name: "Last Activity"
```
```yaml
# Example configuration.yaml with just last activity image
camera:
- platform: skybell
monitored_conditions:
- activity
```

View File

@ -74,7 +74,7 @@ camera:
username: YOUR_USERNAME
password: YOUR_PASSWORD
timeout: 15
verify_ssl: False
verify_ssl: false
```
<p class='note'>

View File

@ -34,6 +34,7 @@ camera:
- platform: uvc
nvr: IP_ADDRESS
key: API_KEY
ssl: USE_SSL
```
{% configuration %}
@ -55,4 +56,14 @@ password:
required: false
type: string
default: ubnt
ssl:
description: Should use SSL/TLS to connect to the NVR.
required: false
type: boolean
default: false
{% endconfiguration %}
<p class='note'>
When using an API_KEY to access cameras controlled by Ubiquiti's NVR Software, the associated user account MUST have at least Administrator privileges within the NVR Software in order for new cameras to be added into Home Assistant. Once the entities have been created in Home Assistant, privileges for the user account can be lowered.
</p>

View File

@ -34,9 +34,13 @@ you want to configure the IP address of the Cast device directly:
# Example configuration.yaml entry
cast:
media_player:
- host: 192.168.1.10
- host: 192.168.1.10
```
<p class='note'>
You may need to enable Multicast DNS (MDNS) on your router if you are on a different subnet or VLAN.
</p>
{% configuration %}
media_player:
description: A list that contains all Cast devices.
@ -62,6 +66,6 @@ those as follows:
# Example configuration.yaml entry for multiple devices
cast:
media_player:
- host: IP_ADDRESS_DEVICE_1
- host: IP_ADDRESS_DEVICE_2
- host: IP_ADDRESS_DEVICE_1
- host: IP_ADDRESS_DEVICE_2
```

View File

@ -23,25 +23,4 @@ The `daikin` climate platform integrates Daikin air conditioning systems into Ho
Current temperature is displayed.
## {% linkable_title Configuration %}
To enable the platform, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
climate:
- platform: daikin
host: 10.0.0.1
```
{% configuration %}
host:
description: IP or hostname of the device.
required: true
type: string
name:
description: If the device has a name previously set by the user than that name will be used.
required: false
type: string
{% endconfiguration %}
For configuration instructions, see [the Daikin component](/components/daikin/).

View File

@ -18,7 +18,8 @@ The current functionality allows setting the temperature as well as controlling
As the device doesn't contain a temperature sensor ([read more](https://forum.fhem.de/index.php/topic,39308.15.html)),
we report target temperature also as current one.
### Testing the connectivity ###
### {% linkable_title Testing the connectivity %}
Before configuring Home Assistant you should check that connectivity with the thermostat is working, which can be done with the eq3cli tool:
```bash
@ -32,9 +33,9 @@ Boost: False
Current target temp: 21.0
Current mode: auto dst
Valve: 0
```
```
### Configuration ###
### {% linkable_title Configuration %}
```yaml
# Example configuration.yaml entry
@ -45,9 +46,19 @@ climate:
mac: '00:11:22:33:44:55'
```
Configuration variables:
- **devices** array (*Required*): List of thermostats.
- **[device-name]** (*Required*): The name to use for the thermostat.
- **mac** (*Required*): MAC address of the thermostat.
{% configuration %}
devices:
description: List of thermostats.
required: true
type: list
keys:
name:
description: The name to use for the thermostat.
required: true
type: string
keys:
mac:
description: MAC address of the thermostat.
required: true
type: string
{% endconfiguration %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Honeywell evohome CH/DHW Controller"
description: "Instructions on how to integrate a Honeywell evohome controller with Home Assistant."
title: "Honeywell evohome/TCC Climate devices"
description: "Instructions on how to utilize a Honeywell evohome/TCC system within Home Assistant."
date: 2018-09-25 12:00
sidebar: true
comments: false
@ -13,15 +13,39 @@ ha_release: 0.80
ha_iot_class: "Cloud Polling"
---
The `evohome` climate platform integrates your _EU-based_ [Honeywell Connect Comfort](https://international.mytotalconnectcomfort.com/Account/Login) CH/DHW controller into Home Assistant, enabling control of its operating mode.
The `evohome` climate platform integrates your _non-US_ [Honeywell Total Connect Comfort (TCC)](https://international.mytotalconnectcomfort.com/Account/Login) system into Home Assistant. It has been tested with the Honeywell evohome multi-zone CH/DHW system, but other systems may also work.
It is related to the honeywell climate component](/components/climate.honeywell/), which allows limited integration with evohome Heating zones. These two components should be usuable side-by-side, but YMMV.
It is distinct from - but related to - the [`honeywell`](/components/climate.honeywell/) climate platform, which also allows (limited) integration with Honeywell Connected thermostats; these two components may well be usable side-by-side, but YMMV.
The evohome evotouch controller supports seven distict modes: Auto, AutoWithEco, Away, DayOff, HeatingOff, and Custom; AutoWithReset is a 7th, hidden, mode.
The evohome evotouch Controller supports seven distict operating modes: Auto, AutoWithEco, Away, DayOff, HeatingOff, and Custom; AutoWithReset is a 7th, hidden, mode.
Currently, only the standard HA operating modes are supported: 'Eco' (AutoWithEco), and 'Off' (HeatingOff), and 'Auto' (all other evohome modes). 'Away' (Away) mode is supported separately.
Currently, only the standard HA operating modes are supported; the evohome modes are mapped thus: 'Eco' (AutoWithEco), 'Off' (HeatingOff), and 'Auto' (all other evohome modes). 'Away' mode is supported separately, in the HA fashion.
The actual operating modes are tracked/reported via `device_state_attributes`.
The evohome Heating zones support only three operating modes: FollowSchedule, TemporaryOverride, and PermanentOverride. If the zone is in FollowSchedule mode, it inherits its `operating_mode` from the controller; the other modes are mapped to 'Manual' or 'Off'.
A device's actual operating mode can be tracked via its `device_state_attributes`, which includes a JSON data structure for current state called `status`. For example:
```json
{
'zoneId': '999999',
'temperatureStatus': {
'temperature': 21.5,
'isAvailable': true
},
'activeFaults': [],
'setpointStatus': {
'targetHeatTemperature': 17.5,
'setpointMode': 'FollowSchedule'
},
'name': 'Main Room'
}
```
This data can be accessed in automations, etc., via a value template:
{% raw %}
```
value_template: "{{ state_attr('climate.main_room', 'status').setpointStatus.setpointMode }}"
```
{% endraw %}
<p class='note'>
Full configuration details can be found on the main [evohome component](/components/evohome/) page.

View File

@ -13,7 +13,7 @@ ha_release: pre 0.7
ha_iot_class: "Local Polling"
---
The `generic_thermostat` climate platform is a thermostat implemented in Home Assistant. It uses a sensor and a switch connected to a heater or air conditioning under the hood. When in heater mode, if the measured temperature is cooler then the target temperature, the heater will be turned on and turned off when the required temperature is reached. When in air conditioning mode, if the measured temperature is hotter then the target temperature, the air conditioning will be turned on and turned off when required temperature is reached. One Generic Thermostat entity can only control one switch. If you need to activate two switches, one for a heater and one for an air conditioner, you will need two Generic Thermostat entities.
The `generic_thermostat` climate platform is a thermostat implemented in Home Assistant. It uses a sensor and a switch connected to a heater or air conditioning under the hood. When in heater mode, if the measured temperature is cooler than the target temperature, the heater will be turned on and turned off when the required temperature is reached. When in air conditioning mode, if the measured temperature is hotter than the target temperature, the air conditioning will be turned on and turned off when required temperature is reached. One Generic Thermostat entity can only control one switch. If you need to activate two switches, one for a heater and one for an air conditioner, you will need two Generic Thermostat entities.
```yaml
# Example configuration.yaml entry
@ -82,6 +82,11 @@ away_temp:
description: Set the temperature used by "away_mode". If this is not specified, away_mode feature will not get activated.
required: false
type: float
precision:
description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`."
required: false
type: float
default: "`0.5` for Celsius and `1.0` for Fahrenheit."
{% endconfiguration %}
A full configuration example looks like the one below. `min_cycle_duration` and `keep_alive` must contain at least one of the following entries: `days:`, `hours:`, `minutes:`, `seconds:` or `milliseconds:`.
@ -99,7 +104,7 @@ climate:
target_sensor: sensor.study_temperature
min_temp: 15
max_temp: 21
ac_mode: False
ac_mode: false
target_temp: 17
cold_tolerance: 0.3
hot_tolerance: 0
@ -109,4 +114,5 @@ climate:
minutes: 3
initial_operation_mode: "off"
away_temp: 16
precision: 0.1
```

View File

@ -13,7 +13,7 @@ ha_release: "0.10"
ha_iot_class: "Local Polling"
---
The `heatmiser` climate platform let you control [Heatmiser DT/DT-E/PRT/PRT-E](http://www.heatmisershop.co.uk/heatmiser-slimline-programmable-room-thermostat/) thermostats from Heatmiser. The module itself is currently setup to work over a RS232 -> RS485 converter, therefore it connects over IP.
The `heatmiser` climate platform let you control [Heatmiser DT/DT-E/PRT/PRT-E](https://www.heatmisershop.co.uk/thermostats) thermostats from Heatmiser. The module itself is currently setup to work over a RS232 -> RS485 converter, therefore it connects over IP.
Further work would be required to get this setup to connect over Wifi, but the HeatmiserV3 python module being used is a full implementation of the V3 protocol.

View File

@ -14,11 +14,7 @@ ha_iot_class: "Cloud Polling"
---
The `honeywell` climate platform let you control [Honeywell Connected](http://getconnected.honeywell.com/en/) thermostats from Home Assistant.
<p class='note'>
This platform does NOT connect to MyTotalConnectComfort.com. If you have a Honeywell WIFI thermostat that is connected through MyTotalConnectComfort.com, you may might to take a look at the IFTTT component which can bridge the gap between Home Assistant and MyTotalConnectComfort.com WIFI thermostats on a limited basis.
</p>
The `honeywell` climate platform let you control Honeywell Connected thermostats from Home Assistant.
To set it up, add the following information to your `configuration.yaml` file:
@ -30,7 +26,7 @@ climate:
scan_interval: 600
```
<p class='note'>
Scan interval is expressed in seconds. Omitting scan_interval may result in too-frequent polling and cause you to rate-limited by Honeywell.
Scan interval is expressed in seconds. Omitting or mis-configuring `scan_interval` may result in too-frequent polling and cause you to be rate-limited by Honeywell.
</p>
{% configuration %}
@ -43,7 +39,7 @@ password:
required: true
type: string
region:
description: Region identifier (either 'eu' or 'us').
description: Region identifier (either 'eu' or 'us'). Use the `somecomfort` client library for `us`, and evohome-client for `eu`.
required: false
default: eu
type: string

View File

@ -47,6 +47,20 @@ climate:
operation_mode_comfort_address: '5/1/7'
```
`operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` are not necessary if `operation_mode_address` is specified.
If your device doesn't support setpoint_shift calculations (i.e. if you don't provide a `setpoint_shift_address` value) please set the `min_temp` and `max_temp`
attributes of the climate device to avoid issues with increasing the temperature in the frontend.
The following values are valid for the `operation_modes` attribute:
- Comfort (maps internally to STATE_HEAT within Home Assistant)
- Standby (maps internally to STATE_ECO within Home Assistant)
- Night (maps internally to STATE_IDLE within Home Assistant)
- Frost Protection (maps internally to STATE_MANUAL within Home Assistant)
- Fan only (maps internally to STATE_FAN_ONLY within Home Assistant)
- Dehumidification (maps internally to STATE_DRY within Home Assistant)
{% configuration %}
name:
description: A name for this device used within Home Assistant.
@ -100,6 +114,14 @@ controller_status_state_address:
description: Explicit KNX address for reading HVAC controller status.
required: false
type: string
controller_mode_address:
description: KNX address for handling controller modes.
required: false
type: string
controller_mode_state_address:
description: Explicit KNX address for reading HVAC Control Mode.
required: false
type: string
operation_mode_frost_protection_address:
description: KNX address for switching on/off frost/heat protection mode.
required: false
@ -112,6 +134,24 @@ operation_mode_comfort_address:
description: KNX address for switching on/off comfort mode.
required: false
type: string
operation_modes:
description: Overrides the supported operation modes.
required: false
type: array
on_off_address:
description: KNX address for switching the climate device on/off.
required: false
type: string
on_off_state_address:
description: KNX address for gathering the current state (on/off) of the climate device.
required: false
type: string
min_temp:
description: Override the minimum temperature.
required: false
type: float
max_temp:
description: Override the maximum temperature.
required: false
type: float
{% endconfiguration %}
`operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` are not necessary if `operation_mode_address` is specified.

View File

@ -15,16 +15,15 @@ ha_iot_class: "Cloud Polling"
Integrates Mill heater into Home Assistant.
The component requires that the heater is set as an [independent device](https://millheat.zendesk.com/hc/en-us/articles/115001123491-What-is-an-Independent-device-) in the Mill app.
## {% linkable_title Configuration %}
To enable this platform, add the following lines to your `configuration.yaml` file:
```yaml
climate:
- platform: mill
username: email@gmail.com
password: pswd
username: YOUR_EMAIL_ADDRESS
password: YOUR_PASSWORD
```
{% configuration %}
@ -37,3 +36,17 @@ password:
required: true
type: string
{% endconfiguration %}
## {% linkable_title Component services %}
This platform supports a service to set the temperature for the room connected to heater in the Mill app:
`climate.mill_set_room_temperature`
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `room_name` | no | String with room name.
| `away_temp` | yes | Integer with temperature
| `comfort_temp` | yes | Integer with temperature
| `sleep_temp` | yes | Integer with temperature

View File

@ -19,13 +19,14 @@ The platform currently works in optimistic mode, which means it does not obtain
It uses a sensor under the hood to obtain the current temperature.
## {% linkable_title Configuration %}
To enable this climate platform in your installation, first add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
climate:
- platform: mqtt
name: Study
current_temperature_topic: sensors/hvac_study/current_temp
temperature_command_topic: sensors/hvac_study/target_temp
```
{% configuration %}
@ -34,6 +35,10 @@ name:
required: false
type: string
default: MQTT HVAC
unique_id:
description: An ID that uniquely identifies this HVAC device. If two HVAC devices have the same unique ID, Home Assistant will raise an exception.
required: false
type: string
qos:
description: The maximum QoS level to be used when receiving and publishing messages.
required: false
@ -194,18 +199,47 @@ aux_state_template:
required: false
type: template
min_temp:
description: Minimum set point available
description: Minimum set point available.
type: number
required: false
max_temp:
description: Maximum set point available
description: Maximum set point available.
type: number
required: false
temp_step:
description: Step size for temperature set point
description: Step size for temperature set point.
type: number
required: false
default: 1
device:
description: 'Information about the device this HVAC device is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
required: false
type: map
keys:
identifiers:
description: 'A list of IDs that uniquely identify the device. For example a serial number.'
required: false
type: list, string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
manufacturer:
description: 'The manufacturer of the device.'
required: false
type: string
model:
description: 'The model of the device.'
required: false
type: string
name:
description: 'The name of the device.'
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
required: false
type: string
{% endconfiguration %}
#### {% linkable_title Optimistic mode %}

View File

@ -12,14 +12,12 @@ ha_category: Climate
ha_iot_class: "Cloud Push"
---
The `nest` climate platform let you control a thermostat from [Nest](https://nest.com).
The `nest` climate platform lets you control a thermostat from [Nest](https://nest.com).
<p class='note'>
You must have the [Nest component](/components/nest/) configured to use these sensors. The `nest` climate component will automatically be setup when you do.
You must have the [Nest component](/components/nest/) configured to use these sensors. The `nest` climate component will automatically be setup when you do. Please note due to limitations with the European Nest Thermostat E, integration with Home Assistant for that thermostat is not possible.
</p>
<p class='img'>
<img src='{{site_root}}/images/screenshots/nest-thermostat-card.png' />
</p>

View File

@ -17,10 +17,20 @@ The `radiotherm` climate platform let you control a thermostat from [Radio Therm
The underlying library supports:
- CT30 v1.75
- CT30 v1.92
- CT30 v1.94
- CT30 v1.99
- CT50 V1.09
- CT50 V1.88
- CT50 V1.92
- CT50 V1.94 (also known as Filtrete 3M50)
- CT80 Rev B1 V1.00
- CT80 Rev B2 V1.00
- CT80 Rev B2 V1.03
- CT80 Rev B2 V1.09
New models that are derivatives of the CT30 or CT80 should be detected automatically and basic functionality should work.
To set it up, add the following information to your `configuration.yaml` file:
@ -52,7 +62,7 @@ hold_temp:
type: boolean
{% endconfiguration %}
Set `hold_temp: True` if you want temperature settings from Home Assistant to override a thermostat schedule on the thermostat itself. Otherwise Home Assistant will perform temporary temperature changes.
Set `hold_temp: true` if you want temperature settings from Home Assistant to override a thermostat schedule on the thermostat itself. Otherwise Home Assistant will perform temporary temperature changes.
The away mode functions similarly to the away mode feature of the website and apps, but cannot detect if you set away mode outside of Home Assistant.

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Velbus Climate"
description: "Instructions how to integrate Velbus thermostat into Home Assistant."
date: 2018-08-22 06:00
sidebar: true
comments: false
sharing: true
footer: true
logo: velbus.png
ha_category: Climate
ha_iot_class: "Local Push"
ha_release: 0.83
---
The `velbus` climate devices allow you to control [Velbus](http://www.velbus.eu) connected thermostats.
For hub configuration, see [the Velbus component](/components/velbus/).

View File

@ -61,7 +61,7 @@ ssl:
description: Whether to use SSL or not when communicating.
required: false
type: boolean
default: False
default: false
timeout:
description: Number of seconds for API timeout.
required: false
@ -81,9 +81,9 @@ humidifier:
climate:
- platform: venstar
host: IP_OR_HOSTNAME_OF_THERMOSTAT
ssl: True/False
ssl: true
username: OPTIONAL_AUTH_USER_HERE
password: OPTIONAL_AUTH_PASS_HERE
timeout: 5
humidifier: False
humidifier: false
```

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Z-Wave Climate"
description: "Instructions on how to setup the Z-Wave thermostat or HVAC within Home Assistant."
description: "Instructions on how to set up the Z-Wave thermostat or HVAC within Home Assistant."
date: 2016-04-03 9:52
sidebar: true
comments: false
@ -13,13 +13,12 @@ ha_release: 0.17
ha_iot_class: "Local Push"
---
To get your Z-Wave thermostat or HVAC unit working with Home Assistant, follow the instructions for the general [Z-Wave component](/getting-started/z-wave/).
<p class='note'>
Thermostats with support for fan modes or different operating modes, will be handled like a HVAC device and will also be detected as one.
Thermostats with support for fan modes or different operating modes, will be handled like a HVAC device and will also be detected as one.
If the thermostat support different operating modes, you will get one thermostat entity for each mode. These can be hidden with settings using the customize setting in the `configuration.yaml` file.
If the thermostat supports different operating modes, you will get one thermostat entity for each mode. These can be hidden with settings using the customize setting in the `configuration.yaml` file.
</p>
To enable the climate component for your Z-Wave network, add the following to your `configuration.yaml` file.
@ -31,10 +30,10 @@ climate:
Once enabled, any Z-Wave climate devices will be available to Home Assistant. Multiple entities may be created. The following entities are created for a Remotec ZXT-120.
- **climate.remotec_zxt120_heating_1_id** Allows you to control the connected device. See below for examples.
- **sensor.remotec_zxt120_temperature_38** A sensor which returns the current temperature set on the attached device.
- `climate.remotec_zxt120_heating_1_id`: Allows you to control the connected device. See below for examples.
- `sensor.remotec_zxt120_temperature_38`: A sensor which returns the current temperature set on the attached device.
### {% linkable_title Automating Z-Wave Climate Devices %}
## {% linkable_title Automating Z-Wave Climate Devices %}
The following examples will instruct a Remotec ZXT-120 to turn the attached device mode to Heating, and set the temperature at 24 degrees after 8pm. Add it to `automation.yaml`.
@ -55,7 +54,7 @@ automation:
temperature: 24
```
Generally in Home Assistant you can use the `homeassistant/turn_off` service to turn devices off. For the Remotec ZXT-120, you must instead make a service call like the following.
Generally, in Home Assistant, you can use the `homeassistant/turn_off` service to turn devices off. For the Remotec ZXT-120, you must instead make a service call like the following.
```yaml
automation:
@ -72,9 +71,9 @@ automation:
**Note:** In the example above, the word `Off` is encased in single quotes to be valid YAML.
### {% linkable_title Test if it works %}
## {% linkable_title Test if it works %}
A simple way to test if your Z-Wave climate device is working is to use <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **Services** from the **Developer Tools**. Choose the applicable Climate service from the list of **Available services:** and enter something like the sample below into the **Service Data** field and then press **CALL SERVICE**.
A simple way to test if your Z-Wave climate device is working is to use <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **Services** from the **Developer Tools**. Choose the applicable Climate service from the list of **Available services:** and enter something like the sample below into the **Service Data** field and then press **CALL SERVICE**.
```json
{
@ -82,4 +81,3 @@ A simple way to test if your Z-Wave climate device is working is to use <img src
"operation_mode": "Heat"
}
```

View File

@ -20,7 +20,7 @@ The Home Assistant Cloud allows you to quickly integrate your local Home Assista
cloud:
```
Once activated, go to the configuration panel in Home Assistant and create an account and log in. If you are not seeing the **Configuration** panel, make sure you have the following option enabled in your configuration.yaml` file.
Once activated, go to the configuration panel in Home Assistant and create an account and log in. If you are not seeing the **Configuration** panel, make sure you have the following option enabled in your `configuration.yaml` file.
```yaml
config:

View File

@ -13,7 +13,6 @@ ha_release: 0.61
ha_iot_class: "Cloud Polling"
---
The `coinbase` component lets you access account balances and exchange rates from [coinbase](https://coinbase.com).
You will need to obtain an API key from coinbase's [developer site](https://www.coinbase.com/settings/api) to use this component. You need to give read access to `wallet:accounts` in order for the component to access relevant data.
@ -25,12 +24,8 @@ To set it up, add the following information to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
coinbase:
api_key: YOUR_API_KEY
api_secret: YOUR_API_SECRET
exchange_rate_currencies:
- BTC
- ETH
- LTC
api_key: YOUR_API_KEY
api_secret: YOUR_API_SECRET
```
{% configuration %}
@ -42,8 +37,33 @@ api_secret:
description: Your API secret to access coinbase.
required: true
type: string
account_balance_currencies:
description: List of currencies to create account wallet sensors for.
required: false
type: list
default: all account wallets
exchange_rate_currencies:
description: List of currencies to create exchange rate sensors for.
required: false
type: list
{% endconfiguration %}
Possible currencies are codes that conform to the ISO 4217 standard where possible. Currencies which have or had no representation in ISO 4217 may use a custom code (e.g. BTC). A list of values can be obtained via https://api.coinbase.com/v2/currencies, for more information visit [the Coinbase API documentation](https://developers.coinbase.com/api/v2#get-currencies).
## {% linkable_title Full configuration example %}
A full configuration sample including optional variables:
```yaml
# Example configuration.yaml entry
coinbase:
api_key: YOUR_API_KEY
api_secret: YOUR_API_SECRET
account_balance_currencies:
- EUR
- BTC
exchange_rate_currencies:
- BTC
- ETH
- LTC
```

View File

@ -45,7 +45,7 @@ counter:
description: Try to restore the last known value when Home Assistant starts.
required: false
type: boolean
default: True
default: true
step:
description: Incremental/step value for the counter.
required: false
@ -61,9 +61,9 @@ Pick an icon that you can find on [materialdesignicons.com](https://materialdesi
### {% linkable_title Restore State %}
This component will automatically restore the state it had prior to Home Assistant stopping as long as you have the `recorder` component enabled and your entity has `restore` set to `True` which is the default. To disable this feature, set `restore` to `False`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation.
This component will automatically restore the state it had prior to Home Assistant stopping as long as you your entity has `restore` set to `true` which is the default. To disable this feature, set `restore` to `false`.
If `restore` is set to `False`, the `initial` value will only be used when no previous state is found or when the counter is reset.
If `restore` is set to `false`, the `initial` value will only be used when no previous state is found or when the counter is reset.
## {% linkable_title Services %}

View File

@ -28,16 +28,46 @@ cover:
command_stop: move_command stop garage
```
Configuration variables:
- **covers** (*Required*): The array that contains all command line covers.
- **identifier** (*Required*): Name of the command line cover as slug. Multiple entries are possible.
- **command_open** (*Required*): The command to open the cover.
- **command_close** (*Required*): The action to close the cover.
- **command_stop** (*Required*): The action to stop the cover.
- **command_state** (*Optional*): If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open.
- **value_template** (*optional - default: '{% raw %}{{ value }}{% endraw%}'*): if specified, `command_state` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `command_state` returns a string "open", using `value_template` as in the example config above will allow you to translate that into the valid state `100`.
- **friendly_name** (*Optional*): The name used to display the cover in the frontend.
{% configuration %}
covers:
description: The array that contains all command line covers.
required: true
type: list
keys:
identifier:
description: Name of the command line cover as slug. Multiple entries are possible.
required: true
type: list
keys:
command_open:
description: The command to open the cover.
required: true
default: true
type: string
command_close:
description: The action to close the cover.
required: true
default: true
type: string
command_stop:
description: The action to stop the cover.
required: true
default: true
type: string
command_state:
description: If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open.
required: false
type: string
value_template:
description: if specified, `command_state` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `command_state` returns a string "open", using `value_template` as in the example config above will allow you to translate that into the valid state `100`.
required: false
default: "'{% raw %}{{ value }}{% endraw%}'"
type: template
friendly_name:
description: The name used to display the cover in the frontend.
required: false
type: string
{% endconfiguration %}
## {% linkable_title Examples %}

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Fibaro covers"
description: "Instructions on how to integrate Fibaro covers into Home Assistant."
date: 2018-11-14 23:00
sidebar: true
comments: false
sharing: true
footer: true
logo: fibaro.png
ha_category: Light
ha_iot_class: "Local Push"
ha_release: 0.83
---
The `fibaro` platform allows you to get data from your [Fibaro](http://fibaro.com/) covers connected to your Fibaro HCL or HC2 from within Home Assistant.
They will be automatically discovered if the `fibaro` component is loaded.

View File

@ -13,17 +13,22 @@ ha_iot_class: "depends"
ha_release: 0.18
---
The `mqtt` cover platform allows you to control an MQTT cover (such as blinds, a rollershutter, or a garage door).
The `mqtt` cover platform allows you to control an MQTT cover (such as blinds, a rollershutter or a garage door).
## {% linkable_title Configuration %}
The device state (`open` or `closed`) will be updated only after a new message is published on `state_topic` matching `state_open` or `state_closed`. If these messages are published with the `retain` flag set, the cover will receive an instant state update after subscription and Home Assistant will display the correct state on startup. Otherwise, the initial state displayed in Home Assistant will be `unknown`.
`state_topic` can only manage `state_open` and `state_closed`. No percentage positons etc.
There is an attribute that stores the relative position of the device, where 0 means the device is `closed` and all other intermediate positions means the device is `open`.
For this purpose is `position_topic` which can set state of the cover and positon.
Default setting are 0 means the device is `closed` and all other intermediate positions means the device is `open`.
`position_topic` is managed by `position_open` and `position_closed`
You can set it up in opossite way as well.
If position topic is defined than state topic is ignored.
If a state topic is not defined, the cover will work in optimistic mode. In this mode, the cover will immediately change state (`open` or `closed`) after every command sent by Home Assistant. If a state topic is defined, the cover will wait for a message on `state_topic` matching `state_open` or `state_closed` before changing state in Home Assistant.
If a state topic and position topic are not defined, the cover will work in optimistic mode. In this mode, the cover will immediately change state (`open` or `closed`) after every command sent by Home Assistant. If a state topic/position topic is defined, the cover will wait for a message on `state_topic` or `position_topic`.
Optimistic mode can be forced, even if a `state_topic` is defined. Try to enable it if experiencing incorrect cover operation.
Optimistic mode can be forced, even if a `state_topic` / `position_topic` is defined. Try to enable it if experiencing incorrect cover operation (Google Assistant gauge may need optimistic mode as it often send request to your Home Assistant immediately after send set_cover_position in which case MQTT could be too slow).
The `mqtt` cover platform optionally supports an `availability_topic` to receive online and offline messages (birth and LWT messages) from the MQTT cover device. During normal operation, if the MQTT cover device goes offline (i.e. publishes `payload_not_available` to `availability_topic`), Home Assistant will display the cover as "unavailable". If these messages are published with the `retain` flag set, the cover will receive an instant update after subscription and Home Assistant will display correct availability state of the cover when Home Assistant starts up. If the `retain` flag is not set, Home Assistant will display the cover as "unavailable" when Home Assistant starts up.
@ -33,20 +38,19 @@ To use your MQTT cover in your installation, add the following to your `configur
# Example configuration.yaml entry
cover:
- platform: mqtt
name: "MQTT Cover"
command_topic: "home-assistant/cover/set"
```
{% configuration %}
command_topic:
description: The MQTT topic to publish commands to control the cover.
required: false
type: string
name:
description: The name of the cover.
required: false
type: string
default: MQTT Cover
command_topic:
description: The MQTT topic to publish commands to control the cover.
required: false
type: string
payload_open:
description: The command payload that opens the cover.
required: false
@ -63,7 +67,7 @@ payload_stop:
type: string
default: STOP
state_topic:
description: The MQTT topic subscribed to receive cover state messages.
description: The MQTT topic subscribed to receive cover state messages. Use only if not using `position_topic`. State topic can only read open/close state. Cannot read position state. If `position_topic` is set `state_topic` is ignored.
required: false
type: string
state_open:
@ -76,6 +80,20 @@ state_closed:
required: false
type: string
default: closed
position_topic:
description: The MQTT topic subscribed to receive cover position messages. If `position_topic` is set `state_topic` is ignored.
required: false
type: integer
position_open:
description: Number which represents open position.
required: false
type: integer
default: 100
position_closed:
description: Number which represents closed position.
required: false
type: integer
default: 0
availability_topic:
description: "The MQTT topic subscribed to to receive birth and LWT messages from the MQTT cover device. If `availability_topic` is not defined, the cover availability state will always be `available`. If `availability_topic` is defined, the cover availability state will be `unavailable` by default."
required: false
@ -110,11 +128,11 @@ value_template:
required: false
type: string
set_position_topic:
description: The MQTT topic to publish position commands to.
description: "The MQTT topic to publish position commands to. You need to set position_topic as well if you want to use position topic. Use template if position topic wants different values than within range `position_closed` - `position_open`. If template is not defined and `position_closed != 100` and `position_open != 0` then proper position value is calculated from percentage position."
required: false
type: string
set_position_template:
description: " Defines a [template](/topics/templating/) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{{position}}`. If no template is defined, the numeric position (0-100) will be written directly to the topic."
description: "Defines a [template](/topics/templating/) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{{position}}`. If no template is defined, the position (0-100) will be calculated according to `position_open` and `position_closed` values."
required: false
type: string
tilt_command_topic:
@ -160,7 +178,7 @@ unique_id:
required: false
type: string
device:
description: 'Information about the device this cover is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
description: "Information about the device this cover is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
required: false
type: map
keys:
@ -169,23 +187,23 @@ device:
required: false
type: list, string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.'
required: false
type: list
manufacturer:
description: 'The manufacturer of the device.'
description: The manufacturer of the device.
required: false
type: string
model:
description: 'The model of the device.'
description: The model of the device.
required: false
type: string
name:
description: 'The name of the device.'
description: The name of the device.
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
description: The firmware version of the device.
required: false
type: string
{% endconfiguration %}
@ -194,10 +212,11 @@ device:
In this section you will find some real-life examples of how to use this platform.
### {% linkable_title Full configuration without tilt %}
### {% linkable_title Full configuration state topic without tilt %}
The example below shows a full configuration for a cover without tilt.
The example below shows a full configuration for a cover without tilt with state topic only.
{% raw %}
```yaml
# Example configuration.yaml entry
cover:
@ -216,8 +235,37 @@ cover:
payload_available: "online"
payload_not_available: "offline"
optimistic: false
value_template: '{% raw %}{{ value.x }}{% endraw %}'
value_template: '{{ value.x }}'
```
{% endraw %}
### {% linkable_title Full configuration position topic without tilt %}
The example below shows a full configuration for a cover without tilt with position topic.
{% raw %}
```yaml
# Example configuration.yaml entry
cover:
- platform: mqtt
name: "MQTT Cover"
command_topic: "home-assistant/cover/set"
position_topic: "home-assistant/cover/position"
availability_topic: "home-assistant/cover/availability"
set_position_topic: "home-assistant/cover/set_position"
qos: 0
retain: true
payload_open: "OPEN"
payload_close: "CLOSE"
payload_stop: "STOP"
position_open: 100
position_closed: 0
payload_available: "online"
payload_not_available: "offline"
optimistic: false
value_template: '{{ value.x }}'
```
{% endraw %}
### {% linkable_title Full configuration %}

View File

@ -81,7 +81,7 @@ device_defaults:
fire_event:
description: Set default `fire_event` for RFLink cover devices.
required: false
default: False
default: false
type: boolean
signal_repetitions:
description: Set default `signal_repetitions` for RFLink cover devices.
@ -119,7 +119,7 @@ devices:
group:
description: Allow light to respond to group commands (ALLON/ALLOFF).
required: false
default: True
default: true
type: boolean
group_aliases:
description: The `aliases` which only respond to group commands.

View File

@ -25,7 +25,7 @@ The easiest way to find your roller shutters is to add this to your `configurati
```yaml
cover:
- platform: rfxtrx
automatic_add: True
automatic_add: true
```
Launch your homeassistant and go the website (e.g http://localhost:8123). Push your remote and your device should be added.
@ -52,7 +52,7 @@ Example configuration:
# Example configuration.yaml entry
cover:
- platform: rfxtrx
automatic_add: False
automatic_add: false
signal_repetitions: 2
devices:
0b1100ce3213c7f210010f70: # Siemens/LightwaveRF

View File

@ -44,7 +44,7 @@ relay_time:
invert_relay:
description: Invert the relay pin output so that it is active-high (True).
required: false
default: False
default: false
type: boolean
state_pull_mode:
description: The direction the State pin is pulling. It can be UP or DOWN.
@ -54,7 +54,7 @@ state_pull_mode:
invert_state:
description: Invert the value of the State pin so that 0 means closed.
required: false
default: False
default: false
type: boolean
covers:
description: List of your doors.
@ -82,9 +82,9 @@ covers:
cover:
- platform: rpi_gpio
relay_time: 0.2
invert_relay: False
invert_relay: false
state_pull_mode: 'UP'
invert_state: True
invert_state: true
covers:
- relay_pin: 10
state_pin: 11

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