mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-10 02:46:53 +00:00
commit
203aac6711
@ -138,10 +138,10 @@ social:
|
||||
|
||||
# Home Assistant release details
|
||||
current_major_version: 0
|
||||
current_minor_version: 40
|
||||
current_patch_version: 2
|
||||
date_released: 2017-03-22
|
||||
current_minor_version: 41
|
||||
current_patch_version: 0
|
||||
date_released: 2017-03-25
|
||||
|
||||
# Either # or the anchor link to latest release notes in the blog post.
|
||||
# Must be prefixed with a # and have double quotes around it.
|
||||
patch_version_notes: "#release-0402---march-22"
|
||||
#patch_version_notes: "#release-0411---march-xx"
|
||||
|
@ -21,9 +21,17 @@ To set it up, download [the IP Webcam app][app] and add the following informatio
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
android_ip_webcam:
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
- host: 192.168.1.10
|
||||
=======
|
||||
# This should be the ip of your phone
|
||||
=======
|
||||
# This should be the IP Address of the phone
|
||||
>>>>>>> origin/current
|
||||
- host: 192.168.1.10
|
||||
name: Entrance
|
||||
>>>>>>> current
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
@ -62,5 +70,8 @@ Settings:
|
||||
- torch
|
||||
- whitebalance_lock
|
||||
- video_recording
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
[app]: https://play.google.com/store/apps/details?id=com.pas.webcam
|
||||
>>>>>>> current
|
||||
|
50
source/_components/binary_sensor.workday.markdown
Normal file
50
source/_components/binary_sensor.workday.markdown
Normal file
@ -0,0 +1,50 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Workday Binary Sensor"
|
||||
description: "Steps to configure the binary workday sensor."
|
||||
date: 2017-03-13 21:30
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: home-assistant.png
|
||||
ha_category: Binary Sensor
|
||||
ha_iot_class: "Local Polling"
|
||||
ha_release: 0.41
|
||||
---
|
||||
|
||||
The `workday` binary sensor indicates, whether the current day is a workday or not. It allows specifying, which days of the week counts as workdays and also uses the python module [holidays](https://pypi.python.org/pypi/holidays) to incorporate information about region-specific public holidays.
|
||||
|
||||
```yaml
|
||||
# Example configuation.yaml entry
|
||||
binary_sensor:
|
||||
- platform: workday
|
||||
country: DE
|
||||
province: BW
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **country** (*Required*): Country code according to [holidays](https://pypi.python.org/pypi/holidays/0.8.1) notation.
|
||||
- **province** (*Optional*): Province code according to [holidays](https://pypi.python.org/pypi/holidays/0.8.1) notation (defaults to None).
|
||||
- **workdays** (*Optional*): List of workdays (defaults to mon, tue, wed, thu, fri).
|
||||
- **excludes** (*Optional*): List of workday excludes (defaults to sat, sun, holiday).
|
||||
|
||||
Days are specified as follows: `mon`, `tue`, `wed`, `thu`, `fri`, `sat`, `sun`. The keyword `holiday` is used for public holidays identified by the holidays module.
|
||||
|
||||
|
||||
Example usage for automation:
|
||||
```yaml
|
||||
automation:
|
||||
alias: Turn on heater on workdays
|
||||
trigger:
|
||||
platform: time
|
||||
after: '08:00:00'
|
||||
condition:
|
||||
condition: state
|
||||
entity_id: 'binary_sensor.workday_sensor'
|
||||
state: 'off'
|
||||
action:
|
||||
service: switch.turn_on
|
||||
entity_id: switch.heater
|
||||
```
|
41
source/_components/camera.dispatcher.markdown
Normal file
41
source/_components/camera.dispatcher.markdown
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Dispatcher IP Camera"
|
||||
description: "Instructions how to integrate internal dispatcher cameras within Home Assistant."
|
||||
date: 2017-03-08 00:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
ha_category: Camera
|
||||
logo: camcorder.png
|
||||
ha_release: 0.40
|
||||
ha_iot_class: "depends"
|
||||
---
|
||||
|
||||
<p class='note'>
|
||||
This platform is meant for developers only.
|
||||
</p>
|
||||
|
||||
The `dispatcher` camera platform allows developers to create virtual camera's.
|
||||
|
||||
You would normally not add this camera to your configuration directly but have it be discovered by one of the components that uses it.
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
camera:
|
||||
- platform: dispatcher
|
||||
signal: name_of_dispatcher_signal
|
||||
```
|
||||
|
||||
To update the image from another piece of code, run this from an async context:
|
||||
|
||||
```python
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||
|
||||
async_dispatcher_send(hass, 'name_of_dispatcher_signal', image_data)
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
- **signal** (*Required*): The signal name of dispatcher signal they send image data to this camera.
|
||||
- **name** (*Optional*): This parameter allows you to override the name of your camera.
|
@ -31,6 +31,7 @@ Configuration variables:
|
||||
- **url** (*Required*): The URL to your synology, including port.
|
||||
- **username** (*Required*): The username for accessing surveillance station.
|
||||
- **password** (*Required*): The password for accessing surveillance station.
|
||||
- **timeout** (*Optional*): The timeout in seconds used when connecting to the Surveillance Station. Defaults to 5.
|
||||
- **whitelist** (*Optional*): A list of which cameras you want to add, the names must be the same as in Surveillance Station. If omitted all cameras are added.
|
||||
- **verify_ssl** (*Optional*): True to require a valid certificate, False to disable certificate checking. Defaults to `True`.
|
||||
|
||||
@ -43,6 +44,7 @@ camera:
|
||||
url: https://192.168.1.120:5001
|
||||
username: USERNAME
|
||||
password: PASSWORD
|
||||
timeout: 15
|
||||
verify_ssl: False
|
||||
```
|
||||
|
||||
|
32
source/_components/climate.tado.markdown
Normal file
32
source/_components/climate.tado.markdown
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Tado"
|
||||
description: "Instructions on how to integrate Tado thermostats with Home Assistant."
|
||||
date: 2017-03-20 12:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: tado.png
|
||||
ha_category: Climate
|
||||
ha_release: 0.41
|
||||
---
|
||||
|
||||
|
||||
The `tado` component platform is used as an interface to the my.tado.com website. It adds climate devices for every tado zone and sensors for some additional information of the zones.
|
||||
|
||||
To use your tado thermostats in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
tado:
|
||||
username: YOUR_USERNAME
|
||||
password: YOUR_PASSWORD
|
||||
```
|
||||
|
||||
- **username** (*Required*): Username for my.tado.com.
|
||||
- **password** (*Required*): Password for my.tado.com.
|
||||
|
||||
The tado thermostats are internet connected thermostats. There exists an unofficial api at my.tado.com, which is used by theire website and now by this component.
|
||||
|
||||
It currently supports presenting the current temperature, the setting temperature and the current operation mode. Switching the mode is also supported. If no user is at home anymore, the devices are showing the away-state. Switching to away-mode is not supported.
|
@ -31,6 +31,7 @@ Configuration variables:
|
||||
- **port** (*Optional*): The port of your controller's web interface. Defaults to `8443`.
|
||||
- **username** (*Required*: The username of an user with administrative privileges, usually `admin`.
|
||||
- **password** (*Required*): The password for your given admin account.
|
||||
- **verify_ssl** (*Optional*): Verify the controllers SSL certificate. Defaults to True however can also be False or "path/to/custom_cert.pem".
|
||||
- **site_id** (*Optional*): Allows you to specify a `site_id` for device tracking. Defaults to `default`. Found in the URL of the controller (i.e. https://CONTROLLER:PORT/manage/site/SITE_ID/dashboard)
|
||||
- **verify_ssl** (*Optional*): Controls if the SSL certificate running on your Unifi webserver must be trusted by a known Certificate Authority on the server running Home Assistant. Defaults to 'True'.
|
||||
|
||||
|
@ -13,21 +13,4 @@ ha_release: "0.30"
|
||||
---
|
||||
|
||||
|
||||
The `volvooncall` platform offers presence detection by retrieving your car's information from the [Volvo On Call](http://www.volvocars.com/intl/own/connectivity/volvo-on-call) cloud service.
|
||||
|
||||
To use Volvo On Call in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
device_tracker:
|
||||
- platform: volvooncall
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **username** (*Required*): The username associated with your Volvo On Call account.
|
||||
- **password** (*Required*): The password for your given Volvo On Call account.
|
||||
|
||||
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the cars to be tracked.
|
||||
Integrates Volvo on Call into Home Assistant. See the [main component](/components/volvooncall/) for configuration instructions.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Home Assistant 0.39"
|
||||
title: "Home Assistant 0.41"
|
||||
description: ""
|
||||
date: 2016-12-16 17:00
|
||||
sidebar: true
|
||||
@ -9,7 +9,7 @@ sharing: true
|
||||
footer: true
|
||||
logo: home-assistant.png
|
||||
ha_category: Other
|
||||
ha_release: 0.39
|
||||
ha_release: 0.41
|
||||
---
|
||||
|
||||
Details about the latest release can always be found at:
|
||||
|
@ -52,16 +52,19 @@ Configuration variables:
|
||||
- **devices** (*Optional*): A list of devices with their name to use in the frontend.
|
||||
- **new_devices_group** (*Optional*): Create group to add new/unknown devices to.
|
||||
- **device_defaults**: (*Optional*)
|
||||
- **fire_event_** (*Optional*): Set default `fire_event` for RFLink switch devices (see below).
|
||||
- **signal_repetitions** (*Optional*): Set default `signal_repetitions` for RFLink switch devices (see below).
|
||||
- **fire_event** (*Optional*): Set default `fire_event` for Rflink switch devices (see below).
|
||||
- **signal_repetitions** (*Optional*): Set default `signal_repetitions` for Rflink switch devices (see below).
|
||||
|
||||
Device configuration variables:
|
||||
|
||||
- **name** (*Optional*): Name for the device, defaults to RFLink ID.
|
||||
- **type** (*Optional*): Override automatically detected type of the light device, can be: switchable, dimmable or hybrid. See 'Light Types' below.
|
||||
- **aliasses** (*Optional*): Alternative RFLink ID's this device is known by.
|
||||
- **fire_event_** (*Optional*): Fire an `button_pressed` event if this device is turned on or off (default: False).
|
||||
- **signal_repetitions** (*Optional*): Repeat every RFLink command this number of times (default: 1)
|
||||
- **name** (*Optional*): Name for the device, defaults to Rflink ID.
|
||||
- **type** (*Optional*): Override automatically detected type of the light device, can be: switchable, dimmable, hybrid or toggle. See 'Light Types' below.
|
||||
- **aliasses** (*Optional*): Alternative Rflink ID's this device is known by.
|
||||
- **fire_event** (*Optional*): Fire an `button_pressed` event if this device is turned on or off (default: False).
|
||||
- **signal_repetitions** (*Optional*): Repeat every Rflink command this number of times (default: 1)
|
||||
- **fire_event_** (*Optional*): Set default `fire_event` for RFLink switch devices (see below).
|
||||
- **signal_repetitions** (*Optional*): Set default `signal_repetitions` for RFLink switch devices (see below).
|
||||
|
||||
|
||||
### {% linkable_title Light state %}
|
||||
|
||||
@ -90,6 +93,7 @@ Light devices can come in different forms. Some only switch on and off, other su
|
||||
- *Hybrid*: This type sends a `dim` followed by an a `on` command; and `off` commands. This will make dimmable devices turn on at the requested dim level and on/off devices on. One caveat is this type is not compatible with signal repetition as multiple `on` signals will cause dimmers to go into disco mode.
|
||||
- *Switchable*: Device type that sends only `on` and `off` commands. It work for both on/off and dimmable type switches. However dimmables might have issues with signal repetition (see above).
|
||||
- *Dimmable*: Sends only `dim` and `off` commands. This does not work on on/off type devices as they don't understand the `dim` command. For dimmers this does not cause issues with signal repetitions.
|
||||
- *Toggle*: Device type that sends only `on` commands to turn on or off the device. Some switches like for example Livolo light switches use the same 'on' command to switch on and switch off the lights. If the light is on and 'on' gets sent, the light will turn off and if the light is off and 'on' gets sent, the light will turn on. If the device has an unknown state, it will assume it is off by default.
|
||||
|
||||
By default new lights are assigned the `switchable` type. Protocol supporting dimming are assigned the `hybrid` type. Currently only `newkaku` protocol is detected as dimmable. Please refer to Device Support to get your dimmers supported.
|
||||
|
||||
|
@ -28,11 +28,11 @@ media_player:
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **host** (*Required*): The host name or address of the device that is running XBMC/Kodi
|
||||
- **host** (*Required*): The host name or address of the device that is running XBMC/Kodi.
|
||||
- **port** (*Optional*): The HTTP port number. Defaults to 8080.
|
||||
- **tcp_port** (*Optional*): The TCP port number. Defaults to 9090. Used for websocket connections to Kodi.
|
||||
- **name** (*Optional*): The name of the device used in the frontend.
|
||||
- **ssl** (*Optional*): Connect to kodi with HTTPS and WSS. Defaults to `false`.
|
||||
- **proxy_ssl** (*Optional*): Connect to kodi with HTTPS and WSS. Defaults to `false`. Useful if Kodi is behind an SSL proxy.
|
||||
- **username** (*Optional*): The XBMC/Kodi HTTP username.
|
||||
- **password** (*Optional*): The XBMC/Kodi HTTP password.
|
||||
- **turn_off_action** (*Optional*): The desired turn off action. Options are `none`, `quit`, `hibernate`, `suspend`, `reboot`, or `shutdown`. Default `none`.
|
||||
|
@ -31,7 +31,7 @@ Configuration variables:
|
||||
|
||||
- **host** (*Required*): IP address of the Host where Music Player Daemon is running.
|
||||
- **port** (*Optional*): Port of the Music Player Daemon. Defaults to 6600.
|
||||
- **location** (*Optional*): Location of your Music Player Daemon. Defaults to "MPD".
|
||||
- **name** (*Optional*): Name of your Music Player Daemon. Defaults to "MPD".
|
||||
- **password** (*Optional*): Password for your Music Player Daemon.
|
||||
|
||||
Example script to load a saved playlist called "DeckMusic" and set the volume:
|
||||
|
@ -15,9 +15,13 @@ ha_iot_class: "Local Polling"
|
||||
---
|
||||
|
||||
|
||||
The `plex` platform allows you to connect a [Plex Media Server](https://plex.tv) to Home Assistant. It will allow you to control media playback and see the current playing item. The preferred way to setup the Plex platform is by enabling the [the discovery component](/components/discovery/) and requires GDM to be enabled.
|
||||
The `plex` platform allows you to connect a [Plex Media Server](https://plex.tv) to Home Assistant. It will allow you to control media playback and see the current playing item.
|
||||
|
||||
If local authentication is enabled or multiple users are defined, Home Assistant requires an authentication token to be entered in the frontend. Press "CONFIGURE" to do it.
|
||||
## Setup
|
||||
|
||||
The preferred way to setup the Plex platform is by enabling the [discovery component](/components/discovery/) which requires GDM enabled on your Plex server.
|
||||
|
||||
If your Plex server has local authentication enabled or multiple users defined, Home Assistant requires an authentication token to be entered in the frontend. Press "CONFIGURE" to do it.
|
||||
|
||||
<p class='img'>
|
||||
<img src='{{site_root}}/images/screenshots/plex-configure.png' />
|
||||
@ -29,7 +33,7 @@ If you don't know your token, see [Finding your account token / X-Plex-Token](ht
|
||||
<img src='{{site_root}}/images/screenshots/plex-token.png' />
|
||||
</p>
|
||||
|
||||
If you want to enable the plex platform directly, add the following lines to your `configuration.yaml`:
|
||||
You can also enable the plex platform directly by adding the following lines to your `configuration.yaml`:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
@ -47,13 +51,82 @@ In case [discovery](/components/discovery/) does not work (GDM disabled or non-l
|
||||
- **PORT** (*Required*): Port where Plex is listening. Default is 32400
|
||||
- **TOKEN** (*Optional*): Only if authentication is required. Set to `null` (without quotes) otherwise.
|
||||
|
||||
At this moment, the Plex platform only supports one Plex Media Server.
|
||||
|
||||
It is possible to get errors that look like the following.
|
||||
|
||||
```
|
||||
ERROR:plexapi:http://192.168.1.10:32400: ('Connection aborted.', BadStatusLine("''",))
|
||||
INFO:homeassistant.components.media_player.plex:No server found at: http://192.168.1.10:32400
|
||||
## Customization
|
||||
You can customize the Plex component by adding any of the variables below to your configuration:
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
media_player:
|
||||
- platform: plex
|
||||
entity_namespace: 'plex'
|
||||
include_non_clients: true
|
||||
scan_interval: 5
|
||||
show_all_controls: false
|
||||
use_custom_entity_ids: true
|
||||
use_episode_art: true
|
||||
```
|
||||
- **entity_namespace** (*Optional*): Prefix for entity ID's. Defaults to `null`. Useful when using overlapping components (ex. Apple TV and Plex components when you have Apple TV's you use as Plex clients). Go from _media_player.playroom2_ to _media_player.plex_playroom_
|
||||
- **include_non_clients** (*Optional*): Display non-recontrollable clients (ex. remote clients, PlexConnect Apple TV's). Defaults to `false`.
|
||||
- **scan_interval** (*Optional*): Amount in seconds in between polling for device’s current activity. Defaults to `10` seconds.
|
||||
- **show_all_controls** (*Optional*): Forces all controls to display. Defaults to `false`. Ignores dynamic controls (ex. show volume controls for client A but not for client B) based on detected client capabilities. This option allows you to override this detection if you suspect it to be incorrect.
|
||||
- **use_custom_entity_ids** (*Optional*): Name Entity ID's by client ID's instead of friendly names. Defaults to `false`. HA assigns entity ID's on a first come first serve basis. When you have identically named devices connecting (ex. media_player.plex_web_safari, media_player.plex_web_safari2), you can't reliably distinguish and or predict which device is which. This option avoids this issue by using unique client ID's (ex. media_player.dy4hdna2drhn).
|
||||
- **use_episode_art** (*Optional*): Display TV episode art instead of TV show art. Defaults to `false`.
|
||||
|
||||
If this occurs, try changing the setting `Secure connections` in your Plex Media Server to `Preferred` (instead of `Required`). The Plex component does not currently support HTTPS.
|
||||
### {% linkable_title Service `play_media` %}
|
||||
|
||||
Plays a song, playlist, TV episode, or video on a connected client.
|
||||
|
||||
#### Music
|
||||
|
||||
| Service data attribute | Optional | Description | Example |
|
||||
| ---------------------- | -------- | ----------- | ----------- |
|
||||
| `entity_id` | no | `entity_id` of the client | media_player.theater_plex |
|
||||
| `media_content_id` | no | Quote escaped JSON with `library_name`, `artist_name`, `album_name`, `track_name`, `shuffle` (0 or 1). | { \\"library_name\\" : \\"My Music\\", \\"artist_name\\" : \\"Adele\\", \\"album_name\\" : \\"25\\", \\"track_name\\" : \\"hello\\", \\"shuffle\\": \\"0\\" } |
|
||||
| `media_content_type` | no | Type of media to play, in this case `MUSIC` | MUSIC |
|
||||
|
||||
#### Playlist
|
||||
|
||||
| Service data attribute | Optional | Description | Example |
|
||||
| ---------------------- | -------- | ----------- | ----------- |
|
||||
| `entity_id` | no | `entity_id` of the client | media_player.theater_plex |
|
||||
| `media_content_id` | no | Quote escaped JSON with `playlist_name`, `shuffle` (0 or 1). | { \\"playlist_name\\" : \\"The Best of Disco\\" \\"shuffle\\": \\"0\\" } |
|
||||
| `media_content_type` | no | Type of media to play, in this case `PLAYLIST` | PLAYLIST |
|
||||
|
||||
#### TV Episode
|
||||
|
||||
| Service data attribute | Optional | Description | Example |
|
||||
| ---------------------- | -------- | ----------- | ----------- |
|
||||
| `entity_id` | no | `entity_id` of the client | media_player.theater_plex |
|
||||
| `media_content_id` | no | Quote escaped JSON with `library_name`, `show_name`, `season_number`, `episode_number`, `shuffle` (0 or 1). | { \\"library_name\\" : \\"Adult TV\\", \\"show_name\\" : \\"Rick and Morty\\", \\"season_number\\" : 2, \\"episode_number\\" : 5, \\"shuffle\\": \\"0\\" } |
|
||||
| `media_content_type` | no | Type of media to play, in this case `EPISODE` | EPISODE |
|
||||
|
||||
#### Video
|
||||
|
||||
| Service data attribute | Optional | Description | Example |
|
||||
| ---------------------- | -------- | ----------- | ----------- |
|
||||
| `entity_id` | no | `entity_id` of the client | media_player.theater_plex |
|
||||
| `media_content_id` | no | Quote escaped JSON with `library_name`, `video_name`, `shuffle` (0 or 1). | { \\"library_name\\" : \\"Adult Movies\\", \\"video_name\\" : \\"Blade\\", \\"shuffle\\": \\"0\\" } |
|
||||
| `media_content_type` | no | Type of media to play, in this case `VIDEO` | VIDEO |
|
||||
|
||||
### Compatibility
|
||||
|
||||
| Client | Limitations |
|
||||
|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Any (when all controls disabled) | A stop button will appear but is not functional. |
|
||||
| Any (when casting) | Controlling playback will work but with error logging. |
|
||||
| Any (remote client) | Controls disabled. |
|
||||
| Apple TV (PlexConnect) | Controls disabled. Music does not work. |
|
||||
| iOS | None |
|
||||
| NVidia Shield | Mute disabled. Volume set below 2 will cause error logging. Controlling playback when the Shield is both a client and a server will work but with error logging |
|
||||
| Plex Web | None |
|
||||
| Tivo Plex App | Only play, pause, stop/off controls enabled |
|
||||
|
||||
### Notes
|
||||
* At this moment, the Plex platform only supports one Plex Media Server.
|
||||
* It is possible to get errors that look like the following.
|
||||
|
||||
```
|
||||
ERROR:plexapi:http://192.168.1.10:32400: ('Connection aborted.', BadStatusLine("''",))
|
||||
INFO:homeassistant.components.media_player.plex:No server found at: http://192.168.1.10:32400
|
||||
```
|
||||
|
||||
If this occurs, try changing the setting `Secure connections` in your Plex Media Server to `Preferred` (instead of `Required`). The Plex component does not currently support HTTPS.
|
||||
|
34
source/_components/media_player.volumio.markdown
Normal file
34
source/_components/media_player.volumio.markdown
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Volumio Media Player"
|
||||
description: "How to set up the Volumio media player platform"
|
||||
date: 2017-03-04
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: volumio.png
|
||||
ha_category: Media Player
|
||||
ha_release: 0.41
|
||||
---
|
||||
|
||||
The `Volumio` platform allows you to control a [Volumio](http://volumio.org) media player
|
||||
from Home Assistant.
|
||||
|
||||
|
||||
To add a Volumio player to your installation, add the following to
|
||||
your `configuration.yaml` file.
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
media_player:
|
||||
- platform: volumio
|
||||
host: homeaudio.local
|
||||
port: 3000
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **name** (*Optional*): Name of the device
|
||||
- **host** (*Required*): IP address or hostname of the device
|
||||
- **port** (*Required*): Port number of Volumio service
|
@ -22,12 +22,13 @@ To add Kodi to your installation, add the following to your `configuration.yaml`
|
||||
notify:
|
||||
- platform: kodi
|
||||
name: NOTIFIER_NAME
|
||||
host: http://192.168.0.123
|
||||
host: 192.168.0.123
|
||||
```
|
||||
|
||||
- **name** (*Optional*): Name displayed in the frontend. The notifier will bind to the service `notify.NOTIFIER_NAME`.
|
||||
- **host** (*Required*): The host name or address of the device that is running Kodi.
|
||||
- **port** (*Optional*): The port number, the default value is `8080`.
|
||||
- **port** (*Optional*): The HTTP port number. Defaults to 8080.
|
||||
- **proxy_ssl** (*Optional*): Connect to kodi with HTTPS. Defaults to `false`. Useful if Kodi is behind an SSL proxy.
|
||||
- **username** (*Optional*): The XBMC/Kodi HTTP username.
|
||||
- **password** (*Optional*): The XBMC/Kodi HTTP password.
|
||||
|
||||
|
@ -31,6 +31,7 @@ Configuration variables:
|
||||
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`.
|
||||
- **server** (*Optional*): SMTP server which is used to end the notifications. Defaults to `localhost`.
|
||||
- **port** (*Optional*): The port that the SMTP server is using. Defaults to 25.
|
||||
- **timeout** (*Optional*): The timeout in seconds that the SMTP server is using. Defaults to 5.
|
||||
- **sender** (*Optional*): E-mail address of the sender.
|
||||
- **username** (*Optional*): Username for the SMTP account.
|
||||
- **password** (*Optional*): Password for the SMTP server that belongs to the given username. If the password contains a colon it need to be wrapped in apostrophes.
|
||||
@ -47,6 +48,7 @@ notify:
|
||||
platform: smtp
|
||||
server: smtp.gmail.com
|
||||
port: 587
|
||||
timeout: 15
|
||||
sender: john@gmail.com
|
||||
starttls: true
|
||||
username: john@gmail.com
|
||||
|
@ -16,6 +16,7 @@ ha_iot_class: "Local Polling"
|
||||
|
||||
The `fritzbox_callmonitor` sensor monitors the call monitor exposed by [AVM Fritz!Box](http://avm.de/produkte/fritzbox/) routers
|
||||
on TCP port 1012. It will assume the values `idle`, `ringing`, `dialing`, or `talking` with the phone numbers involved contained in the state attributes.
|
||||
It can also access the internal phone book of the router to look up the names corresponding to the phone numbers and store them in the state attributes.
|
||||
|
||||
To activate the call monitor on your Fritz!Box, dial #96\*5\* from any phone connected to it.
|
||||
|
||||
@ -31,3 +32,27 @@ Configuration variables:
|
||||
|
||||
- **host** (*Optional*): The IP address of your router, eg. 192.168.1.1. It is optional since every fritzbox is also reachable by using the IP address 169.254.1.1.
|
||||
- **port** (*Optional*): The TCP port of the call monitor. There is usually no reason to change this.
|
||||
- **username** (*Optional*): Fritz!Box user's user name. This is required to use the phone book lookup feature. The user needs to have the "voice message, fax message, Fritz!App Fon and call list" permission.
|
||||
- **password** (*Optional*): Fritz!Box user's user password. This is required to use the phone book lookup feature.
|
||||
- **phonebook** (*Optional*): Numerical ID identifying the phonebook to be used. If there is just one phonebook, this is usually 0.
|
||||
- **prefixes** (*Optional*): In case of a local call, the phone number seen by the router might differ from the one stored in the phone book by an area code, similarly for the international prefix. To remedy this, a list of prefixes, that can be appended to the phone number in case it is not found in the phone book, can be given.
|
||||
|
||||
## {% linkable_title Examples %}
|
||||
|
||||
### {% linkable_title Full configuration %}
|
||||
|
||||
The example below shows a full configuration for a call monitor with phone book support.
|
||||
|
||||
```yaml
|
||||
# Example configuration.yml entry
|
||||
sensor:
|
||||
- platform: fritzbox_callmonitor
|
||||
name: Phone
|
||||
username: my_username
|
||||
password: my_password
|
||||
phonebook: 0
|
||||
prefixes:
|
||||
- '+49'
|
||||
- '+4989'
|
||||
- '089'
|
||||
```
|
||||
|
49
source/_components/sensor.fritzbox_netmonitor.markdown
Normal file
49
source/_components/sensor.fritzbox_netmonitor.markdown
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
layout: page
|
||||
title: "FRITZ!Box"
|
||||
description: "Instructions how to integrate an AVM FRITZ!Box monitor into Home Assistant."
|
||||
date: 2017-01-17 22:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: avm.png
|
||||
ha_category: System Monitor
|
||||
ha_release: 0.36
|
||||
ha_iot_class: "Local Polling"
|
||||
---
|
||||
|
||||
|
||||
The `fritzbox_netmonitor` sensor monitors the network statistics exposed by [AVM Fritz!Box](http://avm.de/produkte/fritzbox/) routers.
|
||||
|
||||
<p class='note warning'>
|
||||
It might be necessary to install additional packages: <code>$ sudo apt-get install libxslt-dev libxml2-dev python3-lxml</code>
|
||||
If you are working with the All-in-One installation, you may also need to execute also within your virtual environment the command <code> pip install lxml</code>; be patient this will take a while.</p>
|
||||
|
||||
To use the Fritz!Box network monitor in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
- platform: fritzbox_netmonitor
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **host** (*Optional*): The IP address of your router, eg. 192.168.1.1. It is optional since every fritzbox is also reachable by using the IP address 169.254.1.1.
|
||||
|
||||
The following statistics will be exposed as attributes.
|
||||
|
||||
|Attribute |Description |
|
||||
|:-----------------|:------------------------------------------------------------|
|
||||
|is_linked |True if the FritzBox is physically linked to the provider |
|
||||
|is_connected |True if the FritzBox has established an internet-connection |
|
||||
|wan_access_type |Connection-type, can be `DSL` or `Cable` |
|
||||
|external_ip |External ip address |
|
||||
|uptime |Uptime in seconds |
|
||||
|bytes_sent |Bytes sent |
|
||||
|bytes_received |Bytes received |
|
||||
|max_byte_rate_up |Maximum upstream-rate in bytes/s |
|
||||
|max_byte_rate_down|Maximum downstream-rate in bytes/s |
|
||||
|
||||
The sensor's state corresponds to the `is_linked` attribute and is either `online`, `offline`, or `unavailable` (in case connection to the router is lost).
|
@ -34,6 +34,7 @@ sensor:
|
||||
name: Lamp ON today
|
||||
entity_id: light.my_lamp
|
||||
state: 'on'
|
||||
type: time
|
||||
start: '{% raw %}{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}{% endraw %}'
|
||||
end: '{% raw %}{{ now() }}{% endraw %}'
|
||||
```
|
||||
@ -43,6 +44,7 @@ Configuration variables:
|
||||
- **entity_id** (*Required*): The entity you want to track
|
||||
- **state** (*Required*): The state you want to track
|
||||
- **name** (*Optional*): Name displayed on the frontend
|
||||
- **type** (*Optional*): The type of sensor: `time`, `ratio`, or `count`. Defaults to `time`
|
||||
- **start**: When to start the measure (timestamp or datetime).
|
||||
- **end**: When to stop the measure (timestamp or datetime)
|
||||
- **duration**: Duration of the measure
|
||||
@ -55,6 +57,14 @@ Configuration variables:
|
||||
You can use [template extensions](/topics/templating/#home-assistant-template-extensions) such as `now()` or `as_timestamp()` to handle dynamic dates, as shown in the examples below.
|
||||
</p>
|
||||
|
||||
## {% linkable_title Sensor type %}
|
||||
|
||||
Depending on the sensor type you choose, the `history_stats` component can show different values:
|
||||
|
||||
- **time**: The default value, which is the tracked time, in hours
|
||||
- **ratio**: The tracked time divided by the length of your period, as a percentage
|
||||
- **count**: How many times the component you track was changed to the state you track
|
||||
|
||||
## {% linkable_title Time periods %}
|
||||
|
||||
The `history_stats` component will execute a measure within a precise time period. You should always provide 2 of the following :
|
||||
|
@ -16,13 +16,18 @@ ha_iot_class: "Cloud Polling"
|
||||
|
||||
Integrate your [Hydro-Québec](https://www.hydroquebec.com/portail/) consumption profile information into Home Assistant.
|
||||
|
||||
<p class='note warning'>
|
||||
Breaking change: Since Home Assistant v0.40,
|
||||
**contract** attribute is required.
|
||||
</p>
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
- platform: hydroquebec
|
||||
username: MYUSERNAME
|
||||
password: MYPASSWORD
|
||||
contract: 'CONTRACT#' (NOTE:works with the ' ' ,insert your contract in between)
|
||||
contract: '123456789'
|
||||
monitored_variables:
|
||||
- period_total_bill
|
||||
- period_length
|
||||
@ -46,3 +51,13 @@ Configuration variables:
|
||||
- **yesterday_total_consumption**: Yesterday total consumption
|
||||
- **yesterday_lower_price_consumption**: Yesterday lower price consumption
|
||||
- **yesterday_higher_price_consumption**: Yesterday higher price consumption
|
||||
|
||||
To find your contract id, go to the [Hydro-Québec website](https://www.hydroquebec.com/portail/)
|
||||
and connect to your account.
|
||||
On the main page your can see your contract IDs.
|
||||
It should be something like: "Contract 1234 56789".
|
||||
You just have to keep numbers and remove the space.
|
||||
|
||||
<p class='note warning'>
|
||||
Multi contracts accounts are supported only from Home Assistant v0.40.
|
||||
</p>
|
||||
|
@ -26,6 +26,10 @@ sensor:
|
||||
api_secret: CLIENT_SECRET
|
||||
```
|
||||
|
||||
Two sensors will be created with the following names:
|
||||
- **Energy Usage**: Current active power usage in Watts. Updated every 10 seconds.
|
||||
- **Daily Energy Usage**: Daily power usage in kWh. Updated every 2.5 minutes.
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **api_key** (*Required*): The API key for your account/application.
|
||||
|
@ -40,7 +40,7 @@ Configuration variables:
|
||||
- **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).
|
||||
- **included_paths** (*Optional*): Array of filepaths to include when calculating diskspace. Leave blank to include all.
|
||||
- **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).
|
||||
- **ssl**: boolean (*Optional*): Whether or not to use SSL for Sonarr.
|
||||
|
||||
@ -102,7 +102,7 @@ sensor:
|
||||
host: 192.168.1.8
|
||||
monitored_conditions:
|
||||
- diskspace
|
||||
included_paths:
|
||||
include_paths:
|
||||
- /tank/plex
|
||||
```
|
||||
|
||||
|
48
source/_components/volvooncall.markdown
Normal file
48
source/_components/volvooncall.markdown
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
layout: page
|
||||
title: "Volvo On Call"
|
||||
description: "Instructions for how to integrate Volvo On Call into Home Assistant."
|
||||
date: 2016-10-02 17:00
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
logo: volvo.png
|
||||
ha_category: Hub
|
||||
ha_release: 0.39
|
||||
---
|
||||
|
||||
|
||||
The `volvooncall` platform offers integrates with the [Volvo On Call](http://www.volvocars.com/intl/own/connectivity/volvo-on-call) cloud service and offers presence detection as well as sensors such as odometer and fuel level.
|
||||
|
||||
To use Volvo On Call in your installation, add the following to your `configuration.yaml` file:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
volvooncall:
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
||||
A more advanced example for setting the vehicle name and selecting what resources to display:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
volvooncall:
|
||||
username: username
|
||||
password: password
|
||||
name:
|
||||
abc123: 'Batmobile'
|
||||
resources:
|
||||
- doors
|
||||
- lock
|
||||
- heater
|
||||
```
|
||||
|
||||
Configuration variables:
|
||||
|
||||
- **username** (*Required*): The username associated with your Volvo On Call account.
|
||||
- **password** (*Required*): The password for your given Volvo On Call account.
|
||||
- **name** (*Optional*): Make it possible to provide a name for the vehicles.
|
||||
- **resources** (*Optional*): A list of resources to display (defaults to all available).
|
||||
|
109
source/_docs/ecosystem/hass-configurator.markdown
Normal file
109
source/_docs/ecosystem/hass-configurator.markdown
Normal file
@ -0,0 +1,109 @@
|
||||
---
|
||||
layout: page
|
||||
title: "HASS Configurator"
|
||||
description: "Instructions on how to install and use the HASS Configurator"
|
||||
release_date: 2017-03-10 00:50:00 +0100
|
||||
sidebar: true
|
||||
comments: false
|
||||
sharing: true
|
||||
footer: true
|
||||
redirect_from: /ecosystem/hass-configurator/
|
||||
---
|
||||
|
||||
### {% linkable_title Configuration UI for Home Assistant %}
|
||||
|
||||
Since there currently is no nice way to edit the yaml-files Home Assistant is using through the frontend, here is a small webapp that hopefully makes the configuration easier. It is a customized and embedded [Ace editor](https://ace.c9.io/), which has syntax highlighting for yaml, the format used for Home Assistants configuration files. There is an integrated file browser to select whatever file you want to edit. When you're done with editing the file, click the save-button and it will replace the original.
|
||||
Essentially this is a browser-based alternative to modifying your configuration through SSH, Windows + SMB, Github etc..
|
||||
|
||||
### {% linkable_title Feature list %}
|
||||
|
||||
- Web-Based editor to modify your files
|
||||
- Upload and download files
|
||||
- Git integration
|
||||
- Lists of available triggers, events, entities, conditions and services. Selected element gets inserted into the editor at the last cursor position.
|
||||
- Check valid configuration and restart Home Assistant directly with the click of a button
|
||||
- SSL support
|
||||
- Optional authentication and IP filtering for additional security
|
||||
- Direct links to Home Assistant documentation
|
||||
- Runs on pretty much any machine Home Assistant can run on
|
||||
|
||||
<p class='note warning'>
|
||||
This tool allows you to browse your filesystem and modify files. So be careful which files you edit, or you might break critical parts of your system.<br />
|
||||
Consider running the configurator as a user with limited privileges to limit possible damage.</p>
|
||||
|
||||
### {% linkable_title Installation (Linux, OS X) %}
|
||||
There are no dependencies on Python modules that are not part of the standard library. And all the fancy JavaScript libraries are loaded from CDN (which means this doesn't work when you're offline).
|
||||
- Copy [configurator.py](https://github.com/danielperna84/hass-poc-configurator/blob/master/configurator.py) to your Home Assistant configuration directory (e.g /home/homeassistant/.homeassistant)
|
||||
- Make it executable: `sudo chmod 755 configurator.py`
|
||||
- (Optional) Set the `GIT` variable in configurator.py to `True` if [GitPython](https://gitpython.readthedocs.io/) is installed on your system. This is required if you want to make use of the Git integration.
|
||||
- Execute it: `sudo ./configurator.py`
|
||||
- To terminate the process do the usual `CTRL+C`, maybe once or twice
|
||||
|
||||
### {% linkable_title Configuration %}
|
||||
Near the top of the configurator.py-file you will find some global variables you can change to customize the configurator. If you are unfamiliar with Python: when setting variables of the type _string_, you have to write that within quotation marks. The default settings are fine for just checking out the configurator quickly. With more customized setups you should change some settings though.
|
||||
To keep your settings across updates it is also possible to save settings in an external file. In that case copy [settings.conf](https://github.com/danielperna84/hass-poc-configurator/blob/master/settings.conf) whereever you like and append the full path to the file to the command when starting the configurator. E.g. `sudo .configurator.py /home/homeassistant/.homeassistant/mysettings.conf`. This file is in JSON format. So make sure it has a valid syntax (you can set the editor to JSON to get syntax highlighting for the settings). The major difference to the settings in the py-file is, that `None` becomes `null`.
|
||||
|
||||
#### LISTENIP (string)
|
||||
The IP the service is listening on. By default it is binding to `0.0.0.0`, which is every interface on the system.
|
||||
#### LISTENPORT (integer)
|
||||
The port the service is listening on. By default it is using `3218`, but you can change this if you need to.
|
||||
#### BASEPATH (string)
|
||||
It is possible to place configurator.py somewhere else. Set the `BASEPATH` to something like `"/home/homeassistant/.homeassistant"`, and no matter where you are running the configurator from, it will start serving files from there. This is needed if you plan on running the configurator with systemd or some other way of daemonizing the configurator.
|
||||
#### SSL_CERTIFICATE / SSL_KEY (string)
|
||||
If you are using SSL, set the paths to your SSL files here. This is similar to the SSL setup you can do in Home Assistant.
|
||||
#### HASS_API (string)
|
||||
The configurator fetches some data from your running Home Assistant instance. If the API is not available through the default URL, modify this variable to fix this.
|
||||
#### HASS_API_PASSWORD (string)
|
||||
If you plan on using the restart button, you have to set your API password. Calling the restart service of Home Assistant is prohibited without authentication.
|
||||
#### CREDENTIALS (string)
|
||||
Set credentials in the form of `"username:password"` if authentication should be required for access to the configurator.
|
||||
#### ALLOWED_NETWORKS (list)
|
||||
Limit access to the configurator by adding allowed IP addresses / networks to the list, e.g `ALLOWED_NETWORKS = ["192.168.0.0/24", "172.16.47.23"]`
|
||||
#### BANNED_IPS (list)
|
||||
List of statically banned IP addresses, e.g. `BANNED_IPS = ["1.1.1.1", "2.2.2.2"]`
|
||||
#### BANLIMIT (integer)
|
||||
Ban IPs after `n` failed login attempts. Restart the service to reset banning. The default of `0` disables this feature. `CREDENTIALS` has to be set for this to work.
|
||||
#### GIT (bool)
|
||||
Set this variable to `True` to enable Git integration. This feature requires [GitPython](https://gitpython.readthedocs.io)
|
||||
to be installed on the system that is running the configurator. For technical reasons this feature can not be enabled with the static settings file.
|
||||
|
||||
__Note regarding `ALLOWED_NETWORKS`, `BANNED_IPS` and `BANLIMIT`__:
|
||||
The way this is implemented works in the following order:
|
||||
|
||||
1. (Only if `CREDENTIALS` is set) Check credentials
|
||||
- Failure: Retry `BANLIMIT` times, after that return error 420 (unless you try again without any authentication headers set, e.g. private tab of your browser)
|
||||
- Success: Continue
|
||||
2. Check if client IP address is in `BANNED_IPS`
|
||||
- Yes: Return error 420
|
||||
- No: Continue
|
||||
3. Check if client IP address is in `ALLOWED_NETWORKS`
|
||||
- No: Return error 420
|
||||
- Yes: Continue and display UI of configurator
|
||||
|
||||
### {% linkable_title Embedding into Home Assistant %}
|
||||
Home Assistant has the [panel_iframe](https://home-assistant.io/components/panel_iframe/) component. With this it is possible to embed the configurator directly into Home Assistant, allowing you to modify your configuration through the Home Assistant frontend.
|
||||
An example configuration would look like this:
|
||||
|
||||
```yaml
|
||||
panel_iframe:
|
||||
configurator:
|
||||
title: Configurator
|
||||
icon: mdi:wrench
|
||||
url: http://123.123.132.132:3218
|
||||
```
|
||||
<p class='note warning'>
|
||||
Be careful when setting up port forwarding to the configurator while embedding it into Home Assistant. If you don't restrict access by requiring authentication and / or blocking based on client IP addresses, your configuration will be exposed to the internet!</p>
|
||||
|
||||
### {% linkable_title Daemonizing / Keeping the configurator running %}
|
||||
Since the configurator script on its own is no service, you will have to take some extra steps to keep it running. Here are five options (for Linux), but there are more, depending on your usecase.
|
||||
|
||||
1. Fork the process into the background with the command:
|
||||
`nohup sudo ./configurator.py &`
|
||||
2. If your system is using systemd (that's usually what you'll find on a Raspberry PI), there's a [template file](https://github.com/danielperna84/hass-poc-configurator/blob/master/hass-poc-configurator.systemd) you can use and then apply the same process to integrate it as mentioned in the [Home Assistant documentation](https://home-assistant.io/docs/autostart/systemd/). If you use this method you have to set the `BASEPATH` variable according to your environment.
|
||||
3. If you have [supervisor](http://supervisord.org/) running on your system, [hass-poc-configurator.supervisor](https://github.com/danielperna84/hass-poc-configurator/blob/master/hass-poc-configurator.supervisor) would be an example configuration you could use to control the configurator.
|
||||
4. A tool called [tmux](https://tmux.github.io/), which should be pre-installed with [HASSbian](https://home-assistant.io/docs/hassbian/).
|
||||
5. A tool called [screen](http://ss64.com/bash/screen.html) (alternative to tmux). If it's not already installed on your system, you can do `sudo apt-get install screen` or `sudo yum install screen` to get it. When it's installed, start a screen session by executing `screen`. Then navigate to your Home Assistant directory and start the configurator like described above. Put the screen session into the background by pressing `CTRL+A` and then `CTRL+D`. It is now safe to disconnect from your SSH session.
|
||||
To resume the screen session, log in to your machine and execute `screen -r`.
|
||||
|
||||
### {% linkable_title Troubleshooting, Issues etc. %}
|
||||
If you encounter difficulties setting up the configurator or stumble upon a possible bug, head over to the [Issues](https://github.com/danielperna84/hass-poc-configurator/issues) section of the configurator repository. Additionally there is a thread at the [Home Assistant Community](https://community.home-assistant.io/t/simplistic-configuration-ui/10175) where common problems may have been discussed already. And if not, there are always friendly people around to help finding solutions.
|
353
source/_posts/2017-03-25-todo-volumio-workday.markdown
Normal file
353
source/_posts/2017-03-25-todo-volumio-workday.markdown
Normal file
@ -0,0 +1,353 @@
|
||||
---
|
||||
layout: post
|
||||
title: "Home Assistant 0.41: Tado, Volumio, Workday, improved Plex"
|
||||
description: "Improved Pley media player, filtering components overview, Tado and Volumio platform"
|
||||
date: 2017-03-25 08:04:05 +0000
|
||||
date_formatted: "March 25, 2017"
|
||||
author: Fabian Affolter
|
||||
author_twitter: fabaff
|
||||
comments: true
|
||||
categories: Release-Notes
|
||||
og_image: /images/blog/2017-03-0.41/social.png
|
||||
---
|
||||
|
||||
Welcome to 0.41. There was a lot going on in the last two weeks. Not only from the code side but also from the social one of Home Assistant. [Paulus][@balloob] did an [interview] with [OpenSourceCraft], [Fabian][@fabaff] did a [workshop] at the [Chemnitzer Linux Tage][clt], and we are now an award-winning Open source project (I will cover that in a separate blog post).
|
||||
|
||||
## Plex
|
||||
[@JesseWebDotCom] made massive changes to the [Plex][plex] media player platform. From better metadata support over new configuration options to improved controls and non-controllable clients.
|
||||
|
||||
## Component overview
|
||||
The [Components][components] overview is now powered by search/filtering feature. This will make it faster to get the component/platform you are looking for more quickly. Thanks again, [@bdurrer] for this.
|
||||
|
||||
## Changelog
|
||||
The new format of the changelog which was introduced with 0.40 will provide a link to the related pull request. We are not covering everything in our release notes but we think that this addition will make it easier to find details about the change.
|
||||
|
||||
## New platforms/components
|
||||
|
||||
- Support for [Tado][tado] climate devices ([@wmalgadey])
|
||||
- [Volumio][volumio] media player added ([@jslove])
|
||||
- [Workday][workday] sensor ([@BastianPoe])
|
||||
|
||||
## Breaking changes
|
||||
|
||||
- The [Kodi notifier][kodi] platform was migrated to async and the configuration synced with the Kodi media player platform ([#6497]).
|
||||
- For the [Music Player Daemon][mpd] (MPD) platform was `location` replaced with `name` ([#6553]).
|
||||
- Event decorators were removed ([#6634]).
|
||||
- The [Emby mediaplayer][emby] platform was changed to avoid name clashes ([#6664]).
|
||||
- In a lot of places were the power and energy units update. This change mostly affects the `switch` platforms ([#6212]).
|
||||
- If set to `auto` then the [MQTT][mqtt] implementation will use the bundled certificates automatically ([#6707]).
|
||||
|
||||
## If you need help...
|
||||
...don't hesitate to use our very active [forums][forum] or join us for a little [chat][gitter]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
|
||||
|
||||
## 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.
|
||||
|
||||
## All changes
|
||||
|
||||
- Bugfix android camera autodiscovery settings ([@pvizeli] - [#6510])
|
||||
- Insteon lib ([@wardcraigj] - [#6505])
|
||||
- Update to Pyunifi2.0 ([@finish06] - [#6490])
|
||||
- Insteon lib ([@wardcraigj] - [#6505])
|
||||
- Don't allow sending to invalid iOS targets ([@robbiet480] - [#6115])
|
||||
- Bugfix rpi_rf cleanup ([@pvizeli] - [#6513])
|
||||
- Include LICENSE.md in tarball ([@bachp] - [#6514])
|
||||
- Android webcam better error handling / pump library 0.4 ([@pvizeli] - [#6518])
|
||||
- Fix mysensors gateway windows setup ([@MartinHjelmare] - [#6500])
|
||||
- Update frontend ([@balloob])
|
||||
- Remove mint finance sensor ([@balloob] - [#6522])
|
||||
- Append vera device id to entity id - but not name. ([@pavoni] - [#6523])
|
||||
- Force update support for MQTT sensor ([@vrnagy] - [#6492])
|
||||
- Wink scene(shortcut) support ([@w1ll1am23] - [#6147])
|
||||
- Add type configuration in history_stats ([@bokub] - [#6430])
|
||||
- Discovery is a dict rather than an array. ([@pavoni] - [#6525])
|
||||
- Fix colortemp conversion for osramlightify ([@amelchio] - [#6516])
|
||||
- Update Kodi notifier to async ([@armills] - [#6497]) (Breaking Change)
|
||||
- Fix mysensors gateway windows setup ([@MartinHjelmare] - [#6500])
|
||||
- Fix colortemp conversion for osramlightify ([@amelchio] - [#6516])
|
||||
- Remove mint finance sensor ([@balloob] - [#6522])
|
||||
- Append vera device id to entity id - but not name. ([@pavoni] - [#6523])
|
||||
- Discovery is a dict rather than an array. ([@pavoni] - [#6525])
|
||||
- Version bump to 0.41.0.dev0 ([@lwis])
|
||||
- Simplify Android IP webcam discovery ([@balloob] - [#6528])
|
||||
- Fix gen_requirements_all.py script for Windows. ([@siebert] - [#6547])
|
||||
- Fix wake_on_lan ping with None as host ([@iamtpage] - [#6532])
|
||||
- Be able to select mqtt:tls_version for Python ([@dennisdegreef] - [#6442])
|
||||
- ZWave binary sensor tests ([@armills] - [#6555])
|
||||
- Refactor zwave discovery to entity schema ([@armills] - [#6445])
|
||||
- Revert "Refactor zwave discovery to entity schema (#6445)" ([@balloob] - [#6564])
|
||||
- Upgraded blinkpy version, increased Throttle time for camera ([@fronzbot] - [#6561])
|
||||
- Don't start the push updater if the Apple TV is 'off' ([@jnewland] - [#6552])
|
||||
- Bump voc version (fixes heater bug) ([@molobrakos])
|
||||
- Remove dispatcher camera ([@pvizeli] - [#6579])
|
||||
- Fix for the case of zwave value used in several devices. ([@andrey-git] - [#6577])
|
||||
- Fix hydroquebec ([@titilambert] - [#6574])
|
||||
- Upgrade async_timeout to 1.2.0 ([@fabaff] - [#6590])
|
||||
- Upgrade pyasn1 to 0.2.3 ([@fabaff] - [#6588])
|
||||
- Upgrade sqlalchemy to 1.1.6 ([@fabaff] - [#6591])
|
||||
- Upgrade psutil to 5.2.0 ([@fabaff] - [#6585])
|
||||
- Upgrade Sphinx to 1.5.3 ([@fabaff] - [#6587])
|
||||
- Update pyecobee version to 0.0.7 ([@dale3h] - [#6593])
|
||||
- Update SMA solar sensor to work with the new add_devices callback ([@kellerza] - [#6602])
|
||||
- Fix link ([@fabaff] - [#6612])
|
||||
- Upgrade py-cpuinfo to 0.2.7 ([@fabaff] - [#6610])
|
||||
- Upgrade googlemaps to 2.4.6 ([@fabaff] - [#6611])
|
||||
- Error handling when connection refused ([@molobrakos] - [#6614])
|
||||
- Prevent entities running multiple updates simultaneously ([@pvizeli] - [#6511])
|
||||
- Add configurable timeout option to notify/smtp ([@hawk259] - [#6609])
|
||||
- Define db for SHOW DIAGNOSTICS query since some users will not have a… ([@tflack] - [#6566])
|
||||
- Cover myq fix update pymyq ([@arraylabs] - [#6595])
|
||||
- Update mpd.py ([@yeralin] - [#6553]) (Breaking Change)
|
||||
- Upgrade to dsmr_parser 0.8, supporting protocol 3 and 5. ([@aequitas] - [#6600])
|
||||
- Add "Refactor zwave discovery to entity schema" ([@balloob] - [#6565])
|
||||
- Tests for ZWave climate ([@armills] - [#6629])
|
||||
- Correctly flag Kodi media types ([@armills] - [#6628])
|
||||
- since knx_2_float can't handle 0, bypass converting 0 value from knx to float ([@goofz] - [#6626])
|
||||
- Use sqlite's WAL mode to avoid `database is locked` errors ([@n8henrie] - [#6519])
|
||||
- Remove event decorators ([@balloob] - [#6634]) (Breaking Change)
|
||||
- Deprecate event forwarding ([@balloob])
|
||||
- Upgrade aiohttp to 1.3.4 ([@pvizeli] - [#6643])
|
||||
- media_player.kodi extra attributes for tvshow and music media ([@mvillarejo] - [#6622])
|
||||
- Add ZWave cover tests ([@armills] - [#6648])
|
||||
- Kodi: Fix episode media type classification ([@armills] - [#6645])
|
||||
- Move LIFX to aiolifx for driving the bulbs ([@amelchio] - [#6584])
|
||||
- Fix #6534 ([@deisi] - [#6598])
|
||||
- self.loop.create_task -> self.add_job ([@balloob] - [#6632])
|
||||
- Bugfix RFLINK remove group ([@pvizeli] - [#6580])
|
||||
- Version bump to 0.40.1 ([@balloob])
|
||||
- Fix wake_on_lan ping with None as host ([@iamtpage] - [#6532])
|
||||
- Don't start the push updater if the Apple TV is 'off' ([@jnewland] - [#6552])
|
||||
- Fix for the case of zwave value used in several devices. ([@andrey-git] - [#6577])
|
||||
- Fix hydroquebec ([@titilambert] - [#6574])
|
||||
- Update pyecobee version to 0.0.7 ([@dale3h] - [#6593])
|
||||
- Update SMA solar sensor to work with the new add_devices callback ([@kellerza] - [#6602])
|
||||
- since knx_2_float can't handle 0, bypass converting 0 value from knx to float ([@goofz] - [#6626])
|
||||
- Bugfix RFLINK remove group ([@pvizeli] - [#6580])
|
||||
- Added workday sensor ([@BastianPoe] - [#6599])
|
||||
- Add test for Z-wave switch ([@turbokongen] - [#6619])
|
||||
- Upgrade python-digitalocean to 1.11 ([@fabaff] - [#6653])
|
||||
- Add Zwave sensors test ([@turbokongen] - [#6640])
|
||||
- round output values ([@joe248] - [#6657])
|
||||
- Support for non-clients, NVidia shield, dynamic grouping, extra metad ([@JesseWebDotCom] - [#6054])
|
||||
- Upgrade astral to 1.4 ([@fabaff] - [#6332])
|
||||
- Upgrade aiohttp to 1.3.5 ([@fabaff] - [#6660])
|
||||
- Check if droplet exists ([@fabaff] - [#6663])
|
||||
- Corrected help text for refresh_node ([@sebk-666] - [#6659])
|
||||
- Add configurable timeout option to camera.synology ([@hawk259] - [#6655])
|
||||
- Pump Android ip webcam to 0.6 ([@pvizeli] - [#6665])
|
||||
- add latitude and longitude configuration to darksky sensor ([@RickyTaterSalad] - [#6191])
|
||||
- Refactor Neurio to add Daily Power Sensor ([@mezz64] - [#6662])
|
||||
- Added support for multiple efergy sensors in the same household. ([@miniconfig] - [#6630])
|
||||
- Add new media_player platform: Volumio Media Player ([@jslove] - [#6556])
|
||||
- Phone book lookup support for Fritz!Box call monitor ([@DavidMStraub] - [#6474])
|
||||
- Update Emby component to async ([@mezz64] - [#6664])
|
||||
- Fix hass script execution on Windows (#4977). ([@matrixx567] - [#6601])
|
||||
- Fixed Show All Controls feature ([@JesseWebDotCom])
|
||||
- Update Torque component to match recent API. ([@tylercrumpton] - [#6671])
|
||||
- Rflink: added support for lights with toggle type ([@martinfrancois] - [#6521])
|
||||
- Upgrade distro to 1.0.3 ([@fabaff] - [#6693])
|
||||
- Fix longitude ([@mezz64] - [#6697])
|
||||
- Bump PyChromecast to 0.8.1 ([@balloob] - [#6702])
|
||||
- Kodi use websocket loop task created by library ([@armills] - [#6703])
|
||||
- Fix Kodi when websocket is disabled ([@armills] - [#6706])
|
||||
- Revise power and energy units and property names. ([@pavoni] - [#6212]) (Breaking Change)
|
||||
- automatically use bundled certificate it set to auto ([@printzlau] - [#6707]) (Breaking Change)
|
||||
- Update frontend ([@balloob])
|
||||
- Add zwave light tests ([@armills] - [#6710])
|
||||
- restore_state: do not crash if domain not defined ([@balloob] - [#6714])
|
||||
- Fix for issue: luci returns 403 invalid token when rebooted #6715 ([@fbradyirl] - [#6717])
|
||||
- Don't warn if octoprint completion is null ([@jawilson] - [#6719])
|
||||
- ZWave Sensor tests ([@armills] - [#6721])
|
||||
- ZWave switch tests ([@armills] - [#6722])
|
||||
- Update frontend ([@balloob])
|
||||
- Fix LIFX unregister races ([@amelchio] - [#6723])
|
||||
- Do not log warning on rest_command if no error ([@balloob] - [#6713])
|
||||
- camera.zoneminder: Show recording state ([@mnoorenberghe] - [#6686])
|
||||
- ZWave Lock Tests ([@armills] - [#6730])
|
||||
- Tado climate device ([@wmalgadey] - [#6572])
|
||||
- Version bump to 0.40.2 ([@balloob])
|
||||
- Bump PyChromecast to 0.8.1 ([@balloob] - [#6702])
|
||||
- Constrain core dependencies to core versions ([@balloob] - [#6738])
|
||||
- Update constraints ([@balloob])
|
||||
- Adds Support for Lutron Caseta devices. ([@gurumitts] - [#6631])
|
||||
- Add sensor for Lyft time and price (based on Uber sensor) ([@drkp] - [#6711])
|
||||
- Add zwave per-node entity. ([@andrey-git] - [#6690])
|
||||
- Version bump to 0.41 ([@balloob])
|
||||
|
||||
[#6054]: https://github.com/home-assistant/home-assistant/pull/6054
|
||||
[#6115]: https://github.com/home-assistant/home-assistant/pull/6115
|
||||
[#6147]: https://github.com/home-assistant/home-assistant/pull/6147
|
||||
[#6191]: https://github.com/home-assistant/home-assistant/pull/6191
|
||||
[#6212]: https://github.com/home-assistant/home-assistant/pull/6212
|
||||
[#6332]: https://github.com/home-assistant/home-assistant/pull/6332
|
||||
[#6430]: https://github.com/home-assistant/home-assistant/pull/6430
|
||||
[#6442]: https://github.com/home-assistant/home-assistant/pull/6442
|
||||
[#6445]: https://github.com/home-assistant/home-assistant/pull/6445
|
||||
[#6474]: https://github.com/home-assistant/home-assistant/pull/6474
|
||||
[#6490]: https://github.com/home-assistant/home-assistant/pull/6490
|
||||
[#6492]: https://github.com/home-assistant/home-assistant/pull/6492
|
||||
[#6497]: https://github.com/home-assistant/home-assistant/pull/6497
|
||||
[#6500]: https://github.com/home-assistant/home-assistant/pull/6500
|
||||
[#6505]: https://github.com/home-assistant/home-assistant/pull/6505
|
||||
[#6510]: https://github.com/home-assistant/home-assistant/pull/6510
|
||||
[#6511]: https://github.com/home-assistant/home-assistant/pull/6511
|
||||
[#6513]: https://github.com/home-assistant/home-assistant/pull/6513
|
||||
[#6514]: https://github.com/home-assistant/home-assistant/pull/6514
|
||||
[#6516]: https://github.com/home-assistant/home-assistant/pull/6516
|
||||
[#6518]: https://github.com/home-assistant/home-assistant/pull/6518
|
||||
[#6519]: https://github.com/home-assistant/home-assistant/pull/6519
|
||||
[#6521]: https://github.com/home-assistant/home-assistant/pull/6521
|
||||
[#6522]: https://github.com/home-assistant/home-assistant/pull/6522
|
||||
[#6523]: https://github.com/home-assistant/home-assistant/pull/6523
|
||||
[#6525]: https://github.com/home-assistant/home-assistant/pull/6525
|
||||
[#6528]: https://github.com/home-assistant/home-assistant/pull/6528
|
||||
[#6532]: https://github.com/home-assistant/home-assistant/pull/6532
|
||||
[#6547]: https://github.com/home-assistant/home-assistant/pull/6547
|
||||
[#6552]: https://github.com/home-assistant/home-assistant/pull/6552
|
||||
[#6553]: https://github.com/home-assistant/home-assistant/pull/6553
|
||||
[#6555]: https://github.com/home-assistant/home-assistant/pull/6555
|
||||
[#6556]: https://github.com/home-assistant/home-assistant/pull/6556
|
||||
[#6561]: https://github.com/home-assistant/home-assistant/pull/6561
|
||||
[#6564]: https://github.com/home-assistant/home-assistant/pull/6564
|
||||
[#6565]: https://github.com/home-assistant/home-assistant/pull/6565
|
||||
[#6566]: https://github.com/home-assistant/home-assistant/pull/6566
|
||||
[#6572]: https://github.com/home-assistant/home-assistant/pull/6572
|
||||
[#6574]: https://github.com/home-assistant/home-assistant/pull/6574
|
||||
[#6577]: https://github.com/home-assistant/home-assistant/pull/6577
|
||||
[#6579]: https://github.com/home-assistant/home-assistant/pull/6579
|
||||
[#6580]: https://github.com/home-assistant/home-assistant/pull/6580
|
||||
[#6584]: https://github.com/home-assistant/home-assistant/pull/6584
|
||||
[#6585]: https://github.com/home-assistant/home-assistant/pull/6585
|
||||
[#6587]: https://github.com/home-assistant/home-assistant/pull/6587
|
||||
[#6588]: https://github.com/home-assistant/home-assistant/pull/6588
|
||||
[#6590]: https://github.com/home-assistant/home-assistant/pull/6590
|
||||
[#6591]: https://github.com/home-assistant/home-assistant/pull/6591
|
||||
[#6593]: https://github.com/home-assistant/home-assistant/pull/6593
|
||||
[#6595]: https://github.com/home-assistant/home-assistant/pull/6595
|
||||
[#6598]: https://github.com/home-assistant/home-assistant/pull/6598
|
||||
[#6599]: https://github.com/home-assistant/home-assistant/pull/6599
|
||||
[#6600]: https://github.com/home-assistant/home-assistant/pull/6600
|
||||
[#6601]: https://github.com/home-assistant/home-assistant/pull/6601
|
||||
[#6602]: https://github.com/home-assistant/home-assistant/pull/6602
|
||||
[#6609]: https://github.com/home-assistant/home-assistant/pull/6609
|
||||
[#6610]: https://github.com/home-assistant/home-assistant/pull/6610
|
||||
[#6611]: https://github.com/home-assistant/home-assistant/pull/6611
|
||||
[#6612]: https://github.com/home-assistant/home-assistant/pull/6612
|
||||
[#6614]: https://github.com/home-assistant/home-assistant/pull/6614
|
||||
[#6619]: https://github.com/home-assistant/home-assistant/pull/6619
|
||||
[#6622]: https://github.com/home-assistant/home-assistant/pull/6622
|
||||
[#6626]: https://github.com/home-assistant/home-assistant/pull/6626
|
||||
[#6628]: https://github.com/home-assistant/home-assistant/pull/6628
|
||||
[#6629]: https://github.com/home-assistant/home-assistant/pull/6629
|
||||
[#6630]: https://github.com/home-assistant/home-assistant/pull/6630
|
||||
[#6631]: https://github.com/home-assistant/home-assistant/pull/6631
|
||||
[#6632]: https://github.com/home-assistant/home-assistant/pull/6632
|
||||
[#6634]: https://github.com/home-assistant/home-assistant/pull/6634
|
||||
[#6640]: https://github.com/home-assistant/home-assistant/pull/6640
|
||||
[#6643]: https://github.com/home-assistant/home-assistant/pull/6643
|
||||
[#6645]: https://github.com/home-assistant/home-assistant/pull/6645
|
||||
[#6648]: https://github.com/home-assistant/home-assistant/pull/6648
|
||||
[#6653]: https://github.com/home-assistant/home-assistant/pull/6653
|
||||
[#6655]: https://github.com/home-assistant/home-assistant/pull/6655
|
||||
[#6657]: https://github.com/home-assistant/home-assistant/pull/6657
|
||||
[#6659]: https://github.com/home-assistant/home-assistant/pull/6659
|
||||
[#6660]: https://github.com/home-assistant/home-assistant/pull/6660
|
||||
[#6662]: https://github.com/home-assistant/home-assistant/pull/6662
|
||||
[#6663]: https://github.com/home-assistant/home-assistant/pull/6663
|
||||
[#6664]: https://github.com/home-assistant/home-assistant/pull/6664
|
||||
[#6665]: https://github.com/home-assistant/home-assistant/pull/6665
|
||||
[#6671]: https://github.com/home-assistant/home-assistant/pull/6671
|
||||
[#6686]: https://github.com/home-assistant/home-assistant/pull/6686
|
||||
[#6690]: https://github.com/home-assistant/home-assistant/pull/6690
|
||||
[#6693]: https://github.com/home-assistant/home-assistant/pull/6693
|
||||
[#6697]: https://github.com/home-assistant/home-assistant/pull/6697
|
||||
[#6702]: https://github.com/home-assistant/home-assistant/pull/6702
|
||||
[#6703]: https://github.com/home-assistant/home-assistant/pull/6703
|
||||
[#6706]: https://github.com/home-assistant/home-assistant/pull/6706
|
||||
[#6707]: https://github.com/home-assistant/home-assistant/pull/6707
|
||||
[#6710]: https://github.com/home-assistant/home-assistant/pull/6710
|
||||
[#6711]: https://github.com/home-assistant/home-assistant/pull/6711
|
||||
[#6713]: https://github.com/home-assistant/home-assistant/pull/6713
|
||||
[#6714]: https://github.com/home-assistant/home-assistant/pull/6714
|
||||
[#6717]: https://github.com/home-assistant/home-assistant/pull/6717
|
||||
[#6719]: https://github.com/home-assistant/home-assistant/pull/6719
|
||||
[#6721]: https://github.com/home-assistant/home-assistant/pull/6721
|
||||
[#6722]: https://github.com/home-assistant/home-assistant/pull/6722
|
||||
[#6723]: https://github.com/home-assistant/home-assistant/pull/6723
|
||||
[#6730]: https://github.com/home-assistant/home-assistant/pull/6730
|
||||
[#6738]: https://github.com/home-assistant/home-assistant/pull/6738
|
||||
[#6664]: https://github.com/home-assistant/home-assistant/pull/6664
|
||||
[@BastianPoe]: https://github.com/BastianPoe
|
||||
[@DavidMStraub]: https://github.com/DavidMStraub
|
||||
[@JesseWebDotCom]: https://github.com/JesseWebDotCom
|
||||
[@MartinHjelmare]: https://github.com/MartinHjelmare
|
||||
[@RickyTaterSalad]: https://github.com/RickyTaterSalad
|
||||
[@aequitas]: https://github.com/aequitas
|
||||
[@amelchio]: https://github.com/amelchio
|
||||
[@andrey-git]: https://github.com/andrey-git
|
||||
[@armills]: https://github.com/armills
|
||||
[@arraylabs]: https://github.com/arraylabs
|
||||
[@bachp]: https://github.com/bachp
|
||||
[@balloob]: https://github.com/balloob
|
||||
[@bokub]: https://github.com/bokub
|
||||
[@dale3h]: https://github.com/dale3h
|
||||
[@deisi]: https://github.com/deisi
|
||||
[@dennisdegreef]: https://github.com/dennisdegreef
|
||||
[@drkp]: https://github.com/drkp
|
||||
[@fabaff]: https://github.com/fabaff
|
||||
[@fbradyirl]: https://github.com/fbradyirl
|
||||
[@finish06]: https://github.com/finish06
|
||||
[@fronzbot]: https://github.com/fronzbot
|
||||
[@goofz]: https://github.com/goofz
|
||||
[@gurumitts]: https://github.com/gurumitts
|
||||
[@hawk259]: https://github.com/hawk259
|
||||
[@iamtpage]: https://github.com/iamtpage
|
||||
[@jawilson]: https://github.com/jawilson
|
||||
[@jnewland]: https://github.com/jnewland
|
||||
[@joe248]: https://github.com/joe248
|
||||
[@jslove]: https://github.com/jslove
|
||||
[@kellerza]: https://github.com/kellerza
|
||||
[@lwis]: https://github.com/lwis
|
||||
[@martinfrancois]: https://github.com/martinfrancois
|
||||
[@matrixx567]: https://github.com/matrixx567
|
||||
[@mezz64]: https://github.com/mezz64
|
||||
[@miniconfig]: https://github.com/miniconfig
|
||||
[@mnoorenberghe]: https://github.com/mnoorenberghe
|
||||
[@molobrakos]: https://github.com/molobrakos
|
||||
[@mvillarejo]: https://github.com/mvillarejo
|
||||
[@n8henrie]: https://github.com/n8henrie
|
||||
[@pavoni]: https://github.com/pavoni
|
||||
[@printzlau]: https://github.com/printzlau
|
||||
[@pvizeli]: https://github.com/pvizeli
|
||||
[@robbiet480]: https://github.com/robbiet480
|
||||
[@sebk-666]: https://github.com/sebk-666
|
||||
[@siebert]: https://github.com/siebert
|
||||
[@tflack]: https://github.com/tflack
|
||||
[@titilambert]: https://github.com/titilambert
|
||||
[@turbokongen]: https://github.com/turbokongen
|
||||
[@tylercrumpton]: https://github.com/tylercrumpton
|
||||
[@vrnagy]: https://github.com/vrnagy
|
||||
[@w1ll1am23]: https://github.com/w1ll1am23
|
||||
[@wardcraigj]: https://github.com/wardcraigj
|
||||
[@wmalgadey]: https://github.com/wmalgadey
|
||||
[@yeralin]: https://github.com/yeralin
|
||||
|
||||
[components]: https://home-assistant.io/components/
|
||||
[kodi]: https://home-assistant.io/components/notify.kodi/
|
||||
[mpd]: https://home-assistant.io/components/media_player.mpd/
|
||||
[emby]: https://home-assistant.io/components/media_player.emby/
|
||||
[mqtt]: https://home-assistant.io/docs/mqtt/
|
||||
[plex]: https://home-assistant.io/components/media_player.plex/
|
||||
[tado]: https://home-assistant.io/components/climate.tado/
|
||||
[volumio]: https://home-assistant.io//components/media_player.volumio/
|
||||
[workday]: https://home-assistant.io/components/binary_sensor.workday/
|
||||
|
||||
[forum]: https://community.home-assistant.io/
|
||||
[gitter]: https://gitter.im/home-assistant/home-assistant
|
||||
[issue]: https://github.com/home-assistant/home-assistant/issues
|
||||
|
||||
[@bdurrer]: https://github.com/bdurrer
|
||||
[interview]: https://home-assistant.io/blog/2017/03/23/opensourcecraft-interview-with-founder-paulus-schoutsen/
|
||||
[OpenSourceCraft]: http://codepop.com/open-sourcecraft
|
||||
[clt]: https://chemnitzer.linux-tage.de/2017/en/
|
||||
[workshop]: https://github.com/home-assistant/home-assistant-assets/tree/master/german/2017-clt-workshop
|
BIN
source/images/blog/2017-03-0.41/social.png
Normal file
BIN
source/images/blog/2017-03-0.41/social.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
BIN
source/images/supported_brands/volumio.png
Normal file
BIN
source/images/supported_brands/volumio.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
Loading…
x
Reference in New Issue
Block a user