From cb858f2b1f4fd28f19dad1cf7b409033bc122c70 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 27 Apr 2018 17:05:37 -0400 Subject: [PATCH] Add blog post --- source/_components/light.eufy.markdown | 2 +- source/_components/sensor.uscis.markdown | 6 +- source/_components/switch.eufy.markdown | 2 +- source/_posts/2018-04-27-release-68.markdown | 124 ++++++++++++------ .../images/blog/2018-04-0.68/components.png | Bin 0 -> 39722 bytes 5 files changed, 87 insertions(+), 47 deletions(-) create mode 100644 source/images/blog/2018-04-0.68/components.png diff --git a/source/_components/light.eufy.markdown b/source/_components/light.eufy.markdown index 872526e1eda..d8596c00487 100644 --- a/source/_components/light.eufy.markdown +++ b/source/_components/light.eufy.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "EufyLights" +title: "Eufy Lights" description: "Instructions on how to integrate Eufy LED lights into Home Assistant." date: 2018-04-09 19:00 sidebar: true diff --git a/source/_components/sensor.uscis.markdown b/source/_components/sensor.uscis.markdown index 49d55b0416f..3d214dc818a 100644 --- a/source/_components/sensor.uscis.markdown +++ b/source/_components/sensor.uscis.markdown @@ -7,7 +7,7 @@ sidebar: false comments: false sharing: true footer: true -logo: uscis.jpg +logo: uscis.png ha_category: Sensor ha_release: 0.68 ha_iot_class: "Cloud Polling" @@ -31,9 +31,9 @@ friendly_name: default: USCIS type: string case_id: - description: Case/receipt number used to get the case details from USCIS web client. + description: Case/receipt number used to get the case details from USCIS web client. required: true type: string {% endconfiguration %} -All the data will be fetch from [USCIS](https://egov.uscis.gov/casestatus/mycasestatus.do). +All the data will be fetch from [USCIS](https://egov.uscis.gov/casestatus/mycasestatus.do). diff --git a/source/_components/switch.eufy.markdown b/source/_components/switch.eufy.markdown index 0bfbae81e5d..1a79dbd26bd 100644 --- a/source/_components/switch.eufy.markdown +++ b/source/_components/switch.eufy.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "EufySwitch" +title: "Eufy Switch" description: "Instructions on how to integrate Eufy switches into Home Assistant." date: 2018-04-09 19:00 sidebar: true diff --git a/source/_posts/2018-04-27-release-68.markdown b/source/_posts/2018-04-27-release-68.markdown index cc616913a5b..fc39df14051 100644 --- a/source/_posts/2018-04-27-release-68.markdown +++ b/source/_posts/2018-04-27-release-68.markdown @@ -1,8 +1,8 @@ --- layout: post -title: "0.68: UPDATE DATE" -description: "UPDATE DATE" -date: 2018-04-20 00:01:00 +title: "0.68: HomeKit control, Eufy, FritzBox, SigFox sensors" +description: "Enjoy your weekend with this brand new release of Home Assistant." +date: 2018-04-27 00:01:00 date_formatted: "April 27, 2018" author: Paulus Schoutsen author_twitter: balloob @@ -13,11 +13,11 @@ og_image: /images/blog/2018-04-0.68/components.png -Highlights: +Weekend is around the corner and that means that it's time for the next release of Home Assistant. 0.68 brings a ton of great goodies and bug fixes. -- Ability to _control_ HomeKit -- Eufy bulbs -- Breaking MDI icons? +One of the coolest features this release is by [@mjg59]: you are now able to **control** HomeKit devices. Previously, it was possible to control Home Assistant from iOS devices using the HomeKit protocol. With this release, Home Assistant is able to become the controller and use HomeKit to control lights and switches directly. Since HomeKit is vendor agnostic, it means that any HomeKit light or switch will now be compatible with Home Assistant. Very cool. + +Another cool new platform, also by [@mjg59], is support for Eufy devices. Eufy is the Home Automation brand of Anker and they have been producing reasonably priced devices which can now be controlled by Home Assistant too. Thanks for all your contributions [@mjg59] ❤️. ## {% linkable_title New Platforms %} @@ -29,7 +29,6 @@ Highlights: - Adds SigFox sensor ([@robmarkcole] - [#13731]) ([sensor.sigfox docs]) (new-platform) - Add blackbird media player component ([@koolsb] - [#13549]) ([media_player.blackbird docs]) (new-platform) - Add support for Sensirion SHT31 temperature/humidity sensor ([@viorels] - [#12952]) ([sensor.sht31 docs]) (new-platform) -- Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.lmsensor docs]) ([sensor.miflora docs]) (new-platform) - Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform) ## {% linkable_title New Features %} @@ -40,15 +39,6 @@ Highlights: - Support Garage Doors in HomeKit ([@marthoc] - [#13796]) ([homekit docs]) (new-feature) - Support basic covers with open/close/stop services HomeKit ([@nickw444] - [#13819]) ([homekit docs]) (new-feature) -## {% linkable_title Beta Fixes %} - -- Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform) -- Order the output of the automation editor ([@balloob] - [#14019]) ([config docs]) (beta fix) -- HomeKit Alarm Control Panel Code Exception Fix ([@schmittx] - [#14025]) ([homekit docs]) (beta fix) -- Revert cast platform polling mode ([@OttoWinter] - [#14027]) ([media_player.cast docs]) (beta fix) -- Handle HomeKit configuration failure more cleanly ([@mjg59] - [#14041]) ([homekit_controller docs]) (beta fix) -- Update device classes for contact sensor HomeKit ([@marthoc] - [#14051]) ([homekit docs]) (beta fix) - ## {% 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. @@ -60,18 +50,52 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Breaking Changes %} -- Support for multiple MAX!Cube LAN gateways added ([@syssi] - [#13517]) ([maxcube docs]) ([binary_sensor.maxcube docs]) ([climate.maxcube docs]) (breaking change) -- Disable ebox requirement ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change) +- Icons! Material Design Icons has implemented some naming guidelines and this caused 9 icons to change names, 3 of which are home automation icons: `roomba` -> `robot-vacuum`, `nest-protect` -> `smoke-detector`, `nest-thermostat` -> `thermostat` ([see all changes](http://templarian.com/2018/04/18/material-design-icons-v2-3-54/)). +- Support for multiple MAX!Cube LAN gateways caused a slight change to the configuration schema. Make sure to check the docs for the new one. ([@syssi] - [#13517]) ([maxcube docs]) ([binary_sensor.maxcube docs]) ([climate.maxcube docs]) (breaking change) +- Ebox sensor platform has been disabled because the dependency was not compatible with pip 10. ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change) + +## {% linkable_title Beta Fixes %} + +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) +- Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform) +- Order the output of the automation editor ([@balloob] - [#14019]) ([config docs]) (beta fix) +- HomeKit Alarm Control Panel Code Exception Fix ([@schmittx] - [#14025]) ([homekit docs]) (beta fix) +- Revert cast platform polling mode ([@OttoWinter] - [#14027]) ([media_player.cast docs]) (beta fix) +- Handle HomeKit configuration failure more cleanly ([@mjg59] - [#14041]) ([homekit_controller docs]) (beta fix) +- Update device classes for contact sensor HomeKit ([@marthoc] - [#14051]) ([homekit docs]) (beta fix) +- Upgrade broadlink lib ([@Danielhiversen] - [#14074]) ([sensor.broadlink docs]) ([switch.broadlink docs]) (beta fix) +- Fix timezone issue when calculating min/max values in tibber #14009 ([@Danielhiversen] - [#14080]) ([sensor.tibber docs]) (beta fix) +- Updated list of AWS regions for Amazon Polly ([@GotoCode] - [#14097]) ([tts docs]) (beta fix) ## {% linkable_title All changes %} - Update Homekit to 1.1.9 ([@cdce8p] - [#13716]) ([homekit docs]) -- Update docstrings ([@fabaff] - [#13720]) ([ihc docs]) ([cover.opengarage docs]) ([cover.tahoma docs]) ([light.aurora docs]) ([sensor.trafikverket_weatherstation docs]) -- Add option to ignore availability in google calendar events ([@cgtobi] - [#13714]) ([google docs]) ([calendar.google docs]) +- Update docstrings ([@fabaff] - [#13720]) ([ihc docs]) ([cover.opengarage docs]) ([cover.tahoma docs]) ([sensor.trafikverket_weatherstation docs]) +- Add option to ignore availability in google calendar events ([@cgtobi] - [#13714]) ([calendar.google docs]) - Allow use of date_string in service call ([@Juggels] - [#13256]) ([calendar.todoist docs]) - Add timeout / debounce (for brightness and others) ([@cdce8p] - [#13534]) ([homekit docs]) - added support for smappee water sensors ([@hmn] - [#12831]) ([smappee docs]) ([sensor.smappee docs]) - Initialise filter_sensor with historical values ([@dgomes] - [#13075]) ([sensor.filter docs]) +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) - Bluesound bugfix status 595 and await ([@thrawnarn] - [#13727]) ([media_player.bluesound docs]) - Upgrade aiohttp to 3.1.2 ([@fabaff] - [#13732]) - Upgrade sqlalchemy to 1.2.6 ([@fabaff] - [#13733]) ([sensor.sql docs]) @@ -79,6 +103,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Update CODEOWNERS (sensor.filter, sensor.upnp) ([@dgomes] - [#13736]) - Reset permission ([@fabaff] - [#13743]) ([light.abode docs]) - Throw an error when invalid device_mode is given ([@dangyuluo] - [#13739]) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) - Upgrade netdisco to 1.3.1 ([@fabaff] - [#13744]) - Add MQTT Sensor unique_id ([@OttoWinter] - [#13318]) ([sensor.mqtt docs]) - Prepare entity component for config entries ([@balloob] - [#13730]) @@ -118,13 +143,18 @@ Experiencing issues introduced by this release? Please report them in our [issue - bump python-ecobee-api version to 0.0.18 ([@geekofweek] - [#13854]) ([ecobee docs]) - Adding USCIS component ([@meauxt] - [#13764]) ([sensor.uscis docs]) (new-platform) - Avoid unnecessary cast state updates ([@dersger] - [#13770]) ([media_player.cast docs]) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) - Update yweather.py ([@TheCellMC] - [#13851]) ([weather.yweather docs]) - add support for Kodi discovery ([@escoand] - [#13790]) ([media_player.kodi docs]) - Further untangle data entry flow ([@balloob] - [#13855]) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) - Added snips service descriptions ([@tschmidty69] - [#13883]) - Add unique_id for BMW ConnectedDrive ([@gerard33] - [#13888]) ([binary_sensor.bmw_connected_drive docs]) ([lock.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) - Revert "Update yweather.py" ([@pvizeli] - [#13900]) ([weather.yweather docs]) - Eufy colour bulb updates ([@mjg59] - [#13895]) ([eufy docs]) ([light.eufy docs]) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) - Fritzbox netmonitor name ([@escoand] - [#13903]) ([sensor.fritzbox_netmonitor docs]) - Restore typeerror check for units sans energy tracking ([@andersonshatch] - [#13824]) ([switch.edimax docs]) - Add more math functions to templates ([@Shou] - [#13915]) @@ -135,8 +165,10 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add support for new platform: climate.modbus ([@Kirchoff] - [#12224]) ([climate.modbus docs]) (new-platform) - Hive R3 update ([@KJonline] - [#13357]) ([hive docs]) ([binary_sensor.hive docs]) ([climate.hive docs]) ([light.hive docs]) ([sensor.hive docs]) ([switch.hive docs]) - Updated foobot_async package version ([@reefab] - [#13942]) ([sensor.foobot docs]) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) - Upgrade alpha_vantage to 2.0.0 ([@fabaff] - [#13943]) ([sensor.alpha_vantage docs]) - Cleanup on exit ([@dgomes] - [#13918]) ([media_player.mediaroom docs]) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) - Add data entry flow helper ([@balloob] - [#13935]) ([config docs]) - Xiaomi MiIO Device Tracker: Unused variable removed ([@syssi] - [#13948]) ([device_tracker docs]) - Implement play media to set a channel based on (by priority): ([@stephanerosi] - [#13934]) ([media_player.webostv docs]) @@ -148,7 +180,20 @@ Experiencing issues introduced by this release? Please report them in our [issue - Added FB messenger broadcast api to notify.facebook component ([@B1tMaster] - [#12459]) ([notify.facebook docs]) - Added web view for TTS to get url ([@tschmidty69] - [#13882]) ([tts docs]) - Add services for bmw_connected_drive ([@ChristianKuehnel] - [#13497]) ([bmw_connected_drive docs]) ([device_tracker docs]) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) - Bump deCONZ requirement to v36 ([@Kane610] - [#13960]) ([deconz docs]) +- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix) +- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix) +- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix) +- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix) +- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix) +- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix) +- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix) +- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix) +- Upgrade pyqwikswitch to 0.71 ([@kellerza] - [#13920]) ([qwikswitch docs]) +- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix) +- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix) +- Revert "Upgrade pyqwikswitch to 0.71 ([@balloob] - [#13920]) ([qwikswitch docs]) - Bump skybellpy version to 0.1.2 ([@MisterWil] - [#13974]) ([skybell docs]) - Fix typo an coding style ([@stephanerosi] - [#13970]) ([device_tracker docs]) - Params of the send command can be a list now ([@syssi] - [#13905]) ([vacuum docs]) @@ -166,7 +211,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Useless code removed ([@syssi] - [#13996]) ([maxcube docs]) - Add Homematic HmIP-SWO-PR weather sensor support ([@pascalhahn] - [#13904]) ([homematic docs]) - Disable ebox requirement ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change) -- Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.lmsensor docs]) ([sensor.miflora docs]) (new-platform) +- Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.miflora docs]) - Log an error instead of raising an exception ([@syssi] - [#14006]) ([sensor.sht31 docs]) - Tibber available ([@Danielhiversen] - [#13865]) ([sensor.tibber docs]) - Upgrade pylutron-caseta to 0.5.0 to reestablish connections ([@rohankapoorcom] - [#14013]) ([lutron_caseta docs]) @@ -177,6 +222,9 @@ Experiencing issues introduced by this release? Please report them in our [issue - Revert cast platform polling mode ([@OttoWinter] - [#14027]) ([media_player.cast docs]) (beta fix) - Handle HomeKit configuration failure more cleanly ([@mjg59] - [#14041]) ([homekit_controller docs]) (beta fix) - Update device classes for contact sensor HomeKit ([@marthoc] - [#14051]) ([homekit docs]) (beta fix) +- Upgrade broadlink lib ([@Danielhiversen] - [#14074]) ([sensor.broadlink docs]) ([switch.broadlink docs]) (beta fix) +- Fix timezone issue when calculating min/max values in tibber #14009 ([@Danielhiversen] - [#14080]) ([sensor.tibber docs]) (beta fix) +- Updated list of AWS regions for Amazon Polly ([@GotoCode] - [#14097]) ([tts docs]) (beta fix) [#10688]: https://github.com/home-assistant/home-assistant/pull/10688 [#12224]: https://github.com/home-assistant/home-assistant/pull/12224 @@ -292,11 +340,21 @@ Experiencing issues introduced by this release? Please report them in our [issue [#14003]: https://github.com/home-assistant/home-assistant/pull/14003 [#14005]: https://github.com/home-assistant/home-assistant/pull/14005 [#14006]: https://github.com/home-assistant/home-assistant/pull/14006 +[#14008]: https://github.com/home-assistant/home-assistant/pull/14008 [#14010]: https://github.com/home-assistant/home-assistant/pull/14010 [#14013]: https://github.com/home-assistant/home-assistant/pull/14013 +[#14019]: https://github.com/home-assistant/home-assistant/pull/14019 +[#14025]: https://github.com/home-assistant/home-assistant/pull/14025 +[#14027]: https://github.com/home-assistant/home-assistant/pull/14027 +[#14041]: https://github.com/home-assistant/home-assistant/pull/14041 +[#14051]: https://github.com/home-assistant/home-assistant/pull/14051 +[#14074]: https://github.com/home-assistant/home-assistant/pull/14074 +[#14080]: https://github.com/home-assistant/home-assistant/pull/14080 +[#14097]: https://github.com/home-assistant/home-assistant/pull/14097 [@B1tMaster]: https://github.com/B1tMaster [@ChristianKuehnel]: https://github.com/ChristianKuehnel [@Danielhiversen]: https://github.com/Danielhiversen +[@GotoCode]: https://github.com/GotoCode [@Juggels]: https://github.com/Juggels [@KJonline]: https://github.com/KJonline [@Kane610]: https://github.com/Kane610 @@ -344,6 +402,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@reefab]: https://github.com/reefab [@robmarkcole]: https://github.com/robmarkcole [@rohankapoorcom]: https://github.com/rohankapoorcom +[@schmittx]: https://github.com/schmittx [@shred86]: https://github.com/shred86 [@stephanerosi]: https://github.com/stephanerosi [@swilson]: https://github.com/swilson @@ -362,6 +421,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/ [binary_sensor.hive docs]: /components/binary_sensor.hive/ [binary_sensor.maxcube docs]: /components/binary_sensor.maxcube/ +[binary_sensor.qwikswitch docs]: /components/binary_sensor.qwikswitch/ [bmw_connected_drive docs]: /components/bmw_connected_drive/ [calendar.google docs]: /components/calendar.google/ [calendar.todoist docs]: /components/calendar.todoist/ @@ -427,7 +487,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [sensor.hive docs]: /components/sensor.hive/ [sensor.hydroquebec docs]: /components/sensor.hydroquebec/ [sensor.linux_battery docs]: /components/sensor.linux_battery/ -[sensor.lmsensor docs]: /components/sensor.lmsensor/ [sensor.miflora docs]: /components/sensor.miflora/ [sensor.mqtt docs]: /components/sensor.mqtt/ [sensor.nest docs]: /components/sensor.nest/ @@ -459,22 +518,3 @@ Experiencing issues introduced by this release? Please report them in our [issue [vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/ [weather.yweather docs]: /components/weather.yweather/ [zha docs]: /components/zha/ -[#14008]: https://github.com/home-assistant/home-assistant/pull/14008 -[#14019]: https://github.com/home-assistant/home-assistant/pull/14019 -[#14025]: https://github.com/home-assistant/home-assistant/pull/14025 -[#14027]: https://github.com/home-assistant/home-assistant/pull/14027 -[#14041]: https://github.com/home-assistant/home-assistant/pull/14041 -[#14051]: https://github.com/home-assistant/home-assistant/pull/14051 -[@OttoWinter]: https://github.com/OttoWinter -[@balloob]: https://github.com/balloob -[@kellerza]: https://github.com/kellerza -[@marthoc]: https://github.com/marthoc -[@mjg59]: https://github.com/mjg59 -[@schmittx]: https://github.com/schmittx -[binary_sensor.qwikswitch docs]: /components/binary_sensor.qwikswitch/ -[config docs]: /components/config/ -[homekit docs]: /components/homekit/ -[homekit_controller docs]: /components/homekit_controller/ -[media_player.cast docs]: /components/media_player.cast/ -[qwikswitch docs]: /components/qwikswitch/ -[sensor.qwikswitch docs]: /components/sensor.qwikswitch/ diff --git a/source/images/blog/2018-04-0.68/components.png b/source/images/blog/2018-04-0.68/components.png new file mode 100644 index 0000000000000000000000000000000000000000..57d9fc40b38e933eceb6cad9dfc9f3d0d9cd825b GIT binary patch literal 39722 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 azr?c6h$90