Merge remote-tracking branch 'home-assistant/next' into next
13
.github/move.yml
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Configuration for move-issues - https://github.com/dessant/move-issues
|
||||||
|
|
||||||
|
# Delete the command comment. Ignored when the comment also contains other content
|
||||||
|
deleteCommand: true
|
||||||
|
# Close the source issue after moving
|
||||||
|
closeSourceIssue: true
|
||||||
|
# Lock the source issue after moving
|
||||||
|
lockSourceIssue: false
|
||||||
|
# Set custom aliases for targets
|
||||||
|
# aliases:
|
||||||
|
# r: repo
|
||||||
|
# or: owner/repo
|
||||||
|
|
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 104 B |
Before Width: | Height: | Size: 118 B After Width: | Height: | Size: 81 B |
Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 199 B |
Before Width: | Height: | Size: 636 B After Width: | Height: | Size: 628 B |
Before Width: | Height: | Size: 835 B After Width: | Height: | Size: 808 B |
Before Width: | Height: | Size: 210 B After Width: | Height: | Size: 206 B |
Before Width: | Height: | Size: 664 B After Width: | Height: | Size: 652 B |
Before Width: | Height: | Size: 170 B After Width: | Height: | Size: 123 B |
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 436 B |
Before Width: | Height: | Size: 553 B After Width: | Height: | Size: 546 B |
Before Width: | Height: | Size: 112 B After Width: | Height: | Size: 110 B |
Before Width: | Height: | Size: 94 B After Width: | Height: | Size: 93 B |
Before Width: | Height: | Size: 103 B After Width: | Height: | Size: 102 B |
Before Width: | Height: | Size: 116 B After Width: | Height: | Size: 113 B |
Before Width: | Height: | Size: 264 B After Width: | Height: | Size: 259 B |
Before Width: | Height: | Size: 649 B After Width: | Height: | Size: 634 B |
Before Width: | Height: | Size: 686 B After Width: | Height: | Size: 646 B |
Before Width: | Height: | Size: 816 B After Width: | Height: | Size: 804 B |
Before Width: | Height: | Size: 334 B After Width: | Height: | Size: 309 B |
Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 458 B |
Before Width: | Height: | Size: 686 B After Width: | Height: | Size: 646 B |
Before Width: | Height: | Size: 172 B After Width: | Height: | Size: 134 B |
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 106 B |
Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 104 B |
Before Width: | Height: | Size: 100 B After Width: | Height: | Size: 98 B |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 589 B After Width: | Height: | Size: 575 B |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 317 B |
Before Width: | Height: | Size: 615 B After Width: | Height: | Size: 311 B |
Before Width: | Height: | Size: 239 B After Width: | Height: | Size: 183 B |
Before Width: | Height: | Size: 99 B After Width: | Height: | Size: 78 B |
Before Width: | Height: | Size: 301 B After Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 636 B After Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 490 B After Width: | Height: | Size: 301 B |
Before Width: | Height: | Size: 333 B After Width: | Height: | Size: 215 B |
5
Gemfile
@ -1,5 +1,7 @@
|
|||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
ruby "> 2.3.0"
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
gem 'rake', '~> 10.0'
|
gem 'rake', '~> 10.0'
|
||||||
gem 'jekyll', '~> 3.0'
|
gem 'jekyll', '~> 3.0'
|
||||||
@ -7,6 +9,9 @@ group :development do
|
|||||||
gem 'sass-globbing', '~> 1.0'
|
gem 'sass-globbing', '~> 1.0'
|
||||||
gem 'stringex', '~> 1.4'
|
gem 'stringex', '~> 1.4'
|
||||||
gem 'pry'
|
gem 'pry'
|
||||||
|
|
||||||
|
# See https://github.com/home-assistant/home-assistant.github.io/pull/3904
|
||||||
|
gem 'rb-inotify', '< 0.9.9'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :jekyll_plugins do
|
group :jekyll_plugins do
|
||||||
|
@ -73,8 +73,8 @@ GEM
|
|||||||
rack
|
rack
|
||||||
rake (10.5.0)
|
rake (10.5.0)
|
||||||
rb-fsevent (0.10.2)
|
rb-fsevent (0.10.2)
|
||||||
rb-inotify (0.9.10)
|
rb-inotify (0.9.8)
|
||||||
ffi (>= 0.5.0, < 2)
|
ffi (>= 0.5.0)
|
||||||
redcarpet (3.4.0)
|
redcarpet (3.4.0)
|
||||||
rouge (1.11.1)
|
rouge (1.11.1)
|
||||||
safe_yaml (1.0.4)
|
safe_yaml (1.0.4)
|
||||||
@ -104,9 +104,13 @@ DEPENDENCIES
|
|||||||
octopress-include-tag
|
octopress-include-tag
|
||||||
pry
|
pry
|
||||||
rake (~> 10.0)
|
rake (~> 10.0)
|
||||||
|
rb-inotify (< 0.9.9)
|
||||||
sass-globbing (~> 1.0)
|
sass-globbing (~> 1.0)
|
||||||
sinatra (~> 1.4.2)
|
sinatra (~> 1.4.2)
|
||||||
stringex (~> 1.4)
|
stringex (~> 1.4)
|
||||||
|
|
||||||
|
RUBY VERSION
|
||||||
|
ruby 2.4.1p111
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
1.15.4
|
1.15.4
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[](https://discord.gg/CxqDrfU)
|
[](https://discord.gg/CxqDrfU)
|
||||||
[](https://travis-ci.org/home-assistant/home-assistant.github.io)
|
[](https://travis-ci.org/home-assistant/home-assistant.github.io)
|
||||||
[](http://www.krihelinator.xyz)
|
[](http://www.krihelinator.xyz)
|
||||||
[](https://opensource.org/licenses/MIT)
|
[](https://creativecommons.org/licenses/by-nc-sa/4.0/)
|
||||||
|
|
||||||
# Home Assistant website
|
# Home Assistant website
|
||||||
|
|
||||||
|
@ -139,12 +139,12 @@ social:
|
|||||||
|
|
||||||
# Home Assistant release details
|
# Home Assistant release details
|
||||||
current_major_version: 0
|
current_major_version: 0
|
||||||
current_minor_version: 57
|
current_minor_version: 61
|
||||||
current_patch_version: 2
|
current_patch_version: 1
|
||||||
date_released: 2017-11-05
|
date_released: 2018-01-16
|
||||||
|
|
||||||
# Either # or the anchor link to latest release notes in the blog post.
|
# Either # or the anchor link to latest release notes in the blog post.
|
||||||
# Must be prefixed with a # and have double quotes around it.
|
# Must be prefixed with a # and have double quotes around it.
|
||||||
# Major release:
|
# Major release:
|
||||||
patch_version_notes: "#release-0572--november-5"
|
patch_version_notes: "#release-0611---january-16"
|
||||||
# Minor release (Example #release-0431---april-25):
|
# Minor release (Example #release-0431---april-25):
|
||||||
|
@ -3,11 +3,17 @@ credits_generator
|
|||||||
|
|
||||||
This tool can be used to update the [Home Assistant's Credits page](https://home-assistant.io/developers/credits/).
|
This tool can be used to update the [Home Assistant's Credits page](https://home-assistant.io/developers/credits/).
|
||||||
|
|
||||||
|
Setup
|
||||||
|
-----
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ cd credits_generator
|
$ cd credits_generator
|
||||||
$ npm install
|
$ npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
Set your personal GitHub access token as environmental variable.
|
Set your personal GitHub access token as environmental variable.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -17,6 +23,7 @@ $ export GITHUB_TOKEN=<Your GitHub access token>
|
|||||||
Run the script.
|
Run the script.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
$ cd credits_generator
|
||||||
$ node update_credits.js
|
$ node update_credits.js
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -46,7 +46,9 @@ Screenshot of the HASS Configurator.
|
|||||||
"ssl": false,
|
"ssl": false,
|
||||||
"allowed_networks": ["192.168.0.0/16"],
|
"allowed_networks": ["192.168.0.0/16"],
|
||||||
"banned_ips": ["8.8.8.8"],
|
"banned_ips": ["8.8.8.8"],
|
||||||
"ignore_pattern": ["__pycache__"]
|
"banlimit": 0,
|
||||||
|
"ignore_pattern": ["__pycache__"],
|
||||||
|
"dirsfirst": false,
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -55,7 +57,9 @@ Screenshot of the HASS Configurator.
|
|||||||
- **ssl** (*Optional*): Enable or Disable SSL for the editor.
|
- **ssl** (*Optional*): Enable or Disable SSL for the editor.
|
||||||
- **allowed_networks** (*Optional*): Limit access to the configurator by adding allowed IP addresses / networks to the list.
|
- **allowed_networks** (*Optional*): Limit access to the configurator by adding allowed IP addresses / networks to the list.
|
||||||
- **banned_ips** (*Optional*): List of statically banned IP addresses.
|
- **banned_ips** (*Optional*): List of statically banned IP addresses.
|
||||||
|
- **banlimit** (*Optional*): Ban access from IPs after `banlimit` failed login attempts. The default value `0` disables this feature. Restart the add-on to clear the list of banned IP addresses.
|
||||||
- **ignore_pattern** (*Optional*): Files and folders to ignore in the UI.
|
- **ignore_pattern** (*Optional*): Files and folders to ignore in the UI.
|
||||||
|
- **dirsfirst** (*Optional*): List directories before files in the filebrowser.
|
||||||
|
|
||||||
### {% linkable_title Embedding into Home-Assistant %}
|
### {% linkable_title Embedding into Home-Assistant %}
|
||||||
|
|
||||||
|
@ -42,8 +42,10 @@ http:
|
|||||||
ssl_key: /ssl/privkey.pem
|
ssl_key: /ssl/privkey.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
If you use a other port as `8123` or a SSL proxy, change the port number.
|
If you use a port other than `8123` or an SSL proxy, change the port number accordingly.
|
||||||
|
|
||||||
## {% linkable_title Router configuration %}
|
## {% linkable_title Router configuration %}
|
||||||
|
|
||||||
You'll need to forward the port you listed in your configuration (8123 in the example above) on your router to your Home Assistant system. You can find guides on how to do this on [Port Forward](https://portforward.com/) - noting that you'll only need to forward the TCP port.
|
You'll need to forward the port you listed in your configuration (8123 in the example above) on your router to your Home Assistant system. You can find guides on how to do this on [Port Forward](https://portforward.com/) - noting that you'll only need to forward the TCP port.
|
||||||
|
|
||||||
|
Ensure that you allocate the Home Assistant system a fixed IP on your network before you configure port forwarding. You can do this either on the computer itself (see the [install guide](/hassio/installation/) or via a static lease on your router.
|
||||||
|
@ -13,7 +13,7 @@ Load and update configuration files for Home Assistant from a GIT repository.
|
|||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"repository": "https://example.com/my_configs",
|
"repository": "https://example.com/my_configs.git",
|
||||||
"auto_restart": false,
|
"auto_restart": false,
|
||||||
"repeat": {
|
"repeat": {
|
||||||
"active": false,
|
"active": false,
|
||||||
@ -32,7 +32,7 @@ Load and update configuration files for Home Assistant from a GIT repository.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
- **repository** (*Required*): GIT url to your repository.
|
- **repository** (*Required*): GIT url to your repository. You have to add .git to your GITHub-Repository-URL (see example Config)
|
||||||
- **auto_restart** (*Optional*): Make a restart of Home-Assistant if the config have change and is valid.
|
- **auto_restart** (*Optional*): Make a restart of Home-Assistant if the config have change and is valid.
|
||||||
- **repeat/active** (*Optional*): Pull periodic for GIT updates.
|
- **repeat/active** (*Optional*): Pull periodic for GIT updates.
|
||||||
- **repeat/interval** (*Optional*): Pull all x seconds and look for changes.
|
- **repeat/interval** (*Optional*): Pull all x seconds and look for changes.
|
||||||
@ -44,4 +44,8 @@ Load and update configuration files for Home Assistant from a GIT repository.
|
|||||||
* **ed25519**
|
* **ed25519**
|
||||||
* **rsa**
|
* **rsa**
|
||||||
|
|
||||||
The protocol is typically known by the suffix of the private key --e.g., a key file named `id_rsa` will be a private key using "rsa" protocol.
|
The protocol is typically known by the suffix of the private key --e.g., a key file named `id_rsa` will be a private key using "rsa" protocol.
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
You should only use this add-on if you do not have an existing configuration or if your existing configuration is already in a git repository. If the script does not find the necessary git files in your configuration folder, it will delete anything that might be there. Please ensure that there is a `.git` folder before using this. You can verify this by listing the items in the configuration folder including hidden files. The command is `ls -a /config`.
|
||||||
|
</p>
|
||||||
|
@ -10,7 +10,11 @@ footer: true
|
|||||||
featured: true
|
featured: true
|
||||||
---
|
---
|
||||||
|
|
||||||
[Google Assistant][GoogleAssistant] is an AI-powered voice assistant that runs on the Raspberry Pi and x86 platforms and interact over [api.ai] with Home-Assistant. You can also use [Google Actions][GoogleActions] to extend its functionality.
|
<p class='note'>
|
||||||
|
If you are wanting to integrate your Google Home, or mobile phone running Google Assistant, with Home Assistant then you want the [Google Assistant component](https://home-assistant.io/components/google_assistant/).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
[Google Assistant][GoogleAssistant] is an AI-powered voice assistant that runs on the Raspberry Pi and x86 platforms and interact via the [DialogFlow][comp] integration with Home-Assistant. You can also use [Google Actions][GoogleActions] to extend its functionality.
|
||||||
|
|
||||||
To enable access to the Google Assistant API, do the following:
|
To enable access to the Google Assistant API, do the following:
|
||||||
|
|
||||||
@ -67,14 +71,13 @@ Configuration variables:
|
|||||||
|
|
||||||
### {% linkable_title Home Assistant configuration %}
|
### {% linkable_title Home Assistant configuration %}
|
||||||
|
|
||||||
Use the Home Assistant [api.ai component][comp] to integrate the add-on into Home Assistant.
|
Use the Home Assistant [DialogFlow component][comp] to integrate the add-on into Home Assistant.
|
||||||
|
|
||||||
|
|
||||||
[GoogleAssistant]: https://assistant.google.com/
|
[GoogleAssistant]: https://assistant.google.com/
|
||||||
[GoogleActions]: https://actions.google.com/
|
[GoogleActions]: https://actions.google.com/
|
||||||
[api.ai]: https://api.ai/
|
|
||||||
[Samba]: /addons/samba/
|
[Samba]: /addons/samba/
|
||||||
[comp]: /components/apiai/
|
[comp]: /components/dialogflow/
|
||||||
[project]: https://console.cloud.google.com/project
|
[project]: https://console.cloud.google.com/project
|
||||||
[API]: https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview
|
[API]: https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview
|
||||||
[oauthclient]: https://console.developers.google.com/apis/credentials/oauthclient
|
[oauthclient]: https://console.developers.google.com/apis/credentials/oauthclient
|
||||||
|
70
source/_addons/homematic.markdown
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "HomeMatic"
|
||||||
|
description: "HomeMatic hardware support to turn you Home-Assistant into a CCU."
|
||||||
|
date: 2017-04-30 13:28
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
---
|
||||||
|
|
||||||
|
Set up a [HomeMatic](https://github.com/eq-3/occu) hardware layer. At the moment we don't support hmIP but that is in progress. For learning and handling devices use our internal homematic panel and services (in progress) or use [Homematic-Manager](https://github.com/hobbyquaker/homematic-manager) > 2.0.
|
||||||
|
|
||||||
|
The logic layer will be Home-Assistant. There is no ReGa or other logic layer installed. You can't import exists configuration, you need new learn it into Home-Assistant.
|
||||||
|
|
||||||
|
Follow devices will be supported and tested:
|
||||||
|
- [HM-MOD-RPI-PCB](https://www.elv.ch/homematic-funkmodul-fuer-raspberry-pi-bausatz.html)
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"rf_enable": true,
|
||||||
|
"rf": [
|
||||||
|
{
|
||||||
|
"type": "CCU2",
|
||||||
|
"device": "/dev/ttyAMA0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"wired_enable": false,
|
||||||
|
"wired": [
|
||||||
|
{
|
||||||
|
"serial": "xy",
|
||||||
|
"key": "abc",
|
||||||
|
"ip": "192.168.0.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **rf_enable** (*Require*): Boolean. Enable or disable BidCoS-RF.
|
||||||
|
- **wired_enable** (*Require*): Boolean. Enable or disable BidCoS-Wired.
|
||||||
|
|
||||||
|
For RF devices
|
||||||
|
- **type** (*Require*): Device type for RFD service. Look into handbook of your device.
|
||||||
|
- **device** (*Require*): Device on host.
|
||||||
|
|
||||||
|
For RF devices
|
||||||
|
- **serial** (*Require*): Serial number of device.
|
||||||
|
- **key** (*Require*): Encrypted key.
|
||||||
|
- **ip** (*Require*): IP address of lan gateway.
|
||||||
|
|
||||||
|
## {% linkable_title Home Assistant configuration %}
|
||||||
|
|
||||||
|
Use the following configuration in Home Assistant to use it:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
homematic:
|
||||||
|
interfaces:
|
||||||
|
BidCoS-RF:
|
||||||
|
host: core-homematic
|
||||||
|
port: 2001
|
||||||
|
```
|
||||||
|
|
||||||
|
## {% linkable_title Raspberry Pi3 %}
|
||||||
|
|
||||||
|
With HM-MOD-PRI-PCB you need add follow into your `config.txt` on boot partition:
|
||||||
|
```
|
||||||
|
dtoverlay=pi3-miniuart-bt
|
||||||
|
```
|
@ -16,13 +16,8 @@ You should not use this if you are also using the [DuckDNS add-on]. The DuckDNS
|
|||||||
|
|
||||||
Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration.
|
Setup and manage a [Let's Encrypt](https://letsencrypt.org/) certificate. This will create a certificate on the first run and will auto-renew if the certificate is within 30 days of expiration.
|
||||||
|
|
||||||
<p class='note warning'>
|
|
||||||
This add-on uses ports 80/443 to verify the certificate request. You will need to stop all other add-ons that also use these ports. If you don't need a port (like with https you don't need port 80) you can remove this from network config.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"challenge": "https",
|
|
||||||
"email": "example@example.com",
|
"email": "example@example.com",
|
||||||
"domains": ["example.com", "mqtt.example.com", "hass.example.com"]
|
"domains": ["example.com", "mqtt.example.com", "hass.example.com"]
|
||||||
}
|
}
|
||||||
@ -30,7 +25,6 @@ This add-on uses ports 80/443 to verify the certificate request. You will need t
|
|||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **challenge** (*Optional*): Default it use 443 ('https') you can change it to 'http' for use port 80.
|
|
||||||
- **email** (*Required*): Your email address for registration on Let's Encrypt.
|
- **email** (*Required*): Your email address for registration on Let's Encrypt.
|
||||||
- **domains** (*Required*): A list of domains to create/renew the certificate.
|
- **domains** (*Required*): A list of domains to create/renew the certificate.
|
||||||
|
|
||||||
@ -45,6 +39,6 @@ http:
|
|||||||
ssl_key: /ssl/privkey.pem
|
ssl_key: /ssl/privkey.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
If you use a other port as `8123` or a SSL proxy, change the port number.
|
If you use another port such as `8123` or a SSL proxy, change the port number.
|
||||||
|
|
||||||
[DuckDNS add-on]: /addons/duckdns/
|
[DuckDNS add-on]: /addons/duckdns/
|
||||||
|
@ -34,15 +34,15 @@ Set up a [mariadb](https://mariadb.org/) SQL server. It supports multiple databa
|
|||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **databases** (*Require*): Listen of databases.
|
- **databases** (*Require*): List of databases.
|
||||||
- **logins** (*Require*): Listen of logindata they will create or update.
|
- **logins** (*Require*): List of SQL accounts to create or update.
|
||||||
- **username** (*Require*): Username for login.
|
- **username** (*Require*): Username for account.
|
||||||
- **host** (*Require*): Host for login, if you need a login with multibe hosts, use '%'.
|
- **host** (*Require*): Host for account. If you need an account on multiple hosts, use '%'.
|
||||||
- **password** (*Require*): Password for login.
|
- **password** (*Require*): Password for account.
|
||||||
- **rights** (*Require*): Listen of rights to be handle.
|
- **rights** (*Require*): List of rights to be granted.
|
||||||
- **username** (*Require*): Username for grant rights.
|
- **username** (*Require*): Username for granted rights.
|
||||||
- **host** (*Require*): Host is a part of username like above.
|
- **host** (*Require*): Host is a part of username like above.
|
||||||
- **database** (*Require*): Database name to grant this user rights to.
|
- **database** (*Require*): Database name on which to grant user rights.
|
||||||
- **grant** (*Require*): SQL grant part for access too.
|
- **grant** (*Require*): SQL grant part for access too.
|
||||||
|
|
||||||
## {% linkable_title Home Assistant configuration %}
|
## {% linkable_title Home Assistant configuration %}
|
||||||
|
@ -23,7 +23,9 @@ Set up [Mosquitto](https://mosquitto.org/) as MQTT broker.
|
|||||||
"customize": {
|
"customize": {
|
||||||
"active": false,
|
"active": false,
|
||||||
"folder": "mosquitto"
|
"folder": "mosquitto"
|
||||||
}
|
},
|
||||||
|
"certfile": "fullchain.pem",
|
||||||
|
"keyfile": "privkey.pem"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -48,3 +50,12 @@ To use the Mosquitto as [broker](/docs/mqtt/broker/#run-your-own) add the follow
|
|||||||
mqtt:
|
mqtt:
|
||||||
broker: core-mosquitto
|
broker: core-mosquitto
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If username and password are set up in add-on, your `configuration.yaml` file should contain that data.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
mqtt:
|
||||||
|
broker: core-mosquitto
|
||||||
|
username: YOUR_USERNAME
|
||||||
|
password: YOUR_PASSWORD
|
||||||
|
```
|
||||||
|
103
source/_addons/tellstick.markdown
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "TellStick"
|
||||||
|
description: "Telldus TellStick service enabler and tools."
|
||||||
|
date: 2017-12-04 21:31
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
featured: false
|
||||||
|
---
|
||||||
|
|
||||||
|
Setting up the [Tellstick](http://telldus.com) service and tools contained in the [telldus-core](http://developer.telldus.com/) package and adding configuration to enable Tellstick and Tellstick Duo to work on your Hass.io.
|
||||||
|
|
||||||
|
To use this add-on, you first install it from the list of Built-in add-ons in Hass.io.
|
||||||
|
After installation you are presented with a default and example configuration, to alter this you must follow both the JSON format and also be aligned with the [valid parameters for Tellstick configuration file (tellstick.conf)](https://developer.telldus.com/wiki/TellStick_conf).
|
||||||
|
|
||||||
|
After any changes has been made to the configuration you need to restart the add-on for the changes to take effect.
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **id** (*Required*): This is 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 parameter model 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 selflearning 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 house.
|
||||||
|
- **fade** (*Optional*): Fade is either `true` or `false` and tells a dimmer if is should fade smooth or instant between values (only for IKEA protocol as it seems).
|
||||||
|
- **code** (*Optional*): A number series based on ones and zeroes often used for dip-switch based devices.
|
||||||
|
|
||||||
|
You will need to add internal communication details to `configuration.yaml` to enable the integration from Hass.io and the add-on.
|
||||||
|
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
|
||||||
|
tellstick:
|
||||||
|
host: core-tellstick
|
||||||
|
port: [50800, 50801]
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
To add [lights](https://home-assistant.io/components/light.tellstick/), [sensors](https://home-assistant.io/components/sensor.tellstick/) and [switches](https://home-assistant.io/components/switch.tellstick/) you follow the guidelines for each type individually that is [described for Home Assistant](https://home-assistant.io/components/tellstick/)
|
||||||
|
|
||||||
|
The add-on will also enable you to interact with tdtool via a Home Assistant services call, see example below for selflearning device.
|
||||||
|
|
||||||
|
## {% linkable_title Examples %}
|
||||||
|
|
||||||
|
|
||||||
|
Example for adding more devices in the add-on configuration (note the comma separator between devices):
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"devices": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"name": "Outdoor light",
|
||||||
|
"protocol": "everflourish",
|
||||||
|
"model": "selflearning-switch",
|
||||||
|
"house": "A",
|
||||||
|
"unit": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"name": "Hallway dimmer",
|
||||||
|
"protocol": "risingsun",
|
||||||
|
"model": "selflearning-dimmer",
|
||||||
|
"house": "A",
|
||||||
|
"unit": "2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Service calls
|
||||||
|
|
||||||
|
If you wish to teach a selflearning device in your TellStick configuration:
|
||||||
|
|
||||||
|
Go to Home Assistant [service call](http://hassio.local:8123/dev-service) in Developer tools and select.
|
||||||
|
- Service: `hassio.addon_stdin`
|
||||||
|
- Enter service Data:
|
||||||
|
`{"addon":"core_tellstick","input":{"function":"learn","device":"1"}}`
|
||||||
|
|
||||||
|
Replace `1` with the corresponding ID of the device in your TellStick configuration.
|
||||||
|
|
||||||
|
You can also use this to list devices or sensors and read the output in the add-on log:
|
||||||
|
`{"addon":"core_tellstick","input":{"function":"list-sensors"}}`
|
||||||
|
|
||||||
|
|
||||||
|
#### Supported service commands
|
||||||
|
|
||||||
|
- `"function":"list"`: List currently configured devices with name and device id and all discovered sensors.
|
||||||
|
|
||||||
|
- `"function":"list-sensors"`
|
||||||
|
- `"function":"list-devices"`: Alternative devices/sensors listing: Shows devices and/or sensors using key=value format (with tabs as separators, one device/sensor per line, no header lines.)
|
||||||
|
|
||||||
|
- `"function":"on","device":"x"`: Turns on device. ’x’ could either be an integer of the device-id, or the name of the device.
|
||||||
|
|
||||||
|
- `"function":"off","device":"x"`: Turns off device. ’x’ could either be an integer of the device-id, or the name of the device.
|
||||||
|
|
||||||
|
- `"function":"bell","device":"x"`: Sends bell command to devices supporting this. ’x’ could either be an integer of the device-id, or the name of the device.
|
||||||
|
|
||||||
|
- `"function":"learn","device":"x"`: Sends a special learn command to devices supporting this. This is normaly devices of ’selflearning’ type. ’x’ could either be an integer of the device-id, or the name of the device.
|
59
source/_components/ads.markdown
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "ADS"
|
||||||
|
description: Connect Home Assistant to TwinCAT devices via the ADS interface
|
||||||
|
date: 2017-12-05 12:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: beckhoff.png
|
||||||
|
ha_category: Hub
|
||||||
|
ha_release: "0.60"
|
||||||
|
ha_iot_class: "Local Push"
|
||||||
|
---
|
||||||
|
|
||||||
|
The ADS (automation device specification) describes a device-independent and fieldbus independent interface for communication between [Beckhoff](https://www.beckhoff.com/) automation devices running [TwinCAT](http://www.beckhoff.hu/english.asp?twincat/default.htm) and other devices implementing this interface.
|
||||||
|
|
||||||
|
To enable ADS, add the following lines to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
ads:
|
||||||
|
device: '127.0.0.1.1.1'
|
||||||
|
port: 48898
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
device:
|
||||||
|
required: true
|
||||||
|
description: The AMS NetId that identifies the device.
|
||||||
|
type: string
|
||||||
|
port:
|
||||||
|
required: true
|
||||||
|
description: The port that runs the AMS server on the device, typically this would be 801 or 851.
|
||||||
|
type: int
|
||||||
|
ip_address:
|
||||||
|
required: false
|
||||||
|
description: The IP address of the ADS device, if not set the first 4 bytes of the device id will be used.
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
## {% linkable_title Service %}
|
||||||
|
|
||||||
|
The ADS component will register the service `write_by_name` allowing you to write a value to a variable on your ADS device.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"adsvar": ".myvariable",
|
||||||
|
"adstype": "int",
|
||||||
|
"value": 123
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Service parameters:
|
||||||
|
|
||||||
|
- **adsvar**: Name of the variable on the ADS device. To access global variables on *TwinCAT2* use a prepending dot `.myvariable`, for TwinCAT3 use
|
||||||
|
`GBL.myvariable`.
|
||||||
|
- **adstype**: Specify the type of the variable. Use one of the following: `int`, `byte`, `uint`, `bool`
|
||||||
|
- **value**: The value that will be written in the variable.
|
@ -18,3 +18,58 @@ The `alarmdecoder` alarm control panel platform allows you to control your [Alar
|
|||||||
|
|
||||||
The requirement is that you have setup your [AlarmDecoder hub](/components/alarmdecoder/).
|
The requirement is that you have setup your [AlarmDecoder hub](/components/alarmdecoder/).
|
||||||
|
|
||||||
|
### {% linkable_title Services %}
|
||||||
|
|
||||||
|
The Alarm Decoder component gives you access to several services for you to control your alarm with.
|
||||||
|
|
||||||
|
- `alarm_arm_away`: Arms the alarm in away mode; all faults will trigger the alarm.
|
||||||
|
- `alarm_arm_home`: Arms the alarm in stay mode; faults to the doors or windows will trigger the alarm.
|
||||||
|
- `alarm_arm_night`: Arms the alarm in instant mode; all faults will trigger the alarm. Additionally, the entry delay is turned off on the doors.
|
||||||
|
- `alarm_disarm`: Disarms the alarm from any state. Also clears a `check_zone` flag after an alarm was triggered.
|
||||||
|
- `alarmdecoder_alarm_toggle_chime`: Toggles the alarm's chime state.
|
||||||
|
|
||||||
|
**Note**: `alarm_arm_custom_bypass` and `alarm_trigger`, while available in the services list in Home Assistant, are not currently implemented in the Alarm Decoder component.
|
||||||
|
|
||||||
|
### {% linkable_title Attributes %}
|
||||||
|
|
||||||
|
There are several attributes available on the alarm panel to give you more information about your alarm.
|
||||||
|
|
||||||
|
- `ac_power`: Set to `true` if your system has AC power supplying it.
|
||||||
|
- `backlight_on`: Set to `true` if your keypad's backlight is on.
|
||||||
|
- `battery_low`: Set to `true` if your system's back-up battery is low.
|
||||||
|
- `check_zone`: Set to `true` if your system was recently triggered. When `check_zone` is `true`, it must be cleared by entering your code + 1 before attempting to rearm your alarm.
|
||||||
|
- `chime`: Set to `true` if your system's chime is activated. When activated, your system will beep anytime a door or window is faulted while the alarm is disarmed.
|
||||||
|
- `entry_delay_off`: Set to `true` if your system is in "Instant" mode, meaning the alarm will sound on any faults.
|
||||||
|
- `programming_mode`: Set to `true` if your system is in programming mode.
|
||||||
|
- `ready`: Set to `true` if your system is ready to be armed. Any faults, including motions sensors, will make this value `false`.
|
||||||
|
- `zone_bypassed`: Set to `true` if your system is currently bypassing a zone.
|
||||||
|
|
||||||
|
### {% linkable_title Examples %}
|
||||||
|
|
||||||
|
Using a combination of the available services and attributes, you can create switch templates.
|
||||||
|
|
||||||
|
#### {% linkable_title Chime Status and Control %}
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
- platform: template
|
||||||
|
switches:
|
||||||
|
alarm_chime:
|
||||||
|
friendly_name: Chime
|
||||||
|
value_template: "{{ is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) }}"
|
||||||
|
turn_on:
|
||||||
|
service: alarm_control_panel.alarmdecoder_alarm_toggle_chime
|
||||||
|
data:
|
||||||
|
code: !secret alarm_code
|
||||||
|
turn_off:
|
||||||
|
service: alarm_control_panel.alarmdecoder_alarm_toggle_chime
|
||||||
|
data:
|
||||||
|
code: !secret alarm_code
|
||||||
|
icon_template: >-
|
||||||
|
{% if is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) %}
|
||||||
|
mdi:bell-ring
|
||||||
|
{% else %}
|
||||||
|
mdi:bell-off
|
||||||
|
{% endif %}
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling"
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
The `arlo` control panel platform allows you to control your [Arlo](https://arlo.netgear.com/) base stations.
|
The `arlo` alarm control panel allows you to control your [Arlo](https://arlo.netgear.com/) base stations. You can use it to switch modes and trigger alarms from Home Assistant.
|
||||||
|
|
||||||
To get your [Arlo](https://arlo.netgear.com/) base stations working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo).
|
To get your [Arlo](https://arlo.netgear.com/) base stations working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo).
|
||||||
|
|
||||||
@ -26,7 +26,53 @@ alarm_control_panel:
|
|||||||
- platform: arlo
|
- platform: arlo
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
{% configuration %}
|
||||||
|
home_mode_name:
|
||||||
|
description: "Arlo base station does not have a built-in home mode. You can map one of your custom modes to home assistant's home mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match exactly as you set it up in the Arlo app."
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
away_mode_name:
|
||||||
|
description: "Arlo base station does not have a built-in away mode. You can map one of your custom modes to home assistant's away mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match eactly as you set it up in the Arlo app."
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: "`Armed` mode in Arlo"
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
## {% linkable_title Examples %}
|
||||||
|
|
||||||
|
These examples are based on an Arlo base station named `my_arlo_base_station`. Replace this with the name of your base station's `entity_id`.
|
||||||
|
|
||||||
|
Arming the Arlo Base Station when leaving.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- id: arm_arlo_when_leaving
|
||||||
|
alias: Arm Arlo cameras when leaving
|
||||||
|
trigger:
|
||||||
|
platform: state
|
||||||
|
entity_id: group.family
|
||||||
|
from: home
|
||||||
|
to: not_home
|
||||||
|
action:
|
||||||
|
service: alarm_control_panel.alarm_arm_away
|
||||||
|
entity_id: alarm_control_panel.my_arlo_base_station
|
||||||
|
```
|
||||||
|
|
||||||
|
Setting Arlo to a custom mode (mapped to `home_mode_name` in `configuration.yaml`) when arriving.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- id: disarm_arlo_when_arriving
|
||||||
|
alias: Set Arlo cameras to Home mode when arriving
|
||||||
|
trigger:
|
||||||
|
platform: state
|
||||||
|
entity_id: group.family
|
||||||
|
from: not_home
|
||||||
|
to: home
|
||||||
|
action:
|
||||||
|
service: alarm_control_panel.alarm_arm_home
|
||||||
|
entity_id: alarm_control_panel.my_arlo_base_station
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also completely disarm the Arlo base station by calling the `alarm_control_panel.alarm_disarm` service, and trigger the alarm by calling the `alarm_control_panel.alarm_trigger` service.
|
||||||
|
|
||||||
|
More examples and configuration options can be found on the [Manual Alarm Control page](/components/alarm_control_panel.manual/#examples).
|
||||||
|
|
||||||
- **home_mode_name**: (*Optional*): Arlo base station does not have a built-in home mode. You can map one of your custom modes to home assistant's home mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match exactly as you set it up in the Arlo app.
|
|
||||||
- **away_mode_name**: (*Optional*): Like the home mode, the Arlo base station does not have a built-in away mode, however, you can map a custom mode from the Arlo app to Home Assistant with this variable, just make sure the name matches exactly what you have set up in the Arlo app.
|
|
||||||
|
18
source/_components/alarm_control_panel.canary.markdown
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Canary Alarm Control Panel"
|
||||||
|
description: "Instructions on how to integrate your Canary devices into Home Assistant."
|
||||||
|
date: 2017-12-07 22:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: canary.png
|
||||||
|
ha_category: Alarm
|
||||||
|
ha_release: "0.60"
|
||||||
|
ha_iot_class: "Cloud Polling"
|
||||||
|
---
|
||||||
|
|
||||||
|
The `canary` alarm control panel platform allows you to integrate your [Canary](https://canary.is) alarm system in Home Assistant.
|
||||||
|
|
||||||
|
To add `canary` alarm control panel to your installation, follow instructions in [Canary component](/components/canary/).
|
@ -14,7 +14,9 @@ ha_release: 0.31
|
|||||||
|
|
||||||
The `concord232` platform provides integration with GE, Interlogix (and other brands) alarm panels that support the RS-232 Automation Control Panel interface module (or have it built in). Supported panels include Concord 4.
|
The `concord232` platform provides integration with GE, Interlogix (and other brands) alarm panels that support the RS-232 Automation Control Panel interface module (or have it built in). Supported panels include Concord 4.
|
||||||
|
|
||||||
To enable this, add the following lines to your `configuration.yaml`:
|
To use this platform, you will need to have the external concord232 client and server installed. The server must be running on the device which is connected to the automation module's serial port. The client must be installed on the machine running Home Assistant. These may often be the same machine, but do not have to be. For additional details in setting up and testing the client and server, see https://github.com/JasonCarter80/concord232.
|
||||||
|
|
||||||
|
To enable this platform in home assistant, add the following lines to your `configuration.yaml`:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
|
@ -12,11 +12,11 @@ ha_release: 0.51
|
|||||||
ha_category: Alarm
|
ha_category: Alarm
|
||||||
---
|
---
|
||||||
|
|
||||||
The `egardia` platform enables the ability to control an [Egardia](http://egardia.com/)/Woonveilig control panel. These alarm panels are known under different brand names across the world, including Woonveilig in the Netherlands. This was tested on a Gate01 version of the Egardia/Woonveilig platform.
|
The `egardia` platform enables the ability to control an [Egardia](http://egardia.com/)/[Woonveilig](http://woonveilig.nl) control panel. These alarm panels are known under different brand names across the world, including Woonveilig in the Netherlands. This was tested on the GATE-01, GATE-02 and GATE-03 versions of the Egardia/Woonveilig platform.
|
||||||
|
|
||||||
You will need to know the IP of your alarm panel on your local network. Test if you can login to the panel by browsing to the IP address and log in using your Egardia/Woonveilig account.
|
You will need to know the IP of your alarm panel on your local network. Test if you can login to the panel by browsing to the IP address and log in using your Egardia/Woonveilig account.
|
||||||
|
|
||||||
To enable this, add the following lines to your `configuration.yaml`:
|
To enable the integration with your alarm panel, add the following lines to your `configuration.yaml` file:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -32,17 +32,18 @@ Configuration variables:
|
|||||||
- **host** (*Required*): The local IP address of the Egardia/Woonveilig alarm panel.
|
- **host** (*Required*): The local IP address of the Egardia/Woonveilig alarm panel.
|
||||||
- **username** (*Required*): Username for the Egardia/Woonveilig account.
|
- **username** (*Required*): Username for the Egardia/Woonveilig account.
|
||||||
- **password** (*Required*): Password for Egardia/Woonveilig account.
|
- **password** (*Required*): Password for Egardia/Woonveilig account.
|
||||||
|
- **version** (*Optional*): The version of the Egardia system. `GATE-01`, `GATE-02` and `GATE-03` are currently supported. Defaults to `GATE-01`.
|
||||||
- **port** (*Optional*): The port of the alarm panel. Defaults to 80.
|
- **port** (*Optional*): The port of the alarm panel. Defaults to 80.
|
||||||
- **name** (*Optional*): Name to use for the alarm panel. Defaults to `Egardia`.
|
- **name** (*Optional*): Name to use for the alarm panel. Defaults to `Egardia`.
|
||||||
- **report_server_enabled** (*Optional*): Enable reporting by server. Defaults to `False`.
|
- **report_server_enabled** (*Optional*): Enable reporting by server. Defaults to `False`.
|
||||||
- **report_server_port** (*Optional*): Port of the Egardia server. Defaults to 85.
|
- **report_server_port** (*Optional*): Port of the Egardia server. Defaults to 52010.
|
||||||
- **report_server_codes** list (*Optional*): List of codes for the different states.
|
- **report_server_codes** list (*Optional*): List of codes for the different states.
|
||||||
|
|
||||||
Note that this basic configuration will only enable you to read the armed/armed away/disarmed status of your alarm and will **not** update the status if the alarm is triggered. This is because of how Egardia built their system. The alarm triggers normally go through their servers.
|
Note that this basic configuration will only enable you to read the armed/armed away/disarmed status of your alarm and will **not** update the status if the alarm is triggered. This is because of how Egardia built their system. The alarm triggers normally go through their servers.
|
||||||
You can change this, however, using the following procedure. This is a more advanced configuration.
|
You can change this, however, using the following procedure. This is a more advanced configuration.
|
||||||
|
|
||||||
1. Log in into your alarm system's control panel. You will need to access http://[IP of your control panel]. You know this already since you need it in the basic configuration from above. Log in to the control panel with your Egardia/Woonveilig username and password.
|
1. Log in into your alarm system's control panel. You will need to access http://[IP of your control panel]. You know this already since you need it in the basic configuration from above. Log in to the control panel with your Egardia/Woonveilig username and password.
|
||||||
2. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. Also, update the port number 85 or to anything you like. The provided software that you will set up in the next steps runs on port 85 by default. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'.
|
2. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. You can leave the port number set to 52010 or change it to anything you like. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'.
|
||||||
3. On your Home Assistant machine run `$ sudo python3 egardiaserver.py`. Refer to the [python-egardia repository](https://github.com/jeroenterheerdt/python-egardia) for detailed documentation on parameters. This will receive status codes from your alarm control panel and display them. You will need the codes to include in your configuration.yaml. Make sure to change the status of your alarm to all states (disarm, arm, home) by all means possible (all users, remotes, web login, app) as well as trigger the alarm in all ways possible to get 100% coverage. **Before triggering the alarm it might be good to disable the siren temporarily (can be done in Panel Settings).**
|
3. On your Home Assistant machine run `$ sudo python3 egardiaserver.py`. Refer to the [python-egardia repository](https://github.com/jeroenterheerdt/python-egardia) for detailed documentation on parameters. This will receive status codes from your alarm control panel and display them. You will need the codes to include in your configuration.yaml. Make sure to change the status of your alarm to all states (disarm, arm, home) by all means possible (all users, remotes, web login, app) as well as trigger the alarm in all ways possible to get 100% coverage. **Before triggering the alarm it might be good to disable the siren temporarily (can be done in Panel Settings).**
|
||||||
4. Once you have the codes, update your `configuration.yaml`:
|
4. Once you have the codes, update your `configuration.yaml`:
|
||||||
```yaml
|
```yaml
|
||||||
@ -53,7 +54,7 @@ alarm_control_panel:
|
|||||||
username: YOUR_USERNAME
|
username: YOUR_USERNAME
|
||||||
password: YOUR_PASSWORD
|
password: YOUR_PASSWORD
|
||||||
report_server_enabled: True
|
report_server_enabled: True
|
||||||
report_server_port: PORT_OF_EGARDIASERVER (85 as per the instructions above)
|
report_server_port: PORT_OF_EGARDIASERVER (optional, defaults to 52010)
|
||||||
report_server_codes:
|
report_server_codes:
|
||||||
arm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
|
arm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
|
||||||
disarm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
|
disarm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
|
||||||
@ -62,29 +63,6 @@ alarm_control_panel:
|
|||||||
ignore: XXXXXXXXXXXXXXXX
|
ignore: XXXXXXXXXXXXXXXX
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that for triggered, arm and disarm multiple codes can be entered since each sensor triggers with a different code and each user of the system has its own arm and disarm codes. Also note that your system will do regular system checks which will be reported as well. Since Home Assistant provides no way of handling them properly, you can enter those codes as ignore (again, multiple codes can be used here). The egardia component will ignore these codes and continue returning the old status if it receives any of the codes that are listed as ignore. This is useful for example when you have armed your alarm at night: normally a system check will occur at least once during the night and if that code is not specified anywhere Home Assistant will set the status of the alarm to its default, which is unarmed. This is in fact wrong. Listing the code as ignore changes this behavior and Home Assistant will continue to show the status the alarm is in (disarm, arm, home, triggered) even when system checks occur.
|
Note that for *triggered*, *arm* and *disarm* multiple codes can be entered since each sensor triggers with a different code and each user of the system has its own arm and disarm codes. Also note that your system will do regular system checks which will be reported as well. Since Home Assistant provides no way of handling them properly, you can enter those codes as *ignore* (again, multiple codes can be used here). The egardia component will ignore these codes and continue returning the old status if it receives any of the codes that are listed as ignore. This is useful for example when you have armed your alarm at night: normally a system check will occur at least once during the night and if that code is not specified anywhere Home Assistant will set the status of the alarm to its default, which is unarmed. This is in fact wrong. Listing the code as ignore changes this behavior and Home Assistant will continue to show the status the alarm is in (disarm, arm, home, triggered) even when system checks occur.
|
||||||
|
|
||||||
5. Start the `egardiaserver.py` script on boot of your Home Assistant machine, for example by using `systemctl` by `systemd`. To use this method, create a shell script named `egardiaserver.sh` that contains something like the following:
|
5. Test your setup and enjoy. The component will update if the alarm status changes, including triggers. You can use this to build your own automations and send notifications as you wish. *Note*: previous versions required a separate egardiaserver to be set up. This is no longer necessary and corresponding system services can be removed (using systemctl).
|
||||||
|
|
||||||
```bash
|
|
||||||
$ source /srv/homeassistant/bin/activate
|
|
||||||
$ python3 /srv/homeassistant/lib/python3.5/site-packages/pythonegardia/egardiaserver.py -host [YOURHOST] -password '[YOURPASSWORD]' -ssl True > /tmp/egardiaserver.log 2>&1
|
|
||||||
```
|
|
||||||
|
|
||||||
Mark it as executable (`$ chmod +x`) and run `sudo nano /lib/systemd/system/egardiaserver.service`. Enter the following into the `egardiaserver.service` file:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
[Unit]
|
|
||||||
Description=Egardia Server Service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart=/bin/bash /srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/pythonegardia/egardiaserver.sh
|
|
||||||
StandardOutput=journal+console
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
Alias=egardiaserver.service
|
|
||||||
```
|
|
||||||
|
|
||||||
Save and then run `sudo systemctl enable egardiaserver.service` and `sudo systemctl start egardiaserver.service`.
|
|
||||||
6. Test your setup and enjoy. The component will update if the alarm status changes, including triggers. You can use this to build your own automations and send notifications as you wish.
|
|
||||||
|
48
source/_components/alarm_control_panel.ialarm.markdown
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Antifurto365 iAlarm Control Panel"
|
||||||
|
description: "Instructions how to integrate iAlarms alarms into Home Assistant."
|
||||||
|
date: 2017-11-30 20:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: antifurto365-ialarm.png
|
||||||
|
ha_category: Alarm
|
||||||
|
ha_release: "0.60"
|
||||||
|
---
|
||||||
|
|
||||||
|
The `ialarm` platform provides connectivity with the [Antifurto365](https://www.antifurtocasa365.it/) iAlarm alarm systems.
|
||||||
|
|
||||||
|
This platform supports the following services: `alarm_arm_away`, `alarm_arm_home` and `alarm_disarm`.
|
||||||
|
|
||||||
|
To enable this, add the following lines to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
alarm_control_panel:
|
||||||
|
- platform: ialarm
|
||||||
|
host: ALARM_SYSTEM_IP
|
||||||
|
username: YOUR_USERNAME
|
||||||
|
password: YOUR_PASSWORD
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
host:
|
||||||
|
description: The IP address of the iAlarm device on your home network.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
username:
|
||||||
|
description: Username used to sign into the iAlarm web client (should be admin by default).
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
password:
|
||||||
|
description: Password used to sign into the iAlarm web client. If it has a leading zero you need to put the password within quotes.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: Name of device in Home Assistant.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
@ -25,13 +25,62 @@ Configuration variables:
|
|||||||
|
|
||||||
- **name** (*Optional*): The name of the alarm. Default is "HA Alarm".
|
- **name** (*Optional*): The name of the alarm. Default is "HA Alarm".
|
||||||
- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend.
|
- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend.
|
||||||
- **pending_time** (*Optional*): The time in seconds of the pending time before arming the alarm. Default is 60 seconds.
|
- **code_template** (*Optional*): If defined, returns a code to enable or disable the alarm in the frontend; an empty string disables checking the code. Inside the template, the variables **from_state** and **to_state** identify the current and desired state. Only one of **code** and **code_template** can be specified.
|
||||||
|
- **delay_time** (*Optional*): The time in seconds of the pending time before triggering the alarm. Default is 0 seconds.
|
||||||
|
- **pending_time** (*Optional*): The time in seconds of the pending time before effecting a state change. Default is 60 seconds.
|
||||||
- **trigger_time** (*Optional*): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds.
|
- **trigger_time** (*Optional*): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds.
|
||||||
- **disarm_after_trigger** (*Optional*): If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state.
|
- **disarm_after_trigger** (*Optional*): If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state.
|
||||||
- **armed_home/armed_away/armed_night/triggered** (*Optional*): State specific settings
|
- **armed_custom_bypass/armed_home/armed_away/armed_night/disarmed/triggered** (*Optional*): State specific settings
|
||||||
- **pending_time**: State specific pending time override.
|
- **delay_time** (*Optional*): State specific setting for **delay_time** (all states except **triggered**)
|
||||||
|
- **pending_time** (*Optional*): State specific setting for **pending_time** (all states except **disarmed**)
|
||||||
|
- **trigger_time** (*Optional*): State specific setting for **trigger_time** (all states except **triggered**)
|
||||||
|
|
||||||
In the config example below, armed_home state will have no pending time and triggered state will have pending time of 20 second whereas armed_away state will have a default pending time of 30 seconds.
|
## {% linkable_title State machine %}
|
||||||
|
|
||||||
|
The state machine of the manual alarm component is complex but powerful. The
|
||||||
|
transitions are timed according to three values, **delay_time**, **pending_time**
|
||||||
|
and **trigger_time**. The values in turn can come from the default configuration
|
||||||
|
variable or from a state-specific override.
|
||||||
|
|
||||||
|
When the alarm is armed, its state first goes to **pending** for a number
|
||||||
|
of seconds equal to the destination state's **pending_time**, and then
|
||||||
|
transitions to one of the "armed" states. Note that **code_template**
|
||||||
|
never receives "pending" in the **to_state** variable; instead,
|
||||||
|
**to_state** contains the state which the user has requested. However,
|
||||||
|
**from_state** *can* contain "pending".
|
||||||
|
|
||||||
|
When the alarm is triggered, its state goes to **pending** for a number of
|
||||||
|
seconds equal to the previous state's **delay_time** plus the triggered
|
||||||
|
state's **pending_time**. Then the alarm transitions to the "triggered"
|
||||||
|
states. The code is never checked when triggering the alarm, so the
|
||||||
|
**to_state** variable of **code_template** cannot ever contain "triggered"
|
||||||
|
either; again, **from_state** *can* contain "triggered".
|
||||||
|
|
||||||
|
The alarm remains in the "triggered" state for a number of seconds equal to the
|
||||||
|
previous state's **trigger_time**. Then, depending on **disarm_after_trigger**,
|
||||||
|
it goes back to either the previous state or **disarmed**. If the previous
|
||||||
|
state's **trigger_time** is zero, the transition to "triggered" is entirely
|
||||||
|
blocked and the alarm remains in the armed state.
|
||||||
|
|
||||||
|
Each of the settings is useful in different scenarios. **pending_time** gives
|
||||||
|
you some time to leave the building (for "armed" states) or to disarm the alarm
|
||||||
|
(for the "triggered" state).
|
||||||
|
|
||||||
|
**delay_time** can also be used to allow some time to disarm the alarm, but with
|
||||||
|
more flexibility. For example, you could specify a delay time for the
|
||||||
|
"armed away" state, in order to avoid triggering the alarm while the
|
||||||
|
garage door opens, but not for the "armed home" state.
|
||||||
|
|
||||||
|
**trigger_time** is useful to disable the alarm when disarmed, but it can also
|
||||||
|
be used for example to sound the siren for a shorter time during the night.
|
||||||
|
|
||||||
|
In the config example below:
|
||||||
|
|
||||||
|
- the disarmed state never triggers the alarm;
|
||||||
|
|
||||||
|
- the armed_home state will leave no time to leave the building or disarm the alarm;
|
||||||
|
|
||||||
|
- while other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -40,11 +89,13 @@ alarm_control_panel:
|
|||||||
name: Home Alarm
|
name: Home Alarm
|
||||||
code: 1234
|
code: 1234
|
||||||
pending_time: 30
|
pending_time: 30
|
||||||
|
delay_time: 20
|
||||||
|
trigger_time: 4
|
||||||
|
disarmed:
|
||||||
|
trigger_time: 0
|
||||||
armed_home:
|
armed_home:
|
||||||
pending_time: 0
|
pending_time: 0
|
||||||
triggered:
|
delay_time: 0
|
||||||
pending_time: 20
|
|
||||||
trigger_time: 4
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## {% linkable_title Examples %}
|
## {% linkable_title Examples %}
|
||||||
|
@ -32,6 +32,8 @@ When the state of the manual alarm changes, Home Assistant will publish one of t
|
|||||||
- 'pending'
|
- 'pending'
|
||||||
- 'triggered'
|
- 'triggered'
|
||||||
|
|
||||||
|
To use your panel in your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
alarm_control_panel:
|
alarm_control_panel:
|
||||||
@ -42,15 +44,21 @@ alarm_control_panel:
|
|||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
All configuration variables from the base manual alarm platform are available:
|
The following configuration variables from the base manual alarm platform are available:
|
||||||
|
|
||||||
- **name** (*Optional*): The name of the alarm. Default is "HA Alarm".
|
- **name** (*Optional*): The name of the alarm. Default is "HA Alarm".
|
||||||
- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend. This code is not required for MQTT interactions.
|
- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend. This code is not required for MQTT interactions.
|
||||||
- **pending_time** (*Optional*): The time in seconds of the pending time before arming the alarm. Default is 60 seconds.
|
- **code_template** (*Optional*): If defined, returns a code to enable or disable the alarm in the frontend; an empty string disables checking the code. Inside the template, the variables **from_state** and **to_state** identify the current and desired state. Only one of **code** and **code_template** can be specified.
|
||||||
|
- **delay_time** (*Optional*): The time in seconds of the pending time before triggering the alarm. Default is 0 seconds.
|
||||||
|
- **pending_time** (*Optional*): The time in seconds of the pending time before effecting a state change. Default is 60 seconds.
|
||||||
- **trigger_time** (*Optional*): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds.
|
- **trigger_time** (*Optional*): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds.
|
||||||
- **disarm_after_trigger** (*Optional*): If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state.
|
- **disarm_after_trigger** (*Optional*): If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state.
|
||||||
- **armed_home|armed_away|armed_night|triggered** (*Optional*): State specific settings
|
- **armed_home/armed_away/armed_night/disarmed/triggered** (*Optional*): State specific settings
|
||||||
- **pending_time**: State specific pending time override.
|
- **delay_time** (*Optional*): State specific setting for **delay_time** (all states except **triggered**)
|
||||||
|
- **pending_time** (*Optional*): State specific setting for **pending_time** (all states except **disarmed**)
|
||||||
|
- **trigger_time** (*Optional*): State specific setting for **trigger_time** (all states except **triggered**)
|
||||||
|
|
||||||
|
See the documentation for the [manual alarm platform](/component/alarm_control_panel.manual/) for a description.
|
||||||
|
|
||||||
Additionally, the following MQTT configuration variables are also available:
|
Additionally, the following MQTT configuration variables are also available:
|
||||||
|
|
||||||
@ -62,7 +70,11 @@ Additionally, the following MQTT configuration variables are also available:
|
|||||||
- **payload_arm_away** (*Optional*): The payload to set armed-away mode on this Alarm Panel. Default is "ARM_AWAY".
|
- **payload_arm_away** (*Optional*): The payload to set armed-away mode on this Alarm Panel. Default is "ARM_AWAY".
|
||||||
- **payload_arm_night** (*Optional*): The payload to set armed-night mode on this Alarm Panel. Default is "ARM_NIGHT".
|
- **payload_arm_night** (*Optional*): The payload to set armed-night mode on this Alarm Panel. Default is "ARM_NIGHT".
|
||||||
|
|
||||||
In the config example below, armed_home state will have no pending time and triggered state will have a pending time of 20 seconds whereas armed_away state will have a default pending time of 30 seconds.
|
In the configuration example below:
|
||||||
|
|
||||||
|
- The disarmed state never triggers the alarm.
|
||||||
|
- The armed_home state will leave no time to leave the building or disarm the alarm.
|
||||||
|
- While other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -71,11 +83,13 @@ alarm_control_panel:
|
|||||||
state_topic: home/alarm
|
state_topic: home/alarm
|
||||||
command_topic: home/alarm/set
|
command_topic: home/alarm/set
|
||||||
pending_time: 30
|
pending_time: 30
|
||||||
|
delay_time: 20
|
||||||
|
trigger_time: 4
|
||||||
|
disarmed:
|
||||||
|
trigger_time: 0
|
||||||
armed_home:
|
armed_home:
|
||||||
pending_time: 0
|
pending_time: 0
|
||||||
triggered:
|
delay_time: 0
|
||||||
pending_time: 20
|
|
||||||
trigger_time: 4
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## {% linkable_title Examples %}
|
## {% linkable_title Examples %}
|
||||||
|
@ -35,14 +35,56 @@ alarm_control_panel:
|
|||||||
command_topic: "home/alarm/set"
|
command_topic: "home/alarm/set"
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
{% configuration %}
|
||||||
|
name:
|
||||||
- **state_topic** (*Required*): The MQTT topic subscribed to receive state updates.
|
description: The name of the alarm.
|
||||||
- **command_topic** (*Required*): The MQTT topic to publish commands to change the alarm state.
|
required: false
|
||||||
- **name** (*Optional*): The name of the alarm. Default is 'MQTT Alarm'.
|
type: string
|
||||||
- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0. This QoS will also be used to publishing messages.
|
default: MQTT Alarm
|
||||||
- **payload_disarm** (*Optional*): The payload to disarm your Alarm Panel. Default is "DISARM".
|
state_topic:
|
||||||
- **payload_arm_home** (*Optional*): The payload to set armed-home mode on your Alarm Panel. Default is "ARM_HOME".
|
description: The MQTT topic subscribed to receive state updates.
|
||||||
- **payload_arm_away** (*Optional*): The payload to set armed-away mode on your Alarm Panel. Default is "ARM_AWAY".
|
required: true
|
||||||
- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend.
|
type: string
|
||||||
|
command_topic:
|
||||||
|
description: The MQTT topic to publish commands to change the alarm state.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
qos:
|
||||||
|
description: The maximum QoS level of the state topic.
|
||||||
|
required: false
|
||||||
|
type: integer
|
||||||
|
default: 0
|
||||||
|
payload_disarm:
|
||||||
|
description: The payload to disarm your Alarm Panel.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: DISARM
|
||||||
|
payload_arm_home:
|
||||||
|
description: The payload to set armed-home mode on your Alarm Panel.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: ARM_HOME
|
||||||
|
payload_arm_away:
|
||||||
|
description: The payload to set armed-away mode on your Alarm Panel.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: ARM_AWAY
|
||||||
|
code:
|
||||||
|
description: If defined, specifies a code to enable or disable the alarm in the frontend.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
availability_topic:
|
||||||
|
description: The MQTT topic subscribed to receive availability (online/offline) updates.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
payload_available:
|
||||||
|
description: The payload that represents the available state.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: online
|
||||||
|
payload_not_available:
|
||||||
|
description: The payload that represents the unavailable state.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: offline
|
||||||
|
{% endconfiguration %}
|
||||||
|
@ -18,3 +18,19 @@ The `spc` alarm control panel platform allows you to control your [Vanderbilt SP
|
|||||||
|
|
||||||
The requirement is that you have setup your [SPC hub](/components/spc/).
|
The requirement is that you have setup your [SPC hub](/components/spc/).
|
||||||
|
|
||||||
|
The `changed_by` attribute enables one to be able to take different actions depending on who armed/disarmed the alarm in [automation](/getting-started/automation/).
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
automation:
|
||||||
|
- alias: Alarm status changed
|
||||||
|
trigger:
|
||||||
|
- platform: state
|
||||||
|
entity_id: alarm_control_panel.alarm_1
|
||||||
|
action:
|
||||||
|
- service: notify.notify
|
||||||
|
data_template:
|
||||||
|
message: >
|
||||||
|
{% raw %}Alarm changed from {{ trigger.from_state.state }}
|
||||||
|
to {{ trigger.to_state.state }}
|
||||||
|
by {{ trigger.to_state.attributes.changed_by }}{% endraw %}
|
||||||
|
```
|
||||||
|
@ -39,6 +39,7 @@ alarmdecoder:
|
|||||||
01:
|
01:
|
||||||
name: 'Smoke Detector'
|
name: 'Smoke Detector'
|
||||||
type: 'smoke'
|
type: 'smoke'
|
||||||
|
rfid: '0123456'
|
||||||
02:
|
02:
|
||||||
name: 'Front Door'
|
name: 'Front Door'
|
||||||
type: 'opening'
|
type: 'opening'
|
||||||
@ -53,3 +54,4 @@ Configuration variables:
|
|||||||
- **baudrate** (*Optional*): The baud rate of the AlarmDecoder device, if using serial type. Default: `115200`
|
- **baudrate** (*Optional*): The baud rate of the AlarmDecoder device, if using serial type. Default: `115200`
|
||||||
- **panel_display** (*Optional*): Create a sensor called sensor.alarm_display to match the Alarm Keypad display. Default: `off`
|
- **panel_display** (*Optional*): Create a sensor called sensor.alarm_display to match the Alarm Keypad display. Default: `off`
|
||||||
- **zones** (*Optional*): AlarmDecoder has no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*
|
- **zones** (*Optional*): AlarmDecoder has no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*
|
||||||
|
- **rfid** (*Optional*): The RF serial-number associated with RF zones. Providing this field allows Home Assistant to associate raw sensor data to a given zone, allowing direct monitoring of the state, battery, and supervision status.
|
||||||
|
@ -10,9 +10,13 @@ footer: true
|
|||||||
logo: amazon-echo.png
|
logo: amazon-echo.png
|
||||||
ha_category: Voice
|
ha_category: Voice
|
||||||
featured: true
|
featured: true
|
||||||
ha_release: 0.10
|
ha_release: '0.10'
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<p class='note'>
|
||||||
|
Use [Home Assistant Cloud](/components/cloud/) to integrate with Alexa without any effort.
|
||||||
|
</p>
|
||||||
|
|
||||||
There are a few ways that you can use Amazon Echo and Home Assistant together.
|
There are a few ways that you can use Amazon Echo and Home Assistant together.
|
||||||
|
|
||||||
- [Build custom commands to use](#i-want-to-build-custom-commands-to-use-with-echo)
|
- [Build custom commands to use](#i-want-to-build-custom-commands-to-use-with-echo)
|
||||||
@ -135,6 +139,13 @@ Custom slot type for scene support.
|
|||||||
|
|
||||||
The names must exactly match the scene names (minus underscores - amazon discards them anyway and we later map them back in with the template).
|
The names must exactly match the scene names (minus underscores - amazon discards them anyway and we later map them back in with the template).
|
||||||
|
|
||||||
|
In the new Alexa Skills Kit, you can also create synonyms for slot type values, which can be used in place of the base value in utterances. Synonyms will be replaced with their associated slot value in the intent request sent to the Alexa API endpoint, but only if there are not multiple synonym matches. Otherwise, the value of the synonym that was spoken will be used.
|
||||||
|
|
||||||
|
<p class='img'>
|
||||||
|
<img src='/images/components/alexa/scene_slot_synonyms.png' />
|
||||||
|
Custom slot values with synonyms.
|
||||||
|
</p>
|
||||||
|
|
||||||
Add a sample utterance:
|
Add a sample utterance:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
@ -318,7 +329,7 @@ Please refer to the [Amazon documentation][flash-briefing-api-docs] for more inf
|
|||||||
- All other settings are up to you
|
- All other settings are up to you
|
||||||
- Hit "Next"
|
- Hit "Next"
|
||||||
- Test
|
- 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".
|
- 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".
|
||||||
|
|
||||||
[amazon-dev-console]: https://developer.amazon.com
|
[amazon-dev-console]: https://developer.amazon.com
|
||||||
|
25
source/_components/api.markdown
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "API"
|
||||||
|
description: "Instructions how to setup the RESTful API within Home Assistant."
|
||||||
|
date: 2018-01-21 08:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: home-assistant.png
|
||||||
|
ha_category: "Other"
|
||||||
|
---
|
||||||
|
|
||||||
|
The `api` component exposes a RESTful API and allows one to interact with a Home Assistant instance that is running headless. This component depends on the [`http` component](/components/http/).
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
It is HIGHLY recommended that you set the `api_password`, especially if you are planning to expose your installation to the internet.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
api:
|
||||||
|
```
|
||||||
|
|
||||||
|
For details to use the API, please refer to the [REST API](/developers/rest_api/) or the [Python REST API documentation](/developers/python_api/) in the "Developer" section.
|
@ -56,7 +56,9 @@ In order to connect to the device, you need a *login id*. The easiest way to obt
|
|||||||
|
|
||||||
### {% linkable_title Scanning for devices %}
|
### {% linkable_title Scanning for devices %}
|
||||||
|
|
||||||
To scan for devices, press the icon in the upper left corner and select the leftmost icon according to the image:
|
Make sure Home Sharing is enabled on the Apple TV.
|
||||||
|
|
||||||
|
To scan for devices and determine the `login_id`, press the icon in the upper left corner and select the leftmost icon according to the image:
|
||||||
|
|
||||||
<img src='/images/screenshots/developer-tools.png' />
|
<img src='/images/screenshots/developer-tools.png' />
|
||||||
|
|
||||||
@ -78,26 +80,7 @@ Found Apple TVs:
|
|||||||
Note: You must use 'pair' with devices that have home sharing disabled
|
Note: You must use 'pair' with devices that have home sharing disabled
|
||||||
```
|
```
|
||||||
|
|
||||||
Just copy and paste the login id from the device you want to add. For more details about `atvremote`, see: [this page](http://pyatv.readthedocs.io/en/master/atvremote.html).
|
Just copy and paste the `login_id` from the device you want to add. For more details about `atvremote`, see: [this page](http://pyatv.readthedocs.io/en/master/atvremote.html).
|
||||||
|
|
||||||
### {% linkable_title My Apple TV turns on when I restart Home Assistant %}
|
|
||||||
|
|
||||||
The Apple TV will automatically turn on if a request is sent to it, e.g., if a button is pressed, something is streamed to it via AirPlay or if current state (currently playing) is accessed. This is how Apple has designed it, and it will cause problems if you are using HDMI CEC. Every time Home Assistant is started, a new request is sent to the device to figure out what is currently playing. When using CEC, this will wake up your TV and other devices you have configured.
|
|
||||||
|
|
||||||
So, if your TV is randomly turning on, this is probably the reason. As stated, this is by design, and there is no real fix for it. There's also no known way to turn off the Apple TV via the protocol used for communication. You have the following options:
|
|
||||||
|
|
||||||
- Do not use this platform
|
|
||||||
- Disable HDMI CEC on your Apple TV
|
|
||||||
- Use "fake standby"
|
|
||||||
|
|
||||||
The first two points are quite obvious. Fake standby is a concept implemented in this platform that disables all requests to the device and makes it appear as being "off" in the web interface. This will make sure that the device is not woken up, but it will of course not show any information or allow you to control it. It is however easy to turn it on (or off) in the web interface or to use an automation with `turn_on`. To make it more useful, you can write automations that turn it on or off depending on some other device, like the input source on your receiver.
|
|
||||||
|
|
||||||
To put a device into fake standby when starting Home Assistant, add `start_off: true` to your configuration.
|
|
||||||
|
|
||||||
<p class='note warning'>
|
|
||||||
Turning the device on/off in the user interface will *not* turn the physical device on/off according to the description above.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
### {% linkable_title Setting up device authentication %}
|
### {% linkable_title Setting up device authentication %}
|
||||||
|
|
||||||
@ -129,6 +112,24 @@ apple_tv:
|
|||||||
|
|
||||||
Restart Home Assistant, and you should now be able to use `play_url` as before.
|
Restart Home Assistant, and you should now be able to use `play_url` as before.
|
||||||
|
|
||||||
|
### {% linkable_title My Apple TV turns on when I restart Home Assistant %}
|
||||||
|
|
||||||
|
The Apple TV will automatically turn on if a request is sent to it, e.g., if a button is pressed, something is streamed to it via AirPlay or if current state (currently playing) is accessed. This is how Apple has designed it, and it will cause problems if you are using HDMI CEC. Every time Home Assistant is started, a new request is sent to the device to figure out what is currently playing. When using CEC, this will wake up your TV and other devices you have configured.
|
||||||
|
|
||||||
|
So, if your TV is randomly turning on, this is probably the reason. As stated, this is by design, and there is no real fix for it. There's also no known way to turn off the Apple TV via the protocol used for communication. You have the following options:
|
||||||
|
|
||||||
|
- Do not use this platform
|
||||||
|
- Disable HDMI CEC on your Apple TV
|
||||||
|
- Use "fake standby"
|
||||||
|
|
||||||
|
The first two points are quite obvious. Fake standby is a concept implemented in this platform that disables all requests to the device and makes it appear as being "off" in the web interface. This will make sure that the device is not woken up, but it will of course not show any information or allow you to control it. It is however easy to turn it on (or off) in the web interface or to use an automation with `turn_on`. To make it more useful, you can write automations that turn it on or off depending on some other device, like the input source on your receiver.
|
||||||
|
|
||||||
|
To put a device into fake standby when starting Home Assistant, add `start_off: true` to your configuration.
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
Turning the device on/off in the user interface will *not* turn the physical device on/off according to the description above.
|
||||||
|
</p>
|
||||||
|
|
||||||
## {% linkable_title Services %}
|
## {% linkable_title Services %}
|
||||||
|
|
||||||
### {% linkable_title Service `apple_tv_authenticate` %}
|
### {% linkable_title Service `apple_tv_authenticate` %}
|
||||||
|
@ -68,10 +68,6 @@ axis:
|
|||||||
location: köket
|
location: köket
|
||||||
```
|
```
|
||||||
|
|
||||||
<p class='note'>
|
|
||||||
If you are using Python 3.6, you might need to replace the 34m with 36m in the _gi.*.so filename in the gi folder.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class='note'>
|
<p class='note'>
|
||||||
Any specific levels for triggers needs to be configured on the device.
|
Any specific levels for triggers needs to be configured on the device.
|
||||||
</p>
|
</p>
|
||||||
|
41
source/_components/binary_sensor.ads.markdown
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "ADS Binary Sensor"
|
||||||
|
description: "Instructions on how to set up ADS binary sensors within Home Assistant."
|
||||||
|
date: 2017-10-25 10:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: beckhoff.png
|
||||||
|
ha_category: Binary Sensor
|
||||||
|
ha_release: "0.60"
|
||||||
|
ha_iot_class: "Local Push"
|
||||||
|
---
|
||||||
|
|
||||||
|
The `ads` binary sensor platform can be used to monitor a boolean value on your ADS device.
|
||||||
|
|
||||||
|
To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml`
|
||||||
|
file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
binary_sensor:
|
||||||
|
- platform: ads
|
||||||
|
adsvar: .boolean1
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
adsvar:
|
||||||
|
required: true
|
||||||
|
description: The name of the variable which you want to access on the ADS device.
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
required: false
|
||||||
|
description: An identifier for the light in the frontend.
|
||||||
|
type: string
|
||||||
|
device_class:
|
||||||
|
required: false
|
||||||
|
description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
33
source/_components/binary_sensor.deconz.markdown
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "deCONZ Binary Sensor"
|
||||||
|
description: "Instructions on how to integrate Zigbee binary sensors from deCONZ into Home Assistant."
|
||||||
|
date: 2017-11-12 16:30
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: deconz.jpeg
|
||||||
|
ha_category: Binary Sensor
|
||||||
|
ha_release: "0.61"
|
||||||
|
ha_iot_class: "Local Push"
|
||||||
|
---
|
||||||
|
|
||||||
|
See the [deCONZ main component](/components/deconz/) for configuration instructions.
|
||||||
|
|
||||||
|
The following sensor types are supported:
|
||||||
|
|
||||||
|
* Open/Close detection
|
||||||
|
* Presence detection
|
||||||
|
|
||||||
|
Entity ids will be binary_sensor.device_name, where device_name is defined in deCONZ.
|
||||||
|
|
||||||
|
#### {% linkable_title Verified to be supported binary sensors %}
|
||||||
|
|
||||||
|
- Open/Close Detection
|
||||||
|
- Xiaomi Smart Home Security Door & Window Contact Sensor
|
||||||
|
- Presence Detection
|
||||||
|
- IKEA Trådfri Motion Sensor
|
||||||
|
- Philips Hue Motion Sensor
|
||||||
|
- Xiaomi Motion Sensor
|
||||||
|
- Xiaomi Smart Home Aqara Human Body Sensor
|
@ -26,7 +26,10 @@ binary_sensor:
|
|||||||
- 'coreos-512mb-nyc3-01'
|
- 'coreos-512mb-nyc3-01'
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
{% configuration %}
|
||||||
|
droplets:
|
||||||
- **droplets** (*Required*): List of droplets you want to control.
|
description: List of droplets you want to monitor.
|
||||||
|
required: true
|
||||||
|
type: list
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
---
|
|
||||||
layout: page
|
|
||||||
title: "DoorBird Binary Sensor"
|
|
||||||
description: "Instructions how to integrate DoorBird video doorbell state into Home Assistant."
|
|
||||||
date: 2017-08-06 11:30
|
|
||||||
sidebar: true
|
|
||||||
comments: false
|
|
||||||
sharing: true
|
|
||||||
footer: true
|
|
||||||
logo: doorbird.png
|
|
||||||
ha_category: Binary Sensor
|
|
||||||
ha_release: "0.54"
|
|
||||||
ha_iot_class: "Local Polling"
|
|
||||||
---
|
|
||||||
|
|
||||||
The `doorbird` binary sensor platform allows Home Assistant to monitor when your [DoorBird](http://www.doorbird.com/) doorbell rings.
|
|
||||||
|
|
||||||
<p class='note'>
|
|
||||||
You must have the [DoorBird component](/components/doorbird/) configured to use this binary sensor.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
To enable the binary sensor, add the following to your `configuration.yaml` file:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# Example configuration.yaml entry
|
|
||||||
binary_sensor:
|
|
||||||
- platform: doorbird
|
|
||||||
```
|
|
28
source/_components/binary_sensor.hive.markdown
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Hive Binary Sensor"
|
||||||
|
description: "Instructions on how to integrate Hive Sensors with Home Assistant."
|
||||||
|
date: 2017-09-24 21:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: hive.png
|
||||||
|
ha_category: Binary Sensor
|
||||||
|
ha_release: 0.59
|
||||||
|
ha_iot_class: "Cloud Polling"
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
The 'hive' binary sensor component integrates your Hive sensors into Home Assistant.
|
||||||
|
|
||||||
|
The Hive sensor component supports the following Hive products:
|
||||||
|
- **Hive Window or Door Sensor**
|
||||||
|
- **Hive Motion Sensor**
|
||||||
|
|
||||||
|
|
||||||
|
<p class='note'>
|
||||||
|
Full configuration details can be found on the main [Hive component](/components/hive/) page.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
@ -25,9 +25,13 @@ binary_sensor:
|
|||||||
- platform: iss
|
- platform: iss
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
{% configuration %}
|
||||||
|
show_on_map:
|
||||||
- **show_on_map** (*Optional*): Option to show the position of the ISS on the map. Defaults to `False`.
|
description: Option to show the position of the ISS on the map.
|
||||||
|
required: optional
|
||||||
|
default: false
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
<p class='note warning'>
|
<p class='note warning'>
|
||||||
If you set `show_on_map` `True` then the location attributes are named `latitude` and `longitude`. The default name of the location attributes is `lat` and `long` to avoid showing them on the map.
|
If you set `show_on_map` `True` then the location attributes are named `latitude` and `longitude`. The default name of the location attributes is `lat` and `long` to avoid showing them on the map.
|
||||||
|
@ -14,21 +14,27 @@ Binary sensors gather information about the state of devices which have a "digit
|
|||||||
The way these sensors are displayed in the frontend can be modified in the [customize section](/getting-started/customizing-devices/). The following device classes are supported for binary sensors:
|
The way these sensors are displayed in the frontend can be modified in the [customize section](/getting-started/customizing-devices/). The following device classes are supported for binary sensors:
|
||||||
|
|
||||||
- **None**: Generic on/off. This is the default and doesn't need to be set.
|
- **None**: Generic on/off. This is the default and doesn't need to be set.
|
||||||
- **cold**: `On` means cold
|
- **battery**: `On` means low, `Off` means normal
|
||||||
- **connectivity**: `On` means connection present, `Off` means no connection
|
- **cold**: `On` means cold, `Off` means normal
|
||||||
- **gas**: `On` means gas detected
|
- **connectivity**: `On` means connected, `Off` means disconnected
|
||||||
- **heat**: `On` means hot
|
- **door**: `On` means open, `Off` means closed
|
||||||
- **light**: Lightness threshold
|
- **garage_door**: `On` means open, `Off` means closed
|
||||||
- **moisture**: `On` means wet
|
- **gas**: `On` means gas detected, `Off` means no gas (clear)
|
||||||
- **motion**: `On` means motion detected
|
- **heat**: `On` means hot, `Off` means normal
|
||||||
- **moving**: `On` means moving, `Off` means stopped
|
- **light**: `On` means light detected, `Off` means no light
|
||||||
- **occupancy**: `On` means occupied, `Off` means not occupied
|
- **moisture**: `On` means moisture detected (wet), `Off` means no moisture (dry)
|
||||||
|
- **motion**: `On` means motion detected, `Off` means no motion (clear)
|
||||||
|
- **moving**: `On` means moving, `Off` means not moving (stopped)
|
||||||
|
- **occupancy**: `On` means occupied, `Off` means not occupied (clear)
|
||||||
- **opening**: `On` means open, `Off` means closed
|
- **opening**: `On` means open, `Off` means closed
|
||||||
- **plug**: `On` means device is plugged in, `Off` means device is unplugged
|
- **plug**: `On` means device is plugged in, `Off` means device is unplugged
|
||||||
- **power**: Power, over-current, etc.
|
- **power**: `On` means power detected, `Off` means no power
|
||||||
|
- **presence**: `On` means home, `Off` means away
|
||||||
|
- **problem**: `On` means problem detected, `Off` means no problem (OK)
|
||||||
- **safety**: `On` means unsafe, `Off` means safe
|
- **safety**: `On` means unsafe, `Off` means safe
|
||||||
- **smoke**: `On` means smoke detected
|
- **smoke**: `On` means smoke detected, `Off` means no smoke (clear)
|
||||||
- **sound**: `On` means sound detected, `Off` means no sound
|
- **sound**: `On` means sound detected, `Off` means no sound (clear)
|
||||||
- **vibration**: `On` means vibration detected, `Off` means no vibration
|
- **vibration**: `On` means vibration detected, `Off` means no vibration (clear)
|
||||||
|
- **window**: `On` means open, `Off` means closed
|
||||||
|
|
||||||
For analog sensors please check the [component overview](https://home-assistant.io/components/#sensor).
|
For analog sensors please check the [component overview](https://home-assistant.io/components/#sensor).
|
||||||
|
@ -29,18 +29,54 @@ binary_sensor:
|
|||||||
state_topic: "home-assistant/window/contact"
|
state_topic: "home-assistant/window/contact"
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
{% configuration %}
|
||||||
|
name:
|
||||||
- **name** (*Optional*): The name of the binary sensor. Default is `MQTT Binary Sensor`.
|
description: The name of the binary sensor.
|
||||||
- **state_topic** (*Required*): The MQTT topic subscribed to receive sensor values.
|
required: false
|
||||||
- **payload_on** (*Optional*): The payload that represents the on state. Default is `ON`.
|
type: string
|
||||||
- **payload_off** (*Optional*): The payload that represents the off state. Default is `OFF`.
|
default: MQTT Binary Sensor
|
||||||
- **availability_topic** (*Optional*): 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.
|
state_topic:
|
||||||
- **payload_available** (*Optional*): The payload that represents the online state. Default is `online`.
|
description: The MQTT topic subscribed to receive sensor values.
|
||||||
- **payload_not_available** (*Optional*): The payload that represents the offline state. Default is `offline`.
|
required: true
|
||||||
- **qos** (*Optional*): The maximum QoS level to be used when receiving messages. Default is `0`.
|
type: string
|
||||||
- **device_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
|
payload_on:
|
||||||
- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload.
|
description: The payload that represents the on state.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: ON
|
||||||
|
payload_off:
|
||||||
|
description: The payload that represents the off state.
|
||||||
|
required: false
|
||||||
|
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."
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
payload_available:
|
||||||
|
description: The payload that represents the online state.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: online
|
||||||
|
payload_not_available:
|
||||||
|
description: The payload that represents the offline state.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: offline
|
||||||
|
qos:
|
||||||
|
description: The maximum QoS level to be used when receiving messages.
|
||||||
|
required: false
|
||||||
|
type: integer
|
||||||
|
default: 0
|
||||||
|
device_class:
|
||||||
|
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."
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
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:
|
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:
|
||||||
|
|
||||||
|
@ -25,10 +25,10 @@ binary_sensor:
|
|||||||
```
|
```
|
||||||
|
|
||||||
{% configuration %}
|
{% configuration %}
|
||||||
name:
|
name:
|
||||||
description: Name to use in the frontend.
|
description: Name to use in the frontend.
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
See the [entity component options](/docs/configuration/platform_options/) to control how often the main component polls the random binary sensor. The default is 30 seconds.
|
See the [entity component options](/docs/configuration/platform_options/) to control how often the main component polls the random binary sensor. The default is 30 seconds.
|
||||||
|
@ -47,25 +47,61 @@ binary_sensor:
|
|||||||
method: POST
|
method: POST
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
{% configuration %}
|
||||||
|
resource:
|
||||||
- **resource** (*Required*): The resource or endpoint that contains the value.
|
description: The resource or endpoint that contains the value.
|
||||||
- **method** (*Optional*): The method of the request. Default is GET.
|
required: true
|
||||||
- **name** (*Optional*): Name of the REST binary sensor.
|
type: string
|
||||||
- **device_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
|
default: string
|
||||||
- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value.
|
method:
|
||||||
- **payload** (*Optional*): The payload to send with a POST request. Usually formed as a dictionary.
|
description: The method of the request.
|
||||||
- **verify_ssl** (*Optional*): Verify the certification of the endpoint. Default to True.
|
required: false
|
||||||
- **authentication** (*Optional*): Type of the HTTP authentication. `basic` or `digest`.
|
type: string
|
||||||
- **username** (*Optional*): The username for accessing the REST endpoint.
|
default: GET
|
||||||
- **password** (*Optional*): The password for accessing the REST endpoint.
|
name:
|
||||||
- **headers** (*Optional*): The headers for the requests.
|
description: Name of the REST binary sensor.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: REST Binary Sensor
|
||||||
|
device_class:
|
||||||
|
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 the value."
|
||||||
|
required: false
|
||||||
|
type: template
|
||||||
|
payload:
|
||||||
|
description: The payload to send with a POST request. Usually formed as a dictionary.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
verify_ssl:
|
||||||
|
description: Verify the certification of the endpoint.
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: True
|
||||||
|
authentication:
|
||||||
|
description: Type of the HTTP authentication. `basic` or `digest`.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
username:
|
||||||
|
description: The username for accessing the REST endpoint.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
password:
|
||||||
|
description: The password for accessing the REST endpoint.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
headers:
|
||||||
|
description: The headers for the requests.
|
||||||
|
required: false
|
||||||
|
type: list, string
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
<p class='note warning'>
|
<p class='note warning'>
|
||||||
Make sure that the URL exactly matches your endpoint or resource.
|
Make sure that the URL exactly matches your endpoint or resource.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
## {% linkable_title Examples %}
|
## {% linkable_title Examples %}
|
||||||
|
|
||||||
In this section you find some real life examples of how to use this sensor.
|
In this section you find some real life examples of how to use this sensor.
|
||||||
|
@ -48,10 +48,6 @@ binary_sensor:
|
|||||||
description: Name to use in the frontend.
|
description: Name to use in the frontend.
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
entity_id:
|
|
||||||
description: Add a list of entity IDs so the sensor only reacts to state changes of these entities. This will reduce the number of times the sensor will try to update its state.
|
|
||||||
required: false
|
|
||||||
type: string, list
|
|
||||||
device_class:
|
device_class:
|
||||||
description: The type/class of the sensor to set the icon in the frontend.
|
description: The type/class of the sensor to set the icon in the frontend.
|
||||||
required: false
|
required: false
|
||||||
@ -126,13 +122,11 @@ binary_sensor:
|
|||||||
```
|
```
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
|
|
||||||
### {% linkable_title Combining Multiple Sensors, and Using `entity_id` %}
|
### {% linkable_title Combining Multiple Sensors %}
|
||||||
|
|
||||||
This example combines multiple CO sensors into a single overall
|
This example combines multiple CO sensors into a single overall
|
||||||
status. When using templates with binary sensors, you need to return
|
status. When using templates with binary sensors, you need to return
|
||||||
`true` or `false` explicitly. `entity_id` is used to limit which
|
`true` or `false` explicitly.
|
||||||
sensors are being monitored to update the state, making computing this
|
|
||||||
sensor far more efficient.
|
|
||||||
|
|
||||||
{% raw %}
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
@ -142,10 +136,6 @@ binary_sensor:
|
|||||||
co:
|
co:
|
||||||
friendly_name: "CO"
|
friendly_name: "CO"
|
||||||
device_class: gas
|
device_class: gas
|
||||||
entity_id:
|
|
||||||
- sensor.bedroom_co_status
|
|
||||||
- sensor.kitchen_co_status
|
|
||||||
- sensor.wardrobe_co_status
|
|
||||||
value_template: >-
|
value_template: >-
|
||||||
{{ is_state('sensor.bedroom_co_status', 'Ok')
|
{{ is_state('sensor.bedroom_co_status', 'Ok')
|
||||||
and is_state('sensor.kitchen_co_status', 'Ok')
|
and is_state('sensor.kitchen_co_status', 'Ok')
|
||||||
@ -158,7 +148,7 @@ binary_sensor:
|
|||||||
This example creates a washing machine "load running" sensor by monitoring an
|
This example creates a washing machine "load running" sensor by monitoring an
|
||||||
energy meter connected to the washer. During the washer's operation, the energy
|
energy meter connected to the washer. During the washer's operation, the energy
|
||||||
meter will fluctuate wildly, hitting zero frequently even before the load is
|
meter will fluctuate wildly, hitting zero frequently even before the load is
|
||||||
finished. By utilizing `off_delay`, we can have this sensor only turn off if
|
finished. By utilizing `delay_off`, we can have this sensor only turn off if
|
||||||
there has been no washer activity for 5 minutes.
|
there has been no washer activity for 5 minutes.
|
||||||
|
|
||||||
{% raw %}
|
{% raw %}
|
||||||
@ -190,14 +180,6 @@ binary_sensor:
|
|||||||
- platform: template
|
- platform: template
|
||||||
sensors:
|
sensors:
|
||||||
people_home:
|
people_home:
|
||||||
entity_id:
|
|
||||||
- device_tracker.sean
|
|
||||||
- device_tracker.susan
|
|
||||||
- binary_sensor.office_124
|
|
||||||
- binary_sensor.hallway_134
|
|
||||||
- binary_sensor.living_room_139
|
|
||||||
- binary_sensor.porch_ms6_1_129
|
|
||||||
- binary_sensor.family_room_144
|
|
||||||
value_template: >-
|
value_template: >-
|
||||||
{{ is_state('device_tracker.sean', 'home')
|
{{ is_state('device_tracker.sean', 'home')
|
||||||
or is_state('device_tracker.susan', 'home')
|
or is_state('device_tracker.susan', 'home')
|
||||||
|
@ -14,15 +14,17 @@ ha_release: 0.34
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
The `threshold` binary sensor platform observes the state of another sensor. If the value is below (`lower`) or higher (`upper`) than the given threshold then state of the threshold sensor is changed.
|
The `threshold` binary sensor platform observes the state of another sensor. If the value is below (`lower`) or higher (`upper`) than the given threshold then state of the threshold sensor is changed. It support also a range if `lower` and `upper` are given.
|
||||||
|
|
||||||
If the sensor is configured with no hysteresis and the sensor value is equal to the threshold, the sensor is turned off since it is not `lower` or `upper` with respect to the threshold.
|
If the sensor is configured with no hysteresis and the sensor value is equal to the threshold, the sensor is turned off since it is not `lower` or `upper` with respect to the threshold.
|
||||||
|
|
||||||
It's an alternative to the template binary sensor's `value_template:` to get the abnormal/too high/too low states.
|
It's an alternative to the template binary sensor's `value_template:` to get the abnormal/too high/too low states.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
```yaml
|
```yaml
|
||||||
{% raw %}{{ states.sensor.furnace.state > 2.5 }}{% endraw %}
|
{{ states.sensor.furnace.state > 2.5 }}
|
||||||
```
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
To enable the threshold sensor, add the following lines to your `configuration.yaml`:
|
To enable the threshold sensor, add the following lines to your `configuration.yaml`:
|
||||||
|
|
||||||
@ -30,15 +32,32 @@ To enable the threshold sensor, add the following lines to your `configuration.y
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
binary_sensor:
|
binary_sensor:
|
||||||
- platform: threshold
|
- platform: threshold
|
||||||
threshold: 15
|
|
||||||
type: lower
|
|
||||||
entity_id: sensor.random
|
entity_id: sensor.random
|
||||||
|
lower: 20
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
{% configuration %}
|
||||||
|
entity_id:
|
||||||
|
description: "The entity to monitor. Only [sensors](/components/sensor/) are supported."
|
||||||
|
required: true
|
||||||
|
type: entity_id
|
||||||
|
lower:
|
||||||
|
description: The lower threshold which the observed value is compared against.
|
||||||
|
required: false
|
||||||
|
type: float
|
||||||
|
upper:
|
||||||
|
description: The upper threshold which the observed value is compared against.
|
||||||
|
required: false
|
||||||
|
type: float
|
||||||
|
hysteresis:
|
||||||
|
description: The distance the observed value must be from the threshold before the state is changed.
|
||||||
|
required: false
|
||||||
|
type: float
|
||||||
|
default: 0.0
|
||||||
|
name:
|
||||||
|
description: Name of the sensor to use in the frontend.
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default:
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
- **entity_id** (*Required*): The entity to monitor. Only [sensors](/components/sensor/) are supported.
|
|
||||||
- **threshold** (*Required*): The threshold which the observed value is compared against.
|
|
||||||
- **type** (*Required*): `lower` if the value needs to be below the threshold or `upper` if higher.
|
|
||||||
- **hysteresis** (*Optional*): The distance the observed value must be from the threshold before the state is changed. Defaults to `0.0`
|
|
||||||
- **name** (*Optional*): Name of the sensor to use in the frontend. Defaults to `Stats`.
|
|
||||||
|
@ -22,12 +22,14 @@ To enable the `workday` sensor in your installation, add the following to your `
|
|||||||
binary_sensor:
|
binary_sensor:
|
||||||
- platform: workday
|
- platform: workday
|
||||||
country: DE
|
country: DE
|
||||||
|
workdays: [ mon, wed, fri ]
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **country** (*Required*): Country code according to [holidays](https://pypi.python.org/pypi/holidays/0.8.1) notation.
|
- **name** (*Optional*): A name for this sensor. Defaults to *Workday Sensor*
|
||||||
- **province** (*Optional*): Province code according to [holidays](https://pypi.python.org/pypi/holidays/0.8.1) notation. Defaults to None.
|
- **country** (*Required*): Country code according to [holidays](https://pypi.python.org/pypi/holidays/0.9.3) notation.
|
||||||
|
- **province** (*Optional*): Province code according to [holidays](https://pypi.python.org/pypi/holidays/0.9.3) notation. Defaults to None.
|
||||||
- **workdays** (*Optional*): List of workdays. Defaults to `mon`, `tue`, `wed`, `thu`, `fri`.
|
- **workdays** (*Optional*): List of workdays. Defaults to `mon`, `tue`, `wed`, `thu`, `fri`.
|
||||||
- **excludes** (*Optional*): List of workday excludes. Defaults to `sat`, `sun`, `holiday`.
|
- **excludes** (*Optional*): List of workday excludes. Defaults to `sat`, `sun`, `holiday`.
|
||||||
- **days_offset** (*Optional*): Set days offset. Defaults to `0`.
|
- **days_offset** (*Optional*): Set days offset. Defaults to `0`.
|
||||||
@ -35,6 +37,7 @@ Configuration variables:
|
|||||||
Days are specified as follows: `mon`, `tue`, `wed`, `thu`, `fri`, `sat`, `sun`. The keyword `holiday` is used for public holidays identified by the holidays module.
|
Days are specified as follows: `mon`, `tue`, `wed`, `thu`, `fri`, `sat`, `sun`. The keyword `holiday` is used for public holidays identified by the holidays module.
|
||||||
|
|
||||||
<p class='note warning'>
|
<p class='note warning'>
|
||||||
|
If you use the sensor for Norway (`NO`) you need to wrap `NO`in quotes or write the name in full. Otherwise the value is evaluated as `False`.
|
||||||
If you use the sensor for Canada (`CA`) with Ontario (`ON`) as `province:` then you need to wrap `ON` in quotes. Otherwise the value is evaluated as `True` (check the YAML documentation for further details) and the sensor will not work.
|
If you use the sensor for Canada (`CA`) with Ontario (`ON`) as `province:` then you need to wrap `ON` in quotes. Otherwise the value is evaluated as `True` (check the YAML documentation for further details) and the sensor will not work.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -21,20 +21,20 @@ The requirement is that you have setup the [`xiaomi aqara` component](/component
|
|||||||
|
|
||||||
### {% linkable_title Type of sensors supported %}
|
### {% linkable_title Type of sensors supported %}
|
||||||
|
|
||||||
| Name | ZigBee entity | Model no. | States | Event | Event key | Event values |
|
| Name | ZigBee entity | Model no. | States | Event | Event key | Event values |
|
||||||
|-----------------------------------|---------------------|----------------------|----------------------------------------------------|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
|
| ---- | ------------- | --------- | ------ | ----- | --------- | ------------ |
|
||||||
| Motion Sensor (1st gen) | motion | RTCGQ01LM | on, off | `motion` | | |
|
| Motion Sensor (1st gen) | motion | RTCGQ01LM | on, off | `motion` | | |
|
||||||
| Motion Sensor (2nd gen) | sensor_motion.aq2 | RTCGQ11LM | on, off | `motion` | | |
|
| Motion Sensor (2nd gen) | sensor_motion.aq2 | RTCGQ11LM | on, off | `motion` | | |
|
||||||
| Door and Window Sensor (1st gen) | magnet | WSDCGQ01LM | on, off | | | |
|
| Door and Window Sensor (1st gen) | magnet | WSDCGQ01LM | on, off | | | |
|
||||||
| Door and Window Sensor (2nd gen) | sensor_magnet.aq2 | MCCGQ11LM | on, off | | | |
|
| Door and Window Sensor (2nd gen) | sensor_magnet.aq2 | MCCGQ11LM | on, off | | | |
|
||||||
| Smoke Detector | smoke | JTYJ-GD-01LM/BW | on, off | | | |
|
| Smoke Detector | smoke | JTYJ-GD-01LM/BW | on, off | | | |
|
||||||
| Gas Leak Detector | natgas | JTQJ-BF-01LM/BW | on, off | | | |
|
| Gas Leak Detector | natgas | JTQJ-BF-01LM/BW | on, off | | | |
|
||||||
| Water Leak Sensor | sensor_wleak.aq1 | SJCGQ11LM | on, off | | | |
|
| Water Leak Sensor | sensor_wleak.aq1 | SJCGQ11LM | on, off | | | |
|
||||||
| Button (1st gen) | switch | WXKG01LM | on (thru long_click_press), off | `click` | `click_type` | `long_click_press`, `long_click_release`, `hold`, `single`, `double` |
|
| Button (1st gen) | switch | WXKG01LM | on (thru long_click_press), off | `click`| `click_type`| `long_click_press`, `long_click_release`, `hold`, `single`, `double` |
|
||||||
| Button (2nd gen) | sensor_switch.aq2 | WXKG11LM | off (always) | `click` | `click_type` | `single`, `double` |
|
| Button (2nd gen) | sensor_switch.aq2 | WXKG11LM | off (always) | `click` | `click_type` | `single`, `double` |
|
||||||
| Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `click` | `click_type` | `single` |
|
| 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` |
|
| 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) |
|
| 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) |
|
||||||
|
|
||||||
### {% linkable_title Automation examples %}
|
### {% linkable_title Automation examples %}
|
||||||
|
|
||||||
|
99
source/_components/calendar.caldav.markdown
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "CalDav"
|
||||||
|
description: "Instructions on how to integrate a WebDav calendar into Home Assistant."
|
||||||
|
date: 2017-11-27 23:14
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
ha_category: Calendar
|
||||||
|
ha_iot_class: "Cloud Polling"
|
||||||
|
ha_release: "0.60"
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
The `caldav` platform allows you to connect to your WebDav calendar and generate binary sensors. A different sensor will be created for each individual calendar, or you can specify custom calendars which match a criteria you define (more on that below). These sensors will be `on` if you have an on going event in that calendar or `off` if the event is later in time, or if there is no event at all. The WebDav calendar get updated roughly every 10 minutes.
|
||||||
|
|
||||||
|
### {% linkable_title Prerequisites %}
|
||||||
|
|
||||||
|
You need to have a CalDav server and eventually credentials for it. This component was tested against [Baikal](http://sabre.io/baikal/) but any component complying with the RFC4791 should work.
|
||||||
|
|
||||||
|
You might need some additional system packages to compile the Python caldav library. On a Debian based system, install them by:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### {% linkable_title Basic Setup %}
|
||||||
|
|
||||||
|
To integrate a WebDav calendar in Home Assistant, add the following section to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
calendar:
|
||||||
|
- platform: caldav
|
||||||
|
url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
url:
|
||||||
|
required: true
|
||||||
|
description: The full URL to your calendars.
|
||||||
|
type: string
|
||||||
|
username:
|
||||||
|
required: false
|
||||||
|
description: Username for authentication.
|
||||||
|
type: string
|
||||||
|
password:
|
||||||
|
required: false
|
||||||
|
description: Password for authentication.
|
||||||
|
type: string
|
||||||
|
calendars:
|
||||||
|
required: false
|
||||||
|
description: List of the calendars to filter. Empty or absent means no filtering.
|
||||||
|
type: list
|
||||||
|
custom_calendars:
|
||||||
|
required: false
|
||||||
|
description: Details on any custom binary sensor calendars you want to create.
|
||||||
|
type: list
|
||||||
|
keys:
|
||||||
|
name:
|
||||||
|
required: true
|
||||||
|
description: The name of your custom calendar.
|
||||||
|
type: string
|
||||||
|
calendar:
|
||||||
|
required: true
|
||||||
|
description: The source calendar to search on.
|
||||||
|
type: string
|
||||||
|
search:
|
||||||
|
required: true
|
||||||
|
pending_charges: Regular expression for filtering the events
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
|
||||||
|
### {% linkable_title Sensor attributes %}
|
||||||
|
|
||||||
|
- **offset_reached**: If set in the event title and parsed out will be on/off once the offset in the title in minutes is reached. So the title Very important meeting !!-10 would trigger this attribute to be on 10 minutes before the event starts.
|
||||||
|
- **all_day**: `True/False` if this is an all day event. Will be `False` if there is no event found.
|
||||||
|
- **message**: The event title with the `search` values extracted. So in the above example for `offset_reached` the message would be set to Very important meeting
|
||||||
|
- **description**: The event description.
|
||||||
|
- **location**: The event Location.
|
||||||
|
- **start_time**: Start time of event.
|
||||||
|
- **end_time**: End time of event.
|
||||||
|
|
||||||
|
### {% linkable_title Sensor attributes %}
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
calendar:
|
||||||
|
- platform: caldav
|
||||||
|
url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default
|
||||||
|
username: john.doe@test.com
|
||||||
|
password: !secret caldav
|
||||||
|
custom_calendars:
|
||||||
|
- name: 'HomeOffice'
|
||||||
|
calendar: 'Agenda'
|
||||||
|
search: 'HomeOffice'
|
||||||
|
```
|
@ -22,7 +22,7 @@ Generate a Client ID and Client Secret on [Google Developers Console](https://co
|
|||||||
|
|
||||||
1. Follow the wizard using the following information.
|
1. Follow the wizard using the following information.
|
||||||
1. When it gets to the point of asking _Which API are you using?_ just click cancel.
|
1. When it gets to the point of asking _Which API are you using?_ just click cancel.
|
||||||
1. Click on the tab 'OAuth consent screen'.
|
1. Under APIs & Services > Credentials, click on the tab 'OAuth consent screen'.
|
||||||
1. Set 'Product name shown to users' to anything you want. We suggest Home-Assistant.
|
1. Set 'Product name shown to users' to anything you want. We suggest Home-Assistant.
|
||||||
1. Save this page. You don't have to fill out anything else there.
|
1. Save this page. You don't have to fill out anything else there.
|
||||||
1. Click 'Create credentials' -> OAuth client ID.
|
1. Click 'Create credentials' -> OAuth client ID.
|
||||||
|
@ -109,7 +109,7 @@ Home Assistant does its best to determine what task in each project is "most" im
|
|||||||
|
|
||||||
### {% linkable_title Services %}
|
### {% linkable_title Services %}
|
||||||
|
|
||||||
Todoist also comes with access to a service, `todoist.new_task`. This service can be used to create a new Todoist task. You can specify labels and a project, or you can leave them blank, and the task will go to your "Inbox" project.
|
Todoist also comes with access to a service, `calendar.todoist_new_task`. This service can be used to create a new Todoist task. You can specify labels and a project, or you can leave them blank, and the task will go to your "Inbox" project.
|
||||||
|
|
||||||
Here's an example JSON payload:
|
Here's an example JSON payload:
|
||||||
|
|
||||||
|
18
source/_components/camera.canary.markdown
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Canary Camera"
|
||||||
|
description: "Instructions on how to integrate your Canary devices into Home Assistant."
|
||||||
|
date: 2017-12-07 22:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: canary.png
|
||||||
|
ha_category: Camera
|
||||||
|
ha_release: "0.60"
|
||||||
|
ha_iot_class: "Cloud Polling"
|
||||||
|
---
|
||||||
|
|
||||||
|
The `canary` camera platform allows you to view the latest camera image (triggered by motion) by your [Canary](https://canary.is) device in Home Assistant.
|
||||||
|
|
||||||
|
To add `canary` camera to your installation, follow instructions in [Canary component](/components/canary/).
|
@ -13,7 +13,7 @@ ha_release: "0.54"
|
|||||||
ha_iot_class: "Local Polling"
|
ha_iot_class: "Local Polling"
|
||||||
---
|
---
|
||||||
|
|
||||||
The `doorbird` implementation allows you to view the live video and saved images from your [DoorBird](http://www.doorbird.com/) device in Home Assistant.
|
The `doorbird` implementation allows you to view the live video and previous images from your [DoorBird](http://www.doorbird.com/) device in Home Assistant.
|
||||||
|
|
||||||
<p class='note'>
|
<p class='note'>
|
||||||
You must have the [DoorBird component](/components/doorbird/) configured to use this camera.
|
You must have the [DoorBird component](/components/doorbird/) configured to use this camera.
|
||||||
@ -26,7 +26,3 @@ To enable the camera, add the following to your `configuration.yaml` file:
|
|||||||
camera:
|
camera:
|
||||||
- platform: doorbird
|
- platform: doorbird
|
||||||
```
|
```
|
||||||
|
|
||||||
Configuration variables:
|
|
||||||
|
|
||||||
- **last_visitor** (*Optional*): Adds a second camera that shows the last picture taken when someone rang the doorbell. Default is `false`.
|
|
||||||
|
@ -16,7 +16,7 @@ ha_iot_class: "depends"
|
|||||||
|
|
||||||
The `generic` camera platform allows you to integrate any IP camera or other URL into Home Assistant. Templates can be used to generate the URLs on the fly.
|
The `generic` camera platform allows you to integrate any IP camera or other URL into Home Assistant. Templates can be used to generate the URLs on the fly.
|
||||||
|
|
||||||
Home Assistant will serve the images via its server, making it possible to view your IP camera's while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]`.
|
Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]`.
|
||||||
|
|
||||||
To enable this camera in your installation, add the following to your `configuration.yaml` file:
|
To enable this camera in your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
@ -57,3 +57,14 @@ camera:
|
|||||||
still_image_url: https://www.yr.no/place/Norway/Oslo/Oslo/Oslo/meteogram.svg
|
still_image_url: https://www.yr.no/place/Norway/Oslo/Oslo/Oslo/meteogram.svg
|
||||||
content_type: 'image/svg+xml'
|
content_type: 'image/svg+xml'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### {% linkable_title Local image with Hass.io %}
|
||||||
|
|
||||||
|
You can show an static image with this platform. Just place the image here: `/config/www/your_image.png`
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
camera:
|
||||||
|
- platform: generic
|
||||||
|
name: Some Image
|
||||||
|
still_image_url: https://127.0.0.1:8123/local/your_image.png
|
||||||
|
```
|
||||||
|
@ -45,6 +45,18 @@ Take a snapshot from a camera.
|
|||||||
|
|
||||||
The path part of `filename` must be an entry in the `whitelist_external_dirs` in your [`homeassistant:`](/docs/configuration/basic/) section of your `configuration.yaml` file.
|
The path part of `filename` must be an entry in the `whitelist_external_dirs` in your [`homeassistant:`](/docs/configuration/basic/) section of your `configuration.yaml` file.
|
||||||
|
|
||||||
|
For example, the following action in an automation would take a snapshot from "yourcamera" and save it to /tmp with a timestamped filename.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
```yaml
|
||||||
|
action:
|
||||||
|
service: camera.snapshot
|
||||||
|
data:
|
||||||
|
entity_id: camera.yourcamera
|
||||||
|
filename: '/tmp/yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
|
||||||
|
```
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
### {% linkable_title Test if it works %}
|
### {% linkable_title Test if it works %}
|
||||||
|
|
||||||
A simple way to test if you have set up your `camera` platform correctly, is to use <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **Services** from the **Developer Tools**. Choose your service from the dropdown menu **Service**, enter something like the sample below into the **Service Data** field, and hit **CALL SERVICE**.
|
A simple way to test if you have set up your `camera` platform correctly, is to use <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **Services** from the **Developer Tools**. Choose your service from the dropdown menu **Service**, enter something like the sample below into the **Service Data** field, and hit **CALL SERVICE**.
|
||||||
|
@ -13,9 +13,9 @@ ha_release: 0.47
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
The `ONVIF` platform allows you to use an ONVIF camera in Home Assistant. This requires FFmpeg component to be already configured.
|
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.
|
||||||
|
|
||||||
To enable your ONVIF in your installation, add the following to your `configuration.yaml` file:
|
To enable your ONVIF camera in your installation, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -31,6 +31,6 @@ Configuration variables:
|
|||||||
- **username** (*Optional*): The username for the camera.
|
- **username** (*Optional*): The username for the camera.
|
||||||
- **password** (*Optional*): The password for the camera.
|
- **password** (*Optional*): The password for the camera.
|
||||||
- **port** (*Optional*): The port for the camera. This defaults to 5000
|
- **port** (*Optional*): The port for the camera. This defaults to 5000
|
||||||
|
- **extra_arguments** (*Optional*): Extra options to pass to `ffmpeg`, e.g. image quality or video filter options. More details in [FFmpeg component](/components/ffmpeg).
|
||||||
|
|
||||||
If you are running into trouble with this sensor, please refer to the [Troubleshooting section](/components/ffmpeg/#troubleshooting).
|
If you are running into trouble with this sensor, please refer to the [Troubleshooting section](/components/ffmpeg/#troubleshooting).
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "Ring Binary Camera"
|
title: "Ring Camera"
|
||||||
description: "Instructions on how to integrate your Ring.com devices within Home Assistant."
|
description: "Instructions on how to integrate your Ring.com devices within Home Assistant."
|
||||||
date: 2017-10-20 10:00
|
date: 2017-10-20 10:00
|
||||||
sidebar: true
|
sidebar: true
|
||||||
@ -13,7 +13,7 @@ ha_release: 0.57
|
|||||||
ha_iot_class: "Cloud Polling"
|
ha_iot_class: "Cloud Polling"
|
||||||
---
|
---
|
||||||
|
|
||||||
To get your [Ring.com](https://ring.com/) cameras working within Home Assistant, please follow the instructions for the general [Ring component](/components/ring).
|
To get your [Ring.com](https://ring.com/) cameras working within Home Assistant, please follow the instructions for the general [Ring component](/components/ring). Please note that downloading and playing Ring video will require a Ring Protect plan.
|
||||||
|
|
||||||
Once you have enabled the [Ring component](/components/ring), add the following to your `configuration.yaml` file:
|
Once you have enabled the [Ring component](/components/ring), add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
@ -32,19 +32,30 @@ Configuration variables:
|
|||||||
|
|
||||||
Currently it supports doorbell and stickup cameras.
|
Currently it supports doorbell and stickup cameras.
|
||||||
|
|
||||||
|
## {% linkable_title Saving the videos captured by your Ring Door Bell %}
|
||||||
|
|
||||||
## {% linkable_title Saving locally the videos captured by your Ring Door Bell %}
|
You can save locally the latest video captured by your Ring Door Bell using the [downloader](/components/downloader) along with either an [automation](/components/automation) or [python_script](/components/python_script). First, enable the [downloader](/components/downloader) component in your configuration by adding the following to your `configuration.yaml`.
|
||||||
|
|
||||||
You can save locally the latest video captured by your Ring Door Bell by enabling the [downloader](/components/downloader) and the [python_scripts](/components/python_script) components.
|
```yaml
|
||||||
|
|
||||||
- Add to the `configuration.yaml` the `downloader` and `python_scripts`. Visit the component page for further details.
|
|
||||||
|
|
||||||
```json
|
|
||||||
python_script:
|
|
||||||
downloader:
|
downloader:
|
||||||
download_dir: downloads
|
download_dir: downloads
|
||||||
```
|
```
|
||||||
- Create a file `ring_downloader.py` in the folder `<config>/python_scripts` and give it this content:
|
Then you can use the following `action` in your automation (this will save the video file under `<config>/downloads/ring_<camera_name>/`):
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
action:
|
||||||
|
- service: downloader.download_file
|
||||||
|
data_template:
|
||||||
|
url: "{{ states.camera.front_door.attributes.video_url }}"
|
||||||
|
subdir: "{{states.camera.front_door.attributes.friendly_name}}"
|
||||||
|
filename: "{{states.camera.front_door.attributes.friendly_name}}"
|
||||||
|
```
|
||||||
|
|
||||||
|
If you want to use `python_script`, enable it your `configuration.yaml` file first:
|
||||||
|
```yaml
|
||||||
|
python_script:
|
||||||
|
```
|
||||||
|
You can then use the following `python_script` to save the video file:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
# obtain ring doorbell camera object
|
# obtain ring doorbell camera object
|
||||||
@ -57,15 +68,9 @@ subdir_name = 'ring_{}'.format(ring_cam.attributes.get('friendly_name'))
|
|||||||
data = {
|
data = {
|
||||||
'url': ring_cam.attributes.get('video_url'),
|
'url': ring_cam.attributes.get('video_url'),
|
||||||
'subdir': subdir_name,
|
'subdir': subdir_name,
|
||||||
|
'filename': ring_cam.attributes.get('friendly_name')
|
||||||
}
|
}
|
||||||
|
|
||||||
# call downloader component to save the video
|
# call downloader component to save the video
|
||||||
hass.services.call('downloader', 'download_file', data)
|
hass.services.call('downloader', 'download_file', data)
|
||||||
```
|
```
|
||||||
|
|
||||||
- Start Home Assistant
|
|
||||||
- Call the server `python_script/ring_downloader`
|
|
||||||
|
|
||||||
You should be able to see a video file saved under `<config>/<downloader_dir>/ring_<camera_name>/`.
|
|
||||||
|
|
||||||
You can also automate the process by integrating it with the (automation)[/components/automation) component.
|
|
||||||
|
@ -15,7 +15,7 @@ ha_iot_class: "Local Polling"
|
|||||||
|
|
||||||
The `yi` camera platform allows you to utilize [Yi Home Cameras](https://www.yitechnology.com/) within Home Assistant. Specifically, this platform supports the line of Yi Home Cameras that are based on the Hi3518e Chipset. This includes:
|
The `yi` camera platform allows you to utilize [Yi Home Cameras](https://www.yitechnology.com/) within Home Assistant. Specifically, this platform supports the line of Yi Home Cameras that are based on the Hi3518e Chipset. This includes:
|
||||||
|
|
||||||
* Yi Home 17CN
|
* Yi Home 17CN / 27US / 47US
|
||||||
* Yi 1080p Home
|
* Yi 1080p Home
|
||||||
* Yi Dome
|
* Yi Dome
|
||||||
* Yi 1080p Dome
|
* Yi 1080p Dome
|
||||||
@ -26,10 +26,14 @@ To successfully implement this platform, the Home Assistant host should be capab
|
|||||||
|
|
||||||
### {% linkable_title Installing Alternative Firmware %}
|
### {% linkable_title Installing Alternative Firmware %}
|
||||||
|
|
||||||
In order to integrate the camera with Home Assitant, it is necessary to install a custom firmware on the device. Instructions for doing so can be found via the [yi-hack-v3 GitHub project](https://github.com/shadow-1/yi-hack-v3).
|
In order to integrate the camera with Home Assistant, it is necessary to install a custom firmware on the device. Instructions for doing so can be found via the [yi-hack-v3 GitHub project](https://github.com/shadow-1/yi-hack-v3).
|
||||||
|
|
||||||
Once installed, please ensure that you have enabled FTP and Telnet on your device.
|
Once installed, please ensure that you have enabled FTP and Telnet on your device.
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
Currently, version 0.1.4-beta2 of the custom firmware is the highest supported. Firmwares higher than this version use [Pure-FTPd](https://www.pureftpd.org/project/pure-ftpd), which has a bug that prevents FFmpeg from correctly rendering video files.
|
||||||
|
</p>
|
||||||
|
|
||||||
<p class='note warning'>
|
<p class='note warning'>
|
||||||
Some alternative Yi firmwares enable an experimental RTSP server, which will allow you to connect to your camera via other Home Assistant camera platforms. However, this RTSP server disables the ability to use the supremely-useful Yi Home app. In order to maintain both Home Assistant compatibility _and_ the native app, this platform retrieves videos via FTP.
|
Some alternative Yi firmwares enable an experimental RTSP server, which will allow you to connect to your camera via other Home Assistant camera platforms. However, this RTSP server disables the ability to use the supremely-useful Yi Home app. In order to maintain both Home Assistant compatibility _and_ the native app, this platform retrieves videos via FTP.
|
||||||
</p>
|
</p>
|
||||||
@ -63,7 +67,7 @@ Configuration variables:
|
|||||||
- **host** (*Required*): The IP address or hostname of the camera.
|
- **host** (*Required*): The IP address or hostname of the camera.
|
||||||
- **password** (*Required*): The password to the FTP server on the camera (from above).
|
- **password** (*Required*): The password to the FTP server on the camera (from above).
|
||||||
- **path** (*Optional*): The path to the raw MP4 files. Defaults to `/tmp/sd/record`.
|
- **path** (*Optional*): The path to the raw MP4 files. Defaults to `/tmp/sd/record`.
|
||||||
- **username** (*Optional*): The user that can access the FTP server. Ddefaults to `root`.
|
- **username** (*Optional*): The user that can access the FTP server. Defaults to `root`.
|
||||||
- **ffmpeg_arguments** (*Optional*): Extra options to pass to `ffmpeg` (e.g. image quality or video filter options).
|
- **ffmpeg_arguments** (*Optional*): Extra options to pass to `ffmpeg` (e.g. image quality or video filter options).
|
||||||
|
|
||||||
## {% linkable_title Image quality %}
|
## {% linkable_title Image quality %}
|
||||||
|
53
source/_components/canary.markdown
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Canary"
|
||||||
|
description: "Instructions on how to integrate your Canary devices into Home Assistant."
|
||||||
|
date: 2017-12-07 22:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: canary.png
|
||||||
|
ha_category: Hub
|
||||||
|
ha_release: "0.60"
|
||||||
|
ha_iot_class: "Cloud Polling"
|
||||||
|
---
|
||||||
|
|
||||||
|
The `canary` component allows you to integrate your [Canary](https://canary.is) devices in Home Assistant.
|
||||||
|
|
||||||
|
You will need your Canary login information (username, usually your email address, and password) to use this module.
|
||||||
|
|
||||||
|
To set it up, add the following to your `configuration.yaml` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
canary:
|
||||||
|
username: you@example.com
|
||||||
|
password: secret
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
username:
|
||||||
|
description: The username for accessing your Canary account.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
password:
|
||||||
|
description: The password for accessing your Canary account.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
timeout:
|
||||||
|
description: Timeout to wait for connections.
|
||||||
|
required: false
|
||||||
|
type: int
|
||||||
|
default: 10
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Once loaded, your front end will have the following components:
|
||||||
|
|
||||||
|
* A camera image triggered by motion for each camera.
|
||||||
|
* An alarm control panel for each location.
|
||||||
|
* A sensor per camera that reports temperature.
|
||||||
|
* A sensor per camera that reports humidity.
|
||||||
|
* A sensor per camera that reports air quality.
|
48
source/_components/climate.daikin.markdown
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Daikin AC"
|
||||||
|
description: "Instructions on how to integrate Daikin AC(s) with Home Assistant."
|
||||||
|
date: 2017-12-03 05:00
|
||||||
|
sidebar: false
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: N/A
|
||||||
|
ha_category: Climate
|
||||||
|
ha_release: 0.59
|
||||||
|
ha_iot_class: "Local Polling"
|
||||||
|
---
|
||||||
|
|
||||||
|
### Description ###
|
||||||
|
|
||||||
|
The climate component integrates Daikin air conditioning systems into Home Assistant, enabling control of setting the following parameters:
|
||||||
|
- **mode** (cool, heat, dry, fan only or auto)
|
||||||
|
- **fan speed** (on supported models)
|
||||||
|
- **target temperature**
|
||||||
|
- **swing mode** (on supported models)
|
||||||
|
|
||||||
|
Current temperature is displayed.
|
||||||
|
|
||||||
|
<p class='note warning'>
|
||||||
|
Please note, the `daikin` platform integrates **ONLY the european versions of Daikin ACs (models BRP069A41, 42, 43, 45)** into Home Assistant.
|
||||||
|
BRP069A42 does not support setting of fan speed or fan swing mode.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
### Configuration ###
|
||||||
|
|
||||||
|
The component has been integrated with discovery so all your Daikin AC's climate devices can be automatically discovered.
|
||||||
|
Manual configuration and customization is also possible by using the sample configuration from below:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
climate:
|
||||||
|
- platform: daikin
|
||||||
|
host: 10.0.0.1
|
||||||
|
name: optional name
|
||||||
|
```
|
||||||
|
|
||||||
|
Configuration variables:
|
||||||
|
|
||||||
|
- **host** (*Required*): IP or hostname of the device
|
||||||
|
- **name** (*Optional*): If the device has a name previously set by the user than that name will be used
|
||||||
|
|
64
source/_components/climate.econet.markdown
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "EcoNet water heater"
|
||||||
|
description: "Instructions how to integrate Rheem EcoNet water heaters into Home Assistant."
|
||||||
|
date: 2017-12-28 14:51
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: econet.png
|
||||||
|
ha_category: Climate
|
||||||
|
ha_release: 0.61.0
|
||||||
|
ha_iot_class: "Cloud Polling"
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
The `econet` water heater platform is consuming the information provided by a [EcoNet enabled Rheem water heater](http://www.rheem.com/EcoNet/Home). This component allows you to set the temperature, the operation mode, and enable vaction mode.
|
||||||
|
|
||||||
|
To enable the `econet` water heater platform add the following to your config.
|
||||||
|
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Example configuration.yaml entry
|
||||||
|
climate:
|
||||||
|
- platform: econet
|
||||||
|
username: YOUR_ECONET_EMAIL
|
||||||
|
password: YOUR_ECONET_PASSWORD
|
||||||
|
```
|
||||||
|
|
||||||
|
{% configuration %}
|
||||||
|
username:
|
||||||
|
description: The username used to connect to your EcoNet account.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
password:
|
||||||
|
description: The password used to connect to your EcoNet account.
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
{% endconfiguration %}
|
||||||
|
|
||||||
|
|
||||||
|
### {% linkable_title Service `econet_add_vacation` %}
|
||||||
|
|
||||||
|
You can use the service econet/add_vacation to create a new vacation for your EcoNet water heaters.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
| ---------------------- | -------- | ----------- |
|
||||||
|
| `entity_id` | yes | The entity id of the water heater to add the vaction to.
|
||||||
|
| `start_date` | yes | This is a Unix timestamp for when the vaction should start.
|
||||||
|
| `end_date` | yes | this is a Unix timestamp for when the vaction should end.
|
||||||
|
|
||||||
|
<p class='note'>
|
||||||
|
The Unix timestamps can be obtained from the input_datetime component. This will allow you to graphically set the start and end date.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
### {% linkable_title Service `econet_delete_vacation` %}
|
||||||
|
|
||||||
|
You can use the service econet/delete_vacation to remove all vactions from an EcoNet water heater.
|
||||||
|
|
||||||
|
| Service data attribute | Optional | Description |
|
||||||
|
| ---------------------- | -------- | ----------- |
|
||||||
|
| `entity_id` | yes | The entity id of the water heater to remove the vaction from.
|
||||||
|
|
||||||
|
|
@ -14,7 +14,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 under the hood. If the measured temperature is cooler then the target temperature, the heater will be turned on and turned off when required temperature is reached.
|
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.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
@ -28,19 +28,25 @@ climate:
|
|||||||
Configuration variables:
|
Configuration variables:
|
||||||
|
|
||||||
- **name** (*Required*): Name of thermostat
|
- **name** (*Required*): Name of thermostat
|
||||||
- **heater** (*Required*): `entity_id` for heater switch, must be a toggle device.
|
- **heater** (*Required*): `entity_id` for heater switch, must be a toggle device. Becomes air conditioning switch when `ac_mode` is set to `True`
|
||||||
- **target_sensor** (*Required*): `entity_id` for a temperature sensor, target_sensor.state must be temperature.
|
- **target_sensor** (*Required*): `entity_id` for a temperature sensor, target_sensor.state must be temperature.
|
||||||
- **min_temp** (*Optional*): Set minimum set point available (default: 7)
|
- **min_temp** (*Optional*): Set minimum set point available (default: 7)
|
||||||
- **max_temp** (*Optional*): Set maximum set point available (default: 35)
|
- **max_temp** (*Optional*): Set maximum set point available (default: 35)
|
||||||
- **target_temp** (*Optional*): Set initial target temperature. Failure to set this variable will result in target temperature being set to null on startup.
|
- **target_temp** (*Optional*): Set initial target temperature. Failure to set this variable will result in target temperature being set to null on startup. As of version 0.59, it will retain the target temperature set before restart if available.
|
||||||
- **ac_mode** (*Optional*): Set the switch specified in the *heater* option to be treated as a cooling device instead of a heating device.
|
- **ac_mode** (*Optional*): Set the switch specified in the *heater* option to be treated as a cooling device instead of a heating device.
|
||||||
- **min_cycle_duration** (*Optional*): Set a minimum amount of time that the switch specified in the *heater* option must be in it's current state prior to being switched either off or on.
|
- **min_cycle_duration** (*Optional*): Set a minimum amount of time that the switch specified in the *heater* option must be in it's current state prior to being switched either off or on.
|
||||||
- **cold_tolerance** (*Optional*): Set a minimum amount of difference between the temperature read by the sensor specified in the *target_sensor* option and the target temperature that must change prior to being switched on. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will start when the sensor equals or goes below 24.5.
|
- **cold_tolerance** (*Optional*): Set a minimum amount of difference between the temperature read by the sensor specified in the *target_sensor* option and the target temperature that must change prior to being switched on. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will start when the sensor equals or goes below 24.5.
|
||||||
- **hot_tolerance** (*Optional*): Set a minimum amount of difference between the temperature read by the sensor specified in the *target_sensor* option and the target temperature that must change prior to being switched off. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will stop when the sensor equals or goes above 25.5.
|
- **hot_tolerance** (*Optional*): Set a minimum amount of difference between the temperature read by the sensor specified in the *target_sensor* option and the target temperature that must change prior to being switched off. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will stop when the sensor equals or goes above 25.5.
|
||||||
- **keep_alive** (*Optional*): Set a keep-alive interval. If set, the switch specified in the *heater* option will be triggered every time the interval elapses. Use with heaters and A/C units that shut off if they don't receive a signal from their remote for a while.
|
- **keep_alive** (*Optional*): Set a keep-alive interval. If set, the switch specified in the *heater* option will be triggered every time the interval elapses. Use with heaters and A/C units that shut off if they don't receive a signal from their remote for a while. Use also with switches that might lose state. The keep-alive call is done with the current valid climate component state (either on or off).
|
||||||
|
- **initial_operation_mode** (*Optional*): Set the initial operation mode. Valid values are `off` or `auto`. Value has to be double quoted. If this parameter is not set, it is preferable to set a *keep_alive* value. This is helpful to align any discrepancies between *generic_thermostat* and *heater* state.
|
||||||
|
- **away_temp** (*Optional*): Set the temperature used by "away_mode" (default: 16). Please specify when using `ac_mode: True` to a higher value.
|
||||||
|
|
||||||
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:`.
|
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:`.
|
||||||
|
|
||||||
|
Currently the `generic_thermostat` climate platform supports 'heat', 'cool' and 'off' operation modes. You can force your `generic_thermstat` to avoid starting by setting Operation to 'off'.
|
||||||
|
|
||||||
|
Please note that changing Away Mode you will force a target temperature change as well that will get restored once the Away Mode is turned off.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Full example configuration.yaml entry
|
# Full example configuration.yaml entry
|
||||||
climate:
|
climate:
|
||||||
@ -50,6 +56,7 @@ climate:
|
|||||||
target_sensor: sensor.study_temperature
|
target_sensor: sensor.study_temperature
|
||||||
min_temp: 15
|
min_temp: 15
|
||||||
max_temp: 21
|
max_temp: 21
|
||||||
|
ac_mode: False
|
||||||
target_temp: 17
|
target_temp: 17
|
||||||
cold_tolerance: 0.3
|
cold_tolerance: 0.3
|
||||||
hot_tolerance: 0
|
hot_tolerance: 0
|
||||||
@ -57,4 +64,6 @@ climate:
|
|||||||
seconds: 5
|
seconds: 5
|
||||||
keep_alive:
|
keep_alive:
|
||||||
minutes: 3
|
minutes: 3
|
||||||
|
initial_operation_mode: "off"
|
||||||
|
away_temp: 16
|
||||||
```
|
```
|
||||||
|
30
source/_components/climate.hive.markdown
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "Hive Thermostat"
|
||||||
|
description: "Instructions on how to integrate Hive thermostat(s) with Home Assistant."
|
||||||
|
date: 2017-09-24 21:00
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: hive.png
|
||||||
|
ha_category: Climate
|
||||||
|
ha_release: 0.59
|
||||||
|
ha_iot_class: "Cloud Polling"
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
The 'hive' climate component integrates your Hive thermostat and hot water into Home Assistant, enabling control of setting the **mode** and setting the **target temperature**.
|
||||||
|
A short boost for Hive Heating or Hive Hot water can be set by using the **Aux Heat** function, this will turn on the boost feature for Hive Heating or Hive Hot water for 30 minutes at 0.5 degrees higher than the current temperature.
|
||||||
|
|
||||||
|
The Hive climate component supports the following Hive products:
|
||||||
|
- **Hive Active Heating**
|
||||||
|
- **Hive Multizone**
|
||||||
|
- **Hot water control**
|
||||||
|
|
||||||
|
|
||||||
|
<p class='note'>
|
||||||
|
Full configuration details can be found on the main [Hive component](/components/hive/) page.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
@ -36,5 +36,5 @@ Configuration variables:
|
|||||||
- **region** (*Optional*): Region identifier (either 'eu' or 'us'). Defaults to 'eu' if not provided.
|
- **region** (*Optional*): Region identifier (either 'eu' or 'us'). Defaults to 'eu' if not provided.
|
||||||
- **scan_interval**(*Optional*): Scan interval is expressed in seconds. Recommended value of 600 seconds. Default value is 120 seconds. Omitting scan_interval may result in too-frequent polling and cause you to rate-limited by Honeywell.
|
- **scan_interval**(*Optional*): Scan interval is expressed in seconds. Recommended value of 600 seconds. Default value is 120 seconds. Omitting scan_interval may result in too-frequent polling and cause you to rate-limited by Honeywell.
|
||||||
- **away_temperature** (*Optional*) (*only for eu region*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C.
|
- **away_temperature** (*Optional*) (*only for eu region*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C.
|
||||||
- **cool_away_temperature** (*Optional*) (*only for us region*): Cooling setpoint when away mode is on. If omitted it defaults to 30.0 deg C.
|
- **away_cool_temperature** (*Optional*) (*only for us region*): Cooling setpoint when away mode is on. If omitted it defaults to 30.0 deg C.
|
||||||
- **heat_away_temperature** (*Optional*) (*only for us region*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C.
|
- **away_heat_temperature** (*Optional*) (*only for us region*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C.
|
||||||
|