From 70d3d0084b120997f218f8160dcc902b1f5be4ad Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 18 Nov 2017 12:19:10 -0800 Subject: [PATCH] Add release notes for 0.58 --- Gemfile.lock | 3 + ....markdown => switch.hikvisioncam.markdown} | 0 source/_posts/2017-11-18-release-58.markdown | 486 ++++++++++++++++++ .../images/blog/2017-11-0.58/components.png | Bin 0 -> 18349 bytes .../images/blog/2017-11-0.58/system_log.png | Bin 0 -> 23275 bytes 5 files changed, 489 insertions(+) rename source/_components/{switch.hikvision.markdown => switch.hikvisioncam.markdown} (100%) create mode 100644 source/_posts/2017-11-18-release-58.markdown create mode 100644 source/images/blog/2017-11-0.58/components.png create mode 100644 source/images/blog/2017-11-0.58/system_log.png diff --git a/Gemfile.lock b/Gemfile.lock index 5fc8a009c40..4a9684644f8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -109,5 +109,8 @@ DEPENDENCIES sinatra (~> 1.4.2) stringex (~> 1.4) +RUBY VERSION + ruby 2.4.1p111 + BUNDLED WITH 1.15.4 diff --git a/source/_components/switch.hikvision.markdown b/source/_components/switch.hikvisioncam.markdown similarity index 100% rename from source/_components/switch.hikvision.markdown rename to source/_components/switch.hikvisioncam.markdown diff --git a/source/_posts/2017-11-18-release-58.markdown b/source/_posts/2017-11-18-release-58.markdown new file mode 100644 index 00000000000..197e267cdfd --- /dev/null +++ b/source/_posts/2017-11-18-release-58.markdown @@ -0,0 +1,486 @@ +--- +layout: post +title: "0.58: More translations, faster frontend, system log" +description: "We now have 445 translators helping out and the frontend is receiving some polishing." +date: 2017-11-18 04:00:00 +date_formatted: "November 18, 2017" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2017-11-0.58/languages.png +--- + + + +

+The Hass.io release of 0.58 will be delayed by a couple of days because Pascal is moving this weekend. +

+ +## {% linkable_title Translation update %} + +Translations are up and running in full speed. Shortly after the last release we got our translation pipeline figured out. [@armills] and [@c727] are doing an amazing job managing this project. We've doubled the number of supported languages to 42 and the amount of keys to translate went from 8 to 130. Our translaters are on top of their game and 79% is already translated. + +Talking about our translators, we now have 445 people with an account to help with translations. Not bad for 3 weeks! + +And because more translations is more better, [@robbiet480] has added the iOS app to Lokalise, our translation management platform. The iOS app is currently supported in 7 different languages. + +[Learn more about how to help with translations](https://home-assistant.io/blog/2017/11/05/frontend-translations/) + +## {% linkable_title Frontend improvements continue %} + +Thanks to [@Andrey-git] we now are able to serve the frontend in modern JavaScript. Leveraging modern JavaScript makes the frontend faster to load and run. For now it's opt-in but we're looking into making it opt-out in the future. The ES5 version of the frontend will remain available for older devices. + +To try it once, add `?latest` to your Home Assistant bookmark. To make it the default on your installation, update your config to look like this: + +``` +frontend: + javascript_version: latest +``` + +

+For Custom UI users: your custom UI will need to be updated before it can work with the new version of the frontend. +

+ +### {% linkable_title System log enhanced %} + +Our about screen that shows the error logs has gained a nice upgrade by [@postlund]. Now the 50 latest exceptions will be displayed with the option to get more information. + +

+ Screenshot of the about screen showing the system log. + Screenshot of the about screen showing the system log. +

