Merge pull request #3167 from home-assistant/release-0-51

0.51
This commit is contained in:
Paulus Schoutsen 2017-08-12 12:56:47 -07:00 committed by GitHub
commit 5ba6f9dd74
60 changed files with 2020 additions and 131 deletions

View File

@ -142,12 +142,12 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 50
current_patch_version: 2
date_released: 2017-07-31
current_minor_version: 51
current_patch_version: 0
date_released: 2017-08-12
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
# Major release:
patch_version_notes: "#release-0502---july-31"
patch_version_notes: "#"
# Minor release (Example #release-0431---april-25):

View File

@ -11,6 +11,7 @@ featured: true
---
Setting up an [SSH](https://openssh.org/) server allows access to your Hass.io folders with any SSH client. It also includes a command-line tool to access the [Hass.io API](https://github.com/home-assistant/hassio/blob/dev/API.md). Try it out:
```bash
$ hassio help
```

View File

@ -0,0 +1,70 @@
---
layout: page
title: "Egardia / Woonveilig Alarm Control Panel"
description: "Instructions how to integrate Egardia / Woonveilig into Home Assistant."
date: 2016-07-02 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: egardia.png
ha_release: 0.51
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.
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 in using your Egardia/Woonveilig account.
To enable this, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
alarm_control_panel:
- platform: 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.
- **port** (*Optional*): The port of the alarm panel. Defaults to 80.
- **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_port** (*Optional*): Port of the Egardia server. Defaults to 85.
- **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.
You can change this however, using the following procedure. This is an more advanced configuration.
1. Login 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. Login 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'.
3. On your Home Assistant machine run `$ sudo python3 egardiaserver.py`. 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, armhome) as well as trigger the alarm in all ways possible to get 100% coverage. **Before triggering the alarm it might be good to temporarily disable the siren (can be done in Panel Settings).**
4. Once you have the codes, update your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
alarm_control_panel:
 - platform: egardia
  host: YOUR_HOST
  username: YOUR_USERNAME
  password: YOUR_PASSWORD
