It's time for 0.39 and this release has some amazing new features!
T-Shirts
First off, in case you haven't seen it yet: [we have t-shirts](https://home-assistant.io/blog/2017/02/22/home-assistant-tshirts-have-arrived/) now and they are beautiful. All proceeds from the shirts will be donated to the Electronic Frontier Foundation. The first three days all of you have already raised $400! Still waiting for Teespring to get back to me so stay tuned for the EU store.
Reorganised documentation
First off I want to say thank you to [Fabian](https://github.com/fabaff). He did an amazing job in re-organizing our documentation. Is it perfect yet? No. But we are getting close. We put a lot of focus on making sure the Raspberry Pi is the main focus of our getting started. The other instructions are still available, just not as part of the main getting started.
State restoration
Ever have some input components or integrations and get annoyed with the fact that their state is lost after a restart? Don't worry any longer. [Johann](https://github.com/kellerza) has added the foundation for state restoration to Home Assistant. For the initial release support has been added to to `input_select` and `input_boolean` components. We will be adding this to more integrations in the future.
Configuration panel
Yep, you read that right. We have a configuration panel. It's just the first of many small steps. Putting in a foundation is important and gives us something to iterate on.
To start, we have three simple configuration panels:
- Core: allows you to validate config, reload core/group/automation config and restart/stop Home Assistant
- Group: allows you to rename groups, change type between group/view and reorder entities.
- Z-Wave: allows you to set device specific configuration settings
As a security measure, the configuration panel will need to be activated in the config file to be activated. This can be done by adding the following to your `configuration.yaml`:
yalm
config:
Using our configuration panels will require you to structure your groups and Z-Wave device config according to how the configuration panel expects it. This is on purpose as it we will not be aiming to build a system that supports both our extended set of configuration extend hooks and our configuration panels. It's one or the other.
To activate them in your config, create empty files `groups.yaml` and `zwave_device_config.yaml` in your config dir and add the following entries to your config:
yaml
groups: !include groups.yaml
zwave:
device_config: !include zwave_device_config.yaml
_Note that this is the first release. Things will be missing, things will be broken._
Breaking changes to customize and Z-Wave "customize"
A couple of releases ago we introduced a new way of doing `customize`. It became a list that allowed different ways of matching the config to the entity.
We realized that this was leading into a rabbit hole that we had to get out off. Besides making it unnecessarily complicated it also blocked the road to config panels. And who doesn't like config panels?
So starting this release, we had to make some breaking changes to right the wrong. We will be releasing an online tool to help you convert your config to the new format later today.
Customize has been reverted to it's original config
The old customize is back. The options to match by domain or using glob have been moved to it's own options. It will now look like this:
yaml
homeassistant:
customize:
light.kitchen:
hidden: true
customize_domain:
light:
icon: mdi:home
customize_glob:
"light.kitchen_*":
icon: mid:description
Z-Wave customize is now device config
Ever wondered why the Z-Wave customize was called customize? Yeah, so did we. So when migrating this to the new config format, we decided to upgrade the name too:
yaml
zwave:
device_config:
light.kitchen:
ignored: true
device_config_domain:
light:
polling_intensity: 2
device_config_glob:
"light.kitchen_*":
polling_intensity: 0
Speed improvements
And a final shout out to [Pascal](https://github.com/pvizeli). He keeps improving the performance of components and platforms all over Home Assistant.
All changes
New platforms/components
- [Telegram](https://home-assistant.io/componet/telegram_webhook/) webhooks ([scipioni](https://github.com/scipioni))
- Added [Openhome](https://home-assistant.io/components/media_player.openhome/) support ([bazwilliams](https://github.com/bazwilliams))
- [UPS](https://home-assistant.io/components/sensor.ups/) sensor ([happyleavesaoc](https://github.com/happyleavesaoc))
- [FEDex](https://home-assistant.io/components/sensor.fedex/) sensor ([happyleavesaoc](https://github.com/happyleavesaoc))
- [Gstreamer](https://home-assistant.io/components/media_player.gstreamer/) media player ([happyleavesaoc](https://github.com/happyleavesaoc))
- [iTach Remote](https://home-assistant.io/components/remote.itach/) Platform ([alanfischer](https://github.com/alanfischer))
- [myq](https://home-assistant.io/components/cover.myq/) cover component ([arraylabs](https://github.com/arraylabs))
- Support for the [Open Energy Monitor Thermostat](https://home-assistant.io/components/climate.oem/) ([Cadair](https://github.com/Cadair))
- Added Fritzbox [Netmonitor](https://home-assistant.io/components/sensor.fritzbox_netmonitor/) ([PetePriority](https://github.com/PetePriority))
- Add platform for [Yeelight Sunflower lights](https://home-assistant.io/components/light.yeelight-sunflower) ([lindsaymarkward](https://github.com/lindsaymarkward))
- Support for [Pocket Casts](https://home-assistant.io/components/sensor.pocketcasts/) ([molobrakos](https://github.com/molobrakos))
- [VolvoOnCall](https://home-assistant.io/components/volvooncall/) component with support for sensors, heater and lock ([molobrakos](https://github.com/molobrakos))
- Add [pushsafer.com](https://home-assistant.io/components/notify.pushsafer/) notification service ([appzer](https://github.com/appzer))
- [Websocket push](https://home-assistant.io/components/media_player.kodi/) notifications for Kodi ([armills](https://github.com/armills))
- New component 'insteon_plm' and related platforms ([nugget](https://github.com/nugget))
- Add [aurora](https://home-assistant.io/components/binary_sensor.aurora/) sensor ([walkerdb](https://github.com/walkerdb))
- Add [Ebox](https://home-assistant.io/components/sensor.ebox/) sensor platform ([titilambert](https://github.com/titilambert))
- Mediaplayer [clementine](https://home-assistant.io/components/media_player.clementine/) remote ([jjmontesl](https://github.com/jjmontesl))
- Add [Fido](https://home-assistant.io/components/sensor.fido/) sensor ([titilambert](https://github.com/titilambert))
Improvements
- Tellduslive: Don't thow exception if connection to server is lost ([molobrakos](https://github.com/molobrakos))
- Core: Convert config.components to a set ([balloob](https://github.com/balloob))
- Media Player - Apple TV: Handle connection errors when connecting to Apple TVs, re-use aiohttp session , add fake support for turn on/off ([postlund](https://github.com/postlund))
- Zoneminder: Refactoring and JSON decode error handling ([pschmitt](https://github.com/pschmitt))
- Recorder: Add tests for full schema migration, limit to session scope ([armills](https://github.com/armills))
- Tests: Add history_stats sensor ([bokub](https://github.com/bokub))
- Device tracker - Tado: Add support for multiple devices to Tado device tracker ([markoudev](https://github.com/markoudev))
- Z-Wave: Fix zwave helper getter not to fail on some None results. ([andrey-git](https://github.com/andrey-git))
- Core: `sensor_class` migrate to `device_class` ([armills](https://github.com/armills))
- Sensor - Amcrest: Avoid traceback for Amcrest cameras/firmware that does not have the software_information API call ([tchellomello](https://github.com/tchellomello))
- Media Player - MPD: Adds play URL support to mpd ([jjmontesl](https://github.com/jjmontesl))
- Logbook: Component set add using OR ([kellerza](https://github.com/kellerza))
- Config: Add config component and hassbian example panel ([balloob](https://github.com/balloob))
- Proximity: Fixed proximity zone incorrectly using name instead of zone setting ([jjmontesl](https://github.com/jjmontesl))
- Z-Wave: Add device_class support to cover component ([armills](https://github.com/armills))
- Config: Add check_config API ([balloob](https://github.com/balloob))
- Media player: Add media_image to media_player component ([postlund](https://github.com/postlund))
- Sensor- Vasttrafik.py: vasttrafik: update token on read error ([persandstrom](https://github.com/persandstrom))
- Z-Wave.py: force_update zwave sensors ([andrey-git](https://github.com/andrey-git))
- Core: Two stage shutdown ([pvizeli](https://github.com/pvizeli))
- Z-Wave: Rename customize to device_config ([balloob](https://github.com/balloob))
- Thingspeak: Use the correct API key ([fabaff](https://github.com/fabaff))
- Lock - Nuki: Reduce battery drain on Nuki Lock ([pschmitt](https://github.com/pschmitt))
- Notify - Webostv: Only try to pair notify.webostv when not paired ([andersonshatch](https://github.com/andersonshatch))
- KNX: Fix slow status updates from the knx bus ([keerts](https://github.com/keerts))
- HDMI CEC: HDMI_CEC customization [Breaking change]([balloob], [andrey-git])
- Sensor - Moon: Remove unit of measurement ([fabaff](https://github.com/fabaff))
- Z-Wave: Add initial Z-Wave config panel ([balloob](https://github.com/balloob))
- History: Allow printing the number of states returned by history and time it took to extract and add day ([andrey-git](https://github.com/andrey-git))
- MQTT: Enable sensor for discovery ([fabaff](https://github.com/fabaff))
- Light - Limitlessled: Added limitlessled support for bridge v6 and RGBWW bulbs. ([soldag](https://github.com/soldag))
- Config - Hassbian: Update hassbian component with real output ([balloob](https://github.com/balloob))
- Media Player -Sonos: Bugfix sonos favorite_source after lost connection ([pvizeli](https://github.com/pvizeli))
- Sensor - SenseHAT: Add flag to declare if SenseHAT is attached ([nodinosaur](https://github.com/nodinosaur))
- RFLink: Reconnect robustness, expose connection state. ([aequitas](https://github.com/aequitas))
- Media player - CMUS: Remove IO from properties ([armills](https://github.com/armills))
- Light - Litejet: Lights should have the option to dim in the UI. ([joncar](https://github.com/joncar))
- Light - Hue: Add effect_list to hue light ([armills](https://github.com/armills))
- Meida player - Liveboxplaytv: Update liveboxplaytv and catch connection errors ([pschmitt](https://github.com/pschmitt))
- Llight - Lifx: Fix colortemp conversion for lifx lights ([kitcorey](https://github.com/kitcorey))
- Light - Flux_LED: Update FLUX_LED by adding Effects ([dramamoose](https://github.com/dramamoose))
- Alarm control panel - Simplisafe: SimpliSafe updates ([w1ll1am23](https://github.com/w1ll1am23))
- Cover Add supported_features to cover component ([armills](https://github.com/armills))
- Wink: Added tamper detection to Wink devices. ([w1ll1am23](https://github.com/w1ll1am23))
- Sensor - onewire: Add support for aliased owfs sensors ([normakm](https://github.com/normakm))
- Weather: Forecast ([Tommatheussen](https://github.com/Tommatheussen))
- Device tracker - ASUSwrt: Added support for alternate SSH ports in AsusWRT ([swbradshaw](https://github.com/swbradshaw))
- Zoneminder: Add camera mjpeg stream support ([mnoorenberghe](https://github.com/mnoorenberghe))
- Restore: Restore_state helper to restore entity states from the DB on startup ([kellerza](https://github.com/kellerza))
- Sensor - Darksky: Add 'entity_picture' to Darksky component ([aronsky](https://github.com/aronsky))
- Media Player - Samsungtv: Add support for waking up Samsung TVs over the network ([justin8](https://github.com/justin8))
- MQTT: Convert MQTT platforms to async ([pvizeli](https://github.com/pvizeli))
- tests/components/device_tracker/test_init.py: Restore for device_tracker ([kellerza](https://github.com/kellerza))
- Discovery: Make it possible to ignore platforms in discovery ([postlund](https://github.com/postlund))
- Image processing: Add `device_class` ([pvizeli](https://github.com/pvizeli))
Breaking changes
- VolvoOnCall has been extended with more features and had to be converted to a component
- Limitlessled support for Bridge v6 and RGBWW bulbs require users to specify `version` and `port
- hdmi_cec config now requires users to set the types in the hdmi_cec config instead of using `customize`:
yaml
hdmi_cec:
types:
hdmi_cec.hdmi_5: media_player
Bugfixes:
[pvizeli](https://github.com/pvizeli), [LinuxChristian](https://github.com/LinuxChristian), [molobrakos](https://github.com/molobrakos), [balloob](https://github.com/balloob), [rytilahti](https://github.com/rytilahti), [fabaff](https://github.com/fabaff), [andrey-git](https://github.com/andrey-git), [aequitas](https://github.com/aequitas), [konikvranik](https://github.com/konikvranik), [Danielhiversen](https://github.com/Danielhiversen), [colinodell](https://github.com/colinodell), [pschmitt](https://github.com/pschmitt), [bachp](https://github.com/bachp), [bachp](https://github.com/bachp),[w1ll1am23](https://github.com/w1ll1am23), [valentinalexeev](https://github.com/valentinalexeev), [robbiet480](https://github.com/robbiet480), [MartinHjelmare](https://github.com/MartinHjelmare), [happyleavesaoc](https://github.com/happyleavesaoc), [tdickman](https://github.com/tdickman), [arraylabs](https://github.com/arraylabs), [lwis](https://github.com/lwis), [titilambert](https://github.com/titilambert)
If you need help...
...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://gitter.im/home-assistant/home-assistant). 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](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.