+ +## {% linkable_title New Platforms %} + +- pyLoad download sensor ([@iMarkus] - [#10089]) ([sensor.pyload docs]) (new-platform) +- Add LaCrosse sensor platform ([@hthiery] - [#10195]) ([sensor.lacrosse docs]) (new-platform) +- Refactor Neato botvac components as a vacuum ([@jabesq] - [#9946]) ([neato docs]) ([sensor.neato docs]) ([switch.neato docs]) ([vacuum.neato docs]) (breaking change) (new-platform) +- Add platform and sensors for Vultr VPS ([@GenericStudent] - [#9928]) ([vultr docs]) ([binary_sensor.vultr docs]) ([sensor.vultr docs]) (new-platform) +- Adds support for TileĀ® Bluetooth trackers ([@bachya] - [#10478]) ([device_tracker.tile docs]) (new-platform) +- Support presence detection using Hitron Coda router ([@arilotter] - [#9682]) ([device_tracker.hitron_coda docs]) (new-platform) +- Add basic backend support for a system log ([@postlund] - [#10492]) ([system_log docs]) (new-platform) +- New sensor viaggiatreno. ([@fabfurnari] - [#10522]) ([sensor.viaggiatreno docs]) (new-platform) + +## {% linkable_title 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://discord.gg/c5DvZ4e). 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](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + + +## {% linkable_title Breaking Changes %} + + - `hass.states.is_state_attr(entity_id, attribute, value)` has been removed. The template version still exists. Unused method parameter `wait` has been removed from `hass.bus.async_fire` ([@balloob] - [#10305]) (breaking change) +- Refactor Neato botvac components as a vacuum ([@jabesq] - [#9946]) ([neato docs]) ([switch.neato docs]) ([vacuum.neato docs]) (breaking change) (new-platform) +- Lutron released a firmware updated for the Caseta system which removed our ability to connect to and control the bridge device over SSH, breaking compatibility with pylutron_caseta and Home Assistant. Component has been updated to work again, please see the docs on how to set it up. ([@mdonoughe] - [#10286]) ([lutron_caseta docs]) (breaking change) + +## {% linkable_title All changes %} + +- Bump python-miio for improved device support ([@syssi] - [#10294]) ([light.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) +- pyLoad download sensor ([@iMarkus] - [#10089]) ([sensor.pyload docs]) (new-platform) +- Add LaCrosse sensor platform ([@hthiery] - [#10195]) ([sensor.lacrosse docs]) (new-platform) +- Clean up core ([@balloob] - [#10305]) (breaking change) +- Refactor Neato botvac components as a vacuum ([@jabesq] - [#9946]) ([neato docs]) ([sensor.neato docs]) ([switch.neato docs]) ([vacuum.neato docs]) (breaking change) (new-platform) +- Move constants to setup.py ([@fabaff] - [#10312]) ([no_ip docs]) +- Add option to overwrite file to the downloader component ([@arsaboo] - [#10298]) ([downloader docs]) +- Use constants for HTTP headers ([@fabaff] - [#10313]) ([binary_sensor.aurora docs]) ([device_tracker.tplink docs]) ([device_tracker.upc_connect docs]) ([media_player.bluesound docs]) ([sensor.haveibeenpwned docs]) ([sensor.zamg docs]) ([telegram_bot.polling docs]) +- fix a import in test causing vs code to fail to discover ([@perosb] - [#10358]) +- Upgrade sqlalchemy to 1.1.15 ([@fabaff] - [#10330]) +- Move counter component ([@fabaff] - [#10332]) ([counter docs]) +- Add platform and sensors for Vultr VPS ([@GenericStudent] - [#9928]) ([vultr docs]) ([binary_sensor.vultr docs]) ([sensor.vultr docs]) (new-platform) +- Add heal_node and test_node services. ([@turbokongen] - [#10369]) ([zwave docs]) +- Addition of new binary sensor class 'plug' ([@echox] - [#10336]) ([binary_sensor docs]) +- Upgrae simplepush to 1.1.4 ([@fabaff] - [#10365]) ([notify.simplepush docs]) +- Update aiohttp to 2.3.1 ([@pvizeli] - [#10139]) +- Device model identification of the Xiaomi Philips Ceiling Lamp fixed. ([@syssi] - [#10401]) ([light.xiaomi_miio docs]) +- Zwave save cache to file now. ([@turbokongen] - [#10381]) +- Bump to 0.12.2 to fix urllib3 dependency ([@MisterWil] - [#10420]) ([abode docs]) +- Remove extra info from zwave entity states ([@armills] - [#10413]) ([zwave docs]) +- Fixes issue #10425 ([@robmarkcole] - [#10426]) ([sensor.london_air docs]) +- Add baudrate option to Serial sensor ([@dgomes] - [#10439]) ([sensor.serial docs]) (breaking change) +- Remove model info from state ([@balloob] - [#10399]) ([light.tradfri docs]) +- update tibber library ([@danielhiversen] - [#10460]) ([sensor.tibber docs]) +- update pywebpush==1.3.0 ([@perosb] - [#10374]) ([notify.html5 docs]) +- Fix slow WOL switch test ([@balloob] - [#10455]) +- Fix recorder stop on SQLite vacuuming error ([@milanvo] - [#10405]) +- Add include/exclude filter to mqtt_statestream ([@mw-white] - [#10354]) ([mqtt_statestream docs]) +- Upgrade to 0.1.2 ([@TopdRob] - [#10348]) ([notify.free_mobile docs]) +- Upgrade pyatv to 0.3.6 ([@TopdRob] - [#10349]) ([apple_tv docs]) +- Remove useless temp converting ([@pvizeli] - [#10465]) ([climate.homematic docs]) +- Upgrade apns2 to 0.3.0 ([@TopdRob] - [#10347]) ([notify.apns docs]) +- Improvement of KNX climate component ([@Julius2342] - [#10388]) ([knx docs]) ([climate.knx docs]) +- Updated gc100 package requirement to 1.0.3a ([@davegravy] - [#10484]) ([gc100 docs]) +- Remove lag from Harmony remote platform ([@amelchio] - [#10218]) ([remote docs]) ([remote.harmony docs]) +- Improve error handling. ([@cgtobi] - [#10482]) ([influxdb docs]) +- Upgrade psutil to 5.4.1 ([@fabaff] - [#10490]) ([sensor.systemmonitor docs]) +- Upgrade youtube_dl to 2017.11.06 ([@fabaff] - [#10491]) ([media_extractor docs]) +- Fix for telegram polling. (added pausing when error occurs) ([@sander76] - [#10214]) ([telegram_bot.polling docs]) +- add JSON processing capabilities to sensor_serial ([@dgomes] - [#10476]) ([sensor.serial docs]) +- upgrade to new pylutron_caseta with TLS ([@mdonoughe] - [#10286]) ([lutron_caseta docs]) (breaking change) +- Bump dev to 0.58.0.dev0 ([@fabaff] - [#10510]) +- OwnTracks Message Handling ([@ehagan] - [#10489]) ([device_tracker.owntracks docs]) +- Add support for Alexa intent slot synonyms. ([@kmdm] - [#10469]) +- Introduce media progress for Yamaha Musiccast devices ([@jalmeroth] - [#10256]) ([media_player.yamaha_musiccast docs]) +- Add an option to serve ES6 JS to clients ([@andrey-git] - [#10474]) +- Adapt to new yarl API ([@tinloaf] - [#10527]) ([tts.google docs]) +- Update nederlandse_spoorwegen.py to include platform information ([@hmmbob] - [#10494]) ([sensor.nederlandse_spoorwegen docs]) +- Pin yarl ([@tinloaf] - [#10528]) +- Support configuration of region (no service url neccessary ([@molobrakos] - [#10513]) ([volvooncall docs]) +- Fix import in tests ([@andrey-git] - [#10525]) +- Update axis.py ([@Kane610] - [#10412]) ([axis docs]) +- Add attribute to show who last un/set alarm (SPC) ([@mbrrg] - [#9906]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) +- Fixed Wink Quirky Aros bugs. ([@w1ll1am23] - [#10533]) ([climate.wink docs]) +- Adds support for TileĀ® Bluetooth trackers ([@bachya] - [#10478]) ([device_tracker.tile docs]) (new-platform) +- telegram_bot: Support for sending videos ([@vickyg3] - [#10470]) ([telegram_bot docs]) ([notify.telegram docs]) +- Pre-construct frontend index.html ([@balloob] - [#10520]) +- notify.html5: use new json save and load functions ([@perosb] - [#10416]) ([notify.html5 docs]) +- Change to device state attributes ([@dgomes] - [#10536]) ([sensor.serial docs]) +- Google Assistant request sync service ([@r4nd0mbr1ck] - [#10165]) +- Optimize concurrent access to media player image cache ([@amelchio] - [#10345]) ([media_player docs]) +- webostv: set current source correctly ([@KapJI] - [#10548]) ([media_player.webostv docs]) +- Upgrade pysnmp to 4.4.2 ([@fabaff] - [#10539]) ([device_tracker.snmp docs]) ([sensor.snmp docs]) ([switch.snmp docs]) +- Fix and clean lametric ([@MartinHjelmare] - [#10391]) ([lametric docs]) ([notify.lametric docs]) +- Support presence detection using Hitron Coda router ([@arilotter] - [#9682]) ([device_tracker.hitron_coda docs]) (new-platform) +- Better support for int types ([@ziotibia81] - [#10409]) ([sensor.modbus docs]) +- Don't use the 'id' field since it can be autogenerated (fixes #10551). ([@kmdm] - [#10554]) +- pad packets to multiple of 4 characters ([@SteveEdson] - [#10560]) ([switch.broadlink docs]) +- Move temperature display helper from components to helpers ([@fabaff] - [#10555]) ([climate docs]) ([weather docs]) ([climate.eq3btsmart docs]) +- webostv: Reduce default timeout to prevent log spamming ([@abmantis] - [#10564]) ([media_player.webostv docs]) +- Fix lametric sound ([@MartinHjelmare] - [#10562]) ([lametric docs]) ([notify.lametric docs]) +- Use a template for the Universal media player state ([@azogue] - [#10395]) ([media_player.universal docs]) +- Verisure: Added option to set installation giid ([@abjorshammar] - [#10504]) ([verisure docs]) +- Bump ring_doorbell to 0.1.7 ([@tchellomello] - [#10566]) ([ring docs]) +- Add code to enable discovery for mqtt cover ([@marthoc] - [#10580]) ([cover.mqtt docs]) +- Google Assistant for climate entities: Support QUERY and respect system-wide unit_system setting. ([@emosenkis] - [#10346]) +- turn service call handler into coroutine ([@NovapaX] - [#10576]) ([configurator docs]) +- Add basic backend support for a system log ([@postlund] - [#10492]) ([system_log docs]) (new-platform) +- Tradfri unique identities ([@NovapaX] - [#10414]) ([tradfri docs]) +- Add panel build type ([@balloob] - [#10589]) +- Cloud updates ([@balloob] - [#10567]) +- Upgrade youtube_dl to 2017.11.15 ([@fabaff] - [#10592]) ([media_extractor docs]) +- Fix Yahoo Weather icons over SSL ([@OnFreund] - [#10602]) ([sensor.yweather docs]) +- Arlo - Fixes for updated library ([@jwillaz] - [#9892]) ([arlo docs]) ([camera.arlo docs]) ([sensor.arlo docs]) +- Do not add panel from system_log ([@postlund] - [#10600]) ([system_log docs]) +- Fix ValueError exception ([@ziotibia81] - [#10596]) ([sensor.modbus docs]) +- Fix Hikvision (motion) switch bug ([@arsaboo] - [#10608]) ([switch.hikvisioncam docs]) +- Allow unicode when dumping yaml ([@andrey-git] - [#10607]) +- Support script execution for Alexa ([@micbase] - [#10517]) ([alexa.smart_home docs]) +- bump client version ([@wardcraigj] - [#10610]) ([alarm_control_panel.totalconnect docs]) +- New sensor viaggiatreno. ([@fabfurnari] - [#10522]) ([sensor.viaggiatreno docs]) (new-platform) +- Modbus switch register support ([@ziotibia81] - [#10563]) ([switch.modbus docs]) +- Upgrade mypy to 0.550 ([@fabaff] - [#10591]) +- Small fix to be able to use mac and vendor in "device_tracker_new_device" event. ([@Boltgolt] - [#10537]) ([device_tracker docs]) +- add support for color temperature and color to Google Assistant ([@perosb] - [#10039]) +- Cleanup old stale restore feature ([@pvizeli] - [#10593]) ([light docs]) +- Correct input_datetime initial value parsing ([@colindunn] - [#10417]) ([input_datetime docs]) +- Change generic thermostat to control heating on mode change Off -> Auto ([@milanvo] - [#10601]) ([climate.generic_thermostat docs]) +- Improve WUnderground config validation ([@milanvo] - [#10573]) ([sensor.wunderground docs]) +- update hbmqtt to 0.9.1 ([@masarliev] - [#10611]) +- Allow to pass YandexTTS options via sevice call ([@andrey-git] - [#10578]) ([tts docs]) ([tts.yandextts docs]) +- Snapcast: bump version and enable reconnect. ([@janLo] - [#10626]) ([media_player.snapcast docs]) +- Fix async missing decorators ([@armills] - [#10628]) +- Alexa slot synonym fix ([@devspacenine] - [#10614]) +- Adjust logging in downloader component ([@amelchio] - [#10622]) ([downloader docs]) +- Added sorted() to python_script ([@etsinko] - [#10621]) ([python_script docs]) +- Add loglinefetch for frontend API call ([@turbokongen] - [#10579]) +- Fixes AirVisual bug regarding incorrect location data ([@bachya] - [#10054]) ([sensor.airvisual docs]) +- Make MQTT reconnection logic more resilient and fix race condition ([@cezarsa] - [#10133]) ([mqtt docs]) +- Alexa improvements ([@robbiet480] - [#10632]) ([alexa.smart_home docs]) +- Print entity type in "too slow" warnings ([@andrey-git] - [#10641]) +- Bump pyatv to 0.3.8 ([@postlund] - [#10643]) ([apple_tv docs]) +- Implement entity and domain exclude/include for Alexa ([@robbiet480] - [#10647]) + +[#10039]: https://github.com/home-assistant/home-assistant/pull/10039 +[#10054]: https://github.com/home-assistant/home-assistant/pull/10054 +[#10089]: https://github.com/home-assistant/home-assistant/pull/10089 +[#10133]: https://github.com/home-assistant/home-assistant/pull/10133 +[#10139]: https://github.com/home-assistant/home-assistant/pull/10139 +[#10165]: https://github.com/home-assistant/home-assistant/pull/10165 +[#10195]: https://github.com/home-assistant/home-assistant/pull/10195 +[#10214]: https://github.com/home-assistant/home-assistant/pull/10214 +[#10218]: https://github.com/home-assistant/home-assistant/pull/10218 +[#10256]: https://github.com/home-assistant/home-assistant/pull/10256 +[#10286]: https://github.com/home-assistant/home-assistant/pull/10286 +[#10294]: https://github.com/home-assistant/home-assistant/pull/10294 +[#10298]: https://github.com/home-assistant/home-assistant/pull/10298 +[#10305]: https://github.com/home-assistant/home-assistant/pull/10305 +[#10312]: https://github.com/home-assistant/home-assistant/pull/10312 +[#10313]: https://github.com/home-assistant/home-assistant/pull/10313 +[#10330]: https://github.com/home-assistant/home-assistant/pull/10330 +[#10332]: https://github.com/home-assistant/home-assistant/pull/10332 +[#10336]: https://github.com/home-assistant/home-assistant/pull/10336 +[#10345]: https://github.com/home-assistant/home-assistant/pull/10345 +[#10346]: https://github.com/home-assistant/home-assistant/pull/10346 +[#10347]: https://github.com/home-assistant/home-assistant/pull/10347 +[#10348]: https://github.com/home-assistant/home-assistant/pull/10348 +[#10349]: https://github.com/home-assistant/home-assistant/pull/10349 +[#10354]: https://github.com/home-assistant/home-assistant/pull/10354 +[#10358]: https://github.com/home-assistant/home-assistant/pull/10358 +[#10365]: https://github.com/home-assistant/home-assistant/pull/10365 +[#10369]: https://github.com/home-assistant/home-assistant/pull/10369 +[#10374]: https://github.com/home-assistant/home-assistant/pull/10374 +[#10381]: https://github.com/home-assistant/home-assistant/pull/10381 +[#10388]: https://github.com/home-assistant/home-assistant/pull/10388 +[#10391]: https://github.com/home-assistant/home-assistant/pull/10391 +[#10395]: https://github.com/home-assistant/home-assistant/pull/10395 +[#10399]: https://github.com/home-assistant/home-assistant/pull/10399 +[#10401]: https://github.com/home-assistant/home-assistant/pull/10401 +[#10405]: https://github.com/home-assistant/home-assistant/pull/10405 +[#10409]: https://github.com/home-assistant/home-assistant/pull/10409 +[#10412]: https://github.com/home-assistant/home-assistant/pull/10412 +[#10413]: https://github.com/home-assistant/home-assistant/pull/10413 +[#10414]: https://github.com/home-assistant/home-assistant/pull/10414 +[#10416]: https://github.com/home-assistant/home-assistant/pull/10416 +[#10417]: https://github.com/home-assistant/home-assistant/pull/10417 +[#10420]: https://github.com/home-assistant/home-assistant/pull/10420 +[#10426]: https://github.com/home-assistant/home-assistant/pull/10426 +[#10439]: https://github.com/home-assistant/home-assistant/pull/10439 +[#10455]: https://github.com/home-assistant/home-assistant/pull/10455 +[#10460]: https://github.com/home-assistant/home-assistant/pull/10460 +[#10465]: https://github.com/home-assistant/home-assistant/pull/10465 +[#10469]: https://github.com/home-assistant/home-assistant/pull/10469 +[#10470]: https://github.com/home-assistant/home-assistant/pull/10470 +[#10474]: https://github.com/home-assistant/home-assistant/pull/10474 +[#10476]: https://github.com/home-assistant/home-assistant/pull/10476 +[#10478]: https://github.com/home-assistant/home-assistant/pull/10478 +[#10482]: https://github.com/home-assistant/home-assistant/pull/10482 +[#10484]: https://github.com/home-assistant/home-assistant/pull/10484 +[#10489]: https://github.com/home-assistant/home-assistant/pull/10489 +[#10490]: https://github.com/home-assistant/home-assistant/pull/10490 +[#10491]: https://github.com/home-assistant/home-assistant/pull/10491 +[#10492]: https://github.com/home-assistant/home-assistant/pull/10492 +[#10494]: https://github.com/home-assistant/home-assistant/pull/10494 +[#10504]: https://github.com/home-assistant/home-assistant/pull/10504 +[#10510]: https://github.com/home-assistant/home-assistant/pull/10510 +[#10513]: https://github.com/home-assistant/home-assistant/pull/10513 +[#10517]: https://github.com/home-assistant/home-assistant/pull/10517 +[#10520]: https://github.com/home-assistant/home-assistant/pull/10520 +[#10522]: https://github.com/home-assistant/home-assistant/pull/10522 +[#10525]: https://github.com/home-assistant/home-assistant/pull/10525 +[#10527]: https://github.com/home-assistant/home-assistant/pull/10527 +[#10528]: https://github.com/home-assistant/home-assistant/pull/10528 +[#10533]: https://github.com/home-assistant/home-assistant/pull/10533 +[#10536]: https://github.com/home-assistant/home-assistant/pull/10536 +[#10537]: https://github.com/home-assistant/home-assistant/pull/10537 +[#10539]: https://github.com/home-assistant/home-assistant/pull/10539 +[#10548]: https://github.com/home-assistant/home-assistant/pull/10548 +[#10554]: https://github.com/home-assistant/home-assistant/pull/10554 +[#10555]: https://github.com/home-assistant/home-assistant/pull/10555 +[#10560]: https://github.com/home-assistant/home-assistant/pull/10560 +[#10562]: https://github.com/home-assistant/home-assistant/pull/10562 +[#10563]: https://github.com/home-assistant/home-assistant/pull/10563 +[#10564]: https://github.com/home-assistant/home-assistant/pull/10564 +[#10566]: https://github.com/home-assistant/home-assistant/pull/10566 +[#10567]: https://github.com/home-assistant/home-assistant/pull/10567 +[#10573]: https://github.com/home-assistant/home-assistant/pull/10573 +[#10576]: https://github.com/home-assistant/home-assistant/pull/10576 +[#10578]: https://github.com/home-assistant/home-assistant/pull/10578 +[#10579]: https://github.com/home-assistant/home-assistant/pull/10579 +[#10580]: https://github.com/home-assistant/home-assistant/pull/10580 +[#10589]: https://github.com/home-assistant/home-assistant/pull/10589 +[#10591]: https://github.com/home-assistant/home-assistant/pull/10591 +[#10592]: https://github.com/home-assistant/home-assistant/pull/10592 +[#10593]: https://github.com/home-assistant/home-assistant/pull/10593 +[#10596]: https://github.com/home-assistant/home-assistant/pull/10596 +[#10600]: https://github.com/home-assistant/home-assistant/pull/10600 +[#10601]: https://github.com/home-assistant/home-assistant/pull/10601 +[#10602]: https://github.com/home-assistant/home-assistant/pull/10602 +[#10607]: https://github.com/home-assistant/home-assistant/pull/10607 +[#10608]: https://github.com/home-assistant/home-assistant/pull/10608 +[#10610]: https://github.com/home-assistant/home-assistant/pull/10610 +[#10611]: https://github.com/home-assistant/home-assistant/pull/10611 +[#10614]: https://github.com/home-assistant/home-assistant/pull/10614 +[#10621]: https://github.com/home-assistant/home-assistant/pull/10621 +[#10622]: https://github.com/home-assistant/home-assistant/pull/10622 +[#10626]: https://github.com/home-assistant/home-assistant/pull/10626 +[#10628]: https://github.com/home-assistant/home-assistant/pull/10628 +[#10632]: https://github.com/home-assistant/home-assistant/pull/10632 +[#10641]: https://github.com/home-assistant/home-assistant/pull/10641 +[#10643]: https://github.com/home-assistant/home-assistant/pull/10643 +[#10647]: https://github.com/home-assistant/home-assistant/pull/10647 +[#9682]: https://github.com/home-assistant/home-assistant/pull/9682 +[#9892]: https://github.com/home-assistant/home-assistant/pull/9892 +[#9906]: https://github.com/home-assistant/home-assistant/pull/9906 +[#9928]: https://github.com/home-assistant/home-assistant/pull/9928 +[#9946]: https://github.com/home-assistant/home-assistant/pull/9946 +[@Boltgolt]: https://github.com/Boltgolt +[@GenericStudent]: https://github.com/GenericStudent +[@Julius2342]: https://github.com/Julius2342 +[@Kane610]: https://github.com/Kane610 +[@KapJI]: https://github.com/KapJI +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MisterWil]: https://github.com/MisterWil +[@NovapaX]: https://github.com/NovapaX +[@OnFreund]: https://github.com/OnFreund +[@SteveEdson]: https://github.com/SteveEdson +[@TopdRob]: https://github.com/TopdRob +[@abjorshammar]: https://github.com/abjorshammar +[@abmantis]: https://github.com/abmantis +[@amelchio]: https://github.com/amelchio +[@andrey-git]: https://github.com/andrey-git +[@arilotter]: https://github.com/arilotter +[@armills]: https://github.com/armills +[@arsaboo]: https://github.com/arsaboo +[@azogue]: https://github.com/azogue +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@cezarsa]: https://github.com/cezarsa +[@cgtobi]: https://github.com/cgtobi +[@colindunn]: https://github.com/colindunn +[@danielhiversen]: https://github.com/danielhiversen +[@davegravy]: https://github.com/davegravy +[@devspacenine]: https://github.com/devspacenine +[@dgomes]: https://github.com/dgomes +[@echox]: https://github.com/echox +[@ehagan]: https://github.com/ehagan +[@emosenkis]: https://github.com/emosenkis +[@etsinko]: https://github.com/etsinko +[@fabaff]: https://github.com/fabaff +[@fabfurnari]: https://github.com/fabfurnari +[@hmmbob]: https://github.com/hmmbob +[@hthiery]: https://github.com/hthiery +[@iMarkus]: https://github.com/iMarkus +[@jabesq]: https://github.com/jabesq +[@jalmeroth]: https://github.com/jalmeroth +[@janLo]: https://github.com/janLo +[@jwillaz]: https://github.com/jwillaz +[@kmdm]: https://github.com/kmdm +[@marthoc]: https://github.com/marthoc +[@masarliev]: https://github.com/masarliev +[@mbrrg]: https://github.com/mbrrg +[@mdonoughe]: https://github.com/mdonoughe +[@micbase]: https://github.com/micbase +[@milanvo]: https://github.com/milanvo +[@molobrakos]: https://github.com/molobrakos +[@mw-white]: https://github.com/mw-white +[@perosb]: https://github.com/perosb +[@postlund]: https://github.com/postlund +[@pvizeli]: https://github.com/pvizeli +[@r4nd0mbr1ck]: https://github.com/r4nd0mbr1ck +[@robbiet480]: https://github.com/robbiet480 +[@c727]: https://github.com/c727 +[@robmarkcole]: https://github.com/robmarkcole +[@sander76]: https://github.com/sander76 +[@syssi]: https://github.com/syssi +[@tchellomello]: https://github.com/tchellomello +[@tinloaf]: https://github.com/tinloaf +[@turbokongen]: https://github.com/turbokongen +[@vickyg3]: https://github.com/vickyg3 +[@w1ll1am23]: https://github.com/w1ll1am23 +[@wardcraigj]: https://github.com/wardcraigj +[@ziotibia81]: https://github.com/ziotibia81 +[abode docs]: https://home-assistant.io/components/abode/ +[alarm_control_panel.spc docs]: https://home-assistant.io/components/alarm_control_panel.spc/ +[alarm_control_panel.totalconnect docs]: https://home-assistant.io/components/alarm_control_panel.totalconnect/ +[alexa.const docs]: https://home-assistant.io/components/alexa.const/ +[alexa.intent docs]: https://home-assistant.io/components/alexa.intent/ +[alexa.smart_home docs]: https://home-assistant.io/components/alexa.smart_home/ +[apple_tv docs]: https://home-assistant.io/components/apple_tv/ +[arlo docs]: https://home-assistant.io/components/arlo/ +[axis docs]: https://home-assistant.io/components/axis/ +[binary_sensor docs]: https://home-assistant.io/components/binary_sensor/ +[binary_sensor.aurora docs]: https://home-assistant.io/components/binary_sensor.aurora/ +[binary_sensor.spc docs]: https://home-assistant.io/components/binary_sensor.spc/ +[binary_sensor.vultr docs]: https://home-assistant.io/components/binary_sensor.vultr/ +[camera.arlo docs]: https://home-assistant.io/components/camera.arlo/ +[climate docs]: https://home-assistant.io/components/climate/ +[climate.eq3btsmart docs]: https://home-assistant.io/components/climate.eq3btsmart/ +[climate.generic_thermostat docs]: https://home-assistant.io/components/climate.generic_thermostat/ +[climate.homematic docs]: https://home-assistant.io/components/climate.homematic/ +[climate.knx docs]: https://home-assistant.io/components/climate.knx/ +[climate.wink docs]: https://home-assistant.io/components/climate.wink/ +[cloud docs]: https://home-assistant.io/components/cloud/ +[cloud.auth_api docs]: https://home-assistant.io/components/cloud.auth_api/ +[cloud.const docs]: https://home-assistant.io/components/cloud.const/ +[cloud.http_api docs]: https://home-assistant.io/components/cloud.http_api/ +[cloud.iot docs]: https://home-assistant.io/components/cloud.iot/ +[config.zwave docs]: https://home-assistant.io/components/config.zwave/ +[configurator docs]: https://home-assistant.io/components/configurator/ +[counter docs]: https://home-assistant.io/components/counter/ +[cover.mqtt docs]: https://home-assistant.io/components/cover.mqtt/ +[device_tracker docs]: https://home-assistant.io/components/device_tracker/ +[device_tracker.hitron_coda docs]: https://home-assistant.io/components/device_tracker.hitron_coda/ +[device_tracker.owntracks docs]: https://home-assistant.io/components/device_tracker.owntracks/ +[device_tracker.snmp docs]: https://home-assistant.io/components/device_tracker.snmp/ +[device_tracker.tile docs]: https://home-assistant.io/components/device_tracker.tile/ +[device_tracker.tplink docs]: https://home-assistant.io/components/device_tracker.tplink/ +[device_tracker.upc_connect docs]: https://home-assistant.io/components/device_tracker.upc_connect/ +[downloader docs]: https://home-assistant.io/components/downloader/ +[gc100 docs]: https://home-assistant.io/components/gc100/ +[google_assistant.smart_home docs]: https://home-assistant.io/components/google_assistant.smart_home/ +[hassio docs]: https://home-assistant.io/components/hassio/ +[influxdb docs]: https://home-assistant.io/components/influxdb/ +[input_datetime docs]: https://home-assistant.io/components/input_datetime/ +[knx docs]: https://home-assistant.io/components/knx/ +[lametric docs]: https://home-assistant.io/components/lametric/ +[light docs]: https://home-assistant.io/components/light/ +[light.tradfri docs]: https://home-assistant.io/components/light.tradfri/ +[light.xiaomi_miio docs]: https://home-assistant.io/components/light.xiaomi_miio/ +[lutron_caseta docs]: https://home-assistant.io/components/lutron_caseta/ +[media_extractor docs]: https://home-assistant.io/components/media_extractor/ +[media_player docs]: https://home-assistant.io/components/media_player/ +[media_player.bluesound docs]: https://home-assistant.io/components/media_player.bluesound/ +[media_player.snapcast docs]: https://home-assistant.io/components/media_player.snapcast/ +[media_player.universal docs]: https://home-assistant.io/components/media_player.universal/ +[media_player.webostv docs]: https://home-assistant.io/components/media_player.webostv/ +[media_player.yamaha_musiccast docs]: https://home-assistant.io/components/media_player.yamaha_musiccast/ +[mqtt docs]: https://home-assistant.io/components/mqtt/ +[mqtt.discovery docs]: https://home-assistant.io/components/mqtt.discovery/ +[mqtt.server docs]: https://home-assistant.io/components/mqtt.server/ +[mqtt_statestream docs]: https://home-assistant.io/components/mqtt_statestream/ +[neato docs]: https://home-assistant.io/components/neato/ +[no_ip docs]: https://home-assistant.io/components/no_ip/ +[notify.apns docs]: https://home-assistant.io/components/notify.apns/ +[notify.free_mobile docs]: https://home-assistant.io/components/notify.free_mobile/ +[notify.html5 docs]: https://home-assistant.io/components/notify.html5/ +[notify.lametric docs]: https://home-assistant.io/components/notify.lametric/ +[notify.simplepush docs]: https://home-assistant.io/components/notify.simplepush/ +[notify.telegram docs]: https://home-assistant.io/components/notify.telegram/ +[python_script docs]: https://home-assistant.io/components/python_script/ +[remote docs]: https://home-assistant.io/components/remote/ +[remote.harmony docs]: https://home-assistant.io/components/remote.harmony/ +[ring docs]: https://home-assistant.io/components/ring/ +[sensor.airvisual docs]: https://home-assistant.io/components/sensor.airvisual/ +[sensor.arlo docs]: https://home-assistant.io/components/sensor.arlo/ +[sensor.haveibeenpwned docs]: https://home-assistant.io/components/sensor.haveibeenpwned/ +[sensor.lacrosse docs]: https://home-assistant.io/components/sensor.lacrosse/ +[sensor.london_air docs]: https://home-assistant.io/components/sensor.london_air/ +[sensor.modbus docs]: https://home-assistant.io/components/sensor.modbus/ +[sensor.neato docs]: https://home-assistant.io/components/sensor.neato/ +[sensor.nederlandse_spoorwegen docs]: https://home-assistant.io/components/sensor.nederlandse_spoorwegen/ +[sensor.pyload docs]: https://home-assistant.io/components/sensor.pyload/ +[sensor.serial docs]: https://home-assistant.io/components/sensor.serial/ +[sensor.snmp docs]: https://home-assistant.io/components/sensor.snmp/ +[sensor.systemmonitor docs]: https://home-assistant.io/components/sensor.systemmonitor/ +[sensor.tibber docs]: https://home-assistant.io/components/sensor.tibber/ +[sensor.viaggiatreno docs]: https://home-assistant.io/components/sensor.viaggiatreno/ +[sensor.vultr docs]: https://home-assistant.io/components/sensor.vultr/ +[sensor.wunderground docs]: https://home-assistant.io/components/sensor.wunderground/ +[sensor.yweather docs]: https://home-assistant.io/components/sensor.yweather/ +[sensor.zamg docs]: https://home-assistant.io/components/sensor.zamg/ +[spc docs]: https://home-assistant.io/components/spc/ +[switch.broadlink docs]: https://home-assistant.io/components/switch.broadlink/ +[switch.hikvisioncam docs]: https://home-assistant.io/components/switch.hikvisioncam/ +[switch.modbus docs]: https://home-assistant.io/components/switch.modbus/ +[switch.neato docs]: https://home-assistant.io/components/switch.neato/ +[switch.snmp docs]: https://home-assistant.io/components/switch.snmp/ +[switch.xiaomi_miio docs]: https://home-assistant.io/components/switch.xiaomi_miio/ +[system_log docs]: https://home-assistant.io/components/system_log/ +[telegram_bot docs]: https://home-assistant.io/components/telegram_bot/ +[telegram_bot.polling docs]: https://home-assistant.io/components/telegram_bot.polling/ +[tradfri docs]: https://home-assistant.io/components/tradfri/ +[tts docs]: https://home-assistant.io/components/tts/ +[tts.google docs]: https://home-assistant.io/components/tts.google/ +[tts.yandextts docs]: https://home-assistant.io/components/tts.yandextts/ +[vacuum.neato docs]: https://home-assistant.io/components/vacuum.neato/ +[verisure docs]: https://home-assistant.io/components/verisure/ +[volvooncall docs]: https://home-assistant.io/components/volvooncall/ +[vultr docs]: https://home-assistant.io/components/vultr/ +[weather docs]: https://home-assistant.io/components/weather/ +[weather.demo docs]: https://home-assistant.io/components/weather.demo/ +[websocket_api docs]: https://home-assistant.io/components/websocket_api/ +[zwave docs]: https://home-assistant.io/components/zwave/ diff --git a/source/images/blog/2017-11-0.58/components.png b/source/images/blog/2017-11-0.58/components.png new file mode 100644 index 0000000000000000000000000000000000000000..bc985562a5433ac9f1107a6367afb607c72fbb0c GIT binary patch literal 18349 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 literal 0 HcmV?d00001 diff --git a/source/images/blog/2017-11-0.58/system_log.png b/source/images/blog/2017-11-0.58/system_log.png new file mode 100644 index 0000000000000000000000000000000000000000..06b363917a07197e073c6c5432b61923f5bf1d07 GIT binary patch literal 23275 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 literal 0 HcmV?d00001