report_server_enabled: True
report_server_port: PORT_OF_EGARDIASERVER (85 as per the instructions above)
report_server_codes:
arm: XXXXXXXXXXXXXXXX
disarm: XXXXXXXXXXXXXXXX
armhome: XXXXXXXXXXXXXXXX
triggered: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX
standby: XXXXXXXXXXXXXXXX
```
Note that your can have more than one code for triggered, since every sensor generates it's own code. arm, disarm, armhome and standby will all be one code.
5. Start the `egardiaserver.py` script on boot of your Home Assistant machine, for example by adding the following to your `/etc/rc.local`:
```bash
python3 [path/to/]egardiaserver.py &
```
**Do not forget the trailing & here, otherwise you will be having a hard time logging back in to the machine.**
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.

View File

@ -9,7 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: Alarm
ha_release: "0.50"
ha_release: 0.50
---
This platform extends the [manual alarm](/components/alarm_control_panel.manual/) by adding support for MQTT control of the alarm by a remote device. It can be used to create external keypads which simply change the state of the manual alarm in Home Assistant.

View File

@ -0,0 +1,42 @@
---
layout: page
title: "Asterisk Voicemail"
description: "Instructions how to integrate your existing Asterisk voicemail within Home Assistant."
date: 2017-06-30 18:30
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Other
ha_version: 0.51
ha_iot_class: "Local Push"
---
The Asterisk Voicemail integration for Home Assistant allows you to view, listen-to, and delete voicemails from a Asterisk voicemail mailbox. The component includes a panel on the frontend that provides caller-id and speech-to-text transcription (using Google's API) of messages in addition to playback and message deletion. There is also an included sensor that provides an indication of the number of available messages. There is no requirement that the Asterisk PBX and Home Assistant are running on the same machine.
To enable the component, configuration is required in both Home Assistant as well as on the Asterisk server.
First follow the [Asterisk PBX configuration guide](/docs/asterisk_mbox) to setup the necessary server on the Asterisk PBX server (this is necessary even if Asterisk and Home Assistant are running on the same server)
Once that is complete, add the the following entry `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
asterisk_mbox:
password: ASTERISK_PBX_PASSWORD
host: ASTERISK_PBX_SERVER_IP_ADDRESS
port: ASTERISK_PBX_SERVER_PORT
```
This will add a new 'Mailbox' side-panel, as well as a sensor to indicate # of messages available.
Configuration variables:
- **password** (*Required*): The password that was set during Asterisk PBX confguration
- **host** (*Required*): The ip-address of the server that is running the Asterisk PBX
- **port** (*Required*): The port on the Asterisk PBX server that was configured during Asterisk PBX confguration
<p class='note warning'>
Communication between the Asterisk PBX server and the Home Assistant server is password-protected, but the data transmission is not encrypted. It is recommended to only use this component when communication will be contained within a local area network.
</p>

View File

@ -36,7 +36,9 @@ cover:
Configuration variables:
- **relay_time** (*Optional*): The time that the relay will be on for in seconds. Default is 0.2 seconds.
- **invert_relay** (*Optional*): Invert the relay pin output so that it is active-high. Default is False (active-low).
- **state_pull_mode** (*Optional*): The direction the State pin is pulling. It can be UP or DOWN. Default is UP.
- **invert_state** (*Optional*): Invert the value of the State pin so that 0 means closed. Default is False.
- **covers** array (*Required*): List of your doors.
- **relay_pin** (*Required*): The pin of your Raspberry Pi where the relay is connected.
- **state_pin** (*Required*): The pin of your Raspberry Pi to retrieve the state.
@ -49,7 +51,9 @@ Full example:
cover:
- platform: rpi_gpio
relay_time: 0.2
invert_relay: False
state_pull_mode: 'UP'
invert_state: True
covers:
- relay_pin: 10
state_pin: 11

View File

@ -31,6 +31,7 @@ Available demo platforms:
- [Switch](/components/switch/) (`switch`)
- [Text-to-speech](/components/tts/) (`tts`)
- [Weather](/components/weather/) (`weather`)
- [Mailbox](/components/mailbox/) (`mailbox`)
To integrate a demo platform in Home Assistant, add the following section to your `configuration.yaml` file:

View File

@ -0,0 +1,36 @@
---
layout: page
title: "Huawei Router"
description: "Instructions how to integrate Huawei Routers into Home Assistant."
date: 2017-07-16 01:40
sidebar: true
comments: false
sharing: true
footer: true
logo: huawei.png
ha_category: Presence Detection
ha_release: 0.51
---
This component offers presence detection by looking at connected devices to a [Huawei router](http://m.huawei.com/enmobile/enterprise/products/network/access/pon-one/hw-371813.htm).
Currently, this was only tested with the Huawei HG8247H (used by Vodafone Portugal).
To use a Huawei router in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
- platform: huawei_router
host: 192.168.1.1
username: user
password: pass
```
Configuration variables:
- **host** (*Required*): The IP address of your router, e.g. 192.168.1.1.
- **username** (*Required*): The username to login into the router (the same used trough the router's web interface).
- **password** (*Required*): The password for the specified username.
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -13,9 +13,7 @@ ha_iot_class: "Cloud Polling"
ha_release: 0.47
---
The `dyson` component is the main component to integrate all [Dyson](https://dyson.com) related platforms.
Currently limited to Cool Link Purifier.
The `dyson` component is the main component to integrate all [Dyson](https://dyson.com) related platforms: [Fans](/components/fan/dyson/) and [Robot vacuum](/components/vacuum/dyson/).
To enable this component, add the following lines to your `configuration.yaml`:
@ -25,9 +23,9 @@ dyson:
password: <dyson_acount_password>
language: <dyson_account_language>
devices:
- device_id: <device_id_1>
- device_id: <device_id_1> # eg: Pure Cool Link device
device_ip: <device_ip_1>
- device_id: <device_id_2>
- device_id: <device_id_2> # eg: Eye 360 robot vacuum
device_ip: <device_ip_2>
...
```
@ -42,6 +40,8 @@ Configuration variables:
- **device_ip** (*Required*): Device IP address
`devices` list is optional but you'll have to provide them if discovery is not working (warnings in the logs and the devices are not available in Home Assistant web interface).
*If your are using a robot vacuum (Dyson 360 Eye), discovery is not yet supported so you have to provide `devices` list.*
To find devices IP address, you can use your router or `nmap`:
```bash

View File

@ -36,6 +36,8 @@ Configuration variables:
- **verify_ssl** (*Optional*): Verify SSL certificate for https request. Defaults to false.
- **default_measurement** (*Optional*): Measurement name to use when an entity doesn't have a unit. Defaults to entity id.
- **override_measurement** (*Optional*): Measurement name to use instead of unit or default measurement. This will store all data points in a single measurement.
- **component_config**, **component_config_domain**, **component_config_glob** (*Optional*): These attributes contains component-specific override values. See [Customizing devices and services](https://home-assistant.io/getting-started/customizing-devices/) for format.
- **override_measurement** (*Optional*): Measurement name to use for this component, takes precedence over the global 'override_measurement' and component-specific 'unit_of_measurement' attribute.
- **exclude** (*Optional*): Configure which components should be excluded from recording to InfluxDB.
- **entities** (*Optional*): The list of entity ids to be excluded from recording to InfluxDB.
- **domains** (*Optional*): The list of domains to be excluded from recording to InfluxDB.
@ -43,6 +45,7 @@ Configuration variables:
- **entities** (*Optional*): The list of entity ids to be included from recordings to InfluxDB.
- **domains** (*Optional*): The list of domains to be included from recordings to InfluxDB.
- **tags** (*Optional*): Tags to mark the data.
- **tags_attributes** (*Optional*): The list of attribute names which should be reported as tags and not fields to InfluxDB. For example, if set to `friendly_name`, it will be possible to group by entities' friendly names as well, in addition to their ids.
## {% linkable_title Data migration %}

View File

@ -0,0 +1,37 @@
---
layout: page
title: "Decora Wi-Fi"
description: "Instructions on how to setup Leviton Decora Smart Wi-Fi switches/dimmers within Home Assistant."
date: 2017-07-19 12:00
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Light
ha_iot_class: "Local Polling"
logo: leviton.png
ha_release: 0.51
---
Support for [Leviton Decora Wi-Fi](http://www.leviton.com/en/products/lighting-controls/decora-smart-with-wifi) dimmers/switches.
Supported devices (tested):
- [DW6HD1-BZ](https://www.leviton.com/en/products/dw6hd) (Decora Smart Wi-Fi 600W Dimmer)
To enable these lights, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
light:
- platform: decora_wifi
username: my_leviton_user_email@email.com
password: my_leviton_password
```
Configuration variables:
- **username** (*Required*): Your "My Leviton" app email address/user name.
- **password** (*Required*): Your "My Leviton" app password.

View File

@ -0,0 +1,32 @@
---
layout: page
title: "Mochad Light"
description: "Instructions how to integrate X10 Mochad switches into Home Assistant."
date: 2017-07-14 11:29
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Light
ha_release: 0.51
---
The `mochad` switch platform lets you control an X10 enabled dimmer/light
device.
To enable this sensor, you first have to set up the [mochad component](/components/mochad/) and then add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yml entry
light:
- platform: mochad
devices:
- address: a1
- address: a5
```
Configuration variables:
- **address** (*Required*): The X10 address of the light.
- **name** (*Optional*): The name of the switch. Default is: x10_light_dev_*address*.
- **comm_type** (*Optional*): pl (powerline) or rf (radio frequency). Default is pl.

View File

@ -45,3 +45,23 @@ lock:
port: 8080
token: fe2345ef
```
## {% linkable_title Services %}
### {% linkable_title Service `nuki_unlatch` %}
This will unlatch the door, ie. open it (provided this works with your type of door).
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`s Nuki Locks.
### {% linkable_title Service `nuki_lock_n_go` %}
This will first unlock, wait a few seconds (20 by default) then re-lock. The wait period can be customized through the app.
See the [Nuki Website](https://nuki.io/en/support/smart-lock/sl-features/locking-with-the-smart-lock/) for more details about this feature.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`s Nuki Locks.
| `unlatch` | yes | Boolean - Whether to unlatch the door when first opening it.

View File

@ -20,7 +20,8 @@ This component only supports the Caseta line of products. The current supported
- Dimmers as Home Assistant lights
- Wall switches as Home Assistant switches
- Serena shades as Home Assistant covers
- Scenes as Home Assistant scenes
- Serena shades (honeycomb and roller) as Home Assistant covers
When configured, the `lutron_caseta` component will automatically discover the currently support devices as setup in the Lutron SmartBridge.

View File

@ -0,0 +1,15 @@
---
layout: page
title: "Asterisk Voicemail Mailbox"
description: "Instructions how to integrate an Asterisk Voicemail within Home Assistant."
date: 2017-06-30 18:30
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Mailbox
ha_version: 0.51
---
The Asterisk Voicemail Mailbox provides visual and audio access to voicemail on the Asterisk PBX server. This mailbox is enabled automatically through the [Asterisk Voicemail component](/components/asterisk_mbox) configuration.

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Mailbox"
description: "Instructions how to setup your mailboxes with Home Assistant."
date: 2017-06-30 18:30
sidebar: true
comments: false
sharing: true
ha_version: 0.51
footer: true
---
Mailboxes provide an list of messages with short information about each. Mailbox messages appear on a separate panel in the frontend.
Home Assistant currently supports only the [Asterisk Vaoicemail](/component/mailbox.asterisk_mbox) mailbox.
Each mailbox also provides an entity to indicate the number of messages available on the main page.

View File

@ -13,7 +13,8 @@ ha_release: 0.49
---
The `media_extractor` component gets a stream URL and sends it to a media player entity. This component can extract entity specific streams if configured accordingly.
The `media_extractor` component gets an stream URL and send it to a media player entity. This component can extract entity specific streams if configured accordingly.
<p class='note'>
Media extractor doesn't transcode streams, it just tries to find stream that match requested query.
</p>

View File

@ -0,0 +1,48 @@
---
layout: page
title: "Bluesound"
description: "Instructions how to integrate Bluesound devices into Home Assistant."
date: 2017-04-21 19:00
sidebar: true
comments: false
sharing: true
footer: true
logo: bluesound.png
ha_category: Media Player
featured: true
ha_release: 0.51
ha_iot_class: "Local Polling"
---
The `bluesound` platform allows you to control your [Bluesound](http://www.bluesound.com/) HiFi wireless speakers and audio components from Home Assistant.
If you want to automatically discover new devices, just make sure you have discovery: in your configuration.yaml file. To manually add a Bluesound device to your installation, add the following to your configuration.yaml file:
```yaml
# Example configuration.yaml
media_player:
- platform: bluesound
hosts:
- host: 192.168.1.100
```
Configuration variables:
- **hosts** (*Optional*): List with your bluesound devices
- **host** (*Required*): IP-address or hostname of the player
- **name** (*Optional*): The name of the device used in the frontend
- **port** (*Optional*): Port of communication to the device (default: 11000)
## Advanced configuration example
```yaml
# Example configuration.yaml entry with manually specified addresses
media_player:
- platform: bluesound
hosts:
- host: 192.168.1.100
name: bluesound_kitchen
port: 11000
- host: 192.168.1.131
```

View File

@ -22,10 +22,55 @@ The `directv` media player platform can also be forced to load by adding the fol
media_player:
- platform: directv
```
Configuration variables:
- **host** (*Optional*): Use only if you don't want to scan for devices.
- **port** (*Optional*): The port your receiver is using. Defaults to `8080`.
- **name** (*Optional*): Use to give a specific name to the device.
- **device** (*Optional*): Use to specify a particular receiver in a Genie setup.
In a DirecTV setup with Genie slave boxes, only the master Genie server is currently found via the [discovery component](/components/discovery/). Slave boxes must be manually configured via the `device` configuration variable in order to be used with Home Assistant.
To find valid device IDs, open `http://<IP Address of Genie Server>:8080/info/getLocations` in a web browser. For each Genie slave, you will find a variable `clientAddr` in the response, and this should be used for `device` in `configuration.yaml`
For example, a response such as:
```json
{
"locations": [
{
"clientAddr": "0",
"locationName": "MASTER GENIE SERVER",
"tunerBond": true
},
{
"clientAddr": "5009591D6969",
"locationName": "SOME SLAVE GENIE"
}
],
"status": {
"code": 200,
"commandResult": 0,
"msg": "OK.",
"query": "/info/getLocations"
}
}
```
Could be formatted into `configuration.yaml` like so:
```yaml
media_player:
 - platform: directv
host: 192.168.1.10
port: 8080
name: Main DirecTV Box
device: 0
- platform: directv
host: 192.168.1.10
port: 8080
name: Bedroom DirecTV
device: 5009591D6969
```
It is important to notice that the host and port variables for slave receivers are the same as the master receiver.

View File

@ -0,0 +1,34 @@
---
layout: page
title: "Russound RIO"
description: "Instructions on how to integrate Russound RIO devices into Home Assistant."
date: 2017-07-12 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: russound.png
ha_category: Media Player
ha_release: 0.49
ha_iot_class: "Local Push"
---
The `russound_rio` platform allows you to control Russound devices that make use of the RIO protocol.
The platform automatically discovers all enabled zones and sources. Each zone is added as a media player device with the enabled sources available as inputs. Media information is supported if the selected source reports it.
To add a device to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
media_player:
- platform: russound_rio
host: 192.168.1.10
name: Russound
```
Configuration variables:
- **host** (*Required*): The IP of the TCP gateway
- **port** (*Optional*): The port of the TCP gateway (default: 9621)
- **name** (*Required*): The name of the device

View File

@ -13,11 +13,11 @@ ha_release: "0.34"
Keeps track which remotes are in your environment, their state and allows you to control them.
* Maintains a state per remote and a combined state `all_remotes`.
* Registers services `remote/turn_on`, `remote/turn_off`,`remote/sync`, and `remote/send_command` to control remotes.
* Registers services `remote/turn_on`, `remote/turn_off`, `remote/toggle`, `remote/sync`, and `remote/send_command` to control remotes.
### {% linkable_title Use the services %}
Go the the **Developer Tools**, then to **Call Service** in the frontend, and choose `remote/turn_on` or `remote/turn_off` from the list of available services (**Available services:** on the left). Enter something like the sample below into the **Service Data** field and hit **Call Service**.
Go the the **Developer Tools**, then to **Call Service** in the frontend, and choose `remote/turn_on`, `remote/turn_off`, or `remote/toggle` from the list of available services (**Available services:** on the left). Enter something like the sample below into the **Service Data** field and hit **Call Service**.
```json
{"entity_id":"remote.family_room"}

View File

@ -0,0 +1,19 @@
---
layout: page
title: "Lutron Caseta Scene"
description: "Instructions how to setup Lutron Caseta Scenes within Home Assistant."
date: 2017-07-28 16:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lutron.png
ha_category: Scene
ha_release: 0.49.2
ha_iot_class: "Cloud Polling"
---
The Lutron Caseta scene platform allows you to control your [Lutron Caseta](http://www.casetawireless.com/Pages/Caseta.aspx) SmartBridge Scenes.
The requirement is that you have setup the [Lutron Caseta](/components/lutron_caseta/) component.

View File

@ -0,0 +1,48 @@
---
layout: page
title: "Geizhals"
description: "Instructions on how to integrate a Geizhals sensor into Home Assistant."
date: 2017-07-15 14:15
sidebar: true
comments: false
sharing: true
footer: true
logo: geizhals.png
ha_category: Sensor
ha_iot_class: "Cloud Polling"
ha_release: "0.51"
---
The `geizhals` sensor will give you the best price of a product from [Geizhals](https://geizhals.de) or related site. With this information can be used in e.g. automations to notify you when a price drops.
To enable this sensor, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: geizhals
name: qc35
product_id: 1453021
```
Configuration variables:
- **name** (*Required*): The internal name of the product in Home Assistant.
- **product_id** (*Required*): ID of the product. Get the ID from the geizhals website of your chosen product by clicking on the *Price History* tab, e.g. [here](https://geizhals.de/?phist=1453021). The URL of this site reveals the ID, e.g. <https://geizhals.de/?phist=1453021> with `product_id: 1453021`.
- **description** (*Optional*): The name of the product in the front end.
- **domain** (*Optional*): Domain which should be used for the request. Set this to `geizhals.at`, `geizhals.eu`, `geizhals.de`, `skinflint.co.uk` or `cenowarka.pl`. Defaults to `geizhals.de`.
- **regex** (*Optional*): Regular expression to parse the price. Default: `\D\s(\d*)[\,|\.](\d*)`.
#### {% linkable_title Extended example %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: geizhals
name: qc35
product_id: 1453021
description: "Bose QC35"
domain: 'geizhals.de'
regex: '\D\s(\d*)[\,|\.](\d*)'
```

View File

@ -13,34 +13,32 @@ ha_release: 0.47
---
This `radarr` sensor platform pulls data from a given Radarr instance.
This `radarr` sensor platform pulls data from a given [Radarr](https://radarr.video/) instance.
To use your [Radarr](https://radarr.video/) sensor in your installation, add the following to your `configuration.yaml` file:
To use your Radarr sensor in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yml entry
sensor:
- platform: radarr
api_key: YOUR_API_KEY
host: IP_ADDRESS
port: PORT
```
Configuration variables:
- **api_key** (*Required*): Your Radarr API key, found in Settings > General in the Radarr Web UI.
- **monitored_conditions** array (*Required*): Conditions to display on the frontend.
- **host** (*Optional*): The host Radarr is running on. Defaults to `localhost`.
- **port** (*Optional*): The port Radarr is running on. Defaults to 7878.
- **urlbase** (*Optional*): The base URL Radarr is running under. Defaults to `/`.
- **monitored_conditions** array (*Optional*): Conditions to display on the frontend. Defaults to `movies`.
- **movies**: The number of movies in Radarr.
- **upcoming**: The number of upcoming movie releases (physical and in cinemas).
- **commands**: The number of commands being run.
- **diskspace**: Available disk space.
- **status**: System status information
- **host** (*Optional*): The host Radarr is running on (Default: localhost).
- **port** (*Optional*): The port Radarr is running on (Default: 7878).
- **urlbase** (*Optional*): The base URL Radarr is running under (Default: /).
- **days** (*Optional*): How many days to look ahead for the upcoming sensor, 1 means today only (Default: 1).
- **diskspace**: The available disk space.
- **status**: The current system status information.
- **days** (*Optional*): How many days to look ahead for the upcoming sensor, 1 means today only. Defaults to 1.
- **include_paths** (*Optional*): Array of filepaths to include when calculating diskspace. Leave blank to include all.
- **unit**: (*Optional*): The unit to display disk space in (Default: GB).
- **unit**: (*Optional*): The unit to display disk space in. Defaults to GB.
- **ssl**: boolean (*Optional*): Whether or not to use SSL for Radarr.
## {% linkable_title Examples %}

View File

@ -16,7 +16,16 @@ ha_iot_class: "Local Polling"
The `sabnzbd` platform will allow you to monitor your downloads with [SABnzbd](http://sabnzbd.org) from within Home Assistant and setup automation based on the information.
To use SABnzbd with your installation, add the following to your `configuration.yaml` file:
If SABnzbd is discovered on your network you can enter your API Key in the Configurator Press "CONFIGURE" to do it.
<p class='img'>
<img src='{{site_root}}/images/screenshots/sabnzbd-configure.png' />
</p>
This will enable a minimal setup where `sensor.sabnzbd_status` is enabled.
For more advanced usage, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -41,8 +50,8 @@ Configuration variables:
- **name** (*Optional*): The name to use when displaying this SABnzbd instance.
- **ssl** (*Optional*): Use `https` instead of `http` to connect. Defaults to False.
- **monitored_variables** array (*Required*): List of the monitored variables.
- **current_status**: current status of the SABnzbd instance
- **speed**: Current speed
- **current_status**: Current status of the SABnzbd instance
- **speed**: Current speed.
- **queue_size**: Size of the queue
- **queue_remaining**: Remaining elements in the queue
- **disk_size**: Disk size of the storage location

View File

@ -0,0 +1,36 @@
---
layout: page
title: "Shodan Sensor"
description: "Instructions how to integrate Shodan sensors into Home Assistant."
date: 2017-08-09 10:30
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Sensor
ha_iot_class: "Cloud Polling"
logo: shodan.png
ha_release: 0.51
---
The `shodan` sensor platform is displaying the total of result of a [Shodan](https://pi-hole.net/) query.
Use "Show API Key" in the upper right corner when you are logged in or got to your "My Account" page to retrieve your API key.
To enable this sensor, add the following lines to your `configuration.yaml` file for a GET request:
```yaml
# Example configuration.yaml entry
sensor:
- platform: shodan
api_key: SHODAN_API_KEY
query: 'home-assistant'
```
Configuration variables:
- **api_key** (*Required*): The API key for Shodan.io.
- **query** (*Required*): The search string.
- **name** (*Optional*): Name of the Shodan sensor.

View File

@ -14,35 +14,34 @@ ha_iot_class: "Local Polling"
---
This `sonarr` sensor platform pulls data from a given Sonarr instance.
This `sonarr` sensor platform pulls data from a given [Sonarr](https://sonarr.tv/) instance.
To use your [Sonarr](https://sonarr.tv/) sensor in your installation, add the following to your `configuration.yaml` file:
To use your Sonarr sensor in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yml entry
sensor:
- platform: sonarr
api_key: YOUR_API_KEY
host: IP_ADDRESS
port: PORT
```
Configuration variables:
- **api_key** (*Required*): Your Sonarr API key, found in Settings > General in the Sonarr Web UI.
- **monitored_conditions** array (*Required*): Conditions to display on the frontend.
- **host** (*Optional*): The host Sonarr is running on. Defaults to `localhost`.
- **port** (*Optional*): The port Sonarr is running on. Defaults to 8989.
- **monitored_conditions** array (*Optional*): Conditions to display on the frontend. Defaults to `upcoming`.
- **series**: The number of series in Sonarr.
- **upcoming**: The number of upcoming episodes.
- **wanted**: The number of episodes still 'wanted'.
- **queue**: The number of episodes in the queue.
- **commands**: The number of commands being run.
- **diskspace**: Available disk space.
- **host** (*Optional*): The host Sonarr is running on (Default: localhost).
- **port** (*Optional*): The port Sonarr is running on (Default: 8989).
- **urlbase** (*Optional*): The base URL Sonarr is running under (Default: /).
- **days** (*Optional*): How many days to look ahead for the upcoming sensor, 1 means today only (Default: 1).
- **urlbase** (*Optional*): The base URL Sonarr is running under. Defaults to `/`.
- **days** (*Optional*): How many days to look ahead for the upcoming sensor, 1 means today only. Defaults to 1.
- **include_paths** (*Optional*): Array of filepaths to include when calculating diskspace. Leave blank to include all.
- **unit**: (*Optional*): The unit to display disk space in (Default: GB).
- **unit**: (*Optional*): The unit to display disk space in. Defaults to GB.
- **ssl**: boolean (*Optional*): Whether or not to use SSL for Sonarr.
## {% linkable_title Examples %}

View File

@ -92,4 +92,5 @@ sensor:
## {% linkable_title Notes %}
When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter.
- 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.

View File

@ -27,6 +27,7 @@ sensor:
Configuration variables:
- **name** (*Optional*): Additional name for the sensors. Default to platform name.
- **monitored_conditions** array (*Optional*): Conditions to display in the frontend.
- **symbol**: A symbol for the current weather.
- **temperature**: The current temperature.
@ -48,6 +49,7 @@ A full configuration example can be found below:
# Example configuration.yaml entry
sensor:
- platform: yr
name: Weather
monitored_conditions:
- temperature
- symbol

View File

@ -23,17 +23,15 @@ To add ZAMG to your installation, add the following to your `configuration.yaml`
# Example configuration.yaml entry
sensor:
- platform: zamg
station_id: 11035
monitored_conditions:
- temperature
- humidity
```
Configuration variables:
- **station_id** (*Optional*): The ID number for a supported ZAMG station.
- **name** (*Optional*): Additional name for the sensors. Defaults to platform name.
- **monitored_conditions** array (*Required*): Conditions to display in the frontend.
- **latitude** (*Optional*): Latitude coordinate to monitor weather of (required if **longitude** is specificed). Defaults to coordinates defined in your `configuration.yaml` file.
- **longitude** (*Optional*): Longitude coordinate to monitor weather of (required if **latitude** is specified). Defaults to coordinates defined in your `configuration.yaml` file.
- **monitored_conditions** array (*Optional*): Conditions to display in the frontend.
- **pressure**: Pressure at station level
- **pressure_sealevel**: Pressure at sea Level
- **humidity**: Humidity
@ -46,7 +44,19 @@ Configuration variables:
- **precipitation**: Precipitation
- **dewpoint**: Dew point
A full configuration example:
```yaml
# Example configuration.yaml entry
sensor:
- platform: zamg
station_id: 11035
name: Wien
monitored_conditions:
- temperature
- humidity
```
<p class='note'>
This sensor is an alternative to the [`zamg`](/components/weather.zamg/) weather platform.
The weather platform is easier to configure but less customisable.
This sensor is an alternative to the [`zamg`](/components/weather.zamg/) weather platform. The `zamg` weather platform is easier to configure but less customisable.
</p>

View File

@ -0,0 +1,84 @@
---
layout: page
title: "RainMachine Switch"
description: "Instructions on how to use RainMachine units with Home Assistant."
date: 2017-08-04 12:00
sidebar: true
comments: false
sharing: true
footer: true
logo: rainmachine.png
ha_category: Switch
ha_iot_class: "Cloud Polling"
ha_release: 0.51
---
The `rainmachine` switch platform allows you to control programs and zones within
a [RainMachine smart Wi-Fi sprinkler controller](http://www.rainmachine.com/).
## {% linkable_title Configuring the Platform %}
The platform allows for either local (i.e., directly across the LAN) or remote
(i.e., through RainMachine's cloud API) access; the route you choose will
dictate what your configuration should look like.
For local access, specify the IP address/hostname of your RainMachine unit
and your RainMachine password:
```yaml
switch:
platform: rainmachine
ip_address: 192.168.1.100
password: my_password_123
```
For remote access, specify your RainMachine username/email and password:
```yaml
switch:
platform: rainmachine
email: user@host.com
password: my_password_123
```
Configuration Variables:
- **ip_address** (*Optional*): The IP address of your RainMachine unit
- **email** (*Optional*): Your RainMachine username/email
- **password** (*Required*): Your RainMachine password
- **zone_run_time** (*Optional*): The number of seconds that a zone should run when
turned on; defaults to 600 (10 minutes)
## {% linkable_title Controlling Your Device %}
After Home Assistant loads, you will see new switches for every enabled program
and zone. These work as expected:
- Program On/Off: starts/stops a program
- Zone On/Off: starts/stops a zone (using the `zone_run_time` parameter to
determine how long to run for)
Programs and zones are linked. If a program is running its final zone, you will
see both the program and zone switches turned on; turning either one off will
turn the other one off (just like in the web app).
## {% linkable_title Weblink %}
If you would like to see and control more detailed information, create an [iFrame](/components/panel_iframe/) that renders the RainMachine web app:
```yaml
panel_iframe:
rainmachine:
title: RainMachine
url: "https://my.rainmachine.com/s/<YOUR_DEVICE_ID>/ui/"
icon: mdi:water-pump
```
You can find `<YOUR_DEVICE_ID>` by logging into [https://my.rainmachine.com](https://my.rainmachine.com ) and taking note of the URL.
## {% linkable_title For Awareness %}
The remote RainMachine API currently has two broken operations (i.e., they return
error codes): starting a program and stopping a program. Please note that
starting/stopping programs with the remote API is disabled until RainMachine
can fix the issue.

View File

@ -1,79 +0,0 @@
---
layout: page
title: "Xiaomi Mi Robot Vacuum"
description: "Instructions how to integrate your Xiaomi Mi Robot Vacuum within Home Assistant."
date: 2017-05-05 18:11
sidebar: true
comments: false
sharing: true
footer: true
logo: xiaomi.png
ha_category: Switch
ha_release: 0.48
---
The `xiaomi_vacuum`switch platform allows you to control the state of your [Xiaomi Mi Robot Vacuum](http://www.mi.com/roomrobot/).
Current supported features are `start` and `stop` (goes to dock).
{% linkable_title Getting started %}
Follow the pairing process using your phone and Mi-Home app. From here you will be able to retrieve the token from a SQLite file inside your phone.
<p class='note warning'>
If your Home Assistant installation is running in a [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below.</p>
```bash
$ sudo su -s /bin/bash homeassistant
$ source /srv/homeassistant/bin/activate
```
In order to fetch the token follow these instructions depending on your mobile phone platform.
### Windows and Android
1. Configure the robot with the Mi-Home app.
2. Enable developer mode and USB debugging on the Android phone and plug it into the computer.
3. Get ADB tool for Windows : https://developer.android.com/studio/releases/platform-tools.html
4. Create a backup of the application com.xiaomi.smarthome:
```bash
.\adb backup -noapk com.xiaomi.smarthome -f backup.ab
```
5. If you have this message : "More than one device or emulator", use this command to list all devices:
```bash
.\adb devices
```
and execute this command:
```bash
.\adb -s DEVICEID backup -noapk com.xiaomi.smarthome -f backup.ab # (with DEVICEID the device id from the previous command)
```
6. On the phone, you must confirm the backup. DO NOT enter any password and press button to make the backup.
7. Get ADB Backup Extractor : https://sourceforge.net/projects/adbextractor/
8. Extract All files from the backup:
```bash
java.exe -jar ../android-backup-extractor/abe.jar unpack backup.ab backup.tar ""
```
9. Unzip the ".tar" file.
10. Open the sqlite DB miio2.db with a tool like SQLite Manager extension for FireFox.
11. Get token from "devicerecord" table.
### macOS and iOS
1. Setup iOS device with the Mi-Home app.
2. Create an unencrypted backup of the device using iTunes.
3. Install iBackup Viewer from here: http://www.imactools.com/iphonebackupviewer/
4. Extract this file /raw data/com.xiami.mihome/{USERID}_mihome.sqlite to your computer
5. Open the file extracted using notepad. You will then see the list of all the device in your account with their token.
{% linkable_title Configuration %}
```yaml
# Example configuration.yaml entry
- platform: xiaomi_vacuum
name: 'name of the robot'
host: 192.168.1.2
token: your-token-here
```
Configuration variables:
- **name** (*Optional*): The name of your robot
- **host** (*Required*): The IP of your robot
- **token** (*Required*): The token of your robot. 32-characters consisting of digits and lowercase letters. Go to Getting started section to read more about how to get it

View File

@ -32,6 +32,8 @@ Configuration variables:
- **allowed_chat_ids** (*Required*): A list of user in the `user_id` Telegram format enabled to interact to webhook
- **api_key** (*Required*): The API token of your bot.
- **parse_mode** (*Optional*): Default parser for messages if not explicit in message data: 'html' or 'markdown'. Default is 'markdown'.
- **proxy_url** (*Optional*): Proxy url if working behind one (`socks5://proxy_ip:proxy_port`)
- **proxy_params** (*Optional*): Proxy configuration parameters, as dict, if working behind a proxy (`username`, `password`, etc.)
To get your `chat_id` and `api_key` follow the instructions [here](/components/notify.telegram/).

View File

@ -34,6 +34,8 @@ Configuration variables:
- **allowed_chat_ids** (*Required*): A list of user in the `user_id` Telegram format enabled to interact to webhook
- **api_key** (*Required*): The API token of your bot.
- **parse_mode** (*Optional*): Default parser for messages if not explicit in message data: 'html' or 'markdown'. Default is 'markdown'.
- **proxy_url** (*Optional*): Proxy url if working behind one (`socks5://proxy_ip:proxy_port`)
- **proxy_params** (*Optional*): Proxy configuration parameters, as dict, if working behind a proxy (`username`, `password`, etc.)
To get your `chat_id` and `api_key` follow the instructions [here](/components/notify.telegram/).

View File

@ -40,6 +40,8 @@ Configuration variables:
- **api_key** (*Required*): The API token of your bot.
- **trusted_networks** (*Optional*): Telegram server access ACL as list. Defaults to `149.154.167.197-233`.
- **parse_mode** (*Optional*): Default parser for messages if not explicit in message data: 'html' or 'markdown'. Default is 'markdown'.
- **proxy_url** (*Optional*): Proxy url if working behind one (`socks5://proxy_ip:proxy_port`)
- **proxy_params** (*Optional*): Proxy configuration parameters, as dict, if working behind a proxy (`username`, `password`, etc.)
- **url** (*Optional*): Allow to overwrite the `base_url` from http component for diferent configs.
To get your `chat_id` and `api_key` follow the instructions [here](/components/notify.telegram). As well as authorising the chat, if you have added your bot to a group you will also need to authorise any user that will be interacting with the webhook. When an unauthorised user tries to interact with the webhook Home Assistant will raise an error ("Incoming message is not allowed"), you can easily obtain the the users id by looking in the "from" section of this error message.

View File

@ -0,0 +1,30 @@
---
layout: page
title: "Dyson 360 Eye"
description: "Instructions how to integrate your Dyson Eye 360 vacuum robot within Home Assistant."
date: 2017-08-06 10:30
sidebar: true
comments: false
sharing: true
footer: true
logo: dyson.png
ha_category: Vacuum
ha_iot_class: "Cloud Polling"
ha_release: 0.51
---
The `dyson` vacuum platform allows you to control your Dyson 360 Eye robot vacuum.
You have first to setup the [Dyson component](/components/dyson/)
### {% linkable_title Component services %}
This component support the following services (see [Vacuum Cleaner Robots](/components/vacuum/)):
* [`turn_on`](/components/vacuum/#service-vacuumturn_on)
* [`turn_off`](/components/vacuum/#service-vacuumturn_off)
* [`start_pause`](/components/vacuum/#service-vacuumstart_pause)
* [`stop`](/components/vacuum/#service-vacuumstop)
* [`return_to_home`](/components/vacuum/#service-vacuumreturn_to_home)
* [`set_fan_speed`](/components/vacuum/#service-vacuumset_fanspeed). Fan speed values:
* `Quiet`
* `Max`

View File

@ -0,0 +1,104 @@
---
layout: page
title: "Vacuum cleaner robots"
description: "Instructions how to setup a botvac in Home Assistant."
date: 2017-07-28 15:00
sidebar: true
comments: false
sharing: true
footer: true
---
The `vacuum` component enables the ability to control home cleaning robots within Home Assistant.
To use this component in your installation, add a `vacuum` platform to your `configuration.yaml` file, like the [Xiaomi](/components/vacuum.xiaomi/).
```yaml
# Example configuration.yaml entry
vacuum:
- platform: xiaomi
name: 'name of the robot'
host: 192.168.1.2
token: your-token-here
```
### {% linkable_title Component services %}
Available services: `turn_on`, `turn_off`, `start_pause`, `stop`, `return_to_home`, `locate`, `clean_spot`, `set_fanspeed` and `send_command`.
Before calling one of these services, make sure your botvac platform supports it.
#### {% linkable_title Service `vacuum/turn_on` %}
Start a new cleaning task.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
#### {% linkable_title Service `vacuum/turn_off` %}
Stop the current cleaning task and return to the dock.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
#### {% linkable_title Service `vacuum/start_pause` %}
Start, pause or resume a cleaning task.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
#### {% linkable_title Service `vacuum/stop` %}
Stop the current activity of the botvac.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
#### {% linkable_title Service `vacuum/return_to_home` %}
Tell the botvac to return home.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
#### {% linkable_title Service `vacuum/locate` %}
Locate the vacuum cleaner robot.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
#### {% linkable_title Service `vacuum/clean_spot` %}
Tell the vacuum cleaner to do a spot clean-up.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
#### {% linkable_title Service `vacuum/set_fanspeed` %}
Set the fan speed of the botvac. The `fanspeed` can be a label, as `balanced` or `turbo`, or be a number, it depends of the `vacuum` platform.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
| `fanspeed` | no | Platform dependent vacuum cleaner fan speed, with speed steps, like 'medium', or by percentage, between 0 and 100. |
#### {% linkable_title Service `vacuum/send_command` %}
Send a platform-specific command to the vacuum cleaner.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
| `command` | no | Command to execute. |
| `params` | yes | Parameters for the command. |

View File

@ -0,0 +1,49 @@
---
layout: page
title: "iRobot Roomba"
description: "Instructions how to integrate your Wi-Fi enabled Roomba within Home Assistant."
date: 2017-08-04 20:43
sidebar: true
comments: false
sharing: true
footer: true
logo: irobot_roomba.png
ha_category: Vacuum
ha_release: 0.51
---
The `roomba` component allows you to control your [Roomba](http://www.irobot.com/For-the-Home/Vacuuming/Roomba.aspx).
<p class='note'>
This platform has only been tested with an iRobot Roomba 980, but should work find
with any Wi-Fi enabled Roomba like the 690, 890 or the 960.
</p>
To add your roomba vacuum to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
vacuum:
- platform: roomba
name: My Roomba
host: IP_ADDRESS_OR_HOSTNAME
username: BLID
password: PASSWORD
```
Configuration variables:
- **host** (*Required*): Hostname or IP address of the Roomba.
- **username** (*Required*): Username (BLID).
- **password** (*Required*): Password.
- **certificate** (*Optional*): Path to your certificate store (Default: `/etc/ssl/certs/ca-certificates.crt`)
- **continuous** (*Optional*): Whether to operate in continuous mode (Default: `True`).
<p class='note'>
The Roomba's MQTT server only allows a single connection. Enabling continuous
mode will force the App to connect via the cloud to your Roomba. [More info here](https://github.com/NickWaterton/Roomba980-Python#firmware-2xx-notes)
</p>
### Retrieving your credentials
Please refer to [here](https://github.com/NickWaterton/Roomba980-Python#how-to-get-your-usernameblid-and-password) or [here](https://github.com/koalazak/dorita980#how-to-get-your-usernameblid-and-password) to retrieve both the BLID (username) and the password.

View File

@ -0,0 +1,126 @@
---
layout: page
title: "Xiaomi Mi Robot Vacuum"
description: "Instructions how to integrate your Xiaomi Mi Robot Vacuum within Home Assistant."
date: 2017-05-05 18:11
sidebar: true
comments: false
sharing: true
footer: true
logo: xiaomi.png
ha_category: Vacuum
ha_release: 0.51
---
The `xiaomi` vacuum platform allows you to control the state of your [Xiaomi Mi Robot Vacuum](http://www.mi.com/roomrobot/).
Current supported features are `turn_on`, `pause`, `stop`, `return_to_home`, `turn_off` (stops goes to dock), `locate`, `clean_spot`, `set_fanspeed` and even remote control your robot.
## {% linkable_title Getting started %}
Follow the pairing process using your phone and Mi-Home app. From here you will be able to retrieve the token from a SQLite file inside your phone.
<p class='note warning'>
If your Home Assistant installation is running in a [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below.</p>
```bash
$ sudo su -s /bin/bash homeassistant
$ source /srv/homeassistant/bin/activate
```
In order to fetch the token follow these instructions depending on your mobile phone platform.
### Windows and Android
1. Configure the robot with the Mi-Home app.
2. Enable developer mode and USB debugging on the Android phone and plug it into the computer.
3. Get ADB tool for Windows : https://developer.android.com/studio/releases/platform-tools.html
4. Create a backup of the application com.xiaomi.smarthome:
```bash
.\adb backup -noapk com.xiaomi.smarthome -f backup.ab
```
5. If you have this message : "More than one device or emulator", use this command to list all devices:
```bash
.\adb devices
```
and execute this command:
```bash
.\adb -s DEVICEID backup -noapk com.xiaomi.smarthome -f backup.ab # (with DEVICEID the device id from the previous command)
```
6. On the phone, you must confirm the backup. DO NOT enter any password and press button to make the backup.
7. Get ADB Backup Extractor : https://sourceforge.net/projects/adbextractor/
8. Extract All files from the backup:
```bash
java.exe -jar ../android-backup-extractor/abe.jar unpack backup.ab backup.tar ""
```
9. Unzip the ".tar" file.
10. Open the sqlite DB miio2.db with a tool like SQLite Manager extension for FireFox.
11. Get token from "devicerecord" table.
### macOS and iOS
1. Setup iOS device with the Mi-Home app.
2. Create an unencrypted backup of the device using iTunes.
3. Install iBackup Viewer from here: http://www.imactools.com/iphonebackupviewer/
4. Extract this file /raw data/com.xiami.mihome/_mihome.sqlite to your computer
5. Open the file extracted using notepad. You will then see the list of all the device in your account with their token.
## {% linkable_title Configuration %}
```yaml
# Example configuration.yaml entry
vacuum:
- platform: xiaomi
name: 'name of the robot'
host: 192.168.1.2
token: your-token-here
```
Configuration variables:
- **name** (*Optional*): The name of your robot
- **host** (*Required*): The IP of your robot
- **token** (*Required*): The token of your robot. Go to Getting started section to read more about how to get it
### {% linkable_title Platform services %}
In addition to all [`vacuum` component services](/components/vacuum#component-services) (`turn_on`, `turn_off`, `start_pause`, `stop`, `return_to_home`, `locate`, `set_fanspeed` and `send_command`), the `xiaomi` platform introduces specific services to access the remote control mode of the botvac.
These are: `xiaomi_remote_control_start`, `xiaomi_remote_control_stop`, `xiaomi_remote_control_move` and `xiaomi_remote_control_move_step`.
#### {% linkable_title Service `vacuum/xiaomi_remote_control_start` %}
Start the remote control mode of the vacuum cleaner. You can then move it with `remote_control_move`, when done call `remote_control_stop`.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
#### {% linkable_title Service `vacuum/xiaomi_remote_control_stop` %}
Exit the remote control mode of the vacuum cleaner.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
#### {% linkable_title Service `vacuum/xiaomi_remote_control_move` %}
Remote control the vacuum cleaner, make sure you first set it in remote control mode with `remote_control_start`.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
| `velocity` | no | Speed, between -0.29 and 0.29. |
| `rotation` | no | Rotation, between -179 degrees and 179 degrees. |
| `duration` | no | Parameter affecting the duration of the movement. |
#### {% linkable_title Service `vacuum/xiaomi_remote_control_move_step` %}
Use this call to enter the remote control mode, make one movement, and stop and exit the remote control mode.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific botvac. Else targets all. |
| `velocity` | no | Speed, between -0.29 and 0.29. |
| `rotation` | no | Rotation, between -179 degrees and 179 degrees. |
| `duration` | no | Parameter affecting the duration of the movement. |

View File

@ -29,8 +29,9 @@ Configuration variables:
- **station_id** (*Optional*): The ID number for a supported ZAMG station.
- **name** (*Optional*): A name for the weather platform.
- **latitude** (*Optional*): Latitude coordinate to monitor weather of (required if **longitude** is specificed). Defaults to coordinates defined in your `configuration.yaml` file.
- **longitude** (*Optional*): Longitude coordinate to monitor weather of (required if **latitude** is specified). Defaults to coordinates defined in your `configuration.yaml` file.
<p class='note'>
This platform is an alternative to the [`zamg`](/components/sensor.zamg/) sensor.
The weather platform is easier to configure but less customisable.
This platform is an alternative to the [`zamg`](/components/sensor.zamg/) sensor. The weather platform is easier to configure but less customisable.
</p>

View File

@ -0,0 +1,12 @@
---
layout: page
title: "Configuration.yaml by Shortbloke"
description: ""
date: 2017-08-10 01:45
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Example configuration.yaml
ha_external_link: https://github.com/shortbloke/home_assistant_config
---

View File

@ -0,0 +1,104 @@
---
layout: page
title: "Asterisk Voicemail Server Installation"
description: "Instructions how to integrate your existing Asterisk voicemail within Home Assistant."
date: 2017-06-30 18:30
sidebar: true
comments: false
sharing: true
footer: true
---
Asterisk Voicemail integration allows Home Assistant to view, listen-to, and delete voicemails from a Asterisk voicemail mailbox.
There are two components to the integration:
- A server that runs on the Asterisk PBX host and communicates over an open port.
- A client which can request inormation from the server.
Both parts are necessary for Asterisk voicemail integration.
The server installation is documented below. The client is [integrated inside Home Assistant](/components/asterisk_mbox)
<p class='note'>
Currently this module can only monitor a single Asterisk PBX mailbox. Multiple mailbox support is planned for the future
</p>
### {% linkable_title Prerequisites %}
Before beginning make sure that you have the following:
- A functional Asterisk PBX setup which is using the default `voicemail` application
- Both Home Assistant and Asterisk PBX running on the same LAN (or the same server)
- The Asterisk PBX server has python 3.4 or newer installed
- Administrator access on the Asterisk PBX (for python module installation)
- Account Access to the `asterisk` user that runs the Asterisk PBX software
### {% linkable_title Installation %}
1. Apply for a Google API key to enable speech-transcription services
2. Install the `asterisk_mbox_server` python module:
```bash
$ pip3 install asterisk_mbox_server
```
3. Create a configuration file for the server
As the `asterisk` user create a `asterisk_mbox.ini` file (You can place this in any directory you choose, but the rommended location is `/etc/asterisk/asterisk_mbox.ini`)
```ini
[default]
host = IP_ADDRESS
port = PORT
password = PASSWORD
mbox_path = PATH_TO_VOICEMAIL_FILES
cache_file = PATH_TO_CACHE_FILE
google_key = GOOGLE_API_KEY
```
- **host** (*Optional*): The IP address to listen on for client requests. This defaults to all IP addresses on the server. To listen only locally, choose `127.0.0.1`
- **port** (*Optional*): The port to listen on for client requests. (default: 12345)
- **password** (*Required*): A password shared between client and server. Use only alpha-numeric characters and spaces
- **mbox\_path** (*Required*): The path to the storage location of mailbox files. This is typically `/var/spool/asterisk/voicemail/default/<mailbox>/`
- **cache\_file** (*Required*): A fully-qualified path to a file thht can be written by the server containing transcriptions of voicemails. Example: `/var/spool/asterisk/transcription.cache`
- **google\_key** (*Required*): Your 40 character Google API key
Once complete, ensure this file is only accessible by the asterisk user:
```bash
$ sudo chown asterisk:asterisk /etc/asterisk/asterisk_mbox.ini
$ sudo chmod 600 /etc/asterisk/asterisk_mbox.ini
```
4. Interactively start the server to verify it is functioning
```bash
$ sudo -u asterisk asterisk_mbox_server -v --cfg /etc/asterisk/asterisk_mbox.ini
```
Now complete the [Home Assistant configuration](/components/asterisk_mbox) and verify that Home Assistant can communicate with the server
You can use `Ctrl-C` to terminate the server when done testing
5. Configure the server to start automatically
Copy the following code into `/etc/systemd/system/asterisk_mbox.service`:
```ini
[Unit]
Description=Asterisk PBX voicemail server for Home Assistant
Wants=network.target
After=network.target
[Service]
Type=simple
User=asterisk
Group=asterisk
ExecStart=/usr/local/bin/asterisk_mbox_server -cfg /etc/asterisk/asterisk_mbox.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
<p class='note'>
This assumes that your Asterisk PBX server is using `systemd` for init handling. If not, you will need to create the appropriate configuration files yourself.
</p>

View File

@ -0,0 +1,443 @@
---
layout: post
title: "0.51: Massive history speed up, finished automation editor and official vacuum cleaner support"
description: "Lots of frontend bugs have been squashed, the automation editor now supports all triggers and actions and vacuum cleaners are now an official component."
date: 2017-08-12 00:11:05
date_formatted: "August 12, 2017"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Release-Notes
og_image: /images/blog/2017-08-0.51/components.png
---
<a href='/components/#version/0.51'><img src='/images/blog/2017-08-0.51/components.png' style='border: 0;box-shadow: none;'></a>
<p class='note warning'>This release has to do a one time database migration which can take a long time on big databases (20 minutes). During this time the frontend will not work. Do not stop Home Assistant while it is in progress.</p>
Release 0.51 is around the corner and it contains some really great updates.
## {% linkable_title Database speed up %}
The first one is more amazing database updates [#8748] by [@OverloadUT]. Every query that has been tested executes in well under 1 second, even on a RPi using MySQL with 6 million rows and around 300 entities. This is true even when you're getting an unrealistically huge date range!
Updating the database will take some time when you start Home Assistant. During that time, the Home Assistant frontend is not accessible. Please let it complete and do not turn Home Assistant off.
## {% linkable_title Frontend update %}
We have finished the migration of our frontend to be powered by Polymer 2. This has given us a big speed boost on Safari/iOS devices and has fixed a wide range of bugs.
We have also finished the automation editor. All triggers and actions are now implemented and so are most conditions (missing are `and`, `or`). The automation editor is also no longer Chrome only, it can now also be used in Safari.
Another change to the frontend is that we have reorganized the panels. The Z-Wave and automation configuration panels have been merged into the configuration panel.
<div class='videoWrapper'>
<iframe src="https://www.youtube.com/embed/f3isVVpmiq4" frameborder="0" allowfullscreen></iframe>
</div>
## {% linkable_title Vacuum cleaners %}
As we have seen more vacuum cleaners land in Home Assistant, it was time to create an official component for them. That's why [@azogue] introduced the new vacuum cleaner component in [#8623]. This allows first class integration of vacuum cleaners in Home Assistant. Out of the box we will have Dyson, Xiamo and Roomba as supported platforms.
## {% linkable_title New Platforms %}
- Added Lutron Caseta Scene Support ([@809694+kfcook] - [#8690]) ([lutron_caseta docs]) ([scene.lutron_caseta docs]) (new-platform)
- New media_player platform for Russound devices using the RIO protocol ([@wickerwaka] - [#8448]) ([media_player.russound_rio docs]) (new-platform)
- New component: bluesound ([@thrawnarn] - [#7192]) ([media_player.bluesound docs]) (new-platform)
- Add mochad light component ([@mtreinish] - [#8476]) ([light.mochad docs]) (new-platform)
- geizhals sensor component ([@JulianKahnert] - [#8458]) ([sensor.geizhals docs]) (new-platform)
- Xiaomi vacuum as platform of new `vacuum` component derived from ToggleEntity, and services ([@azogue] - [#8623]) (breaking change) (new-platform)
- Wi-Fi enabled Roomba support ([@pschmitt] - [#8825]) ([vacuum.roomba docs]) (new-platform)
- Add support to Dyson 360 Eye robot vacuum using new vacuum platform ([@CharlesBlonde] - [#8852]) ([dyson docs]) ([vacuum docs]) ([fan.dyson docs]) ([sensor.dyson docs]) ([vacuum.dyson docs]) (new-platform)
- Add Initial Mailbox panel and sensor ([@PhracturedBlue] - [#8233]) ([asterisk_mbox docs]) (new-platform)
- Add Leviton Decora Smart WiFi Device Platform ([@tlyakhov] - [#8529]) ([light.decora_wifi docs]) (new-platform)
- Add RainMachine switch platform ([@bachya] - [#8827]) ([switch.rainmachine docs]) (new-platform)
- Add new device tracker for Huawei Routers. ([@abmantis] - [#8488]) ([device_tracker.huawei_router docs]) (new-platform)
- Add Shodan sensor ([@fabaff] - [#8902]) ([sensor.shodan docs]) (new-platform)
## {% linkable_title If you need help... %}
...don't hesitate to use our very active [forums][forum] or join us for a little [chat][discord]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
## {% linkable_title Reporting Issues %}
Experiencing issues introduced by this release? Please report them in our [issue tracker][issue]. Make sure to fill in all fields of the issue template.
<!--more-->
## {% linkable_title Breaking Changes %}
- Efergy sensors: change units from KW to W ([@emlt] - [#8761]) ([sensor.efergy docs]) (breaking change)
- Xiaomi vacuum is now a platform of new `vacuum` component derived from ToggleEntity, and services ([@azogue] - [#8623]) (breaking change) (new-platform)
```yaml
vacuum:
- platform: xiaomi
name: Vacuum cleaner
host: !secret xiaomi_vacuum_robot_ip
token: !secret xiaomi_vacuum_robot_token
```
## {% linkable_title All changes %}
- Upgrade pushbullet.py to 0.11.0 ([@fabaff] - [#8691]) ([notify.pushbullet docs])
- Upgrade mypy to 0.521 ([@fabaff] - [#8692])
- Added Lutron Caseta Scene Support ([@809694+kfcook] - [#8690]) ([lutron_caseta docs]) ([scene.lutron_caseta docs]) (new-platform)
- Remove deprecated host and ssl logic from Kodi ([@armills] - [#8700]) ([media_player.kodi docs])
- Remove deprecated substitute interfaces ([@armills] - [#8701]) ([binary_sensor docs]) ([media_player docs])
- Remove deprecated sensor_class config options ([@armills] - [#8702])
- directv: add configuration glue for Genie slaves ([@sielicki] - [#8713]) ([media_player.directv docs])
- bump python-telegram-bot to 7.0.1 for fully support Bot API 3.2 ([@azogue] - [#8715]) ([telegram_bot docs])
- Add proxy support for telegram_bot ([@azogue] - [#8717]) ([telegram_bot docs])
- python-insteonplm module version bump ([@nugget] - [#8736]) ([insteon_plm docs])
- New media_player platform for Russound devices using the RIO protocol ([@wickerwaka] - [#8448]) ([media_player.russound_rio docs]) (new-platform)
- Add toggle to remotes ([@alanfischer] - [#8483]) ([remote docs]) ([remote.apple_tv docs]) ([remote.harmony docs]) ([remote.itach docs])
- added invert_state optional parameter ([@gwhiteCL] - [#8695]) ([cover.rpi_gpio docs])
- buienradar dates tz-aware ([@mjj4791] - [#8767]) ([sensor.buienradar docs]) ([weather.buienradar docs])
- Change units from KW to W ([@emlt] - [#8761]) ([sensor.efergy docs]) (breaking change)
- Clean up remote component ([@MartinHjelmare] - [#8728]) ([remote docs]) ([remote.apple_tv docs]) ([remote.harmony docs]) ([remote.itach docs]) ([remote.kira docs])
- Wink discovery ([@w1ll1am23] - [#8739]) ([wink docs])
- Enable/Disable Motion detection for Foscam Cameras ([@viswa-swami] - [#8582]) ([camera.foscam docs])
- Allow sonos to select playlists as a source ([@mcolyer] - [#8258]) ([media_player.sonos docs])
- mpd improvements ([@StevenLooman] - [#8655]) ([media_player.mpd docs])
- Add support for file attachments in pushbullet ([@tsvi] - [#8763]) ([notify.pushbullet docs])
- Honeywell fixes and improvements ([@dansarginson] - [#8756]) ([climate.honeywell docs])
- Catch exception (fixes #8724) ([@fabaff] - [#8731]) ([sensor.google_wifi docs])
- use updated osram lightify 1.0.6 component, including bugfix allowing more than 27 devices ([@tfriedel] - [#8774]) ([light.osramlightify docs])
- flux_led: support for property "available" ([@pezinek] - [#8764]) ([light.flux_led docs])
- New component: bluesound ([@thrawnarn] - [#7192]) ([media_player.bluesound docs]) (new-platform)
- Add 'forecast' ability to yr weather sensor ([@tinloaf] - [#8650]) ([sensor.yr docs])
- Feature alexa launch request ([@steverhoades] - [#8730]) ([alexa docs])
- Fixes UnboundLocalError: local variable 'setting' referenced before assignment ([@syssi] - [#8782]) ([climate.tado docs])
- Upgrade pyasn1 to 0.3.1 and pyasn1-modules to 0.0.10 ([@fabaff] - [#8787]) ([notify.xmpp docs])
- Upgrade sphinx-autodoc-typehints to 1.2.1 ([@fabaff] - [#8783])
- Improvements (configuration and validation) ([@fabaff] - [#8785]) ([sensor.yr docs])
- Fix referencing unset variable in tado climate component (causes update to fail when tado zone is in manual mode) ([@luukd] - [#8723]) ([climate.tado docs])
- mqtt switch: add voluptuous for availability topic ([@abmantis] - [#8797]) ([switch.mqtt docs])
- Add mochad light component ([@mtreinish] - [#8476]) ([light.mochad docs]) (new-platform)
- Update numpy 1.13.1 ([@pvizeli] - [#8806]) ([image_processing.opencv docs])
- Upgrade aiohttp to 2.2.4 ([@fabaff] - [#8805])
- Catch divide by zero errors when a sleep type is 0 ([@mezz64] - [#8809]) ([sensor.eight_sleep docs])
- InfluxDB component improvements ([@hageltech] - [#8633]) ([influxdb docs])
- When Sonos gets a tts source - dont't show an image ([@andrey-git] - [#8777]) ([media_player.sonos docs])
- Polymer 2 ([@balloob] - [#8815]) ([group docs])
- geizhals sensor component ([@JulianKahnert] - [#8458]) ([sensor.geizhals docs]) (new-platform)
- Xiaomi vacuum as platform of new `vacuum` component derived from ToggleEntity, and services ([@azogue] - [#8623]) (breaking change) (new-platform)
- Update yweather.py ([@fanthos] - [#8820]) ([weather.yweather docs])
- Make HA discover sabnzbd and add it to the Configurator ([@Hellowlol] - [#8634]) ([sensor.sabnzbd docs])
- Fix Dyson sensors if devices are configured without standby monitoring. Fixes #8569 ([@CharlesBlonde] - [#8826]) ([dyson docs]) ([fan.dyson docs]) ([sensor.dyson docs])
- Block dependencies that depend on enum34 ([@balloob] - [#8698])
- Upgrade aiohttp to 2.2.5 ([@fabaff] - [#8828])
- History query and schema optimizations for huge performance boost ([@OverloadUT] - [#8748]) ([history docs]) (breaking change)
- Update xiaomi vacuum tests and include in coverage ([@azogue] - [#8845]) ([vacuum docs]) ([vacuum.xiaomi docs])
- Egardia ([@jeroenterheerdt] - [#8389])
- Do not call update() in constructor. ([@fabaff] - [#8837]) ([sensor.systemmonitor docs])
- Upgrade sendgrid to 4.2.1 ([@fabaff] - [#8839])
- Do not call update() in constructor ([@fabaff] - [#8840]) ([sensor.vasttrafik docs])
- Make 'monitored_conditions' optional ([@fabaff] - [#8843]) ([sensor.radarr docs])
- Do not call update() in constructor ([@fabaff] - [#8849]) ([sensor.synologydsm docs])
- Make 'monitored_conditions' optional ([@fabaff] - [#8848]) ([sensor.sonarr docs])
- Do not call update() in constructor ([@fabaff] - [#8847]) ([sensor.pocketcasts docs])
- Catch ConnectionRefusedError ([@fabaff] - [#8844]) ([sensor.supervisord docs])
- Upgrade sqlalchemy to 1.1.13 ([@fabaff] - [#8850]) ([recorder docs])
- Upgrade pylast to 1.9.0 ([@fabaff] - [#8854]) ([sensor.lastfm docs])
- Wi-Fi enabled Roomba support ([@pschmitt] - [#8825]) ([vacuum.roomba docs]) (new-platform)
- Add support to Dyson 360 Eye robot vacuum using new vacuum platform ([@CharlesBlonde] - [#8852]) ([dyson docs]) ([vacuum docs]) ([fan.dyson docs]) ([sensor.dyson docs]) ([vacuum.dyson docs]) (new-platform)
- Upgrade pyasn1 to 0.3.2 and pyasn1-modules to 0.0.11 ([@fabaff] - [#8856]) ([notify.xmpp docs])
- Allow to set coordinates ([@fabaff] - [#8858]) ([sensor.zamg docs]) ([weather.zamg docs])
- Added rounding to Google Wifi ([@fronzbot] - [#8866]) ([sensor.google_wifi docs])
- Fix off_delay for zwave trigger sensors ([@turbokongen] - [#8864]) ([zwave docs]) ([binary_sensor.zwave docs])
- Do not use pychromecast.Chromecast for Cast Groups ([@foxel] - [#8786]) ([media_player.cast docs])
- Allow get local ip to work without internet ([@balloob] - [#8855])
- Do not call update() in constructor ([@fabaff] - [#8859])
- Add new service `clean_spot` to vacuums ([@azogue] - [#8862]) ([vacuum docs]) ([vacuum.xiaomi docs])
- Warn instead of raise on duplicate YAML key ([@balloob] - [#8834])
- Add Initial Mailbox panel and sensor ([@PhracturedBlue] - [#8233]) ([asterisk_mbox docs]) (new-platform)
- Add Leviton Decora Smart WiFi Device Platform ([@tlyakhov] - [#8529]) ([light.decora_wifi docs]) (new-platform)
- Consolidate config panels ([@balloob] - [#8857]) ([automation docs]) ([zwave docs])
- Fix spelling error and update link ([@Klikini] - [#8869])
- Implement Roomba fan speed ([@pschmitt] - [#8863]) ([vacuum.roomba docs])
- Add nuki lock'n'go and unlatch services and add attributes ([@pschmitt] - [#8687]) ([lock.nuki docs])
- RFLink: Add send_command service ([@leppa] - [#8876]) ([rflink docs])
- Do not call update() in constructor ([@fabaff] - [#8881]) ([binary_sensor.rest docs]) ([sensor.rest docs])
- Add RainMachine switch platform ([@bachya] - [#8827]) ([switch.rainmachine docs]) (new-platform)
- Allow usage of colorlog 3.0.1 ([@fabaff] - [#8885])
- Change level ([@fabaff] - [#8883]) ([sensor.statistics docs])
- Upgrade youtube_dl to 2017.8.6 ([@fabaff] - [#8880]) ([media_extractor docs])
- Fix media_extractor for some sites ([@Spirit-X] - [#8887]) ([media_extractor docs])
- Do not call update() in constructor ([@fabaff] - [#8878])
- Do not call update() in constructor ([@fabaff] - [#8892]) ([binary_sensor.command_line docs]) ([sensor.command_line docs]) ([switch.command_line docs])
- Changed Pi-hole graphs from stacked bar to line ([@bachya] - [#8896]) ([sensor.pi_hole docs])
- Add longer text strings to mailbox demo to test string truncation ([@PhracturedBlue] - [#8893]) ([mailbox.demo docs]) ([mailbox.demo.txt docs])
- added support for setting/getting position of lutron caseta covers ([@809694+kfcook] - [#8898]) ([cover.lutron_caseta docs])
- Fix for Neato D3 Connected state obtaining ([@karlkar] - [#8817]) ([sensor.neato docs]) ([switch.neato docs])
- Update simplisafe-python version ([@w1ll1am23] - [#8908]) ([alarm_control_panel.simplisafe docs])
- LIFX: improve performance of multi-light transitions ([@amelchio] - [#8873]) ([light.lifx docs])
- Support media position and media duration (will display progressbar in ui) ([@molobrakos] - [#8904]) ([media_player.squeezebox docs])
- Add new device tracker for Huawei Routers. ([@abmantis] - [#8488]) ([device_tracker.huawei_router docs]) (new-platform)
- Add Shodan sensor ([@fabaff] - [#8902]) ([sensor.shodan docs]) (new-platform)
- Added possibilities to use template in the command_line sensor ([@mar-schmidt] - [#8505]) ([sensor.command_line docs])
- Honor PEP8 naming convention ([@fabaff] - [#8909]) ([updater docs])
- Remove not needed call to update ([@MartinHjelmare] - [#8930]) ([switch.rachio docs])
- fixing emulated hue issue and testing it ([@cribbstechnologies] - [#8928]) ([emulated_hue docs])
- Update roombapy to 1.3.1 to avoid installing all the mapping dependencies ([@pschmitt] - [#8925]) ([vacuum.roomba docs])
- Update python-wink version to fix Dome water valve bug. ([@w1ll1am23] - [#8923]) ([wink docs]) ([switch.wink docs])
- Fix SET_TEMPERATURE_SCHEMA in climate component ([@MartinHjelmare] - [#8879]) ([climate docs])
[#7192]: https://github.com/home-assistant/home-assistant/pull/7192
[#8233]: https://github.com/home-assistant/home-assistant/pull/8233
[#8258]: https://github.com/home-assistant/home-assistant/pull/8258
[#8389]: https://github.com/home-assistant/home-assistant/pull/8389
[#8448]: https://github.com/home-assistant/home-assistant/pull/8448
[#8458]: https://github.com/home-assistant/home-assistant/pull/8458
[#8476]: https://github.com/home-assistant/home-assistant/pull/8476
[#8483]: https://github.com/home-assistant/home-assistant/pull/8483
[#8488]: https://github.com/home-assistant/home-assistant/pull/8488
[#8505]: https://github.com/home-assistant/home-assistant/pull/8505
[#8529]: https://github.com/home-assistant/home-assistant/pull/8529
[#8582]: https://github.com/home-assistant/home-assistant/pull/8582
[#8623]: https://github.com/home-assistant/home-assistant/pull/8623
[#8633]: https://github.com/home-assistant/home-assistant/pull/8633
[#8634]: https://github.com/home-assistant/home-assistant/pull/8634
[#8650]: https://github.com/home-assistant/home-assistant/pull/8650
[#8655]: https://github.com/home-assistant/home-assistant/pull/8655
[#8687]: https://github.com/home-assistant/home-assistant/pull/8687
[#8690]: https://github.com/home-assistant/home-assistant/pull/8690
[#8691]: https://github.com/home-assistant/home-assistant/pull/8691
[#8692]: https://github.com/home-assistant/home-assistant/pull/8692
[#8695]: https://github.com/home-assistant/home-assistant/pull/8695
[#8698]: https://github.com/home-assistant/home-assistant/pull/8698
[#8700]: https://github.com/home-assistant/home-assistant/pull/8700
[#8701]: https://github.com/home-assistant/home-assistant/pull/8701
[#8702]: https://github.com/home-assistant/home-assistant/pull/8702
[#8713]: https://github.com/home-assistant/home-assistant/pull/8713
[#8715]: https://github.com/home-assistant/home-assistant/pull/8715
[#8717]: https://github.com/home-assistant/home-assistant/pull/8717
[#8723]: https://github.com/home-assistant/home-assistant/pull/8723
[#8728]: https://github.com/home-assistant/home-assistant/pull/8728
[#8730]: https://github.com/home-assistant/home-assistant/pull/8730
[#8731]: https://github.com/home-assistant/home-assistant/pull/8731
[#8736]: https://github.com/home-assistant/home-assistant/pull/8736
[#8739]: https://github.com/home-assistant/home-assistant/pull/8739
[#8748]: https://github.com/home-assistant/home-assistant/pull/8748
[#8756]: https://github.com/home-assistant/home-assistant/pull/8756
[#8761]: https://github.com/home-assistant/home-assistant/pull/8761
[#8763]: https://github.com/home-assistant/home-assistant/pull/8763
[#8764]: https://github.com/home-assistant/home-assistant/pull/8764
[#8767]: https://github.com/home-assistant/home-assistant/pull/8767
[#8774]: https://github.com/home-assistant/home-assistant/pull/8774
[#8777]: https://github.com/home-assistant/home-assistant/pull/8777
[#8782]: https://github.com/home-assistant/home-assistant/pull/8782
[#8783]: https://github.com/home-assistant/home-assistant/pull/8783
[#8785]: https://github.com/home-assistant/home-assistant/pull/8785
[#8786]: https://github.com/home-assistant/home-assistant/pull/8786
[#8787]: https://github.com/home-assistant/home-assistant/pull/8787
[#8797]: https://github.com/home-assistant/home-assistant/pull/8797
[#8805]: https://github.com/home-assistant/home-assistant/pull/8805
[#8806]: https://github.com/home-assistant/home-assistant/pull/8806
[#8809]: https://github.com/home-assistant/home-assistant/pull/8809
[#8815]: https://github.com/home-assistant/home-assistant/pull/8815
[#8817]: https://github.com/home-assistant/home-assistant/pull/8817
[#8820]: https://github.com/home-assistant/home-assistant/pull/8820
[#8825]: https://github.com/home-assistant/home-assistant/pull/8825
[#8826]: https://github.com/home-assistant/home-assistant/pull/8826
[#8827]: https://github.com/home-assistant/home-assistant/pull/8827
[#8828]: https://github.com/home-assistant/home-assistant/pull/8828
[#8834]: https://github.com/home-assistant/home-assistant/pull/8834
[#8837]: https://github.com/home-assistant/home-assistant/pull/8837
[#8839]: https://github.com/home-assistant/home-assistant/pull/8839
[#8840]: https://github.com/home-assistant/home-assistant/pull/8840
[#8843]: https://github.com/home-assistant/home-assistant/pull/8843
[#8844]: https://github.com/home-assistant/home-assistant/pull/8844
[#8845]: https://github.com/home-assistant/home-assistant/pull/8845
[#8847]: https://github.com/home-assistant/home-assistant/pull/8847
[#8848]: https://github.com/home-assistant/home-assistant/pull/8848
[#8849]: https://github.com/home-assistant/home-assistant/pull/8849
[#8850]: https://github.com/home-assistant/home-assistant/pull/8850
[#8852]: https://github.com/home-assistant/home-assistant/pull/8852
[#8854]: https://github.com/home-assistant/home-assistant/pull/8854
[#8855]: https://github.com/home-assistant/home-assistant/pull/8855
[#8856]: https://github.com/home-assistant/home-assistant/pull/8856
[#8857]: https://github.com/home-assistant/home-assistant/pull/8857
[#8858]: https://github.com/home-assistant/home-assistant/pull/8858
[#8859]: https://github.com/home-assistant/home-assistant/pull/8859
[#8862]: https://github.com/home-assistant/home-assistant/pull/8862
[#8863]: https://github.com/home-assistant/home-assistant/pull/8863
[#8864]: https://github.com/home-assistant/home-assistant/pull/8864
[#8866]: https://github.com/home-assistant/home-assistant/pull/8866
[#8869]: https://github.com/home-assistant/home-assistant/pull/8869
[#8873]: https://github.com/home-assistant/home-assistant/pull/8873
[#8876]: https://github.com/home-assistant/home-assistant/pull/8876
[#8878]: https://github.com/home-assistant/home-assistant/pull/8878
[#8879]: https://github.com/home-assistant/home-assistant/pull/8879
[#8880]: https://github.com/home-assistant/home-assistant/pull/8880
[#8881]: https://github.com/home-assistant/home-assistant/pull/8881
[#8883]: https://github.com/home-assistant/home-assistant/pull/8883
[#8885]: https://github.com/home-assistant/home-assistant/pull/8885
[#8887]: https://github.com/home-assistant/home-assistant/pull/8887
[#8892]: https://github.com/home-assistant/home-assistant/pull/8892
[#8893]: https://github.com/home-assistant/home-assistant/pull/8893
[#8896]: https://github.com/home-assistant/home-assistant/pull/8896
[#8898]: https://github.com/home-assistant/home-assistant/pull/8898
[#8902]: https://github.com/home-assistant/home-assistant/pull/8902
[#8904]: https://github.com/home-assistant/home-assistant/pull/8904
[#8908]: https://github.com/home-assistant/home-assistant/pull/8908
[#8909]: https://github.com/home-assistant/home-assistant/pull/8909
[#8923]: https://github.com/home-assistant/home-assistant/pull/8923
[#8925]: https://github.com/home-assistant/home-assistant/pull/8925
[#8928]: https://github.com/home-assistant/home-assistant/pull/8928
[#8930]: https://github.com/home-assistant/home-assistant/pull/8930
[@809694+kfcook]: https://github.com/809694+kfcook
[@CharlesBlonde]: https://github.com/CharlesBlonde
[@Hellowlol]: https://github.com/Hellowlol
[@JulianKahnert]: https://github.com/JulianKahnert
[@Klikini]: https://github.com/Klikini
[@MartinHjelmare]: https://github.com/MartinHjelmare
[@OverloadUT]: https://github.com/OverloadUT
[@PhracturedBlue]: https://github.com/PhracturedBlue
[@Spirit-X]: https://github.com/Spirit-X
[@StevenLooman]: https://github.com/StevenLooman
[@abmantis]: https://github.com/abmantis
[@alanfischer]: https://github.com/alanfischer
[@amelchio]: https://github.com/amelchio
[@andrey-git]: https://github.com/andrey-git
[@armills]: https://github.com/armills
[@azogue]: https://github.com/azogue
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@cribbstechnologies]: https://github.com/cribbstechnologies
[@dansarginson]: https://github.com/dansarginson
[@emlt]: https://github.com/emlt
[@fabaff]: https://github.com/fabaff
[@fanthos]: https://github.com/fanthos
[@foxel]: https://github.com/foxel
[@fronzbot]: https://github.com/fronzbot
[@gwhiteCL]: https://github.com/gwhiteCL
[@hageltech]: https://github.com/hageltech
[@jeroenterheerdt]: https://github.com/jeroenterheerdt
[@karlkar]: https://github.com/karlkar
[@leppa]: https://github.com/leppa
[@luukd]: https://github.com/luukd
[@mar-schmidt]: https://github.com/mar-schmidt
[@mcolyer]: https://github.com/mcolyer
[@mezz64]: https://github.com/mezz64
[@mjj4791]: https://github.com/mjj4791
[@molobrakos]: https://github.com/molobrakos
[@mtreinish]: https://github.com/mtreinish
[@nugget]: https://github.com/nugget
[@pezinek]: https://github.com/pezinek
[@pschmitt]: https://github.com/pschmitt
[@pvizeli]: https://github.com/pvizeli
[@sielicki]: https://github.com/sielicki
[@steverhoades]: https://github.com/steverhoades
[@syssi]: https://github.com/syssi
[@tfriedel]: https://github.com/tfriedel
[@thrawnarn]: https://github.com/thrawnarn
[@tinloaf]: https://github.com/tinloaf
[@tlyakhov]: https://github.com/tlyakhov
[@tsvi]: https://github.com/tsvi
[@turbokongen]: https://github.com/turbokongen
[@viswa-swami]: https://github.com/viswa-swami
[@w1ll1am23]: https://github.com/w1ll1am23
[@wickerwaka]: https://github.com/wickerwaka
[alarm_control_panel.simplisafe docs]: https://home-assistant.io/components/alarm_control_panel.simplisafe/
[alexa docs]: https://home-assistant.io/components/alexa/
[asterisk_mbox docs]: https://home-assistant.io/components/asterisk_mbox/
[automation docs]: https://home-assistant.io/components/automation/
[binary_sensor docs]: https://home-assistant.io/components/binary_sensor/
[binary_sensor.command_line docs]: https://home-assistant.io/components/binary_sensor.command_line/
[binary_sensor.rest docs]: https://home-assistant.io/components/binary_sensor.rest/
[binary_sensor.zwave docs]: https://home-assistant.io/components/binary_sensor.zwave/
[camera.foscam docs]: https://home-assistant.io/components/camera.foscam/
[climate docs]: https://home-assistant.io/components/climate/
[climate.honeywell docs]: https://home-assistant.io/components/climate.honeywell/
[climate.tado docs]: https://home-assistant.io/components/climate.tado/
[config.zwave docs]: https://home-assistant.io/components/config.zwave/
[cover.lutron_caseta docs]: https://home-assistant.io/components/cover.lutron_caseta/
[cover.rpi_gpio docs]: https://home-assistant.io/components/cover.rpi_gpio/
[device_tracker.huawei_router docs]: https://home-assistant.io/components/device_tracker.huawei_router/
[dyson docs]: https://home-assistant.io/components/dyson/
[emulated_hue docs]: https://home-assistant.io/components/emulated_hue/
[fan.dyson docs]: https://home-assistant.io/components/fan.dyson/
[group docs]: https://home-assistant.io/components/group/
[history docs]: https://home-assistant.io/components/history/
[image_processing.opencv docs]: https://home-assistant.io/components/image_processing.opencv/
[influxdb docs]: https://home-assistant.io/components/influxdb/
[insteon_plm docs]: https://home-assistant.io/components/insteon_plm/
[light.decora_wifi docs]: https://home-assistant.io/components/light.decora_wifi/
[light.flux_led docs]: https://home-assistant.io/components/light.flux_led/
[light.lifx docs]: https://home-assistant.io/components/light.lifx/
[light.mochad docs]: https://home-assistant.io/components/light.mochad/
[light.osramlightify docs]: https://home-assistant.io/components/light.osramlightify/
[lock.nuki docs]: https://home-assistant.io/components/lock.nuki/
[lutron_caseta docs]: https://home-assistant.io/components/lutron_caseta/
[mailbox.demo docs]: https://home-assistant.io/components/mailbox.demo/
[mailbox.demo.txt docs]: https://home-assistant.io/components/mailbox.demo.txt/
[media_extractor docs]: https://home-assistant.io/components/media_extractor/
[media_player docs]: https://home-assistant.io/components/media_player/
[media_player.bluesound docs]: https://home-assistant.io/components/media_player.bluesound/
[media_player.cast docs]: https://home-assistant.io/components/media_player.cast/
[media_player.directv docs]: https://home-assistant.io/components/media_player.directv/
[media_player.kodi docs]: https://home-assistant.io/components/media_player.kodi/
[media_player.mpd docs]: https://home-assistant.io/components/media_player.mpd/
[media_player.russound_rio docs]: https://home-assistant.io/components/media_player.russound_rio/
[media_player.sonos docs]: https://home-assistant.io/components/media_player.sonos/
[media_player.squeezebox docs]: https://home-assistant.io/components/media_player.squeezebox/
[notify.pushbullet docs]: https://home-assistant.io/components/notify.pushbullet/
[notify.xmpp docs]: https://home-assistant.io/components/notify.xmpp/
[recorder docs]: https://home-assistant.io/components/recorder/
[recorder.migration docs]: https://home-assistant.io/components/recorder.migration/
[recorder.models docs]: https://home-assistant.io/components/recorder.models/
[recorder.purge docs]: https://home-assistant.io/components/recorder.purge/
[recorder.util docs]: https://home-assistant.io/components/recorder.util/
[remote docs]: https://home-assistant.io/components/remote/
[remote.apple_tv docs]: https://home-assistant.io/components/remote.apple_tv/
[remote.demo docs]: https://home-assistant.io/components/remote.demo/
[remote.harmony docs]: https://home-assistant.io/components/remote.harmony/
[remote.itach docs]: https://home-assistant.io/components/remote.itach/
[remote.kira docs]: https://home-assistant.io/components/remote.kira/
[rflink docs]: https://home-assistant.io/components/rflink/
[scene.lutron_caseta docs]: https://home-assistant.io/components/scene.lutron_caseta/
[sensor.asterisk_mbox docs]: https://home-assistant.io/components/sensor.asterisk_mbox/
[sensor.buienradar docs]: https://home-assistant.io/components/sensor.buienradar/
[sensor.command_line docs]: https://home-assistant.io/components/sensor.command_line/
[sensor.dyson docs]: https://home-assistant.io/components/sensor.dyson/
[sensor.efergy docs]: https://home-assistant.io/components/sensor.efergy/
[sensor.eight_sleep docs]: https://home-assistant.io/components/sensor.eight_sleep/
[sensor.geizhals docs]: https://home-assistant.io/components/sensor.geizhals/
[sensor.google_wifi docs]: https://home-assistant.io/components/sensor.google_wifi/
[sensor.lastfm docs]: https://home-assistant.io/components/sensor.lastfm/
[sensor.neato docs]: https://home-assistant.io/components/sensor.neato/
[sensor.pi_hole docs]: https://home-assistant.io/components/sensor.pi_hole/
[sensor.pocketcasts docs]: https://home-assistant.io/components/sensor.pocketcasts/
[sensor.radarr docs]: https://home-assistant.io/components/sensor.radarr/
[sensor.rest docs]: https://home-assistant.io/components/sensor.rest/
[sensor.sabnzbd docs]: https://home-assistant.io/components/sensor.sabnzbd/
[sensor.shodan docs]: https://home-assistant.io/components/sensor.shodan/
[sensor.sonarr docs]: https://home-assistant.io/components/sensor.sonarr/
[sensor.statistics docs]: https://home-assistant.io/components/sensor.statistics/
[sensor.supervisord docs]: https://home-assistant.io/components/sensor.supervisord/
[sensor.synologydsm docs]: https://home-assistant.io/components/sensor.synologydsm/
[sensor.systemmonitor docs]: https://home-assistant.io/components/sensor.systemmonitor/
[sensor.vasttrafik docs]: https://home-assistant.io/components/sensor.vasttrafik/
[sensor.yr docs]: https://home-assistant.io/components/sensor.yr/
[sensor.zamg docs]: https://home-assistant.io/components/sensor.zamg/
[switch.command_line docs]: https://home-assistant.io/components/switch.command_line/
[switch.mqtt docs]: https://home-assistant.io/components/switch.mqtt/
[switch.neato docs]: https://home-assistant.io/components/switch.neato/
[switch.rachio docs]: https://home-assistant.io/components/switch.rachio/
[switch.rainmachine docs]: https://home-assistant.io/components/switch.rainmachine/
[switch.wink docs]: https://home-assistant.io/components/switch.wink/
[switch.xiaomi_vacuum docs]: https://home-assistant.io/components/switch.xiaomi_vacuum/
[telegram_bot docs]: https://home-assistant.io/components/telegram_bot/
[updater docs]: https://home-assistant.io/components/updater/
[vacuum docs]: https://home-assistant.io/components/vacuum/
[vacuum.demo docs]: https://home-assistant.io/components/vacuum.demo/
[vacuum.dyson docs]: https://home-assistant.io/components/vacuum.dyson/
[vacuum.roomba docs]: https://home-assistant.io/components/vacuum.roomba/
[vacuum.xiaomi docs]: https://home-assistant.io/components/vacuum.xiaomi/
[weather.buienradar docs]: https://home-assistant.io/components/weather.buienradar/
[weather.yweather docs]: https://home-assistant.io/components/weather.yweather/
[weather.zamg docs]: https://home-assistant.io/components/weather.zamg/
[wink docs]: https://home-assistant.io/components/wink/
[zwave docs]: https://home-assistant.io/components/zwave/
[forum]: https://community.home-assistant.io/
[issue]: https://github.com/home-assistant/home-assistant/issues
[discord]: https://discord.gg/c5DvZ4e

View File

@ -20,7 +20,12 @@ Hass.io images are available for all available Raspberry Pi and Intel NUC platfo
- Optional - Setup the WiFi or static IP: On the SD-card, edit the `system-connections/resin-sample` file and follow the [ResinOS howto][resinos-network].
- Insert SD card to Raspberry Pi and turn it on. On first boot, it downloads the latest version of Home Assistant which takes ~20 minutes (slower/faster depending on the platform).
- You will be able to reach your installation at [http://hassio.local:8123][local].
- Enable either the [Samba add-on][samba] or the [SSH add-on][ssh] to manage your configuration.
<p class='img'>
<img src='/images/hassio/screenshots/first-start.png' />
</p>
- Enable either the [Samba add-on][samba] or the [SSH add-on][ssh] to manage your configuration (From the UI choose **Hass.io** which is located in the sidebar).
<p class='note'>
If you copy over your existing Home Assistant configuration, make sure to enable the Hass.io panel by adding either `discovery:` or `hassio:` to your configuration.

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,475 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
id="svg3751"
viewBox="0 0 300 300.20289"
height="300.20288"
width="300">
<defs
id="defs3753">
<radialGradient
id="radialGradient3572"
spreadMethod="pad"
gradientTransform="matrix(30.668899,0,0,-30.668899,54.739258,480.55713)"
gradientUnits="userSpaceOnUse"
r="1"
cy="0"
cx="0"
fy="0"
fx="0">
<stop
id="stop3574"
offset="0"
style="stop-opacity:1;stop-color:#f9ab95" />
<stop
id="stop3576"
offset="0.42008579"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3578"
offset="0.426971"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3580"
offset="0.87256252"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3582"
offset="1"
style="stop-opacity:1;stop-color:#981015" />
</radialGradient>
<radialGradient
id="radialGradient3546"
spreadMethod="pad"
gradientTransform="matrix(30.666946,0,0,-30.666946,54.740234,480.55811)"
gradientUnits="userSpaceOnUse"
r="1"
cy="0"
cx="0"
fy="0"
fx="0">
<stop
id="stop3548"
offset="0"
style="stop-opacity:1;stop-color:#f9ab95" />
<stop
id="stop3550"
offset="0.42008579"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3552"
offset="0.426971"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3554"
offset="0.87256252"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3556"
offset="1"
style="stop-opacity:1;stop-color:#981015" />
</radialGradient>
<radialGradient
id="radialGradient3520"
spreadMethod="pad"
gradientTransform="matrix(30.662826,0,0,-30.662826,54.738281,480.55322)"
gradientUnits="userSpaceOnUse"
r="1"
cy="0"
cx="0"
fy="0"
fx="0">
<stop
id="stop3522"
offset="0"
style="stop-opacity:1;stop-color:#f9ab95" />
<stop
id="stop3524"
offset="0.42008579"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3526"
offset="0.426971"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3528"
offset="0.87256252"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3530"
offset="1"
style="stop-opacity:1;stop-color:#981015" />
</radialGradient>
<radialGradient
id="radialGradient3494"
spreadMethod="pad"
gradientTransform="matrix(30.668426,0,0,-30.668426,54.737793,480.55615)"
gradientUnits="userSpaceOnUse"
r="1"
cy="0"
cx="0"
fy="0"
fx="0">
<stop
id="stop3496"
offset="0"
style="stop-opacity:1;stop-color:#f9ab95" />
<stop
id="stop3498"
offset="0.42008579"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3500"
offset="0.426971"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3502"
offset="0.87256252"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3504"
offset="1"
style="stop-opacity:1;stop-color:#981015" />
</radialGradient>
<radialGradient
id="radialGradient3468"
spreadMethod="pad"
gradientTransform="matrix(30.633362,0,0,-30.633347,54.729981,480.55664)"
gradientUnits="userSpaceOnUse"
r="1"
cy="0"
cx="0"
fy="0"
fx="0">
<stop
id="stop3470"
offset="0"
style="stop-opacity:1;stop-color:#f9ab95" />
<stop
id="stop3472"
offset="0.42008579"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3474"
offset="0.426971"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3476"
offset="0.87256252"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3478"
offset="1"
style="stop-opacity:1;stop-color:#981015" />
</radialGradient>
<radialGradient
id="radialGradient3442"
spreadMethod="pad"
gradientTransform="matrix(30.633118,0,0,-30.633118,54.732422,480.55762)"
gradientUnits="userSpaceOnUse"
r="1"
cy="0"
cx="0"
fy="0"
fx="0">
<stop
id="stop3444"
offset="0"
style="stop-opacity:1;stop-color:#f9ab95" />
<stop
id="stop3446"
offset="0.42008579"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3448"
offset="0.426971"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3450"
offset="0.87256252"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3452"
offset="1"
style="stop-opacity:1;stop-color:#981015" />
</radialGradient>
<radialGradient
id="radialGradient3416"
spreadMethod="pad"
gradientTransform="matrix(30.641281,0,0,-30.641281,54.736328,480.56445)"
gradientUnits="userSpaceOnUse"
r="1"
cy="0"
cx="0"
fy="0"
fx="0">
<stop
id="stop3418"
offset="0"
style="stop-opacity:1;stop-color:#f9ab95" />
<stop
id="stop3420"
offset="0.42008579"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3422"
offset="0.426971"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3424"
offset="0.87256252"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3426"
offset="1"
style="stop-opacity:1;stop-color:#981015" />
</radialGradient>
<radialGradient
id="radialGradient3390"
spreadMethod="pad"
gradientTransform="matrix(30.638077,0,0,-30.638077,54.730957,480.56006)"
gradientUnits="userSpaceOnUse"
r="1"
cy="0"
cx="0"
fy="0"
fx="0">
<stop
id="stop3392"
offset="0"
style="stop-opacity:1;stop-color:#f9ab95" />
<stop
id="stop3394"
offset="0.42008579"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3396"
offset="0.426971"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3398"
offset="0.87256252"
style="stop-opacity:1;stop-color:#ed1c24" />
<stop
id="stop3400"
offset="1"
style="stop-opacity:1;stop-color:#981015" />
</radialGradient>
<clipPath
id="clipPath3356"
clipPathUnits="userSpaceOnUse">
<path
id="path3358"
d="m 0,521.57 368.5,0 L 368.5,0 0,0 0,521.57 Z" />
</clipPath>
</defs>
<metadata
id="metadata3756">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-172.44358,-219.73387)"
id="layer1">
<g
transform="matrix(7.0133699,0,0,-7.0133699,184.4516,489.91397)"
id="g3348">
<path
id="path3350"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 3.467,0 0,2.77 1.555,0 0,-6.834 -1.555,0 0,2.854 -3.467,0 0,-2.854 -1.559,0 0,6.834 L 0,2.77 0,0 Z" />
</g>
<g
id="g3352"
transform="matrix(7.0133699,0,0,-7.0133699,-22.64833,3618.6134)">
<g
clip-path="url(#clipPath3356)"
id="g3354">
<g
transform="translate(37.3755,444.7798)"
id="g3360">
<path
id="path3362"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 c 0,-1.208 0.381,-1.714 1.67,-1.714 1.285,0 1.658,0.506 1.658,1.714 l 0,4.095 1.559,0 0,-4.131 c 0,-0.872 -0.106,-1.473 -0.438,-1.839 -0.605,-0.664 -1.494,-0.938 -2.779,-0.938 -1.289,0 -2.184,0.274 -2.795,0.938 -0.338,0.371 -0.422,0.972 -0.422,1.839 l 0,4.131 L 0,4.095 0,0 Z" />
</g>
<g
transform="translate(45.3774,444.8823)"
id="g3364">
<path
id="path3366"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 0,0 2.207,0 1.084,2.63 0,0 Z m 1.969,3.992 3.154,-6.834 -1.73,0 -0.682,1.626 -3.219,0 -0.654,-1.626 -1.652,0 3.13,6.834 1.653,0 z" />
</g>
<g
transform="translate(51.2056,448.8745)"
id="g3368">
<path
id="path3370"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 0,0 1.711,-5.254 3.154,0 4.992,0 6.646,-5.254 8.244,0 l 1.6,0 -2.287,-6.834 -1.907,0 -1.578,5.098 -1.379,-5.098 -1.9,0 L -1.672,0 0,0 Z" />
</g>
<g
transform="translate(63.145,446.0962)"
id="g3372">
<path
id="path3374"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 4.303,0 0,-1.188 -4.313,0 C 0,-2.421 0.523,-2.869 1.754,-2.869 l 2.549,0 0,-1.187 -2.623,0 c -0.893,0 -1.588,0.065 -2.309,0.599 -0.766,0.559 -1.133,1.458 -1.133,2.693 0,2.416 1.1,3.542 3.487,3.542 l 2.578,0 0,-1.194 -2.549,0 C 0.625,1.584 0.061,1.071 0,0" />
</g>
<path
id="path3376"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 68.825,448.875 1.625,0 0,-6.834 -1.625,0 0,6.834 z" />
</g>
</g>
<g
id="g3378"
transform="matrix(7.0133699,0,0,-7.0133699,-22.64833,3618.6134)">
<g
id="g3380">
<g
id="g3386">
<g
id="g3388">
<path
id="path3402"
style="fill:url(#radialGradient3390);stroke:none"
d="m 31.014,471.791 c 0.14,-2.671 2.151,-4.255 2.151,-4.255 l 0,0 c 3.24,-3.157 11.084,-7.141 12.904,-8.049 l 0,0 c 0.024,-0.002 0.119,-0.036 0.174,0.035 l 0,0 c 0,0 0.075,0.059 0.037,0.155 l 0,0 c -4.991,10.904 -11.816,19.172 -11.816,19.172 l 0,0 c 0,0 -3.715,-3.527 -3.45,-7.058" />
</g>
</g>
</g>
</g>
<g
id="g3404"
transform="matrix(7.0133699,0,0,-7.0133699,-22.64833,3618.6134)">
<g
id="g3406">
<g
id="g3412">
<g
id="g3414">
<path
id="path3428"
style="fill:url(#radialGradient3416);stroke:none"
d="m 31.809,456.488 c 1.415,-2.523 3.801,-4.486 6.285,-3.883 l 0,0 c 1.717,0.429 5.596,3.137 6.875,4.054 l 0,0 -0.004,0.001 c 0.1,0.087 0.071,0.161 0.071,0.161 l 0,0 c -0.038,0.117 -0.172,0.117 -0.172,0.117 l 0,0 0,0.005 -13.055,-0.455 z" />
</g>
</g>
</g>
</g>
<g
id="g3430"
transform="matrix(7.0133699,0,0,-7.0133699,-22.64833,3618.6134)">
<g
id="g3432">
<g
id="g3438">
<g
id="g3440">
<path
id="path3454"
style="fill:url(#radialGradient3442);stroke:none"
d="m 28.685,462.349 c 1.416,-2.994 4.121,-3.902 4.121,-3.902 l 0,0 c 1.247,-0.513 2.496,-0.546 2.496,-0.546 l 0,0 c 0.195,-0.035 7.765,-0.004 9.792,0.004 l 0,0 c 0.088,0 0.135,0.088 0.135,0.088 l 0,0 c 0.063,0.102 -0.047,0.198 -0.047,0.198 l 0,0 0,0.001 c -5.734,3.866 -16.849,9.805 -16.849,9.805 l 0,0 c -1.011,-3.127 0.352,-5.648 0.352,-5.648" />
</g>
</g>
</g>
</g>
<g
id="g3456"
transform="matrix(7.0133699,0,0,-7.0133699,-22.64833,3618.6134)">
<g
id="g3458">
<g
id="g3464">
<g
id="g3466">
<path
id="path3480"
style="fill:url(#radialGradient3468);stroke:none"
d="m 43.993,484.086 c -3.457,-0.894 -4.274,-4.03 -4.274,-4.03 l 0,0 c -0.63,-1.974 0.018,-4.14 0.018,-4.14 l 0,0 c 1.15,-5.121 6.83,-13.531 8.052,-15.298 l 0,0 c 0.088,-0.087 0.153,-0.054 0.153,-0.054 l 0,0 c 0.122,0.033 0.125,0.144 0.125,0.161 l 0,0 c 1.875,18.782 -1.974,23.761 -1.974,23.761 l 0,0 c -0.567,-0.053 -2.1,-0.4 -2.1,-0.4" />
</g>
</g>
</g>
</g>
<g
id="g3482"
transform="matrix(7.0133699,0,0,-7.0133699,-22.64833,3618.6134)">
<g
id="g3484">
<g
id="g3490">
<g
id="g3492">
<path
id="path3506"
style="fill:url(#radialGradient3494);stroke:none"
d="m 50.313,460.713 0.006,0 c 0.01,-0.121 0.1,-0.146 0.1,-0.146 l 0,0 c 0.124,-0.048 0.187,0.073 0.187,0.073 l 0,0 0,-0.003 c 1.256,1.809 6.897,10.181 8.052,15.279 l 0,0 c 0,0 0.616,2.47 0.015,4.14 l 0,0 c 0,0 -0.85,3.185 -4.313,4.025 l 0,0 c 0,0 -0.998,0.257 -2.055,0.405 l 0,0 c 0,0 -3.869,-4.982 -1.992,-23.773" />
</g>
</g>
</g>
</g>
<g
id="g3508"
transform="matrix(7.0133699,0,0,-7.0133699,-22.64833,3618.6134)">
<g
id="g3510">
<g
id="g3516">
<g
id="g3518">
<path
id="path3532"
style="fill:url(#radialGradient3520);stroke:none"
d="m 53.509,456.931 c 0,0 -0.116,-0.016 -0.147,-0.102 l 0,0 c 0,0 -0.03,-0.114 0.052,-0.172 l 0,0 0,-0.002 c 1.245,-0.898 5.032,-3.546 6.86,-4.061 l 0,0 c 0,0 3.375,-1.15 6.304,3.884 l 0,0 -13.069,0.457 0,-0.004 z" />
</g>
</g>
</g>
</g>
<g
id="g3534"
transform="matrix(7.0133699,0,0,-7.0133699,-22.64833,3618.6134)">
<g
id="g3536">
<g
id="g3542">
<g
id="g3544">
<path
id="path3558"
style="fill:url(#radialGradient3546);stroke:none"
d="m 53.219,458.198 0,-10e-4 c 0,0 -0.097,-0.066 -0.064,-0.19 l 0,0 c 0,0 0.055,-0.097 0.132,-0.097 l 0,0 0,-0.005 c 2.053,0 9.831,-0.008 10.03,0.026 l 0,0 c 0,0 1.004,0.039 2.246,0.516 l 0,0 c 0,0 2.766,0.882 4.2,4.023 l 0,0 c 0,0 1.282,2.563 0.292,5.555 l 0,0 c 0,0 -11.1,-5.953 -16.836,-9.827" />
</g>
</g>
</g>
</g>
<g
id="g3560"
transform="matrix(7.0133699,0,0,-7.0133699,-22.64833,3618.6134)">
<g
id="g3562">
<g
id="g3568">
<g
id="g3570">
<path
id="path3584"
style="fill:url(#radialGradient3572);stroke:none"
d="m 52.133,459.731 0.006,0 c 0,0 -0.064,-0.127 0.033,-0.209 l 0,0 c 0,0 0.09,-0.068 0.176,-0.015 l 0,0 c 1.872,0.93 9.652,4.887 12.875,8.029 l 0,0 c 0,0 2.041,1.639 2.15,4.27 l 0,0 c 0.235,3.658 -3.441,7.043 -3.441,7.043 l 0,0 c 0,0 -6.813,-8.244 -11.799,-19.118" />
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -9,7 +9,6 @@ is_homepage: true
regenerate: true
hide_github_edit: true
description: Open-source home automation platform running on Python 3. Track and control all devices at home and automate control. Installation in less than a minute.
hide_github_edit: true
---
{% assign recent_release_post = site.categories['Release-Notes'].first %}