diff --git a/_config.yml b/_config.yml index 7811973a169..65c2c381813 100644 --- a/_config.yml +++ b/_config.yml @@ -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" diff --git a/source/_components/android_ip_webcam.markdown b/source/_components/android_ip_webcam.markdown index a1d0dcdaec3..89631c4cf77 100644 --- a/source/_components/android_ip_webcam.markdown +++ b/source/_components/android_ip_webcam.markdown @@ -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 diff --git a/source/_components/binary_sensor.workday.markdown b/source/_components/binary_sensor.workday.markdown new file mode 100644 index 00000000000..e7d729b88b6 --- /dev/null +++ b/source/_components/binary_sensor.workday.markdown @@ -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 +``` diff --git a/source/_components/camera.dispatcher.markdown b/source/_components/camera.dispatcher.markdown new file mode 100644 index 00000000000..62395dc993e --- /dev/null +++ b/source/_components/camera.dispatcher.markdown @@ -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" +--- + +
+This platform is meant for developers only. +
+ +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. diff --git a/source/_components/camera.synology.markdown b/source/_components/camera.synology.markdown index 96702d814a7..a151cc3c449 100644 --- a/source/_components/camera.synology.markdown +++ b/source/_components/camera.synology.markdown @@ -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 ``` diff --git a/source/_components/climate.tado.markdown b/source/_components/climate.tado.markdown new file mode 100644 index 00000000000..e62a19a3399 --- /dev/null +++ b/source/_components/climate.tado.markdown @@ -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. \ No newline at end of file diff --git a/source/_components/device_tracker.unifi.markdown b/source/_components/device_tracker.unifi.markdown index 49fd805edd8..69f0101354a 100644 --- a/source/_components/device_tracker.unifi.markdown +++ b/source/_components/device_tracker.unifi.markdown @@ -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'. diff --git a/source/_components/device_tracker.volvooncall.markdown b/source/_components/device_tracker.volvooncall.markdown index 757bb787a06..f4de42f5011 100644 --- a/source/_components/device_tracker.volvooncall.markdown +++ b/source/_components/device_tracker.volvooncall.markdown @@ -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. diff --git a/source/_components/ha.markdown b/source/_components/ha.markdown index 55c7dedd284..a9afd2719ca 100644 --- a/source/_components/ha.markdown +++ b/source/_components/ha.markdown @@ -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: diff --git a/source/_components/light.rflink.markdown b/source/_components/light.rflink.markdown index e414d5898e1..a015d11a2ab 100644 --- a/source/_components/light.rflink.markdown +++ b/source/_components/light.rflink.markdown @@ -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. diff --git a/source/_components/media_player.kodi.markdown b/source/_components/media_player.kodi.markdown index e1bc5e7eb22..9d40a141b1b 100644 --- a/source/_components/media_player.kodi.markdown +++ b/source/_components/media_player.kodi.markdown @@ -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`. diff --git a/source/_components/media_player.mpd.markdown b/source/_components/media_player.mpd.markdown index a0b52c5a0c6..b561797aacb 100644 --- a/source/_components/media_player.mpd.markdown +++ b/source/_components/media_player.mpd.markdown @@ -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: diff --git a/source/_components/media_player.plex.markdown b/source/_components/media_player.plex.markdown index 8ac957ebcf7..f7184f07a68 100644 --- a/source/_components/media_player.plex.markdown +++ b/source/_components/media_player.plex.markdown @@ -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.
@@ -29,7 +33,7 @@ If you don't know your token, see [Finding your account token / X-Plex-Token](ht
+It might be necessary to install additional packages: $ sudo apt-get install libxslt-dev libxml2-dev python3-lxml
+If you are working with the All-in-One installation, you may also need to execute also within your virtual environment the command pip install lxml
; be patient this will take a while.
+Breaking change: Since Home Assistant v0.40, +**contract** attribute is required. +
+ ```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. + ++Multi contracts accounts are supported only from Home Assistant v0.40. +
diff --git a/source/_components/sensor.neurio_energy.markdown b/source/_components/sensor.neurio_energy.markdown index ddf96919a3f..dd6cac4ca77 100644 --- a/source/_components/sensor.neurio_energy.markdown +++ b/source/_components/sensor.neurio_energy.markdown @@ -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. diff --git a/source/_components/sensor.sonarr.markdown b/source/_components/sensor.sonarr.markdown index 2c4b37abc29..5f627a1fbb0 100644 --- a/source/_components/sensor.sonarr.markdown +++ b/source/_components/sensor.sonarr.markdown @@ -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 ``` diff --git a/source/_components/volvooncall.markdown b/source/_components/volvooncall.markdown new file mode 100644 index 00000000000..016626d1305 --- /dev/null +++ b/source/_components/volvooncall.markdown @@ -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). + diff --git a/source/_docs/ecosystem/hass-configurator.markdown b/source/_docs/ecosystem/hass-configurator.markdown new file mode 100644 index 00000000000..a97552a5460 --- /dev/null +++ b/source/_docs/ecosystem/hass-configurator.markdown @@ -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 + +
+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.
+Consider running the configurator as a user with limited privileges to limit possible damage.
+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!
+ +### {% 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. diff --git a/source/_posts/2017-03-25-todo-volumio-workday.markdown b/source/_posts/2017-03-25-todo-volumio-workday.markdown new file mode 100644 index 00000000000..3b10ea18e22 --- /dev/null +++ b/source/_posts/2017-03-25-todo-volumio-workday.markdown @@ -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 diff --git a/source/images/blog/2017-03-0.41/social.png b/source/images/blog/2017-03-0.41/social.png new file mode 100644 index 00000000000..1141e907f2c Binary files /dev/null and b/source/images/blog/2017-03-0.41/social.png differ diff --git a/source/images/supported_brands/volumio.png b/source/images/supported_brands/volumio.png new file mode 100644 index 00000000000..d38ce632e8f Binary files /dev/null and b/source/images/supported_brands/volumio.png differ