From d55564cc6e430f23459d0e34135d817dec66fd3f Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 9 Sep 2017 00:50:01 -0700 Subject: [PATCH] Add blog post --- _config.yml | 8 +- ...=> media_player.yamaha_musiccast.markdown} | 0 source/_components/sensor.season.markdown | 29 ++ source/_posts/2017-09-09-release-53.markdown | 451 ++++++++++++++++++ .../images/blog/2017-09-0.53/components.png | Bin 0 -> 34150 bytes .../blog/2017-09-0.53/customize-editor.png | Bin 0 -> 24615 bytes 6 files changed, 484 insertions(+), 4 deletions(-) rename source/_components/{media_player.yamaha_multicast.markdown => media_player.yamaha_musiccast.markdown} (100%) create mode 100644 source/_components/sensor.season.markdown create mode 100644 source/_posts/2017-09-09-release-53.markdown create mode 100644 source/images/blog/2017-09-0.53/components.png create mode 100644 source/images/blog/2017-09-0.53/customize-editor.png diff --git a/_config.yml b/_config.yml index ff5e1e7a0dc..df6d10b5780 100644 --- a/_config.yml +++ b/_config.yml @@ -139,12 +139,12 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 52 -current_patch_version: 1 -date_released: 2017-08-28 +current_minor_version: 53 +current_patch_version: 0 +date_released: 2017-09-9 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#release-0521---august-28" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): diff --git a/source/_components/media_player.yamaha_multicast.markdown b/source/_components/media_player.yamaha_musiccast.markdown similarity index 100% rename from source/_components/media_player.yamaha_multicast.markdown rename to source/_components/media_player.yamaha_musiccast.markdown diff --git a/source/_components/sensor.season.markdown b/source/_components/sensor.season.markdown new file mode 100644 index 00000000000..a2d21e35235 --- /dev/null +++ b/source/_components/sensor.season.markdown @@ -0,0 +1,29 @@ +--- +layout: page +title: "Season Sensor" +description: "Instructions how to add season sensors into Home Assistant." +date: 2017-07-04 07:00:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +ha_iot_class: "Local Polling" +ha_release: 0.53 +--- + +This sensor will display the current astronomical or meteorological season (Spring, Summer, Autumn, Winter) based on the users setting in the config file. + +All information about how the seasons work was taken from Wikipedia: + + - [https://en.wikipedia.org/wiki/Season#Astronomical](https://en.wikipedia.org/wiki/Season#Astronomical) + - [https://en.wikipedia.org/wiki/Equinox](https://en.wikipedia.org/wiki/Equinox) + - [https://en.wikipedia.org/wiki/Solstice](https://en.wikipedia.org/wiki/Solstice) + + +```yaml +# Example configuration.yaml entry +sensor: + - platform: season + type: astronomical (optional, will default to astronomical) +``` diff --git a/source/_posts/2017-09-09-release-53.markdown b/source/_posts/2017-09-09-release-53.markdown new file mode 100644 index 00000000000..f056fc6ead6 --- /dev/null +++ b/source/_posts/2017-09-09-release-53.markdown @@ -0,0 +1,451 @@ +--- +layout: post +title: "0.53: Tesla, Customize editor, and super fast KNX rewrite" +description: "Also now supports a text input UI component, Mopar and Geofency." +date: 2017-09-09 00:11:05 +date_formatted: "September 9, 2017" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2017-09-0.53/components.png +--- + + + +The Home Assistant community has been super busy in the last two weeks to bring you this amazing release. 60 different contributors have done over a 100 PRs filled with new features, bug fixes and performance improvements. + +9 days away from our 4th birthday, we've just accomplished a couple of great milestones that I would love to share with you. We've hit over 8000 stars 🌟 on GitHub and starting this release we now ship over 800 platforms and components! + +## Customize editor + +Another step in making Home Assistant configurable via the frontend has been contributed by @andrey-git: a customization editor! You are now able to inspect all (possible) customizations of an entity and update them with just a few taps. Want to change the name or icon of an entity? All possible in mere seconds. + +

+ +Screenshot of the new customize editor. +

