Merge remote-tracking branch 'origin/current' into next

This commit is contained in:
Paulus Schoutsen 2018-03-14 17:15:23 -07:00
commit 47e1b3c171
30 changed files with 1257 additions and 93 deletions

View file

@ -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:

View file

@ -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'
```

View file

@ -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

View file

@ -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).

View file

@ -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
```

View file

@ -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"

View file

@ -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.

View file

@ -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'>

View file

@ -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