mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-20 15:56:51 +00:00
Merge branch 'current' into current
This commit is contained in:
commit
2fcc96783b
4
Gemfile
4
Gemfile
@ -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'
|
||||
|
50
Gemfile.lock
50
Gemfile.lock
@ -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
|
||||
|
12
_config.yml
12
_config.yml
@ -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
|
||||
|
1
credits_generator/.gitignore
vendored
1
credits_generator/.gitignore
vendored
@ -1 +0,0 @@
|
||||
.token
|
@ -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
|
||||
```
|
||||
|
@ -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>
|
116
credits_generator/package-lock.json
generated
116
credits_generator/package-lock.json
generated
@ -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=="
|
||||
}
|
||||
}
|
||||
}
|
@ -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"
|
||||
}
|
||||
}
|
@ -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, '<')
|
||||
.replace(/>/g, '>')
|
||||
.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(', ');
|
||||
}
|
@ -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',
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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{
|
||||
|
@ -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 %}
|
||||
|
@ -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 %}
|
||||
|
@ -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 %}
|
||||
|
@ -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`.
|
||||
|
@ -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.
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -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) %}
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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 %}
|
||||
|
@ -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.
|
||||
|
@ -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>
|
||||
|
@ -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"}}`
|
||||
|
28
source/_components/air_quality.markdown
Normal file
28
source/_components/air_quality.markdown
Normal 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.
|
||||
|
45
source/_components/air_quality.opensensemap.markdown
Normal file
45
source/_components/air_quality.opensensemap.markdown
Normal 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 %}
|
||||
|
@ -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.
|
||||
|
18
source/_components/alarm_control_panel.lupusec.markdown
Normal file
18
source/_components/alarm_control_panel.lupusec.markdown
Normal 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.
|
@ -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
|
||||
|
@ -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 %}
|
||||
|
19
source/_components/alarm_control_panel.ness_alarm.markdown
Normal file
19
source/_components/alarm_control_panel.ness_alarm.markdown
Normal 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.
|
@ -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
|
||||
|
@ -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/
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
70
source/_components/asuswrt.markdown
Normal file
70
source/_components/asuswrt.markdown
Normal 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>
|
@ -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!
|
||||
|
18
source/_components/binary_sensor.fibaro.markdown
Normal file
18
source/_components/binary_sensor.fibaro.markdown
Normal 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.
|
@ -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).
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
20
source/_components/binary_sensor.lupusec.markdown
Normal file
20
source/_components/binary_sensor.lupusec.markdown
Normal 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/).
|
@ -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 %}
|
||||
|
18
source/_components/binary_sensor.ness_alarm.markdown
Normal file
18
source/_components/binary_sensor.ness_alarm.markdown
Normal 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.
|
@ -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
|
||||
```
|
||||
|
@ -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 %}
|
||||
|
||||
|
35
source/_components/binary_sensor.point.markdown
Normal file
35
source/_components/binary_sensor.point.markdown
Normal 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>
|
@ -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>
|
||||
|
18
source/_components/binary_sensor.sense.markdown
Normal file
18
source/_components/binary_sensor.sense.markdown
Normal 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.
|
@ -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:
|
||||
|
@ -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
|
||||
|
69
source/_components/binary_sensor.w800rf32.markdown
Normal file
69
source/_components/binary_sensor.w800rf32.markdown
Normal 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*.
|
@ -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.
|
||||
|
@ -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/
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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: "!!"
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
```
|
||||
|
@ -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 %}
|
||||
|
@ -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.
|
||||
|
@ -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` %}
|
||||
|
||||
|
@ -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
|
||||
```
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
```
|
@ -74,7 +74,7 @@ camera:
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
timeout: 15
|
||||
verify_ssl: False
|
||||
verify_ssl: false
|
||||
```
|
||||
|
||||
<p class='note'>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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
|
||||
```
|
||||
|
@ -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/).
|
||||
|
@ -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 %}
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
```
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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 %}
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
18
source/_components/climate.velbus.markdown
Normal file
18
source/_components/climate.velbus.markdown
Normal 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/).
|
@ -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
|
||||
```
|
||||
|
@ -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"
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
```
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -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 %}
|
||||
|
||||
|
18
source/_components/cover.fibaro.markdown
Normal file
18
source/_components/cover.fibaro.markdown
Normal 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.
|
@ -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 %}
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user