+ +New Home Assistant configurations will be created correctly automatically. If you are an existing user, make sure you have the config screen enabled and that you include customizations from `customize.yaml`. + +```yaml +# Example configuration.yaml entry +homeassistant: + # Include the customizations. + customize: !include customize.yaml + +# Enable the config screen +config: +``` + +## Tesla + +Thanks to the contribution by @zabuldon, you will now be able to control your Tesla car from Home Assistant. You're able to check the temperature inside and outside your car, control your AC and unlock the car. + +## Input text + +This release introduces a new input component: `input_text` contributed by @BioSehnsucht. With this component you will be able to set free form from the UI and then let that be used by your automations or templates. + +## KNX + +This release ships a new KNX implementation thanks to @Julius2342. It will instantly show all changed states of KNX devices within Home Assistant. Additionally it brings support for HVAC devices and notification services. It also adds a service for direct communication with the KNX bus. You can connect to KNX/IP routing and tunnelling devices. In the background it uses asyncio communication. Check the climate integration in action [here](https://www.youtube.com/watch?v=JI0VJzlGpx4) and see the lights in action below: + +
+ +
+ +## New Platforms + +- Xiaomi Philips Lights integration ([@syssi] - [#9087]) ([light.xiaomi_philipslight docs]) (new-platform) +- Mycroft notify/component ([@btotharye] - [#9173]) ([mycroft docs]) ([notify.mycroft docs]) (new-platform) +- Add counter component ([@fabaff] - [#9146]) ([counter docs]) (new-platform) +- Support for season sensor ([@w1ll1am23] - [#8958]) ([sensor.season docs]) (new-platform) +- Abode push events and lock, cover, and switch components ([@1091741+MisterWil] - [#9095]) ([abode docs]) ([alarm_control_panel.abode docs]) ([binary_sensor.abode docs]) ([cover.abode docs]) ([lock.abode docs]) ([switch.abode docs]) (new-platform) +- Bayesian Binary Sensor ([@jlmcgehee21] - [#8810]) ([binary_sensor.bayesian docs]) (new-platform) +- Add Tank Utility sensor ([@krismolendyke] - [#9132]) ([sensor.tank_utility docs]) (new-platform) +- Tesla platform ([@zabuldon] - [#9211]) ([tesla docs]) ([binary_sensor.tesla docs]) ([climate.tesla docs]) ([device_tracker.tesla docs]) ([lock.tesla docs]) ([sensor.tesla docs]) (new-platform) +- mopar sensor ([@happyleavesaoc] - [#9136]) ([sensor.mopar docs]) (new-platform) +- Add Geofency device tracker ([@gunnarhelgason] - [#9106]) ([device_tracker.geofency docs]) (new-platform) +- Added DWD WarnApp Sensor ([@runningman84] - [#8657]) ([sensor.dwd_warnapp docs]) (new-platform) +- Add input_text component ([@BioSehnsucht] - [#9112]) ([input_text docs]) (new-platform) +- Introducing a media_player component for Yamaha Multicast devices ([@jalmeroth] - [#9258]) ([media_player.yamaha_musiccast docs]) (new-platform) +- Stable and asynchronous KNX library. ([@Julius2342] - [#8725]) ([knx docs]) ([binary_sensor.knx docs]) ([climate.knx docs]) ([cover.knx docs]) ([light.knx docs]) ([sensor.knx docs]) ([switch.knx docs]) (new-platform) +- Adds the AirVisual air quality sensor platform ([@bachya] - [#9320]) ([sensor.airvisual docs]) (new-platform) + +## {% linkable_title If you need help... %} +...don't hesitate to use our very active [forums][forum] or join us for a little [chat][discord]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. + +## {% linkable_title Reporting Issues %} +Experiencing issues introduced by this release? Please report them in our [issue tracker][issue]. Make sure to fill in all fields of the issue template. + + + +## Breaking Changes + +- The new customize editor is using the file `customize.yaml` in your config folder. If you are using this file today for other config, make sure to rename it before using the new customize UI editor. ([@andrey-git] - [#9134]) ([config docs]) (breaking change) (new-platform) +- The frontend component now supports loading custom html files when Home Assistant front end starts ([@andrey-git] - [#9150]) (breaking change). It could be Javascript, CSS or custom Web Components. Along there was a breaking change in the way Custom UI is used: + * `custom_ui_state_card` now specifies the exact element name and not a suffix after `state-card`. So if you had `state_card_custom_ui: custom-ui` in your config, you should change it to `state_card_custom_ui: state-card-custom-ui` + * `custom_ui_state_card` no longer makes the html fetch, you should make it separately: + +``` +frontend: + extra_html_url: + - /local/custom_ui/state-card-custom-ui.html +``` + +- The Egardia alarm control panel now defaults to port 52010 instead of 85. ([@jeroenterheerdt] - [#9225]) ([alarm_control_panel.egardia docs]) (breaking change) +- The Homematic `delay` option has been dropped because it is no longer necessary ([@pvizeli] - [#9058]) ([homematic docs]) ([binary_sensor.homematic docs]) ([climate.homematic docs]) ([cover.homematic docs]) ([light.homematic docs]) ([sensor.homematic docs]) ([switch.homematic docs]) (breaking change) +- Switch - Dlink: Remove spaces and capital letters from attribute names for consistency ([@emlt] - [#9277]) ([switch.dlink docs]) (breaking change) + +## All changes + +- Xiaomi Philips Lights integration ([@syssi] - [#9087]) ([light.xiaomi_philipslight docs]) (new-platform) +- Backend changes for customize config panel. ([@andrey-git] - [#9134]) ([config docs]) (breaking change) +- Upgrade async_timeout to 1.3.0 ([@fabaff] - [#9156]) +- Remove links to gitter ([@fabaff] - [#9155]) +- Upgrade sphinx-autodoc-typehints to 1.2.3 ([@fabaff] - [#9151]) +- Upgrade uber_rides to 0.5.2 ([@fabaff] - [#9149]) ([sensor.uber docs]) +- Allow specifying custom html urls to load. ([@andrey-git] - [#9150]) (breaking change) +- Allow getting number of available states in template ([@balloob] - [#9158]) +- upgrade xiaomi lib to 0.3.1 to supprt water sensor ([@danielhiversen] - [#9168]) ([xiaomi docs]) +- Use node_modules gulp in script/build_frontend ([@armills] - [#9170]) +- Mysensors nodes can be renamed in config file ([@EmitKiwi] - [#9123]) ([mysensors docs]) +- Xiaomi gateway: Device support for the Aqara Water Leak Sensor (sensor_wleak.aq1) ([@syssi] - [#9172]) ([xiaomi docs]) ([binary_sensor.xiaomi docs]) +- "TypeError: write_to_hub() takes 2 positional arguments but 4 were given" fixed. ([@syssi] - [#9174]) ([cover.xiaomi docs]) +- Mycroft notify/component ([@btotharye] - [#9173]) ([mycroft docs]) ([notify.mycroft docs]) (new-platform) +- Fix dht22 when no data was read initially #8976 ([@maweki] - [#9198]) ([sensor.dht docs]) +- Update pushbullet.py ([@bobnwk] - [#9200]) ([notify.pushbullet docs]) +- fix worldtidesinfo #9184 ([@aetolus] - [#9201]) ([sensor.worldtidesinfo docs]) +- Add "status" to Sonarr sensor ([@tboyce021] - [#9204]) ([sensor.radarr docs]) ([sensor.sonarr docs]) +- Prevent error when no forecast data was available ([@mjj4791] - [#9176]) ([sensor.buienradar docs]) +- Fix and optimize digitalloggers platform ([@dale3h] - [#9203]) ([switch.digitalloggers docs]) +- Add counter component ([@fabaff] - [#9146]) ([counter docs]) (new-platform) +- Support for season sensor ([@w1ll1am23] - [#8958]) ([sensor.season docs]) (new-platform) +- Issue #6893 in rfxtrx ([@danielhiversen] - [#9130]) ([rfxtrx docs]) +- Refactor rfxtrx ([@danielhiversen] - [#9117]) ([rfxtrx docs]) ([cover.rfxtrx docs]) ([light.rfxtrx docs]) ([switch.rfxtrx docs]) +- Upgrade pymysensors to 0.11.1 ([@MartinHjelmare] - [#9212]) ([mysensors docs]) +- Abode push events and lock, cover, and switch components ([@1091741+MisterWil] - [#9095]) ([abode docs]) ([alarm_control_panel.abode docs]) ([binary_sensor.abode docs]) ([cover.abode docs]) ([lock.abode docs]) ([switch.abode docs]) (new-platform) +- Add cloud auth support ([@balloob] - [#9208]) +- Bayesian Binary Sensor ([@jlmcgehee21] - [#8810]) ([binary_sensor.bayesian docs]) (new-platform) +- directv: extended discovery via REST api, bug fix ([@sielicki] - [#8800]) ([media_player.directv docs]) +- Upgrade pyasn1 to 0.3.3 and pyasn1-modules to 0.1.1 ([@fabaff] - [#9216]) ([notify.xmpp docs]) +- Upgrade sendgrid to 5.0.1 ([@fabaff] - [#9215]) ([notify.sendgrid docs]) +- Fix fitbit error when trying to access token after upgrade. ([@tchellomello] - [#9183]) ([sensor.fitbit docs]) +- Allow sonos to select album as a source ([@commento] - [#9221]) ([media_player.sonos docs]) +- Add max_age to statistics sensor ([@tinloaf] - [#8790]) ([sensor.statistics docs]) +- Egardia package to .19 and change in port number for egardiaserver ([@jeroenterheerdt] - [#9225]) ([alarm_control_panel.egardia docs]) (breaking change) +- pushbullet, send a file from url ([@danielhiversen] - [#9189]) ([notify.pushbullet docs]) +- Add Tank Utility sensor ([@krismolendyke] - [#9132]) ([sensor.tank_utility docs]) (new-platform) +- Upgrade shodan to 1.7.5 ([@fabaff] - [#9228]) ([sensor.shodan docs]) +- Tesla platform ([@zabuldon] - [#9211]) ([tesla docs]) ([binary_sensor.tesla docs]) ([climate.tesla docs]) ([device_tracker.tesla docs]) ([lock.tesla docs]) ([sensor.tesla docs]) (new-platform) +- [light.tradfri] Full range of white spectrum lightbulbs support ([@matemaciek] - [#9224]) ([tradfri docs]) ([light.tradfri docs]) +- Allow panels with external URL ([@andrey-git] - [#9214]) +- Use ZCL mandatory attribute to determine ZHA light capabilities ([@jkl1337] - [#9232]) ([light.zha docs]) +- A bugfix for pushbullet ([@danielhiversen] - [#9237]) ([notify.pushbullet docs]) +- mopar sensor ([@happyleavesaoc] - [#9136]) ([sensor.mopar docs]) (new-platform) +- Upgrade discord.py to 0.16.11 ([@fabaff] - [#9239]) ([notify.discord docs]) +- Skip automatic events older than latest data ([@armills] - [#9230]) ([device_tracker.automatic docs]) +- title and message was swapped in pushbullet ([@danielhiversen] - [#9241]) ([notify.pushbullet docs]) +- Fix possible KeyError ([@MartinHjelmare] - [#9242]) ([mysensors docs]) +- WIP: Homematic improvments with new hass interfaces ([@pvizeli] - [#9058]) ([homematic docs]) ([binary_sensor.homematic docs]) ([climate.homematic docs]) ([cover.homematic docs]) ([light.homematic docs]) ([sensor.homematic docs]) ([switch.homematic docs]) (breaking change) +- Add available to sonos ([@pvizeli] - [#9243]) ([media_player.sonos docs]) +- Make sure Ring binary_sensor state will update only if device_id matches ([@tchellomello] - [#9247]) ([binary_sensor.ring docs]) +- Added configurable timeout for receiver HTTP requests | Additional AV… ([@scarface-4711] - [#9244]) ([media_player.denonavr docs]) +- upgrade xiaomi lib ([@danielhiversen] - [#9250]) ([xiaomi docs]) +- Fix nello.io login ([@pschmitt] - [#9251]) ([lock.nello docs]) +- This is to fix #6386: Manual Alarm not re-arm after 2nd trigger ([@snjoetw] - [#9249]) ([alarm_control_panel.manual docs]) +- Version bump of DLink switch to v0.6.0 ([@LinuxChristian] - [#9252]) ([switch.dlink docs]) +- Upgrade sendgrid to 5.2.0 ([@fabaff] - [#9254]) ([notify.sendgrid docs]) +- Upgrade psutil to 5.3.0 ([@fabaff] - [#9253]) ([sensor.systemmonitor docs]) +- Adding ZWave CentralScene activation handler. ([@sirmalloc] - [#9178]) ([zwave docs]) +- Add Geofency device tracker ([@gunnarhelgason] - [#9106]) ([device_tracker.geofency docs]) (new-platform) +- flux: fix for when stop_time is after midnight ([@abmantis] - [#8932]) +- Change attribute names ([@emlt] - [#9277]) ([switch.dlink docs]) (breaking change) +- insteon_plm: fix typo in attributes ([@drkp] - [#9284]) ([insteon_plm docs]) +- discovery: If unknown NetDisco service discovered, log about it. ([@pfalcon] - [#9280]) +- Upgrade youtube_dl to 2017.9.2 ([@fabaff] - [#9279]) ([media_extractor docs]) +- Upgrade python-telegram-bot to 8.0.0 ([@fabaff] - [#9282]) ([telegram_bot docs]) ([switch.rest docs]) +- rfxtrx lib upgrade ([@danielhiversen] - [#9288]) ([rfxtrx docs]) +- Fixing bug when using egardiaserver - package requirement updated to 1.0.20. ([@jeroenterheerdt] - [#9294]) ([alarm_control_panel.egardia docs]) +- Added intent_type to exception log ([@andreasjacobsen93] - [#9289]) ([snips docs]) +- Handle spotify failing to refresh access_token ([@Tommatheussen] - [#9295]) ([media_player.spotify docs]) +- Core track same state for a period / Allow on platforms ([@pvizeli] - [#9273]) +- Improved Lutron Caseta shade support ([@30200174+upsert] - [#9302]) ([lutron_caseta docs]) ([cover.lutron_caseta docs]) ([light.lutron_caseta docs]) ([switch.lutron_caseta docs]) +- Upgrade mycroftapi to 2.0 ([@btotharye] - [#9309]) ([mycroft docs]) +- Fix for Honeywell Round thermostats ([@dansarginson] - [#9308]) ([climate.honeywell docs]) +- Update jinja to 2.9.6 ([@pvizeli] - [#9306]) +- Ensure display-name does not exceed 12 characters for CecAdapter. ([@gollo] - [#9268]) ([hdmi_cec docs]) +- Expose hue group 0 ([@filcole] - [#8663]) ([light.hue docs]) +- Added DWD WarnApp Sensor ([@runningman84] - [#8657]) ([sensor.dwd_warnapp docs]) (new-platform) +- Add input_text component ([@BioSehnsucht] - [#9112]) ([input_text docs]) (new-platform) +- Introducing a media_player component for Yamaha Multicast devices ([@jalmeroth] - [#9258]) ([media_player.yamaha_musiccast docs]) (new-platform) +- Handle the case where no registration number is available (instead display VIN (vehicle identification number)). ([@molobrakos] - [#9073]) ([volvooncall docs]) ([device_tracker.volvooncall docs]) +- Add post_pending_state attribute to manual alarm_control_panel ([@snjoetw] - [#9291]) ([alarm_control_panel.manual docs]) +- Add new config variable to MQTT light ([@belyalov] - [#9304]) ([light.mqtt docs]) +- Follow Twitter guidelines for media upload by conforming to the "STATUS" phase, when required, and by providing "media_category" information. These will, for example, allow users to upload videos that exceed the basic 30 second limit. ([@MikeChristianson] - [#9261]) ([notify.twitter docs]) +- Optionally disable ssl certificate validity check. ([@1868995+ohmer1] - [#9181]) ([notify.xmpp docs]) +- Version bump dlib to 1.0.0 ([@arsaboo] - [#9316]) ([image_processing.dlib_face_detect docs]) ([image_processing.dlib_face_identify docs]) +- Fixed bug with devices not being discovered correctly. ([@1091741+MisterWil] - [#9311]) ([abode docs]) +- Platform not ready behavior fixed. ([@syssi] - [#9325]) ([light.xiaomi_philipslight docs]) +- Stable and asynchronous KNX library. ([@Julius2342] - [#8725]) ([knx docs]) ([binary_sensor.knx docs]) ([climate.knx docs]) ([cover.knx docs]) ([light.knx docs]) ([sensor.knx docs]) ([switch.knx docs]) (new-platform) +- Fix for potential issue with tesla initialization ([@zabuldon] - [#9307]) ([tesla docs]) +- Adds the AirVisual air quality sensor platform ([@bachya] - [#9320]) ([sensor.airvisual docs]) (new-platform) +- Cleanup input_text ([@balloob] - [#9326]) ([input_text docs]) +- Bump pyHik version to add IO support ([@mezz64] - [#9341]) ([binary_sensor.hikvision docs]) + +[#8657]: https://github.com/home-assistant/home-assistant/pull/8657 +[#8663]: https://github.com/home-assistant/home-assistant/pull/8663 +[#8725]: https://github.com/home-assistant/home-assistant/pull/8725 +[#8790]: https://github.com/home-assistant/home-assistant/pull/8790 +[#8800]: https://github.com/home-assistant/home-assistant/pull/8800 +[#8810]: https://github.com/home-assistant/home-assistant/pull/8810 +[#8932]: https://github.com/home-assistant/home-assistant/pull/8932 +[#8958]: https://github.com/home-assistant/home-assistant/pull/8958 +[#9058]: https://github.com/home-assistant/home-assistant/pull/9058 +[#9073]: https://github.com/home-assistant/home-assistant/pull/9073 +[#9087]: https://github.com/home-assistant/home-assistant/pull/9087 +[#9095]: https://github.com/home-assistant/home-assistant/pull/9095 +[#9106]: https://github.com/home-assistant/home-assistant/pull/9106 +[#9112]: https://github.com/home-assistant/home-assistant/pull/9112 +[#9117]: https://github.com/home-assistant/home-assistant/pull/9117 +[#9123]: https://github.com/home-assistant/home-assistant/pull/9123 +[#9130]: https://github.com/home-assistant/home-assistant/pull/9130 +[#9132]: https://github.com/home-assistant/home-assistant/pull/9132 +[#9134]: https://github.com/home-assistant/home-assistant/pull/9134 +[#9136]: https://github.com/home-assistant/home-assistant/pull/9136 +[#9146]: https://github.com/home-assistant/home-assistant/pull/9146 +[#9149]: https://github.com/home-assistant/home-assistant/pull/9149 +[#9150]: https://github.com/home-assistant/home-assistant/pull/9150 +[#9151]: https://github.com/home-assistant/home-assistant/pull/9151 +[#9155]: https://github.com/home-assistant/home-assistant/pull/9155 +[#9156]: https://github.com/home-assistant/home-assistant/pull/9156 +[#9158]: https://github.com/home-assistant/home-assistant/pull/9158 +[#9168]: https://github.com/home-assistant/home-assistant/pull/9168 +[#9170]: https://github.com/home-assistant/home-assistant/pull/9170 +[#9172]: https://github.com/home-assistant/home-assistant/pull/9172 +[#9173]: https://github.com/home-assistant/home-assistant/pull/9173 +[#9174]: https://github.com/home-assistant/home-assistant/pull/9174 +[#9176]: https://github.com/home-assistant/home-assistant/pull/9176 +[#9178]: https://github.com/home-assistant/home-assistant/pull/9178 +[#9181]: https://github.com/home-assistant/home-assistant/pull/9181 +[#9183]: https://github.com/home-assistant/home-assistant/pull/9183 +[#9189]: https://github.com/home-assistant/home-assistant/pull/9189 +[#9198]: https://github.com/home-assistant/home-assistant/pull/9198 +[#9200]: https://github.com/home-assistant/home-assistant/pull/9200 +[#9201]: https://github.com/home-assistant/home-assistant/pull/9201 +[#9203]: https://github.com/home-assistant/home-assistant/pull/9203 +[#9204]: https://github.com/home-assistant/home-assistant/pull/9204 +[#9208]: https://github.com/home-assistant/home-assistant/pull/9208 +[#9211]: https://github.com/home-assistant/home-assistant/pull/9211 +[#9212]: https://github.com/home-assistant/home-assistant/pull/9212 +[#9214]: https://github.com/home-assistant/home-assistant/pull/9214 +[#9215]: https://github.com/home-assistant/home-assistant/pull/9215 +[#9216]: https://github.com/home-assistant/home-assistant/pull/9216 +[#9221]: https://github.com/home-assistant/home-assistant/pull/9221 +[#9224]: https://github.com/home-assistant/home-assistant/pull/9224 +[#9225]: https://github.com/home-assistant/home-assistant/pull/9225 +[#9228]: https://github.com/home-assistant/home-assistant/pull/9228 +[#9230]: https://github.com/home-assistant/home-assistant/pull/9230 +[#9232]: https://github.com/home-assistant/home-assistant/pull/9232 +[#9237]: https://github.com/home-assistant/home-assistant/pull/9237 +[#9239]: https://github.com/home-assistant/home-assistant/pull/9239 +[#9241]: https://github.com/home-assistant/home-assistant/pull/9241 +[#9242]: https://github.com/home-assistant/home-assistant/pull/9242 +[#9243]: https://github.com/home-assistant/home-assistant/pull/9243 +[#9244]: https://github.com/home-assistant/home-assistant/pull/9244 +[#9247]: https://github.com/home-assistant/home-assistant/pull/9247 +[#9249]: https://github.com/home-assistant/home-assistant/pull/9249 +[#9250]: https://github.com/home-assistant/home-assistant/pull/9250 +[#9251]: https://github.com/home-assistant/home-assistant/pull/9251 +[#9252]: https://github.com/home-assistant/home-assistant/pull/9252 +[#9253]: https://github.com/home-assistant/home-assistant/pull/9253 +[#9254]: https://github.com/home-assistant/home-assistant/pull/9254 +[#9258]: https://github.com/home-assistant/home-assistant/pull/9258 +[#9261]: https://github.com/home-assistant/home-assistant/pull/9261 +[#9268]: https://github.com/home-assistant/home-assistant/pull/9268 +[#9273]: https://github.com/home-assistant/home-assistant/pull/9273 +[#9277]: https://github.com/home-assistant/home-assistant/pull/9277 +[#9279]: https://github.com/home-assistant/home-assistant/pull/9279 +[#9280]: https://github.com/home-assistant/home-assistant/pull/9280 +[#9282]: https://github.com/home-assistant/home-assistant/pull/9282 +[#9284]: https://github.com/home-assistant/home-assistant/pull/9284 +[#9288]: https://github.com/home-assistant/home-assistant/pull/9288 +[#9289]: https://github.com/home-assistant/home-assistant/pull/9289 +[#9291]: https://github.com/home-assistant/home-assistant/pull/9291 +[#9294]: https://github.com/home-assistant/home-assistant/pull/9294 +[#9295]: https://github.com/home-assistant/home-assistant/pull/9295 +[#9302]: https://github.com/home-assistant/home-assistant/pull/9302 +[#9304]: https://github.com/home-assistant/home-assistant/pull/9304 +[#9306]: https://github.com/home-assistant/home-assistant/pull/9306 +[#9307]: https://github.com/home-assistant/home-assistant/pull/9307 +[#9308]: https://github.com/home-assistant/home-assistant/pull/9308 +[#9309]: https://github.com/home-assistant/home-assistant/pull/9309 +[#9311]: https://github.com/home-assistant/home-assistant/pull/9311 +[#9316]: https://github.com/home-assistant/home-assistant/pull/9316 +[#9320]: https://github.com/home-assistant/home-assistant/pull/9320 +[#9325]: https://github.com/home-assistant/home-assistant/pull/9325 +[#9326]: https://github.com/home-assistant/home-assistant/pull/9326 +[#9341]: https://github.com/home-assistant/home-assistant/pull/9341 +[@1091741+MisterWil]: https://github.com/1091741+MisterWil +[@1868995+ohmer1]: https://github.com/1868995+ohmer1 +[@30200174+upsert]: https://github.com/30200174+upsert +[@BioSehnsucht]: https://github.com/BioSehnsucht +[@EmitKiwi]: https://github.com/EmitKiwi +[@Julius2342]: https://github.com/Julius2342 +[@LinuxChristian]: https://github.com/LinuxChristian +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MikeChristianson]: https://github.com/MikeChristianson +[@Tommatheussen]: https://github.com/Tommatheussen +[@abmantis]: https://github.com/abmantis +[@aetolus]: https://github.com/aetolus +[@andreasjacobsen93]: https://github.com/andreasjacobsen93 +[@andrey-git]: https://github.com/andrey-git +[@armills]: https://github.com/armills +[@arsaboo]: https://github.com/arsaboo +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@belyalov]: https://github.com/belyalov +[@bobnwk]: https://github.com/bobnwk +[@btotharye]: https://github.com/btotharye +[@commento]: https://github.com/commento +[@dale3h]: https://github.com/dale3h +[@danielhiversen]: https://github.com/danielhiversen +[@dansarginson]: https://github.com/dansarginson +[@drkp]: https://github.com/drkp +[@emlt]: https://github.com/emlt +[@fabaff]: https://github.com/fabaff +[@filcole]: https://github.com/filcole +[@gollo]: https://github.com/gollo +[@gunnarhelgason]: https://github.com/gunnarhelgason +[@happyleavesaoc]: https://github.com/happyleavesaoc +[@jalmeroth]: https://github.com/jalmeroth +[@jeroenterheerdt]: https://github.com/jeroenterheerdt +[@jkl1337]: https://github.com/jkl1337 +[@jlmcgehee21]: https://github.com/jlmcgehee21 +[@krismolendyke]: https://github.com/krismolendyke +[@matemaciek]: https://github.com/matemaciek +[@maweki]: https://github.com/maweki +[@mezz64]: https://github.com/mezz64 +[@mjj4791]: https://github.com/mjj4791 +[@molobrakos]: https://github.com/molobrakos +[@pfalcon]: https://github.com/pfalcon +[@pschmitt]: https://github.com/pschmitt +[@pvizeli]: https://github.com/pvizeli +[@runningman84]: https://github.com/runningman84 +[@scarface-4711]: https://github.com/scarface-4711 +[@sielicki]: https://github.com/sielicki +[@sirmalloc]: https://github.com/sirmalloc +[@snjoetw]: https://github.com/snjoetw +[@syssi]: https://github.com/syssi +[@tboyce021]: https://github.com/tboyce021 +[@tchellomello]: https://github.com/tchellomello +[@tinloaf]: https://github.com/tinloaf +[@w1ll1am23]: https://github.com/w1ll1am23 +[@zabuldon]: https://github.com/zabuldon +[abode docs]: https://home-assistant.io/components/abode/ +[alarm_control_panel.abode docs]: https://home-assistant.io/components/alarm_control_panel.abode/ +[alarm_control_panel.egardia docs]: https://home-assistant.io/components/alarm_control_panel.egardia/ +[alarm_control_panel.manual docs]: https://home-assistant.io/components/alarm_control_panel.manual/ +[binary_sensor.abode docs]: https://home-assistant.io/components/binary_sensor.abode/ +[binary_sensor.bayesian docs]: https://home-assistant.io/components/binary_sensor.bayesian/ +[binary_sensor.hikvision docs]: https://home-assistant.io/components/binary_sensor.hikvision/ +[binary_sensor.homematic docs]: https://home-assistant.io/components/binary_sensor.homematic/ +[binary_sensor.ring docs]: https://home-assistant.io/components/binary_sensor.ring/ +[binary_sensor.tesla docs]: https://home-assistant.io/components/binary_sensor.tesla/ +[binary_sensor.xiaomi docs]: https://home-assistant.io/components/binary_sensor.xiaomi/ +[binary_sensor.knx docs]: https://home-assistant.io/components/binary_sensor.knx/ +[climate.homematic docs]: https://home-assistant.io/components/climate.homematic/ +[climate.honeywell docs]: https://home-assistant.io/components/climate.honeywell/ +[climate.tesla docs]: https://home-assistant.io/components/climate.tesla/ +[climate.knx docs]: https://home-assistant.io/components/climate.knx/ +[cloud docs]: https://home-assistant.io/components/cloud/ +[cloud.cloud_api docs]: https://home-assistant.io/components/cloud.cloud_api/ +[cloud.const docs]: https://home-assistant.io/components/cloud.const/ +[cloud.http_api docs]: https://home-assistant.io/components/cloud.http_api/ +[cloud.util docs]: https://home-assistant.io/components/cloud.util/ +[config docs]: https://home-assistant.io/components/config/ +[config.customize docs]: https://home-assistant.io/components/config.customize/ +[counter docs]: https://home-assistant.io/components/counter/ +[cover.abode docs]: https://home-assistant.io/components/cover.abode/ +[cover.homematic docs]: https://home-assistant.io/components/cover.homematic/ +[cover.lutron_caseta docs]: https://home-assistant.io/components/cover.lutron_caseta/ +[cover.rfxtrx docs]: https://home-assistant.io/components/cover.rfxtrx/ +[cover.xiaomi docs]: https://home-assistant.io/components/cover.xiaomi/ +[cover.knx docs]: https://home-assistant.io/components/cover.knx/ +[device_tracker.automatic docs]: https://home-assistant.io/components/device_tracker.automatic/ +[device_tracker.geofency docs]: https://home-assistant.io/components/device_tracker.geofency/ +[device_tracker.tesla docs]: https://home-assistant.io/components/device_tracker.tesla/ +[device_tracker.volvooncall docs]: https://home-assistant.io/components/device_tracker.volvooncall/ +[hdmi_cec docs]: https://home-assistant.io/components/hdmi_cec/ +[homematic docs]: https://home-assistant.io/components/homematic/ +[image_processing.dlib_face_detect docs]: https://home-assistant.io/components/image_processing.dlib_face_detect/ +[image_processing.dlib_face_identify docs]: https://home-assistant.io/components/image_processing.dlib_face_identify/ +[input_text docs]: https://home-assistant.io/components/input_text/ +[input_text docs]: https://home-assistant.io/components/input_text/ +[insteon_plm docs]: https://home-assistant.io/components/insteon_plm/ +[light.homematic docs]: https://home-assistant.io/components/light.homematic/ +[light.hue docs]: https://home-assistant.io/components/light.hue/ +[light.lutron_caseta docs]: https://home-assistant.io/components/light.lutron_caseta/ +[light.mqtt docs]: https://home-assistant.io/components/light.mqtt/ +[light.xiaomi_philipslight docs]: https://home-assistant.io/components/light.xiaomi_philipslight/ +[light.rfxtrx docs]: https://home-assistant.io/components/light.rfxtrx/ +[light.tradfri docs]: https://home-assistant.io/components/light.tradfri/ +[light.xiaomi_philipslight docs]: https://home-assistant.io/components/light.xiaomi_philipslight/ +[light.knx docs]: https://home-assistant.io/components/light.knx/ +[light.zha docs]: https://home-assistant.io/components/light.zha/ +[lock.abode docs]: https://home-assistant.io/components/lock.abode/ +[lock.nello docs]: https://home-assistant.io/components/lock.nello/ +[lock.tesla docs]: https://home-assistant.io/components/lock.tesla/ +[lutron_caseta docs]: https://home-assistant.io/components/lutron_caseta/ +[media_extractor docs]: https://home-assistant.io/components/media_extractor/ +[media_player.denonavr docs]: https://home-assistant.io/components/media_player.denonavr/ +[media_player.directv docs]: https://home-assistant.io/components/media_player.directv/ +[media_player.sonos docs]: https://home-assistant.io/components/media_player.sonos/ +[media_player.spotify docs]: https://home-assistant.io/components/media_player.spotify/ +[media_player.yamaha_musiccast docs]: https://home-assistant.io/components/media_player.yamaha_musiccast/ +[mycroft docs]: https://home-assistant.io/components/mycroft/ +[mysensors docs]: https://home-assistant.io/components/mysensors/ +[notify.discord docs]: https://home-assistant.io/components/notify.discord/ +[notify.mycroft docs]: https://home-assistant.io/components/notify.mycroft/ +[notify.pushbullet docs]: https://home-assistant.io/components/notify.pushbullet/ +[notify.sendgrid docs]: https://home-assistant.io/components/notify.sendgrid/ +[notify.twitter docs]: https://home-assistant.io/components/notify.twitter/ +[notify.xmpp docs]: https://home-assistant.io/components/notify.xmpp/ +[rfxtrx docs]: https://home-assistant.io/components/rfxtrx/ +[sensor.airvisual docs]: https://home-assistant.io/components/sensor.airvisual/ +[sensor.buienradar docs]: https://home-assistant.io/components/sensor.buienradar/ +[sensor.dht docs]: https://home-assistant.io/components/sensor.dht/ +[sensor.dwd_warnapp docs]: https://home-assistant.io/components/sensor.dwd_warnapp/ +[sensor.fitbit docs]: https://home-assistant.io/components/sensor.fitbit/ +[sensor.homematic docs]: https://home-assistant.io/components/sensor.homematic/ +[sensor.mopar docs]: https://home-assistant.io/components/sensor.mopar/ +[sensor.radarr docs]: https://home-assistant.io/components/sensor.radarr/ +[sensor.season docs]: https://home-assistant.io/components/sensor.season/ +[sensor.shodan docs]: https://home-assistant.io/components/sensor.shodan/ +[sensor.sonarr docs]: https://home-assistant.io/components/sensor.sonarr/ +[sensor.statistics docs]: https://home-assistant.io/components/sensor.statistics/ +[sensor.systemmonitor docs]: https://home-assistant.io/components/sensor.systemmonitor/ +[sensor.tank_utility docs]: https://home-assistant.io/components/sensor.tank_utility/ +[sensor.tesla docs]: https://home-assistant.io/components/sensor.tesla/ +[sensor.uber docs]: https://home-assistant.io/components/sensor.uber/ +[sensor.worldtidesinfo docs]: https://home-assistant.io/components/sensor.worldtidesinfo/ +[sensor.knx docs]: https://home-assistant.io/components/sensor.knx/ +[snips docs]: https://home-assistant.io/components/snips/ +[switch.abode docs]: https://home-assistant.io/components/switch.abode/ +[switch.digitalloggers docs]: https://home-assistant.io/components/switch.digitalloggers/ +[switch.dlink docs]: https://home-assistant.io/components/switch.dlink/ +[switch.homematic docs]: https://home-assistant.io/components/switch.homematic/ +[switch.lutron_caseta docs]: https://home-assistant.io/components/switch.lutron_caseta/ +[switch.rest docs]: https://home-assistant.io/components/switch.rest/ +[switch.rfxtrx docs]: https://home-assistant.io/components/switch.rfxtrx/ +[switch.knx docs]: https://home-assistant.io/components/switch.knx/ +[telegram_bot docs]: https://home-assistant.io/components/telegram_bot/ +[tesla docs]: https://home-assistant.io/components/tesla/ +[tradfri docs]: https://home-assistant.io/components/tradfri/ +[volvooncall docs]: https://home-assistant.io/components/volvooncall/ +[xiaomi docs]: https://home-assistant.io/components/xiaomi/ +[knx docs]: https://home-assistant.io/components/knx/ +[zwave docs]: https://home-assistant.io/components/zwave/ +[forum]: https://community.home-assistant.io/ +[issue]: https://github.com/home-assistant/home-assistant/issues +[discord]: https://discord.gg/c5DvZ4e diff --git a/source/images/blog/2017-09-0.53/components.png b/source/images/blog/2017-09-0.53/components.png new file mode 100644 index 0000000000000000000000000000000000000000..6cbcb055f2e3442f2c27f4a94c95ddf4ce00beb6 GIT binary patch literal 34150 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 z%0D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 Ddy5;@ literal 0 HcmV?d00001 diff --git a/source/images/blog/2017-09-0.53/customize-editor.png b/source/images/blog/2017-09-0.53/customize-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..066ff547bdd91e89fe44b6cb99340df6618ac8c7 GIT binary patch literal 24615 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 I%R2Hu04ZuwUjP6A literal 0 HcmV?d00001