Merge remote-tracking branch 'origin/current' into next
This commit is contained in:
commit
47e1b3c171
30 changed files with 1257 additions and 93 deletions
|
@ -23,7 +23,7 @@ binary_sensor:
|
|||
- platform: trend
|
||||
sensors:
|
||||
solar_angle:
|
||||
entity_id: sun.sun
|
||||
entity_id: sensor.cpu_speed
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
@ -59,7 +59,7 @@ binary_sensor:
|
|||
- platform: trend
|
||||
sensors:
|
||||
sun_rising:
|
||||
entity_id: sun.sun
|
||||
entity_id: sensor.cpu_speed
|
||||
```
|
||||
|
||||
This example creates two sensors to indicate whether the temperature is rising or falling at a rate of at least 3 degrees an hour, and collects samples over a two hour period:
|
||||
|
|
|
@ -13,11 +13,11 @@ 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.
|
||||
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 15 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 need to have a CalDav server and credentials for it. This component was tested against [Baikal](http://sabre.io/baikal/) but any component complying with the RFC4791 should work. [Nextcloud](https://nextcloud.com/) and [Owncloud](https://owncloud.org/) work fine.
|
||||
|
||||
You might need some additional system packages to compile the Python caldav library. On a Debian based system, install them by:
|
||||
|
||||
|
@ -30,7 +30,7 @@ $ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev
|
|||
To integrate a WebDav calendar in Home Assistant, add the following section to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
# Example configuration.yaml entry for baikal
|
||||
calendar:
|
||||
- platform: caldav
|
||||
username: john.doe@test.com
|
||||
|
@ -38,6 +38,15 @@ calendar:
|
|||
url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default
|
||||
```
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry for nextcloud, calendars will be found automatically
|
||||
calendar:
|
||||
- platform: caldav
|
||||
username: john.doe
|
||||
password: !secret caldav
|
||||
url: https://nextcloud.example.com/remote.php/dav
|
||||
```
|
||||
|
||||
This example will generate default binary sensors for each calendar you have in your account. Those calendars will be `on` when there is an ongoing event and `off` if not. Events that last a whole day are ignored in those calendars. You have to setup custom calendars in order to take them into account or for advanced event filtering.
|
||||
|
||||
|
||||
|
@ -80,7 +89,7 @@ password:
|
|||
type: string
|
||||
calendars:
|
||||
required: false
|
||||
description: List of the calendars to filter. Empty or absent means no filtering.
|
||||
description: List of the calendars to filter. Empty or absent means no filtering, i.e. all calendars will be added.
|
||||
type: list
|
||||
custom_calendars:
|
||||
required: false
|
||||
|
@ -97,7 +106,7 @@ custom_calendars:
|
|||
type: string
|
||||
search:
|
||||
required: true
|
||||
pending_charges: Regular expression for filtering the events based on the content of their summary, description or location.
|
||||
description: Regular expression for filtering the events based on the content of their summary, description or location.
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
|
@ -111,3 +120,50 @@ custom_calendars:
|
|||
- **location**: The event Location.
|
||||
- **start_time**: Start time of event.
|
||||
- **end_time**: End time of event.
|
||||
|
||||
### {% linkable_title Examples %}
|
||||
|
||||
All events of the calendars "private" and "holidays". Note that all day events are not included.
|
||||
```yaml
|
||||
# Example configuration.yaml entry for nextcloud
|
||||
calendar:
|
||||
- platform: caldav
|
||||
url: https://nextcloud.example.com/remote.php/dav
|
||||
username: 'me'
|
||||
password: !secret caldav
|
||||
calendars:
|
||||
- private
|
||||
- holidays
|
||||
```
|
||||
|
||||
Full example with automation to wake up to music if not holiday. Prerequisite: you have a calendar named "work" where you create calendar entries containing "Holiday".
|
||||
|
||||
Custom calendar names are built from the main calendar + name of the custom calendar.
|
||||
|
||||
```yaml
|
||||
# configuration.yaml
|
||||
calendar:
|
||||
- platform: caldav
|
||||
url: https://nextcloud.example.com/remote.php/dav
|
||||
username: 'me'
|
||||
password: !secret caldav
|
||||
custom_calendars:
|
||||
- name: holiday
|
||||
calendar: work
|
||||
search: 'Holiday'
|
||||
|
||||
# automations.yaml
|
||||
- id: wakeup
|
||||
alias: worktime wakeup
|
||||
trigger:
|
||||
platform: time
|
||||
at: 06:40:00
|
||||
action:
|
||||
- service: media_player.media_play
|
||||
entity_id: media_player.bedroom
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: calendar.work_holiday
|
||||
state: 'off'
|
||||
|
||||
```
|
||||
|
|
|
@ -79,6 +79,7 @@ Valid values for ignore are:
|
|||
* `sabnzbd`: SABnzbd downloader
|
||||
* `samsung_tv`: Samsung TVs
|
||||
* `sonos`: Sonos speakers
|
||||
* `songpal` : Songpal
|
||||
* `tellduslive`: Telldus Live
|
||||
* `wink`: Wink Hub
|
||||
* `yamaha`: Yamaha media player
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
layout: page
|
||||
title: "Egardia"
|
||||
description: "Instructions how to setup Egardia / Woonveilig within Home Assistant."
|
||||
date: 2018-03-02 09:00
|
||||
date: 2018-03-13 09:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
|
@ -16,29 +16,81 @@ The `egardia` platform enables the ability to control an [Egardia](http://egardi
|
|||
|
||||
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 the integration with your alarm panel, add the following lines to your `configuration.yaml` file:
|
||||
## {% linkable_title Basic configuration %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
egardia:
|
||||
host: YOUR_HOST
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
To enable the integration with your alarm panel, add the following lines to your `configuration.yaml` file:
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
egardia:
|
||||
host: YOUR_HOST
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **host** (*Required*): The local IP address of the Egardia/Woonveilig alarm panel.
|
||||
- **username** (*Required*): Username for the Egardia/Woonveilig account.
|
||||
- **password** (*Required*): Password for Egardia/Woonveilig account.
|
||||
- **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.
|
||||
- **report_server_enabled** (*Optional*): Enable reporting by server. Defaults to `False`.
|
||||
- **report_server_port** (*Optional*): Port of the Egardia server. Defaults to 52010.
|
||||
- **report_server_codes** list (*Optional*): List of codes for the different states.
|
||||
{% configuration %}
|
||||
host:
|
||||
description: The local IP address of the Egardia/Woonveilig alarm panel.
|
||||
required: true
|
||||
type: string
|
||||
username:
|
||||
description: Username for the Egardia/Woonveilig account.
|
||||
required: true
|
||||
type: string
|
||||
password:
|
||||
description: Password for Egardia/Woonveilig account.
|
||||
required: true
|
||||
type: string
|
||||
version:
|
||||
description: The version of the Egardia system. `GATE-01`, `GATE-02` and `GATE-03` are currently supported.
|
||||
required: false
|
||||
type: string
|
||||
default: 'GATE-01'
|
||||
port:
|
||||
description: The port of the alarm panel.
|
||||
required: false
|
||||
type: int
|
||||
default: 80
|
||||
report_server_enabled:
|
||||
description: Enable reporting by server.
|
||||
required: false
|
||||
type: string
|
||||
default: false
|
||||
report_server_port:
|
||||
description: Port of the Egardia server.
|
||||
required: false
|
||||
type: int
|
||||
default: 52010
|
||||
report_server_codes:
|
||||
description: Map of list of codes for the different states.
|
||||
required: false
|
||||
type: map
|
||||
keys:
|
||||
arm:
|
||||
description: List of codes for the 'arm' state.
|
||||
required: false
|
||||
type: list
|
||||
disarm:
|
||||
description: List of codes for the 'disarm' state.
|
||||
required: false
|
||||
type: list
|
||||
armhome:
|
||||
description: List of codes for the 'armhome' state.
|
||||
required: false
|
||||
type: list
|
||||
triggered:
|
||||
description: List of codes for the 'triggered' state.
|
||||
required: false
|
||||
type: list
|
||||
ignore:
|
||||
description: List of codes that will be ignored.
|
||||
required: false
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
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 (and more useful) configuration.
|
||||
|
||||
## {% linkable_title Advanced configuration %}
|
||||
|
||||
1. Log in to 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. 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'.
|
||||
|
@ -47,9 +99,9 @@ You can change this, however, using the following procedure. This is a more adva
|
|||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
egardia:
|
||||
host: YOUR_HOST
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
host: YOUR_HOST
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
report_server_enabled: True
|
||||
report_server_port: PORT_OF_EGARDIASERVER (optional, defaults to 52010)
|
||||
report_server_codes:
|
||||
|
@ -63,5 +115,3 @@ You can change this, however, using the following procedure. This is a more adva
|
|||
Note that for all code groups (*arm*,*disarm*, etc) 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. 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).
|
||||
|
||||
|
||||
|
|
|
@ -90,3 +90,16 @@ When starting Home Assistant, the last recorded state will be shown. This might
|
|||
If you control your LimitlessLED lights via the MiLight mobile application or other means while Home Assistant is running, Home Assistant can not track those changes and you may observe obsolete information.
|
||||
|
||||
This lack of synchronization is due to a LimitlessLED limitation.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/screenshots/limitlessled_assumed_state.png' />
|
||||
</p>
|
||||
|
||||
Because LimitlessLED lights may have an obsolete state, Home Assistant shows the power switch as two buttons rather than a toggle. This ensures that the power can be set with a single click even if the assumed state is wrong. You can change to use the power toggle with [Customize](/docs/configuration/customizing-devices/):
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
customize_domain:
|
||||
light:
|
||||
assumed_state: false
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ sharing: true
|
|||
footer: true
|
||||
logo: dark_sky.png
|
||||
ha_category: Weather
|
||||
featured: true
|
||||
featured: false
|
||||
ha_release: "0.30"
|
||||
redirect_from: /components/sensor.forecast/
|
||||
ha_iot_class: "Cloud Polling"
|
||||
|
|
|
@ -16,12 +16,13 @@ ha_iot_class: "Cloud Polling"
|
|||
|
||||
The `speedtest` sensor component uses the [Speedtest.net](https://speedtest.net/) web service to measure network bandwidth performance.
|
||||
|
||||
By default, it will run every hour. The user can change the update frequency in the configuration by defining the minute, hour, and day for a speedtest to run. For the `server_id` check the list of [available servers](https://www.speedtest.net/speedtest-servers.php).
|
||||
By default, it will run every hour. The user can change the update frequency in the configuration by defining the minute, hour, and day for a speed test to run. For the `server_id` check the list of [available servers](https://www.speedtest.net/speedtest-servers.php).
|
||||
|
||||
To add a Speedtest.net sensor to your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
Once per hour, on the hour (default):
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
|
@ -31,32 +32,63 @@ sensor:
|
|||
- download
|
||||
- upload
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **monitored_conditions** array (*Required*): Sensors to display in the frontend.
|
||||
- **ping**: Reaction time in ms of your connection (how fast you get a response after you've sent out a request).
|
||||
- **download**: Download speed in Mbps.
|
||||
- **upload**: Upload speed in Mbps.
|
||||
- **server_id** (*Optional*): Specify the speedtest server to perform test against.
|
||||
- **minute** (*Optional*): Specify the minute(s) of the hour to schedule the speedtest. Use a list for multiple entries. Default is 0.
|
||||
- **hour** (*Optional*): Specify the hour(s) of the day to schedule the speedtest. Use a list for multiple entries. Default is None.
|
||||
- **day** (*Optional*): Specify the day(s) of the month to schedule the speedtest. Use a list for multiple entries. Default is None.
|
||||
- **manual** (*Optional*): True or False to turn manual mode on or off. Manual mode will disable scheduled speedtests.
|
||||
{% configuration %}
|
||||
monitored_conditions:
|
||||
description: Sensors to display in the frontend.
|
||||
required: true
|
||||
type: list
|
||||
keys:
|
||||
ping:
|
||||
description: Reaction time in ms of your connection (how fast you get a response after you've sent out a request).
|
||||
download:
|
||||
description: Download speed (Mbit/s)
|
||||
upload:
|
||||
description: Upload speed (Mbit/s)
|
||||
server_id:
|
||||
description: Specify the speed test server to perform the test against.
|
||||
required: false
|
||||
type: int
|
||||
day:
|
||||
description: Specify the day(s) of the month to schedule the speed test. Use a list for multiple entries.
|
||||
required: false
|
||||
type: [int, list]
|
||||
hour:
|
||||
description: Specify the hour(s) of the day to schedule the speed test. Use a list for multiple entries.
|
||||
required: false
|
||||
type: [int, list]
|
||||
minute:
|
||||
description: Specify the minute(s) of the hour to schedule the speed test. Use a list for multiple entries.
|
||||
required: false
|
||||
type: [int, list]
|
||||
default: 0
|
||||
second:
|
||||
description: Specify the second(s) of the minute to schedule the speed test. Use a list for multiple entries.
|
||||
required: false
|
||||
type: [int, list]
|
||||
default: 0
|
||||
manual:
|
||||
description: True or False to turn manual mode on or off. Manual mode will disable scheduled speed tests.
|
||||
required: false
|
||||
type: bool
|
||||
default: false
|
||||
{% endconfiguration %}
|
||||
|
||||
This component uses [speedtest-cli](https://github.com/sivel/speedtest-cli) to gather network performance data from Speedtest.net. Please be aware of the potential [inconsistencies](https://github.com/sivel/speedtest-cli#inconsistency) that this component may display.
|
||||
|
||||
When Home Assistant first starts up, the values of the speedtest will show as `Unknown`. You can use the service `sensor.update_speedtest` to run a manual speedtest and populate the data or just wait for the next regularly scheduled test. You can turn on manual mode to disable the scheduled speedtests.
|
||||
When Home Assistant first starts up, the values of the speed test will show as `Unknown`. You can use the service `sensor.update_speedtest` to run a manual speed test and populate the data or just wait for the next regularly scheduled test. You can turn on manual mode to disable the scheduled speed tests.
|
||||
|
||||
|
||||
## {% 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.
|
||||
|
||||
### {% linkable_title Run periodically %}
|
||||
|
||||
Every half hour of every day:
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
|
@ -69,11 +101,13 @@ sensor:
|
|||
- download
|
||||
- upload
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### {% linkable_title Run at a specific time %}
|
||||
|
||||
Everyday at 12:30AM, 6:30AM, 12:30PM, 6:30PM:
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
|
@ -89,29 +123,33 @@ sensor:
|
|||
- download
|
||||
- upload
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### {% linkable_title Using as a trigger in an automation %}
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
automation:
|
||||
- alias: 'Internet Speed Glow Connect Great'
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: '{% raw %}{{ states.sensor.speedtest_download.state|float > 10}}{% endraw %}'
|
||||
action:
|
||||
service: shell_command.green
|
||||
- alias: 'Internet Speed Glow Connect Poor'
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: '{% raw %}{{ states.sensor.speedtest_download.state| float < 10 }}{% endraw %}'
|
||||
action:
|
||||
service: shell_command.red
|
||||
- alias: "Internet Speed Glow Connect Great"
|
||||
trigger:
|
||||
- platform: template
|
||||
value_template: "{{ states('sensor.speedtest_download')|float > 10 }}"
|
||||
action:
|
||||
- service: shell_command.green
|
||||
|
||||
- alias: "Internet Speed Glow Connect Poor"
|
||||
trigger:
|
||||
- platform: template
|
||||
value_template: "{{ states('sensor.speedtest_download')|float < 10 }}"
|
||||
action:
|
||||
- service: shell_command.red
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
## {% linkable_title Notes %}
|
||||
|
||||
- When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter.
|
||||
- Entries under `monitored_conditions` only control what entities are available under home-assistant, it does not disable the condition from running.
|
||||
- If ran frequently, this component has the capability of using a very large amount of data. Frequent updates should be avoided on bandwidth capped connections.
|
||||
- While running, network usage is fully utilized. This may have a negative affect on other devices in use the network such as gaming consoles or streaming boxes.
|
||||
- Entries under `monitored_conditions` only control what entities are available in Home Assistant, it does not disable the condition from running.
|
||||
- If ran frequently, this component has the ability to use a considerable amount of data. Frequent updates should be avoided on bandwidth-capped connections.
|
||||
- While running, your network capacity is fully utilized. This may have a negative effect on other devices in use the network such as gaming consoles or streaming boxes.
|
||||
|
|
|
@ -32,6 +32,8 @@ Install the latest version of [PhantomJS]( http://phantomjs.org/download.html).
|
|||
Don't use apt-get to install PhantomJS. This version is not compatible.
|
||||
</p>
|
||||
|
||||
If you use the PhantomJS option, specify `driver: phantomjs` in your `usps` configuration.
|
||||
|
||||
|
||||
### Chrome
|
||||
|
||||
|
@ -60,6 +62,7 @@ Configuration options for the USPS component:
|
|||
|
||||
- **username** (*Required*): The username to access the MyUSPS service.
|
||||
- **password** (*Required*): The password for the given username.
|
||||
- **driver** (*Required*): Specify if you're using `phantomjs` or `chrome`.
|
||||
- **name** (*Optional*): Prefix for sensor names (defaults to "USPS")
|
||||
|
||||
<p class='note warning'>
|
||||
|
|
|
@ -7,6 +7,7 @@ sidebar: true
|
|||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
featured: true
|
||||
logo: dark_sky.png
|
||||
ha_category: Weather
|
||||
ha_release: 0.61
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue