From 99ac3aca6f3a6168f203a801b104745c47da3f74 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 8 May 2019 20:30:03 -0700 Subject: [PATCH 01/24] Add draft release notes --- _config.yml | 6 +- source/_posts/2019-05-15-release-93.markdown | 696 +++++++++++++++++++ 2 files changed, 699 insertions(+), 3 deletions(-) create mode 100644 source/_posts/2019-05-15-release-93.markdown diff --git a/_config.yml b/_config.yml index 7868ab6419a..7301761a793 100644 --- a/_config.yml +++ b/_config.yml @@ -138,9 +138,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 92 -current_patch_version: 2 -date_released: 2019-05-02 +current_minor_version: 93 +current_patch_version: 0 +date_released: 2019-05-08 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2019-05-15-release-93.markdown b/source/_posts/2019-05-15-release-93.markdown new file mode 100644 index 00000000000..6c0579ef10d --- /dev/null +++ b/source/_posts/2019-05-15-release-93.markdown @@ -0,0 +1,696 @@ +--- +layout: post +title: "0.93: TBD UPDATE DATE" +description: "TBD" +date: 2019-05-08 04:11:03 +date_formatted: "May 15, 2019" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2019-05-release-93/components.png +--- + + + +## {% linkable_title New Integrations %} + +- Adds Orange Pi GPIO platform ([@pascallj] - [#22541]) ([orangepi_gpio docs]) (new-integration) (new-platform) +- Convert Pollen.com sensor into IQVIA component ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) (breaking change) (new-integration) (new-platform) +- Essent sensor ([@TheLastProject] - [#23513]) ([essent docs]) (new-integration) (new-platform) +- Ptvsd debugger component. ([@Swamp-Ig] - [#23336]) ([ptvsd docs]) (new-integration) +- Ambiclimate ([@Danielhiversen] - [#22827]) ([ambiclimate docs]) (new-integration) (new-platform) +- Added new binary sensor meteoalarm to get weather alerts in Europe ([@rolfberkenbosch] - [#23663]) ([meteoalarm docs]) (new-integration) (new-platform) +- Add Intergas InComfort Lan2RF gateway ([@zxdavb] - [#23736]) ([incomfort docs]) (new-integration) (new-platform) + +## {% linkable_title New Platforms %} + +- Adds Orange Pi GPIO platform ([@pascallj] - [#22541]) ([orangepi_gpio docs]) (new-integration) (new-platform) +- Added component named switcher_kis switcher water heater integration. ([@TomerFi] - [#22325]) ([switcher_kis docs]) (new-platform) +- MQTT Vacuum State Device ([@pszafer] - [#23171]) ([mqtt docs]) (new-platform) +- Convert Pollen.com sensor into IQVIA component ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) (breaking change) (new-integration) (new-platform) +- Add new nextbus sensor ([@ViViDboarder] - [#20197]) ([nextbus docs]) (new-platform) +- Add sensor support for dyson 2018 models ([@etheralm] - [#22578]) ([dyson docs]) (new-platform) +- Essent sensor ([@TheLastProject] - [#23513]) ([essent docs]) (new-integration) (new-platform) +- Ambiclimate ([@Danielhiversen] - [#22827]) ([ambiclimate docs]) (new-integration) (new-platform) +- Add Bizkaibus, Biscays (Spain) bus service component ([@UgaitzEtxebarria] - [#22934]) ([bizkaibus docs]) (new-platform) +- Added new binary sensor meteoalarm to get weather alerts in Europe ([@rolfberkenbosch] - [#23663]) ([meteoalarm docs]) (new-integration) (new-platform) +- Add water_heater to geniushub, bump client library ([@zxdavb] - [#23384]) ([geniushub docs]) (new-platform) +- Add Intergas InComfort Lan2RF gateway ([@zxdavb] - [#23736]) ([incomfort docs]) (new-integration) (new-platform) +- New cover platform for ADS integration ([@carstenschroeder] - [#23377]) ([ads 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 %} + +- Add homematicip cloud temperature sensor from thermostats ([@SukramJ] - [#23263]) ([homematicip_cloud docs]) (breaking change) +- Convert Pollen.com sensor into IQVIA component ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) (breaking change) (new-integration) (new-platform) +- Remove historical allergen and asthma sensors from IQVIA ([@bachya] - [#23258]) ([iqvia docs]) (breaking change) +- Always pad mac addresses from nmap tracker with leading zeros ([@mikeage] - [#23492]) ([nmap_tracker docs]) (breaking change) +- Convert frontend to do client-side modern JS detection ([@balloob] - [#23618]) ([frontend docs]) (breaking change) +- Added option to select photoblack cartridge ([@ThaStealth] - [#23433]) ([epsonworkforce docs]) (breaking change) +- Move Sonos services to sonos domain ([@amelchio] - [#23670]) ([sonos docs]) (breaking change) +- Share snmp constants across all platforms ([@fabaff] - [#23678]) ([snmp docs]) (breaking change) +- Merge netatmo_public sensor into the netatmo integration ([@cgtobi] - [#23531]) ([netatmo docs]) ([netatmo_public docs]) (breaking change) +- Update Sesame component to use Candy House's library using the V3 API ([@zanglang] - [#23621]) ([sesame docs]) (breaking change) + +## {% linkable_title All changes %} + +- Pass configured host string instead of always forcing an ip-address ([@itn3rd77] - [#23164]) ([homematic docs]) +- Make less imports from yeelight ([@zewelor] - [#23124]) ([yeelight docs]) +- Add @Jc2k to codeowners for homekit_controller ([@Jc2k] - [#23173]) ([homekit_controller docs]) +- Add minimum/maximum to counter ([@rohankapoorcom] - [#22608]) ([counter docs]) +- Adds Orange Pi GPIO platform ([@pascallj] - [#22541]) ([orangepi_gpio docs]) (new-integration) (new-platform) +- Potential None ([@Swamp-Ig] - [#23187]) ([automation docs]) +- Add storage for cacheable homekit entity maps. ([@Jc2k] - [#23191]) ([homekit_controller docs]) +- Misc. ZHA changes ([@dmulcahey] - [#23190]) ([zha docs]) +- set myself as codeowner of xmpp, removed me from notify/* ([@flowolf] - [#23207]) ([notify docs]) ([xmpp docs]) +- Update vizio component to support latest pyvizio with soundbar support ([@raman325] - [#22294]) ([vizio docs]) +- Add json_attributes_template ([@emontnemery] - [#22981]) ([mqtt docs]) +- Only comment with changed coverage on release PRs [skip-ci] ([@balloob] - [#23224]) +- Fix optimistic mode + other bugs, tests ([@emontnemery] - [#22976]) ([mqtt docs]) +- Set default value for input_datetime ([@tsvi] - [#21919]) ([input_datetime docs]) +- Remove archived 17track packages from the entity registry ([@bachya] - [#23049]) ([seventeentrack docs]) +- Change configuration for orangepi ([@pascallj] - [#23231]) ([orangepi_gpio docs]) +- Add and use an async_fire_service_discovered helper ([@Jc2k] - [#23232]) +- Review feedback from #23191 ([@Jc2k] - [#23233]) ([homekit_controller docs]) +- Add missing service for persistent_notification ([@bieniu] - [#23230]) +- Add more CPU temp. labels to Glances ([@Chris-V] - [#23179]) ([glances docs]) +- Add accuracy and status for Traccar ([@GoNzCiD] - [#23180]) ([traccar docs]) +- Avoid calling async code in sync context ([@Jc2k] - [#23235]) ([homekit_controller docs]) +- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23246]) +- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23247]) +- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23248]) +- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23249]) +- Drop unnecessary block_till_done ([@emontnemery] - [#23250]) +- Drop unnecessary block_till_done ([@emontnemery] - [#23251]) +- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23252]) +- Added component named switcher_kis switcher water heater integration. ([@TomerFi] - [#22325]) ([switcher_kis docs]) (new-platform) +- Drop unnecessary block_till_done for MQTT fan tests ([@emontnemery] - [#23253]) +- Drop unnecessary block_till_done for MQTT tests ([@emontnemery] - [#23254]) +- Drop unnecessary block_till_done, improve tests for MQTT Cover tests ([@emontnemery] - [#23255]) +- Drop unnecessary block_till_done ([@emontnemery] - [#23256]) +- Add ctags file to .gitignore ([@bachya] - [#23279]) +- Upgrade xmltodict to 0.12.0 ([@BKPepe] - [#23277]) ([bluesound docs]) ([startca docs]) ([ted5000 docs]) ([yr docs]) ([zestimate docs]) +- Upgrade pyotp to 2.2.7 ([@BKPepe] - [#23274]) ([otp docs]) +- Add homematicip cloud temperature sensor from thermostats ([@SukramJ] - [#23263]) ([homematicip_cloud docs]) (breaking change) +- Improve MQTT tests ([@emontnemery] - [#23296]) +- Add support to play url ([@andrewsayre] - [#23273]) ([heos docs]) +- RFC: Upgrade philips_js component version and support channels and sources ([@elupus] - [#23061]) ([philips_js docs]) +- MQTT Vacuum State Device ([@pszafer] - [#23171]) ([mqtt docs]) (new-platform) +- Add connection control for netgear_lte ([@amelchio] - [#22946]) ([netgear_lte docs]) +- Set placeholders in homekit config flow title ([@Jc2k] - [#23311]) ([homekit_controller docs]) +- Random hassfest fixes ([@balloob] - [#23314]) +- Add get_states faster ([@balloob] - [#23315]) ([websocket_api docs]) +- Handle traccar connection errors ([@ludeeus] - [#23289]) ([traccar docs]) +- Upgrade attrs to 19.1.0 ([@BKPepe] - [#23323]) +- Fix ps4 not able to use different PSN accounts ([@ktnrg45] - [#22799]) ([ps4 docs]) +- Reorg Homematic IP Cloud imports and minor fixes ([@SukramJ] - [#23330]) ([homematicip_cloud docs]) +- Changes due to manifest.json. Awaiting coroutines instead of creating tasks ([@alengwenus] - [#23321]) ([lcn docs]) +- Fix Switchbot restore state ([@Danielhiversen] - [#23325]) ([switchbot docs]) +- Added override for kwikset 888. ([@sowelie] - [#23327]) ([zwave docs]) +- Upgrade youtube_dl to 2019.04.17 ([@fabaff] - [#23342]) ([media_extractor docs]) +- Fix Homematic IP Cloud remaining light imports ([@SukramJ] - [#23339]) ([homematicip_cloud docs]) +- Volume trait for google assistant ([@elupus] - [#23237]) ([google_assistant docs]) +- Upgrade ruamel.yaml to 0.15.94 ([@fabaff] - [#23344]) +- Netatmo 5min fetch interval ([@pvizeli] - [#23341]) ([netatmo docs]) +- Fixed test ([@Swamp-Ig] - [#23343]) +- Device type garage for binary sensor garage_door ([@elupus] - [#23345]) ([google_assistant docs]) +- Fix non-syncthru supporting printers ([@nielstron] - [#21482]) ([syncthru docs]) +- Add support for a wider variety of EnOcean devices ([@bdurrer] - [#22052]) ([enocean docs]) +- Convert Pollen.com sensor into IQVIA component ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) (breaking change) (new-integration) (new-platform) +- Upgrade to pyubee==0.6 ([@StevenLooman] - [#23355]) ([ubee docs]) +- Fix tox.ini lint target ([@ViViDboarder] - [#23359]) +- Add media player external url ([@balloob] - [#23337]) ([media_player docs]) +- Fix race condition. ([@mitchellrj] - [#21244]) ([plex docs]) +- Add amcrest camera services and deprecate switches ([@pnbruckner] - [#22949]) ([amcrest docs]) +- Convert some test helpers to coroutines and adjust tests ([@emontnemery] - [#23352]) +- Update xiaomi library ([@Danielhiversen] - [#23391]) ([xiaomi_aqara docs]) +- Add device classes for media player and map to google types ([@elupus] - [#23236]) ([google_assistant docs]) ([media_player docs]) +- Bump youtube-dl version to 2019.04.24 ([@cgtobi] - [#23398]) ([media_extractor docs]) +- add key parameter ([@panosmz] - [#23381]) ([oasa_telematics docs]) +- check if sabotage attr is in device ([@SukramJ] - [#23397]) ([homematicip_cloud docs]) +- Add Types to Homematic IP ([@SukramJ] - [#23401]) ([homematicip_cloud docs]) +- Add device info for Logi Circle camera and sensor entities ([@evanjd] - [#23373]) ([logi_circle docs]) +- Bump requirement to v55 ([@Kane610] - [#23410]) ([deconz docs]) +- restore battery_quantity for zha devices ([@vigonotion] - [#23320]) ([zha docs]) +- Remove support for deprecated Sonos configuration ([@amelchio] - [#23385]) ([sonos docs]) +- Additional cleanup of IQVIA integration ([@bachya] - [#23403]) ([iqvia docs]) +- Add new nextbus sensor ([@ViViDboarder] - [#20197]) ([nextbus docs]) (new-platform) +- Remove historical allergen and asthma sensors from IQVIA ([@bachya] - [#23258]) ([iqvia docs]) (breaking change) +- Return of travis ([@amelchio] - [#23409]) +- Fix broken forecast trend attribute in IQVIA ([@bachya] - [#23454]) ([iqvia docs]) +- Bump amcrest to 1.4.0 and use new storage_all method ([@pnbruckner] - [#23446]) ([amcrest docs]) +- Added option to use self-signed certificates ([@anrudolph] - [#23139]) ([caldav docs]) +- No longer promote imports inside methods ([@amelchio] - [#23471]) +- Improve handling of unavailable Sonos speakers ([@amelchio] - [#23472]) ([sonos docs]) +- Use remote image for HEOS ([@andrewsayre] - [#23420]) ([heos docs]) +- Add a warning that honeywell/EU is to be deprecated ([@zxdavb] - [#23469]) ([honeywell docs]) +- Skip flaky stream tests ([@amelchio] - [#23493]) +- Display person component as occupancy sensor HomeKit ([@chmielowiec] - [#23451]) ([homekit docs]) +- Fixes local_file camera service ([@robmarkcole] - [#23479]) ([local_file docs]) +- Update aiolifx_effects to 0.2.2 ([@arsaboo] - [#23473]) ([lifx docs]) +- Catch RequestException in influxdb writer ([@amelchio] - [#23508]) ([influxdb docs]) +- Fixed bug with max_result ([@atomic7777] - [#23507]) ([google docs]) +- Return state when changing optimistic covers ([@balloob] - [#23498]) ([google_assistant docs]) +- Update Philips js to v0.0.8 ([@elupus] - [#23462]) ([philips_js docs]) +- Fixed AlexaPowerController to report power state for thermostats ([@mcc05] - [#23468]) ([alexa docs]) +- Continuous discovery of Sonos speakers ([@amelchio] - [#23484]) ([sonos docs]) +- Ignore stale directories ([@amelchio] - [#23464]) +- Do not log tracebacks for influxdb write errors ([@amelchio] - [#23522]) ([influxdb docs]) +- limit concurrent updates to avoid network flood ([@dmulcahey] - [#23534]) ([zha docs]) +- Add current disease data to IQVIA ([@bachya] - [#23052]) ([iqvia docs]) +- Allow direct binding via ZHA for the ZLL profile ([@dmulcahey] - [#23536]) ([zha docs]) +- Improve logging of exceptions in async_create_task ([@emontnemery] - [#22689]) ([cast docs]) +- Install requirements when checking config ([@balloob] - [#23500]) +- Always print invalid configuration data ([@emontnemery] - [#21972]) +- Don't use zigpy profiles for ZHA entities ([@dmulcahey] - [#22844]) ([zha docs]) +- Add HomeKit low battery threshold config ([@adrum] - [#23363]) ([homekit docs]) +- Add sensor support for dyson 2018 models ([@etheralm] - [#22578]) ([dyson docs]) (new-platform) +- Bump homekit_python to 0.14.0 ([@Jc2k] - [#23562]) ([homekit_controller docs]) +- Upgrade pysonos to 0.0.12 ([@amelchio] - [#23560]) ([sonos docs]) +- Clean up ZHA discovery logic ([@dmulcahey] - [#23563]) ([zha docs]) +- Migrate tests to pytest ([@emontnemery] - [#23544]) +- bump zha-quirks version ([@dmulcahey] - [#23568]) ([zha docs]) +- Add core APIs to migrate device identifiers and entity unique_id ([@andrewsayre] - [#23481]) +- Essent sensor ([@TheLastProject] - [#23513]) ([essent docs]) (new-integration) (new-platform) +- Upgrade discord.py to v1.0.1 ([@cyrosy] - [#23523]) ([discord docs]) +- Always pad mac addresses from nmap tracker with leading zeros ([@mikeage] - [#23492]) ([nmap_tracker docs]) (breaking change) +- Update mysensors sensor icons ([@MartinHjelmare] - [#23491]) ([mysensors docs]) +- Add bypass and automatic bypass switch for Danfor Air. ([@JonasPed] - [#23572]) ([danfoss_air docs]) +- Ptvsd debugger component. ([@Swamp-Ig] - [#23336]) ([ptvsd docs]) (new-integration) +- Fix min/max temp and humidity for homekit_controller climate ([@Jc2k] - [#23421]) ([homekit_controller docs]) +- Fix failing state update tests ([@etheralm] - [#23575]) +- render_with_collect method for template ([@Swamp-Ig] - [#23283]) +- Upgrade youtube_dl to 2019.04.30 ([@fabaff] - [#23579]) ([media_extractor docs]) +- Bumpped the pyeconet version ([@w1ll1am23] - [#23578]) ([econet docs]) +- Simplify Travis cache config ([@scop] - [#23592]) +- Fix low_battery_threshold issue HomeKit ([@cdce8p] - [#23593]) ([homekit docs]) +- Redesign AlarmControlPanel for Homematic IP ([@SukramJ] - [#23565]) ([homematicip_cloud docs]) +- Ambiclimate ([@Danielhiversen] - [#22827]) ([ambiclimate docs]) (new-integration) (new-platform) +- Move I/O to executor thread pool ([@cyrosy] - [#23589]) ([discord docs]) +- Update bomradarloop to v0.1.3 ([@maddenp] - [#23599]) ([bom docs]) +- updated manifest.json with correct version of hangup ([@teliov] - [#23596]) ([hangouts docs]) +- Add and improve Homekit controller pairing messages and errors ([@Jc2k] - [#23532]) ([homekit_controller docs]) +- Added message to data_template at notify REST ([@4lloyd] - [#23108]) ([rest docs]) +- Fixed unhandled exception in OpenUV data update ([@bachya] - [#23611]) ([openuv docs]) +- Support STATE_AUTO in homekit_controller climate ([@Jc2k] - [#23583]) ([homekit_controller docs]) +- Add support for flow sensor metrics in RainMachine ([@bachya] - [#23221]) ([rainmachine docs]) +- Clean caldav calendar tests ([@MartinHjelmare] - [#23609]) +- Improve sun automation tests ([@emontnemery] - [#23588]) +- Update pyvesync_v2 version to 0.9.7 ([@bwarden] - [#23603]) ([vesync docs]) +- Prevent turning on tellduslive lights with 0 brightness ([@brange] - [#23135]) ([tellduslive docs]) +- Update docstrings ([@fabaff] - [#23624]) ([panasonic_bluray docs]) +- Order imports ([@fabaff] - [#23623]) ([opple docs]) +- Polling is default ([@fabaff] - [#23622]) ([serial_pm docs]) +- Loosen discovery config validation to avoid breaking changes ([@Jc2k] - [#23625]) ([discovery docs]) +- Clean up redundant same-package ..package imports ([@scop] - [#23587]) ([greeneye_monitor docs]) ([huawei_lte docs]) ([tplink_lte docs]) +- Upgrade pytest to 4.4.1 ([@scop] - [#23584]) +- Upgrade mypy ([@scop] - [#23586]) +- Allow removing Telegram reply keyboard ([@max-te] - [#23467]) ([telegram_bot docs]) +- Convert frontend to do client-side modern JS detection ([@balloob] - [#23618]) ([frontend docs]) (breaking change) +- Refactor evohome to prepare for water_heater ([@zxdavb] - [#23489]) ([evohome docs]) +- Extend play_media support ([@andrewsayre] - [#23580]) ([heos docs]) +- update switchbot library ([@Danielhiversen] - [#23643]) ([switchbot docs]) +- Add "soc-thermal 1" as CPU Temp label to Glances ([@phdelodder] - [#23635]) ([glances docs]) +- deCONZ - Retry on BridgeBusy errors ([@Kane610] - [#23436]) ([deconz docs]) +- Added option to select photoblack cartridge ([@ThaStealth] - [#23433]) ([epsonworkforce docs]) (breaking change) +- Fix bad request for some IP ONVIF camera ([@GeertvanHorrik] - [#22972]) ([onvif docs]) +- Bump pyteleloisirs version ([@SNoof85] - [#23661]) ([liveboxplaytv docs]) +- Upgrade psutil to 5.6.2 ([@fabaff] - [#23671]) ([systemmonitor docs]) +- Upgrade shodan to 1.13.0 ([@fabaff] - [#23675]) ([shodan docs]) +- Upgrade slacker to 0.13.0 ([@fabaff] - [#23672]) ([slack docs]) +- Upgrade tapsaff to 0.2.1 ([@fabaff] - [#23676]) ([tapsaff docs]) +- Upgrade sqlalchemy to 1.3.3 ([@fabaff] - [#23674]) ([recorder docs]) ([sql docs]) +- Remove extraneous update call in SimpliSafe ([@bachya] - [#23680]) ([simplisafe docs]) +- Upgrade pysnmp to 4.4.9 ([@fabaff] - [#23677]) ([snmp docs]) +- Upgrade spotcrime to 1.0.4 (fixes #13189) ([@fabaff] - [#23679]) ([spotcrime docs]) +- Add Bizkaibus, Biscays (Spain) bus service component ([@UgaitzEtxebarria] - [#22934]) ([bizkaibus docs]) (new-platform) +- Add HomeKit Television functionality ([@adrum] - [#22968]) ([homekit docs]) +- Clean and fix google calendar tests ([@MartinHjelmare] - [#23608]) ([google docs]) +- Update requirements for pyvlx. ([@Julius2342] - [#23694]) ([velux docs]) +- Clean up mqtt device tracker tests ([@MartinHjelmare] - [#23700]) +- Clean up device tracker tests ([@MartinHjelmare] - [#23695]) +- Move Sonos services to sonos domain ([@amelchio] - [#23670]) ([sonos docs]) (breaking change) +- Move owntracks device tracker test under owntracks ([@MartinHjelmare] - [#23701]) +- Add support for SET_AWAY_MODE and TURN_ON/OFF on Daikin Climate ([@fredrike] - [#23585]) ([daikin docs]) +- Bump ZHA modules versions. ([@Adminiuga] - [#23705]) ([zha docs]) +- Add additional single input cluster entries - ZHA ([@dmulcahey] - [#23697]) ([zha docs]) +- Add media_type_app to media_player ([@ktnrg45] - [#23666]) ([media_player docs]) ([ps4 docs]) +- Add a TCP timeout of 5 seconds to ffmpeg ([@droopanu] - [#23617]) ([stream docs]) +- Catch thethingsnetwork TypeError ([@fabaff] - [#23667]) ([thethingsnetwork docs]) +- Use local constant in Daikin for STATE_OFF ([@fredrike] - [#23712]) ([daikin docs]) +- Upgrade sendgrid to 6.0.5 ([@fabaff] - [#23711]) ([sendgrid docs]) +- bump zha-quirks ([@dmulcahey] - [#23714]) ([zha docs]) +- Update IDs after firmware upgrade in HEOS ([@andrewsayre] - [#23641]) ([heos docs]) +- huawei_lte: handle icons for None sensor values gracefully ([@scop] - [#23649]) ([huawei_lte docs]) +- Upgrade switchbot , fixes #23702 ([@Danielhiversen] - [#23716]) ([switchbot docs]) +- Share snmp constants across all platforms ([@fabaff] - [#23678]) ([snmp docs]) (breaking change) +- Add TTL support and custom headers support. ([@pszafer] - [#22988]) ([html5 docs]) +- Added new binary sensor meteoalarm to get weather alerts in Europe ([@rolfberkenbosch] - [#23663]) ([meteoalarm docs]) (new-integration) (new-platform) +- add abbreviation for current_temperature_template ([@unixko] - [#23733]) ([mqtt docs]) +- Add water_heater to geniushub, bump client library ([@zxdavb] - [#23384]) ([geniushub docs]) (new-platform) +- Add debug prints to sun ([@emontnemery] - [#23598]) ([sun docs]) +- Add HEOS sign-in/out services ([@andrewsayre] - [#23729]) ([heos docs]) +- Fix Hue sensor integration with multiple bridges. ([@mitchellrj] - [#23713]) ([hue docs]) +- Fix effects on HUE integration for Osram bulbs ([@SukramJ] - [#22789]) ([hue docs]) +- Upgrade aiodns to 2.0.0 ([@fabaff] - [#23743]) ([dnsip docs]) +- Add abbreviation for position_topic ([@bieniu] - [#23740]) ([mqtt docs]) +- Update PR template ([@balloob] - [#23520]) +- Add Intergas InComfort Lan2RF gateway ([@zxdavb] - [#23736]) ([incomfort docs]) (new-integration) (new-platform) +- Fix upnp logger name ([@StevenLooman] - [#23724]) ([upnp docs]) +- Add update events to registries ([@balloob] - [#23746]) ([websocket_api docs]) +- Add integration step to onboarding ([@balloob] - [#23732]) ([onboarding docs]) +- Merge netatmo_public sensor into the netatmo integration ([@cgtobi] - [#23531]) ([netatmo docs]) ([netatmo_public docs]) (breaking change) +- Upgrade numpy to 1.16.3 ([@fabaff] - [#23673]) ([iqvia docs]) ([opencv docs]) ([tensorflow docs]) ([trend docs]) +- Upgrade Mastodon.py to 1.4.0 ([@fabaff] - [#23753]) ([mastodon docs]) +- New cover platform for ADS integration ([@carstenschroeder] - [#23377]) ([ads docs]) (new-platform) +- Prompt for pin only on open / unlock ([@Swamp-Ig] - [#23751]) ([google_assistant docs]) +- Upgrade defusedxml to 0.6.0 ([@scop] - [#23651]) ([ihc docs]) ([namecheapdns docs]) ([ohmconnect docs]) ([upc_connect docs]) +- Refactor child validation ([@MartinHjelmare] - [#23482]) ([mysensors docs]) +- Update Sesame component to use Candy House's library using the V3 API ([@zanglang] - [#23621]) ([sesame docs]) (breaking change) +- Upgrade zeroconf to 0.22.0 ([@BKPepe] - [#23524]) ([zeroconf docs]) +- No longer rely on requests ([@balloob] - [#23685]) ([ps4 docs]) + +[#20197]: https://github.com/home-assistant/home-assistant/pull/20197 +[#21244]: https://github.com/home-assistant/home-assistant/pull/21244 +[#21482]: https://github.com/home-assistant/home-assistant/pull/21482 +[#21919]: https://github.com/home-assistant/home-assistant/pull/21919 +[#21972]: https://github.com/home-assistant/home-assistant/pull/21972 +[#22052]: https://github.com/home-assistant/home-assistant/pull/22052 +[#22294]: https://github.com/home-assistant/home-assistant/pull/22294 +[#22325]: https://github.com/home-assistant/home-assistant/pull/22325 +[#22541]: https://github.com/home-assistant/home-assistant/pull/22541 +[#22578]: https://github.com/home-assistant/home-assistant/pull/22578 +[#22608]: https://github.com/home-assistant/home-assistant/pull/22608 +[#22689]: https://github.com/home-assistant/home-assistant/pull/22689 +[#22789]: https://github.com/home-assistant/home-assistant/pull/22789 +[#22799]: https://github.com/home-assistant/home-assistant/pull/22799 +[#22827]: https://github.com/home-assistant/home-assistant/pull/22827 +[#22844]: https://github.com/home-assistant/home-assistant/pull/22844 +[#22934]: https://github.com/home-assistant/home-assistant/pull/22934 +[#22946]: https://github.com/home-assistant/home-assistant/pull/22946 +[#22949]: https://github.com/home-assistant/home-assistant/pull/22949 +[#22968]: https://github.com/home-assistant/home-assistant/pull/22968 +[#22972]: https://github.com/home-assistant/home-assistant/pull/22972 +[#22976]: https://github.com/home-assistant/home-assistant/pull/22976 +[#22981]: https://github.com/home-assistant/home-assistant/pull/22981 +[#22986]: https://github.com/home-assistant/home-assistant/pull/22986 +[#22988]: https://github.com/home-assistant/home-assistant/pull/22988 +[#23049]: https://github.com/home-assistant/home-assistant/pull/23049 +[#23052]: https://github.com/home-assistant/home-assistant/pull/23052 +[#23061]: https://github.com/home-assistant/home-assistant/pull/23061 +[#23108]: https://github.com/home-assistant/home-assistant/pull/23108 +[#23124]: https://github.com/home-assistant/home-assistant/pull/23124 +[#23135]: https://github.com/home-assistant/home-assistant/pull/23135 +[#23139]: https://github.com/home-assistant/home-assistant/pull/23139 +[#23164]: https://github.com/home-assistant/home-assistant/pull/23164 +[#23171]: https://github.com/home-assistant/home-assistant/pull/23171 +[#23173]: https://github.com/home-assistant/home-assistant/pull/23173 +[#23179]: https://github.com/home-assistant/home-assistant/pull/23179 +[#23180]: https://github.com/home-assistant/home-assistant/pull/23180 +[#23187]: https://github.com/home-assistant/home-assistant/pull/23187 +[#23190]: https://github.com/home-assistant/home-assistant/pull/23190 +[#23191]: https://github.com/home-assistant/home-assistant/pull/23191 +[#23207]: https://github.com/home-assistant/home-assistant/pull/23207 +[#23221]: https://github.com/home-assistant/home-assistant/pull/23221 +[#23224]: https://github.com/home-assistant/home-assistant/pull/23224 +[#23230]: https://github.com/home-assistant/home-assistant/pull/23230 +[#23231]: https://github.com/home-assistant/home-assistant/pull/23231 +[#23232]: https://github.com/home-assistant/home-assistant/pull/23232 +[#23233]: https://github.com/home-assistant/home-assistant/pull/23233 +[#23235]: https://github.com/home-assistant/home-assistant/pull/23235 +[#23236]: https://github.com/home-assistant/home-assistant/pull/23236 +[#23237]: https://github.com/home-assistant/home-assistant/pull/23237 +[#23246]: https://github.com/home-assistant/home-assistant/pull/23246 +[#23247]: https://github.com/home-assistant/home-assistant/pull/23247 +[#23248]: https://github.com/home-assistant/home-assistant/pull/23248 +[#23249]: https://github.com/home-assistant/home-assistant/pull/23249 +[#23250]: https://github.com/home-assistant/home-assistant/pull/23250 +[#23251]: https://github.com/home-assistant/home-assistant/pull/23251 +[#23252]: https://github.com/home-assistant/home-assistant/pull/23252 +[#23253]: https://github.com/home-assistant/home-assistant/pull/23253 +[#23254]: https://github.com/home-assistant/home-assistant/pull/23254 +[#23255]: https://github.com/home-assistant/home-assistant/pull/23255 +[#23256]: https://github.com/home-assistant/home-assistant/pull/23256 +[#23258]: https://github.com/home-assistant/home-assistant/pull/23258 +[#23263]: https://github.com/home-assistant/home-assistant/pull/23263 +[#23273]: https://github.com/home-assistant/home-assistant/pull/23273 +[#23274]: https://github.com/home-assistant/home-assistant/pull/23274 +[#23277]: https://github.com/home-assistant/home-assistant/pull/23277 +[#23279]: https://github.com/home-assistant/home-assistant/pull/23279 +[#23283]: https://github.com/home-assistant/home-assistant/pull/23283 +[#23289]: https://github.com/home-assistant/home-assistant/pull/23289 +[#23296]: https://github.com/home-assistant/home-assistant/pull/23296 +[#23311]: https://github.com/home-assistant/home-assistant/pull/23311 +[#23314]: https://github.com/home-assistant/home-assistant/pull/23314 +[#23315]: https://github.com/home-assistant/home-assistant/pull/23315 +[#23320]: https://github.com/home-assistant/home-assistant/pull/23320 +[#23321]: https://github.com/home-assistant/home-assistant/pull/23321 +[#23323]: https://github.com/home-assistant/home-assistant/pull/23323 +[#23325]: https://github.com/home-assistant/home-assistant/pull/23325 +[#23327]: https://github.com/home-assistant/home-assistant/pull/23327 +[#23330]: https://github.com/home-assistant/home-assistant/pull/23330 +[#23336]: https://github.com/home-assistant/home-assistant/pull/23336 +[#23337]: https://github.com/home-assistant/home-assistant/pull/23337 +[#23339]: https://github.com/home-assistant/home-assistant/pull/23339 +[#23341]: https://github.com/home-assistant/home-assistant/pull/23341 +[#23342]: https://github.com/home-assistant/home-assistant/pull/23342 +[#23343]: https://github.com/home-assistant/home-assistant/pull/23343 +[#23344]: https://github.com/home-assistant/home-assistant/pull/23344 +[#23345]: https://github.com/home-assistant/home-assistant/pull/23345 +[#23352]: https://github.com/home-assistant/home-assistant/pull/23352 +[#23355]: https://github.com/home-assistant/home-assistant/pull/23355 +[#23359]: https://github.com/home-assistant/home-assistant/pull/23359 +[#23363]: https://github.com/home-assistant/home-assistant/pull/23363 +[#23373]: https://github.com/home-assistant/home-assistant/pull/23373 +[#23377]: https://github.com/home-assistant/home-assistant/pull/23377 +[#23381]: https://github.com/home-assistant/home-assistant/pull/23381 +[#23384]: https://github.com/home-assistant/home-assistant/pull/23384 +[#23385]: https://github.com/home-assistant/home-assistant/pull/23385 +[#23391]: https://github.com/home-assistant/home-assistant/pull/23391 +[#23397]: https://github.com/home-assistant/home-assistant/pull/23397 +[#23398]: https://github.com/home-assistant/home-assistant/pull/23398 +[#23401]: https://github.com/home-assistant/home-assistant/pull/23401 +[#23403]: https://github.com/home-assistant/home-assistant/pull/23403 +[#23409]: https://github.com/home-assistant/home-assistant/pull/23409 +[#23410]: https://github.com/home-assistant/home-assistant/pull/23410 +[#23420]: https://github.com/home-assistant/home-assistant/pull/23420 +[#23421]: https://github.com/home-assistant/home-assistant/pull/23421 +[#23433]: https://github.com/home-assistant/home-assistant/pull/23433 +[#23436]: https://github.com/home-assistant/home-assistant/pull/23436 +[#23446]: https://github.com/home-assistant/home-assistant/pull/23446 +[#23451]: https://github.com/home-assistant/home-assistant/pull/23451 +[#23454]: https://github.com/home-assistant/home-assistant/pull/23454 +[#23462]: https://github.com/home-assistant/home-assistant/pull/23462 +[#23464]: https://github.com/home-assistant/home-assistant/pull/23464 +[#23467]: https://github.com/home-assistant/home-assistant/pull/23467 +[#23468]: https://github.com/home-assistant/home-assistant/pull/23468 +[#23469]: https://github.com/home-assistant/home-assistant/pull/23469 +[#23471]: https://github.com/home-assistant/home-assistant/pull/23471 +[#23472]: https://github.com/home-assistant/home-assistant/pull/23472 +[#23473]: https://github.com/home-assistant/home-assistant/pull/23473 +[#23479]: https://github.com/home-assistant/home-assistant/pull/23479 +[#23481]: https://github.com/home-assistant/home-assistant/pull/23481 +[#23482]: https://github.com/home-assistant/home-assistant/pull/23482 +[#23484]: https://github.com/home-assistant/home-assistant/pull/23484 +[#23489]: https://github.com/home-assistant/home-assistant/pull/23489 +[#23491]: https://github.com/home-assistant/home-assistant/pull/23491 +[#23492]: https://github.com/home-assistant/home-assistant/pull/23492 +[#23493]: https://github.com/home-assistant/home-assistant/pull/23493 +[#23498]: https://github.com/home-assistant/home-assistant/pull/23498 +[#23500]: https://github.com/home-assistant/home-assistant/pull/23500 +[#23507]: https://github.com/home-assistant/home-assistant/pull/23507 +[#23508]: https://github.com/home-assistant/home-assistant/pull/23508 +[#23513]: https://github.com/home-assistant/home-assistant/pull/23513 +[#23520]: https://github.com/home-assistant/home-assistant/pull/23520 +[#23522]: https://github.com/home-assistant/home-assistant/pull/23522 +[#23523]: https://github.com/home-assistant/home-assistant/pull/23523 +[#23524]: https://github.com/home-assistant/home-assistant/pull/23524 +[#23531]: https://github.com/home-assistant/home-assistant/pull/23531 +[#23532]: https://github.com/home-assistant/home-assistant/pull/23532 +[#23534]: https://github.com/home-assistant/home-assistant/pull/23534 +[#23536]: https://github.com/home-assistant/home-assistant/pull/23536 +[#23544]: https://github.com/home-assistant/home-assistant/pull/23544 +[#23560]: https://github.com/home-assistant/home-assistant/pull/23560 +[#23562]: https://github.com/home-assistant/home-assistant/pull/23562 +[#23563]: https://github.com/home-assistant/home-assistant/pull/23563 +[#23565]: https://github.com/home-assistant/home-assistant/pull/23565 +[#23568]: https://github.com/home-assistant/home-assistant/pull/23568 +[#23572]: https://github.com/home-assistant/home-assistant/pull/23572 +[#23575]: https://github.com/home-assistant/home-assistant/pull/23575 +[#23578]: https://github.com/home-assistant/home-assistant/pull/23578 +[#23579]: https://github.com/home-assistant/home-assistant/pull/23579 +[#23580]: https://github.com/home-assistant/home-assistant/pull/23580 +[#23583]: https://github.com/home-assistant/home-assistant/pull/23583 +[#23584]: https://github.com/home-assistant/home-assistant/pull/23584 +[#23585]: https://github.com/home-assistant/home-assistant/pull/23585 +[#23586]: https://github.com/home-assistant/home-assistant/pull/23586 +[#23587]: https://github.com/home-assistant/home-assistant/pull/23587 +[#23588]: https://github.com/home-assistant/home-assistant/pull/23588 +[#23589]: https://github.com/home-assistant/home-assistant/pull/23589 +[#23592]: https://github.com/home-assistant/home-assistant/pull/23592 +[#23593]: https://github.com/home-assistant/home-assistant/pull/23593 +[#23596]: https://github.com/home-assistant/home-assistant/pull/23596 +[#23598]: https://github.com/home-assistant/home-assistant/pull/23598 +[#23599]: https://github.com/home-assistant/home-assistant/pull/23599 +[#23603]: https://github.com/home-assistant/home-assistant/pull/23603 +[#23608]: https://github.com/home-assistant/home-assistant/pull/23608 +[#23609]: https://github.com/home-assistant/home-assistant/pull/23609 +[#23611]: https://github.com/home-assistant/home-assistant/pull/23611 +[#23617]: https://github.com/home-assistant/home-assistant/pull/23617 +[#23618]: https://github.com/home-assistant/home-assistant/pull/23618 +[#23621]: https://github.com/home-assistant/home-assistant/pull/23621 +[#23622]: https://github.com/home-assistant/home-assistant/pull/23622 +[#23623]: https://github.com/home-assistant/home-assistant/pull/23623 +[#23624]: https://github.com/home-assistant/home-assistant/pull/23624 +[#23625]: https://github.com/home-assistant/home-assistant/pull/23625 +[#23635]: https://github.com/home-assistant/home-assistant/pull/23635 +[#23641]: https://github.com/home-assistant/home-assistant/pull/23641 +[#23643]: https://github.com/home-assistant/home-assistant/pull/23643 +[#23649]: https://github.com/home-assistant/home-assistant/pull/23649 +[#23651]: https://github.com/home-assistant/home-assistant/pull/23651 +[#23661]: https://github.com/home-assistant/home-assistant/pull/23661 +[#23663]: https://github.com/home-assistant/home-assistant/pull/23663 +[#23666]: https://github.com/home-assistant/home-assistant/pull/23666 +[#23667]: https://github.com/home-assistant/home-assistant/pull/23667 +[#23670]: https://github.com/home-assistant/home-assistant/pull/23670 +[#23671]: https://github.com/home-assistant/home-assistant/pull/23671 +[#23672]: https://github.com/home-assistant/home-assistant/pull/23672 +[#23673]: https://github.com/home-assistant/home-assistant/pull/23673 +[#23674]: https://github.com/home-assistant/home-assistant/pull/23674 +[#23675]: https://github.com/home-assistant/home-assistant/pull/23675 +[#23676]: https://github.com/home-assistant/home-assistant/pull/23676 +[#23677]: https://github.com/home-assistant/home-assistant/pull/23677 +[#23678]: https://github.com/home-assistant/home-assistant/pull/23678 +[#23679]: https://github.com/home-assistant/home-assistant/pull/23679 +[#23680]: https://github.com/home-assistant/home-assistant/pull/23680 +[#23685]: https://github.com/home-assistant/home-assistant/pull/23685 +[#23694]: https://github.com/home-assistant/home-assistant/pull/23694 +[#23695]: https://github.com/home-assistant/home-assistant/pull/23695 +[#23697]: https://github.com/home-assistant/home-assistant/pull/23697 +[#23700]: https://github.com/home-assistant/home-assistant/pull/23700 +[#23701]: https://github.com/home-assistant/home-assistant/pull/23701 +[#23705]: https://github.com/home-assistant/home-assistant/pull/23705 +[#23711]: https://github.com/home-assistant/home-assistant/pull/23711 +[#23712]: https://github.com/home-assistant/home-assistant/pull/23712 +[#23713]: https://github.com/home-assistant/home-assistant/pull/23713 +[#23714]: https://github.com/home-assistant/home-assistant/pull/23714 +[#23716]: https://github.com/home-assistant/home-assistant/pull/23716 +[#23724]: https://github.com/home-assistant/home-assistant/pull/23724 +[#23729]: https://github.com/home-assistant/home-assistant/pull/23729 +[#23732]: https://github.com/home-assistant/home-assistant/pull/23732 +[#23733]: https://github.com/home-assistant/home-assistant/pull/23733 +[#23736]: https://github.com/home-assistant/home-assistant/pull/23736 +[#23740]: https://github.com/home-assistant/home-assistant/pull/23740 +[#23743]: https://github.com/home-assistant/home-assistant/pull/23743 +[#23746]: https://github.com/home-assistant/home-assistant/pull/23746 +[#23751]: https://github.com/home-assistant/home-assistant/pull/23751 +[#23753]: https://github.com/home-assistant/home-assistant/pull/23753 +[@4lloyd]: https://github.com/4lloyd +[@Adminiuga]: https://github.com/Adminiuga +[@BKPepe]: https://github.com/BKPepe +[@Chris-V]: https://github.com/Chris-V +[@Danielhiversen]: https://github.com/Danielhiversen +[@GeertvanHorrik]: https://github.com/GeertvanHorrik +[@GoNzCiD]: https://github.com/GoNzCiD +[@Jc2k]: https://github.com/Jc2k +[@JonasPed]: https://github.com/JonasPed +[@Julius2342]: https://github.com/Julius2342 +[@Kane610]: https://github.com/Kane610 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@SNoof85]: https://github.com/SNoof85 +[@StevenLooman]: https://github.com/StevenLooman +[@SukramJ]: https://github.com/SukramJ +[@Swamp-Ig]: https://github.com/Swamp-Ig +[@ThaStealth]: https://github.com/ThaStealth +[@TheLastProject]: https://github.com/TheLastProject +[@TomerFi]: https://github.com/TomerFi +[@UgaitzEtxebarria]: https://github.com/UgaitzEtxebarria +[@ViViDboarder]: https://github.com/ViViDboarder +[@adrum]: https://github.com/adrum +[@alengwenus]: https://github.com/alengwenus +[@amelchio]: https://github.com/amelchio +[@andrewsayre]: https://github.com/andrewsayre +[@anrudolph]: https://github.com/anrudolph +[@arsaboo]: https://github.com/arsaboo +[@atomic7777]: https://github.com/atomic7777 +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bdurrer]: https://github.com/bdurrer +[@bieniu]: https://github.com/bieniu +[@brange]: https://github.com/brange +[@bwarden]: https://github.com/bwarden +[@carstenschroeder]: https://github.com/carstenschroeder +[@cdce8p]: https://github.com/cdce8p +[@cgtobi]: https://github.com/cgtobi +[@chmielowiec]: https://github.com/chmielowiec +[@cyrosy]: https://github.com/cyrosy +[@dmulcahey]: https://github.com/dmulcahey +[@droopanu]: https://github.com/droopanu +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@etheralm]: https://github.com/etheralm +[@evanjd]: https://github.com/evanjd +[@fabaff]: https://github.com/fabaff +[@flowolf]: https://github.com/flowolf +[@fredrike]: https://github.com/fredrike +[@itn3rd77]: https://github.com/itn3rd77 +[@ktnrg45]: https://github.com/ktnrg45 +[@ludeeus]: https://github.com/ludeeus +[@maddenp]: https://github.com/maddenp +[@max-te]: https://github.com/max-te +[@mcc05]: https://github.com/mcc05 +[@mikeage]: https://github.com/mikeage +[@mitchellrj]: https://github.com/mitchellrj +[@nielstron]: https://github.com/nielstron +[@panosmz]: https://github.com/panosmz +[@pascallj]: https://github.com/pascallj +[@phdelodder]: https://github.com/phdelodder +[@pnbruckner]: https://github.com/pnbruckner +[@pszafer]: https://github.com/pszafer +[@pvizeli]: https://github.com/pvizeli +[@raman325]: https://github.com/raman325 +[@robmarkcole]: https://github.com/robmarkcole +[@rohankapoorcom]: https://github.com/rohankapoorcom +[@rolfberkenbosch]: https://github.com/rolfberkenbosch +[@scop]: https://github.com/scop +[@sowelie]: https://github.com/sowelie +[@teliov]: https://github.com/teliov +[@tsvi]: https://github.com/tsvi +[@unixko]: https://github.com/unixko +[@vigonotion]: https://github.com/vigonotion +[@w1ll1am23]: https://github.com/w1ll1am23 +[@zanglang]: https://github.com/zanglang +[@zewelor]: https://github.com/zewelor +[@zxdavb]: https://github.com/zxdavb +[ads docs]: /components/ads/ +[alexa docs]: /components/alexa/ +[ambiclimate docs]: /components/ambiclimate/ +[amcrest docs]: /components/amcrest/ +[automation docs]: /components/automation/ +[bizkaibus docs]: /components/bizkaibus/ +[bluesound docs]: /components/bluesound/ +[bom docs]: /components/bom/ +[caldav docs]: /components/caldav/ +[cast docs]: /components/cast/ +[counter docs]: /components/counter/ +[daikin docs]: /components/daikin/ +[danfoss_air docs]: /components/danfoss_air/ +[deconz docs]: /components/deconz/ +[discord docs]: /components/discord/ +[discovery docs]: /components/discovery/ +[dnsip docs]: /components/dnsip/ +[dyson docs]: /components/dyson/ +[econet docs]: /components/econet/ +[enocean docs]: /components/enocean/ +[epsonworkforce docs]: /components/epsonworkforce/ +[essent docs]: /components/essent/ +[evohome docs]: /components/evohome/ +[frontend docs]: /components/frontend/ +[geniushub docs]: /components/geniushub/ +[glances docs]: /components/glances/ +[google docs]: /components/google/ +[google_assistant docs]: /components/google_assistant/ +[greeneye_monitor docs]: /components/greeneye_monitor/ +[hangouts docs]: /components/hangouts/ +[heos docs]: /components/heos/ +[homekit docs]: /components/homekit/ +[homekit_controller docs]: /components/homekit_controller/ +[homematic docs]: /components/homematic/ +[homematicip_cloud docs]: /components/homematicip_cloud/ +[honeywell docs]: /components/honeywell/ +[html5 docs]: /components/html5/ +[huawei_lte docs]: /components/huawei_lte/ +[hue docs]: /components/hue/ +[ihc docs]: /components/ihc/ +[incomfort docs]: /components/incomfort/ +[influxdb docs]: /components/influxdb/ +[input_datetime docs]: /components/input_datetime/ +[iqvia docs]: /components/iqvia/ +[lcn docs]: /components/lcn/ +[lifx docs]: /components/lifx/ +[liveboxplaytv docs]: /components/liveboxplaytv/ +[local_file docs]: /components/local_file/ +[logi_circle docs]: /components/logi_circle/ +[mastodon docs]: /components/mastodon/ +[media_extractor docs]: /components/media_extractor/ +[media_player docs]: /components/media_player/ +[meteoalarm docs]: /components/meteoalarm/ +[mqtt docs]: /components/mqtt/ +[mysensors docs]: /components/mysensors/ +[namecheapdns docs]: /components/namecheapdns/ +[netatmo docs]: /components/netatmo/ +[netatmo_public docs]: /components/netatmo_public/ +[netgear_lte docs]: /components/netgear_lte/ +[nextbus docs]: /components/nextbus/ +[nmap_tracker docs]: /components/nmap_tracker/ +[notify docs]: /components/notify/ +[oasa_telematics docs]: /components/oasa_telematics/ +[ohmconnect docs]: /components/ohmconnect/ +[onboarding docs]: /components/onboarding/ +[onvif docs]: /components/onvif/ +[opencv docs]: /components/opencv/ +[openuv docs]: /components/openuv/ +[opple docs]: /components/opple/ +[orangepi_gpio docs]: /components/orangepi_gpio/ +[otp docs]: /components/otp/ +[panasonic_bluray docs]: /components/panasonic_bluray/ +[philips_js docs]: /components/philips_js/ +[plex docs]: /components/plex/ +[pollen docs]: /components/pollen/ +[ps4 docs]: /components/ps4/ +[ptvsd docs]: /components/ptvsd/ +[rainmachine docs]: /components/rainmachine/ +[recorder docs]: /components/recorder/ +[rest docs]: /components/rest/ +[sendgrid docs]: /components/sendgrid/ +[serial_pm docs]: /components/serial_pm/ +[sesame docs]: /components/sesame/ +[seventeentrack docs]: /components/seventeentrack/ +[shodan docs]: /components/shodan/ +[simplisafe docs]: /components/simplisafe/ +[slack docs]: /components/slack/ +[snmp docs]: /components/snmp/ +[sonos docs]: /components/sonos/ +[spotcrime docs]: /components/spotcrime/ +[sql docs]: /components/sql/ +[startca docs]: /components/startca/ +[stream docs]: /components/stream/ +[sun docs]: /components/sun/ +[switchbot docs]: /components/switchbot/ +[switcher_kis docs]: /components/switcher_kis/ +[syncthru docs]: /components/syncthru/ +[systemmonitor docs]: /components/systemmonitor/ +[tapsaff docs]: /components/tapsaff/ +[ted5000 docs]: /components/ted5000/ +[telegram_bot docs]: /components/telegram_bot/ +[tellduslive docs]: /components/tellduslive/ +[tensorflow docs]: /components/tensorflow/ +[thethingsnetwork docs]: /components/thethingsnetwork/ +[tplink_lte docs]: /components/tplink_lte/ +[traccar docs]: /components/traccar/ +[trend docs]: /components/trend/ +[ubee docs]: /components/ubee/ +[upc_connect docs]: /components/upc_connect/ +[upnp docs]: /components/upnp/ +[velux docs]: /components/velux/ +[vesync docs]: /components/vesync/ +[vizio docs]: /components/vizio/ +[websocket_api docs]: /components/websocket_api/ +[xiaomi_aqara docs]: /components/xiaomi_aqara/ +[xmpp docs]: /components/xmpp/ +[yeelight docs]: /components/yeelight/ +[yr docs]: /components/yr/ +[zeroconf docs]: /components/zeroconf/ +[zestimate docs]: /components/zestimate/ +[zha docs]: /components/zha/ +[zwave docs]: /components/zwave/ From f8a534db2d5f0cdf8ca2df9057105ad4062701c9 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 8 May 2019 20:50:15 -0700 Subject: [PATCH 02/24] Add onbaording video --- source/_posts/2019-05-15-release-93.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_posts/2019-05-15-release-93.markdown b/source/_posts/2019-05-15-release-93.markdown index 6c0579ef10d..a2ce6f5261c 100644 --- a/source/_posts/2019-05-15-release-93.markdown +++ b/source/_posts/2019-05-15-release-93.markdown @@ -13,6 +13,12 @@ og_image: /images/blog/2019-05-release-93/components.png +
+ +
+ + + ## {% linkable_title New Integrations %} - Adds Orange Pi GPIO platform ([@pascallj] - [#22541]) ([orangepi_gpio docs]) (new-integration) (new-platform) From 68cbf61efc92a24aa93775e5518966a80f1e4d5b Mon Sep 17 00:00:00 2001 From: Michael Kane Date: Sat, 11 May 2019 12:58:43 -0400 Subject: [PATCH 03/24] Readability improvements to components/ecobee (#9430) * Readability improvements to components/ecobee Made it more clear where and how to modify `configuration.yaml` to add the Ecobee component. * Update link --- source/_components/ecobee.markdown | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown index e15c713c70f..50111254a4e 100644 --- a/source/_components/ecobee.markdown +++ b/source/_components/ecobee.markdown @@ -48,15 +48,7 @@ Now login to the regular consumer portal, and in the hamburger menu there will b Now under the Name and Summary Section you will have an API key. Copy this key and use it in you configuration section below. Click the **X** to close the Developer section. -The first time you run Home Assistant with this component it will give you a PIN code that you need to authorize in the [ecobee consumer portal](https://www.ecobee.com/consumerportal/index.html). You can do this by clicking **Add Application** in the **My Apps** section in the sidebar. - -The PIN can be found from the Home Assistant portal on the Ecobee card or from the **configurator.ecobee** entity in states in the portal. - -- If you do not have an ecobee card, you may be using groups with `default_view` that don't show the card. To get around this you can temporarily comment out the `default_view` section or add the `configurator.ecobee` component to your `default_view` and restart Home Assistant. - -Once you enter the PIN on the ecobee site, wait approximately 5 minutes and then click on the **I have authorized the app** link at the bottom of the ecobee pop-up window. If everything worked correctly, you should now be able to restart Home Assistant again to see the full ecobee card with all of the sensors populated or see the list of sensors in the developer tools. Now you can re-enable your `default_view` (if you had to disable it) and add the ecobee sensors to a group and/or view. - -To set it up, add the following information to your `configuration.yaml` file: +To add the Ecobee component to Home Assistant, add the following information to your [`configuration.yaml`](/docs/configuration/) file: ```yaml # Example configuration.yaml entry @@ -64,6 +56,16 @@ ecobee: api_key: YOUR_API_KEY ``` +[Restart Home Assistant](https://www.home-assistant.io/docs/configuration/#reloading-changes) for the changes to take effect. + +The first time you (re)run Home Assistant with this component it will give you a PIN code that you need to authorize in the [ecobee consumer portal](https://www.ecobee.com/consumerportal/index.html). You can do this by clicking **Add Application** in the **My Apps** section in the sidebar. + +The PIN can be found from the Home Assistant portal on the Ecobee card or from the **configurator.ecobee** entity in states in the portal. + +- If you do not have an ecobee card, you may be using groups with `default_view` that don't show the card. To get around this you can temporarily comment out the `default_view` section or add the `configurator.ecobee` component to your `default_view` and restart Home Assistant. + +Once you enter the PIN on the ecobee site, wait approximately 5 minutes and then click on the **I have authorized the app** link at the bottom of the ecobee pop-up window. If everything worked correctly, you should now be able to restart Home Assistant again to see the full ecobee card with all of the sensors populated or see the list of sensors in the developer tools. Now you can re-enable your `default_view` (if you had to disable it) and add the ecobee sensors to a group and/or view. + {% configuration %} api_key: description: Your ecobee API key. This is only needed for the initial setup of the component. Once registered it can be removed. If you revoke the key in the ecobee portal you will need to update this again and remove the ecobee.conf file in the `.homeassistant` configuration path. From 98266ce57f4807a3598e7f5adcc6a10a17fb0b01 Mon Sep 17 00:00:00 2001 From: Trygve Vea Date: Sun, 12 May 2019 00:39:40 +0200 Subject: [PATCH 04/24] Correct comment in script yaml. (#9437) --- source/_docs/scripts.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index fccdd277509..e77ed5d4c17 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -135,7 +135,7 @@ You can also get the script to abort after the timeout by using `continue_on_tim {% raw %} ```yaml -# Wait until a valve is < 10 or continue after 1 minute. +# Wait until a valve is < 10 or abort after 1 minute. - wait_template: "{{ states.climate.kitchen.attributes.valve|int < 10 }}" timeout: '00:01:00' continue_on_timeout: 'false' From 26a243e11f37fe5e32276fceca09a7a7eb48dca4 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 12 May 2019 11:31:45 +0200 Subject: [PATCH 05/24] Update HassOS to 2.12 --- source/hassio/installation.markdown | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index eb0fb7f2dd8..bef555bf76c 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -147,19 +147,19 @@ A detailed guide about running Hass.io as a virtual machine is available in the [balenaEtcher]: https://www.balena.io/etcher [Virtual Appliance]: https://github.com/home-assistant/hassos/blob/dev/Documentation/boards/ova.md [hassos-network]: https://github.com/home-assistant/hassos/blob/dev/Documentation/network.md -[pi0-w]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_rpi0-w-2.11.img.gz -[pi1]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_rpi-2.11.img.gz -[pi2]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_rpi2-2.11.img.gz -[pi3-32]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_rpi3-2.11.img.gz -[pi3-64]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_rpi3-64-2.11.img.gz -[tinker]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_tinker-2.11.img.gz -[odroid-c2]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_odroid-c2-2.11.img.gz -[odroid-xu4]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_odroid-xu4-2.11.img.gz -[opi-prime]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_opi-prime-2.11.img.gz -[intel-nuc]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_intel-nuc-2.11.img.gz -[vmdk]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_ova-2.11.vmdk.gz -[vhdx]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_ova-2.11.vhdx.gz -[vdi]: https://github.com/home-assistant/hassos/releases/download/2.11/hassos_ova-2.11.vdi.gz +[pi0-w]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi0-w-2.12.img.gz +[pi1]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi-2.12.img.gz +[pi2]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi2-2.12.img.gz +[pi3-32]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi3-2.12.img.gz +[pi3-64]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi3-64-2.12.img.gz +[tinker]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_tinker-2.12.img.gz +[odroid-c2]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_odroid-c2-2.12.img.gz +[odroid-xu4]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_odroid-xu4-2.12.img.gz +[opi-prime]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_opi-prime-2.12.img.gz +[intel-nuc]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_intel-nuc-2.12.img.gz +[vmdk]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_ova-2.12.vmdk.gz +[vhdx]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_ova-2.12.vhdx.gz +[vdi]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_ova-2.12.vdi.gz [linux]: https://github.com/home-assistant/hassio-build/tree/master/install#install-hassio [local]: http://hassio.local:8123 [samba]: /addons/samba/ From 160e188e56161012e50576f4873a40871d237bfb Mon Sep 17 00:00:00 2001 From: jeff-h Date: Sun, 12 May 2019 22:14:23 +1200 Subject: [PATCH 06/24] Update history-graph.markdown (#9439) Clarify confusion around where the `unit_of_measurement` should be defined. --- source/_lovelace/history-graph.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_lovelace/history-graph.markdown b/source/_lovelace/history-graph.markdown index 242213fe875..65944163df1 100644 --- a/source/_lovelace/history-graph.markdown +++ b/source/_lovelace/history-graph.markdown @@ -14,12 +14,12 @@ History graph is a basic card, allowing you to display a graph for each of the e

Screenshot of the history graph card for entities without a unit_of_measurement -Screenshot of the history graph card, when no `unit_of_measurement` is defined. +Screenshot of the history graph card, when the sensor has no `unit_of_measurement` defined.

Screenshot of the history graph card for entities with a unit_of_measurement -Screenshot of the history graph card, when a `unit_of_measurement` is defined. +Screenshot of the history graph card, when the sensor has a `unit_of_measurement` defined.

{% configuration %} From 367456d6d9e40e1aaa2da1235010c90c76748f0c Mon Sep 17 00:00:00 2001 From: Alex Calderon Date: Mon, 13 May 2019 08:11:50 -0400 Subject: [PATCH 07/24] Update denonavr.markdown (#9440) --- source/_components/denonavr.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/denonavr.markdown b/source/_components/denonavr.markdown index cebda75749d..b910bfa5066 100644 --- a/source/_components/denonavr.markdown +++ b/source/_components/denonavr.markdown @@ -26,6 +26,7 @@ Supported devices: - Denon AVR-X2100W - Denon AVR-X4100W - Denon AVR-X4300H +- Denon AVR-X4500H - Denon AVR-1912 - Denon AVR-2312CI - Denon AVR-3311CI From 2a09f535efb1c94422652552be6677d90ca00fc5 Mon Sep 17 00:00:00 2001 From: tiagofreire-pt <41837236+tiagofreire-pt@users.noreply.github.com> Date: Mon, 13 May 2019 21:40:47 +0100 Subject: [PATCH 08/24] Replacing twilio_sms by twilio_call (#9446) --- source/_components/twilio_call.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/twilio_call.markdown b/source/_components/twilio_call.markdown index 47e86f8aab3..6f4566ad60e 100644 --- a/source/_components/twilio_call.markdown +++ b/source/_components/twilio_call.markdown @@ -54,7 +54,7 @@ automation: platform: sun event: sunset action: - service: notify.twilio_sms + service: notify.twilio_call data: message: 'The sun has set' target: From 8c409bf38b6494e48e2ca6c3f54ef409b7d9efed Mon Sep 17 00:00:00 2001 From: SiliconAvatar <43505983+SiliconAvatar@users.noreply.github.com> Date: Mon, 13 May 2019 16:41:09 -0400 Subject: [PATCH 09/24] Fix formatting causing broken table. (#9445) Fixed the formatting (a missing " ` ") which broke the table for the send_photo service. --- source/_components/telegram_bot.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/telegram_bot.markdown b/source/_components/telegram_bot.markdown index 5935b843718..a0b979118d1 100644 --- a/source/_components/telegram_bot.markdown +++ b/source/_components/telegram_bot.markdown @@ -52,7 +52,7 @@ Send a photo. | `password` | yes | Password for a URL which requires HTTP basic authentication. | | `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication. Defaults to `basic`. | | `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. | -| `disable_notification | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | +| `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | | `verify_ssl` | yes | True/false for checking the SSL certificate of the server for HTTPS URLs. Defaults to True. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. Example: `["/command1, /command2", "/command3"]` | | `inline_keyboard` | yes | List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. Example: `["/button1, /button2", "/button3"]` or `[[["Text btn1", "/button1"], ["Text btn2", "/button2"]], [["Text btn3", "/button3"]]]` | From 4b402adaefed1720b9ac462e9e61c68a67b82353 Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Tue, 14 May 2019 10:06:45 +0200 Subject: [PATCH 10/24] Sonos news (#9448) --- source/_posts/2019-05-15-release-93.markdown | 27 ++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/source/_posts/2019-05-15-release-93.markdown b/source/_posts/2019-05-15-release-93.markdown index a2ce6f5261c..ca8ef9c0649 100644 --- a/source/_posts/2019-05-15-release-93.markdown +++ b/source/_posts/2019-05-15-release-93.markdown @@ -18,6 +18,33 @@ og_image: /images/blog/2019-05-release-93/components.png +## {% linkable_title Sonos %} + +The Sonos integration has a number of changes in this release, some of them breaking existing configuration. + +First, the Sonos custom services have been moved to the `sonos` domain. The new service names are as follows: +- `sonos.join` (before: `media_player.sonos_join`) +- `sonos.unjoin` (before: `media_player.sonos_unjoin`) +- `sonos.snapshot` (before: `media_player.sonos_snapshot`) +- `sonos.restore` (before: `media_player.sonos_restore`) +- `sonos.set_sleep_timer` (before: `media_player.sonos_set_sleep_timer`) +- `sonos.clear_sleep_timer` (before: `media_player.sonos_clear_sleep_timer`) +- `sonos.update_alarm` (before: `media_player.sonos_update_alarm`) +- `sonos.set_option` (before: `media_player.sonos_set_option`) + +The last four of those services no longer target all entities by default since that is usually a mistake. The `entity_id` attribute is thus becoming mandatory for those services. If you really do want to target all you can use `entity_id: all`. + +Next, YAML configuration of Sonos under the `media_player:` key is no longer accepted. While auto-configuration through the Integrations UI is now the preferred way, static configuration can still be specified under a `sonos:` key, for example: +```yaml +sonos: + media_player: + hosts: + - 192.0.2.25 + - 192.0.2.26 +``` + +For those of you that like to power down your Sonos, Home Assistant should now handle that without logging errors. Also, speakers that are powered on will be added to Home Assistant without needing a restart. + ## {% linkable_title New Integrations %} From af395c45cd9deafabe9dcb323052dd7540bec328 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Sat, 11 May 2019 12:11:22 +0200 Subject: [PATCH 11/24] Update mysensors validation text (#9335) --- source/_components/mysensors.markdown | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index bd5861b72aa..e8e1c1a0ae7 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -246,7 +246,13 @@ In MySensors version 2.2 the serial API changed from using `I_HEARTBEAT_RESPONSE Messages sent to or from Home Assistant from or to a MySensors device will be validated according to the MySensors [serial API](https://www.mysensors.org/download/serial_api_20). If a message doesn't pass validation, it will be dropped and not be passed forward either to or from Home Assistant. Make sure you follow the serial API for your version of MySensors when writing your Arduino sketch. -If you experience dropped messages or that a device is not added to Home Assistant, please turn on debug logging for the `mysensors` component and the `mysensors` package. +The log should warn you of messages that failed validation or if a child value is missing that is required for a certain child type. Home Assistant will log failed validations of child values at warning level if e.g. one required value type for a platform has been received, but other required value types are missing. + +Message validation was introduced in version 0.52 of Home Assistant. + +### {% linkable_title Debug logging %} + +If you experience dropped messages or that a device is not added to Home Assistant, please turn on debug logging for the `mysensors` component and the `mysensors` package. This will help you see what is going on. Make sure you use these logging settings to collect a log sample if you report an issue about the `mysensors` integration in our github issue tracker. ```yaml logger: default: info @@ -254,9 +260,6 @@ logger: homeassistant.components.mysensors: debug mysensors: debug ``` -The log should inform you of messages that failed validation or if a child value is missing that is required for a certain child type. Note that the log will log all possible combinations of platforms for a child type that failed validation. It is normal to see some platforms fail validation if the child type supports multiple platforms and your sketch doesn't send all corresponding value types. e.g., the `S_BARO` child type supports both `V_PRESSURE` and `V_FORECAST` value types. If you only send a `V_PRESSURE` value, an `S_BARO` entity with `V_PRESSURE` value will be set up for the sensor platform. However, the log will inform of a sensor platform that failed validation due to missing `V_FORECAST` value type for the `S_BARO` child. Home Assistant will log failed validations of child values at warning level if one required value type for a platform has been received, but other required value types are missing. Most failed validations are logged at debug level. - -Message validation was introduced in version 0.52 of Home Assistant. Visit the [library API][MySensors library api] of MySensors for more information. From c723bdc19c3a8b78e72ec2cccea3db3f42fabf02 Mon Sep 17 00:00:00 2001 From: unixko <44964969+unixko@users.noreply.github.com> Date: Tue, 14 May 2019 17:48:51 +0700 Subject: [PATCH 12/24] add abbreviation for current_temperature_template (#9400) --- source/_docs/mqtt/discovery.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index f1fe14b3003..9f49a0ff8d0 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -98,6 +98,7 @@ Supported abbreviations: 'cln_tpl': 'cleaning_template', 'cmd_t': 'command_topic', 'curr_temp_t': 'current_temperature_topic', + 'curr_temp_tpl': 'current_temperature_template', 'dev': 'device', 'dev_cla': 'device_class', 'dock_t': 'docked_topic', @@ -295,7 +296,7 @@ Setting up a climate component (heat only) with abbreviated configuration variab "temp_stat_t":"homeassistant/climate/livingroom/state", "temp_stat_tpl":"{{value_json.target_temp}}", "curr_temp_t":"homeassistant/climate/livingroom/state", - "current_temperature_template":"{{value_json.current_temp}}", + "curr_temp_tpl":"{{value_json.current_temp}}", "min_temp":"15", "max_temp":"25", "temp_step":"0.5", From 5c881bf8063513363b625a45a16167294cf99d79 Mon Sep 17 00:00:00 2001 From: Timmo Date: Tue, 14 May 2019 10:58:01 +0100 Subject: [PATCH 13/24] Add entity button icon_height docs (#9449) * :sparkles: Add entity button icon_height docs Further to https://github.com/home-assistant/home-assistant-polymer/pull/2800#issuecomment-492079894 * :hammer: Expand --- source/_lovelace/entity-button.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_lovelace/entity-button.markdown b/source/_lovelace/entity-button.markdown index 1cd473e21ab..fc5649cb712 100644 --- a/source/_lovelace/entity-button.markdown +++ b/source/_lovelace/entity-button.markdown @@ -51,6 +51,11 @@ show_icon: description: Show icon. type: boolean default: "true" +icon_height: + required: false + description: Set the height for the icon. This is in pixels which is handled by the config ui. (Advanced users can use other CSS values if they like) + type: string + default: auto tap_action: required: false description: Action to take on tap From 11056c514dc26983f854f4ac1fd4302867b49792 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 14 May 2019 13:19:24 +0200 Subject: [PATCH 14/24] Update release notes --- source/_posts/2019-05-15-release-93.markdown | 50 +++++++++++++++++- .../2019-05-release-93/automation-editor.png | Bin 0 -> 69366 bytes .../blog/2019-05-release-93/components.png | Bin 0 -> 51067 bytes 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 source/images/blog/2019-05-release-93/automation-editor.png create mode 100644 source/images/blog/2019-05-release-93/components.png diff --git a/source/_posts/2019-05-15-release-93.markdown b/source/_posts/2019-05-15-release-93.markdown index ca8ef9c0649..388c3d0e8aa 100644 --- a/source/_posts/2019-05-15-release-93.markdown +++ b/source/_posts/2019-05-15-release-93.markdown @@ -17,6 +17,10 @@ og_image: /images/blog/2019-05-release-93/components.png +

+Screenshot of the updated automation editor. +Screenshot of the updated automation editor. +

## {% linkable_title Sonos %} @@ -35,6 +39,7 @@ First, the Sonos custom services have been moved to the `sonos` domain. The new The last four of those services no longer target all entities by default since that is usually a mistake. The `entity_id` attribute is thus becoming mandatory for those services. If you really do want to target all you can use `entity_id: all`. Next, YAML configuration of Sonos under the `media_player:` key is no longer accepted. While auto-configuration through the Integrations UI is now the preferred way, static configuration can still be specified under a `sonos:` key, for example: + ```yaml sonos: media_player: @@ -86,6 +91,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add homematicip cloud temperature sensor from thermostats ([@SukramJ] - [#23263]) ([homematicip_cloud docs]) (breaking change) - Convert Pollen.com sensor into IQVIA component ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) (breaking change) (new-integration) (new-platform) +- Remove support for deprecated Sonos configuration ([@amelchio] - [#23385]) ([sonos docs]) (breaking change) - Remove historical allergen and asthma sensors from IQVIA ([@bachya] - [#23258]) ([iqvia docs]) (breaking change) - Always pad mac addresses from nmap tracker with leading zeros ([@mikeage] - [#23492]) ([nmap_tracker docs]) (breaking change) - Convert frontend to do client-side modern JS detection ([@balloob] - [#23618]) ([frontend docs]) (breaking change) @@ -95,6 +101,20 @@ Experiencing issues introduced by this release? Please report them in our [issue - Merge netatmo_public sensor into the netatmo integration ([@cgtobi] - [#23531]) ([netatmo docs]) ([netatmo_public docs]) (breaking change) - Update Sesame component to use Candy House's library using the V3 API ([@zanglang] - [#23621]) ([sesame docs]) (breaking change) +## {% linkable_title Beta Fixes %} + +- Sort discovered entries by 'st' to ensure getting the same device each discovery ([@StevenLooman] - [#23763]) ([upnp docs]) (beta fix) +- Bump pyatmo to v1.11 ([@cgtobi] - [#23766]) ([netatmo docs]) (beta fix) +- Fix for issue #23739. Added unique_id property so ([@dreed47] - [#23769]) ([zestimate docs]) (beta fix) +- Beta Fix: ONVIF ([@hunterjm] - [#23787]) ([onvif docs]) (beta fix) +- Synchronize Sonos service calls ([@amelchio] - [#23791]) ([sonos docs]) (beta fix) +- Do not add coordinator to the ZHA entities. ([@Adminiuga] - [#23803]) ([zha docs]) (beta fix) +- fix onvif wsdl import - take 2 ([@hunterjm] - [#23807]) ([onvif docs]) (beta fix) +- Correct ZHA illumination conversion ([@dmulcahey] - [#23853]) ([zha docs]) (beta fix) +- Fix ZHA battery when readings produce an unknown value ([@dmulcahey] - [#23854]) ([zha docs]) (beta fix) +- bump zha-quirks ([@dmulcahey] - [#23855]) ([zha docs]) (beta fix) +- Fix improper usage of body attribute on web.Response. Should be text since we arent sending bytes ([@robbiet480] - [#23857]) ([geofency docs]) ([locative docs]) ([mobile_app docs]) (beta fix) + ## {% linkable_title All changes %} - Pass configured host string instead of always forcing an ip-address ([@itn3rd77] - [#23164]) ([homematic docs]) @@ -175,7 +195,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add device info for Logi Circle camera and sensor entities ([@evanjd] - [#23373]) ([logi_circle docs]) - Bump requirement to v55 ([@Kane610] - [#23410]) ([deconz docs]) - restore battery_quantity for zha devices ([@vigonotion] - [#23320]) ([zha docs]) -- Remove support for deprecated Sonos configuration ([@amelchio] - [#23385]) ([sonos docs]) +- Remove support for deprecated Sonos configuration ([@amelchio] - [#23385]) ([sonos docs]) (breaking change) - Additional cleanup of IQVIA integration ([@bachya] - [#23403]) ([iqvia docs]) - Add new nextbus sensor ([@ViViDboarder] - [#20197]) ([nextbus docs]) (new-platform) - Remove historical allergen and asthma sensors from IQVIA ([@bachya] - [#23258]) ([iqvia docs]) (breaking change) @@ -312,6 +332,17 @@ Experiencing issues introduced by this release? Please report them in our [issue - Update Sesame component to use Candy House's library using the V3 API ([@zanglang] - [#23621]) ([sesame docs]) (breaking change) - Upgrade zeroconf to 0.22.0 ([@BKPepe] - [#23524]) ([zeroconf docs]) - No longer rely on requests ([@balloob] - [#23685]) ([ps4 docs]) +- Sort discovered entries by 'st' to ensure getting the same device each discovery ([@StevenLooman] - [#23763]) ([upnp docs]) (beta fix) +- Bump pyatmo to v1.11 ([@cgtobi] - [#23766]) ([netatmo docs]) (beta fix) +- Fix for issue #23739. Added unique_id property so ([@dreed47] - [#23769]) ([zestimate docs]) (beta fix) +- Beta Fix: ONVIF ([@hunterjm] - [#23787]) ([onvif docs]) (beta fix) +- Synchronize Sonos service calls ([@amelchio] - [#23791]) ([sonos docs]) (beta fix) +- Do not add coordinator to the ZHA entities. ([@Adminiuga] - [#23803]) ([zha docs]) (beta fix) +- fix onvif wsdl import - take 2 ([@hunterjm] - [#23807]) ([onvif docs]) (beta fix) +- Correct ZHA illumination conversion ([@dmulcahey] - [#23853]) ([zha docs]) (beta fix) +- Fix ZHA battery when readings produce an unknown value ([@dmulcahey] - [#23854]) ([zha docs]) (beta fix) +- bump zha-quirks ([@dmulcahey] - [#23855]) ([zha docs]) (beta fix) +- Fix improper usage of body attribute on web.Response. Should be text since we arent sending bytes ([@robbiet480] - [#23857]) ([geofency docs]) ([locative docs]) ([mobile_app docs]) (beta fix) [#20197]: https://github.com/home-assistant/home-assistant/pull/20197 [#21244]: https://github.com/home-assistant/home-assistant/pull/21244 @@ -528,6 +559,17 @@ Experiencing issues introduced by this release? Please report them in our [issue [#23746]: https://github.com/home-assistant/home-assistant/pull/23746 [#23751]: https://github.com/home-assistant/home-assistant/pull/23751 [#23753]: https://github.com/home-assistant/home-assistant/pull/23753 +[#23763]: https://github.com/home-assistant/home-assistant/pull/23763 +[#23766]: https://github.com/home-assistant/home-assistant/pull/23766 +[#23769]: https://github.com/home-assistant/home-assistant/pull/23769 +[#23787]: https://github.com/home-assistant/home-assistant/pull/23787 +[#23791]: https://github.com/home-assistant/home-assistant/pull/23791 +[#23803]: https://github.com/home-assistant/home-assistant/pull/23803 +[#23807]: https://github.com/home-assistant/home-assistant/pull/23807 +[#23853]: https://github.com/home-assistant/home-assistant/pull/23853 +[#23854]: https://github.com/home-assistant/home-assistant/pull/23854 +[#23855]: https://github.com/home-assistant/home-assistant/pull/23855 +[#23857]: https://github.com/home-assistant/home-assistant/pull/23857 [@4lloyd]: https://github.com/4lloyd [@Adminiuga]: https://github.com/Adminiuga [@BKPepe]: https://github.com/BKPepe @@ -568,6 +610,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@chmielowiec]: https://github.com/chmielowiec [@cyrosy]: https://github.com/cyrosy [@dmulcahey]: https://github.com/dmulcahey +[@dreed47]: https://github.com/dreed47 [@droopanu]: https://github.com/droopanu [@elupus]: https://github.com/elupus [@emontnemery]: https://github.com/emontnemery @@ -576,6 +619,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@fabaff]: https://github.com/fabaff [@flowolf]: https://github.com/flowolf [@fredrike]: https://github.com/fredrike +[@hunterjm]: https://github.com/hunterjm [@itn3rd77]: https://github.com/itn3rd77 [@ktnrg45]: https://github.com/ktnrg45 [@ludeeus]: https://github.com/ludeeus @@ -592,6 +636,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@pszafer]: https://github.com/pszafer [@pvizeli]: https://github.com/pvizeli [@raman325]: https://github.com/raman325 +[@robbiet480]: https://github.com/robbiet480 [@robmarkcole]: https://github.com/robmarkcole [@rohankapoorcom]: https://github.com/rohankapoorcom [@rolfberkenbosch]: https://github.com/rolfberkenbosch @@ -630,6 +675,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [evohome docs]: /components/evohome/ [frontend docs]: /components/frontend/ [geniushub docs]: /components/geniushub/ +[geofency docs]: /components/geofency/ [glances docs]: /components/glances/ [google docs]: /components/google/ [google_assistant docs]: /components/google_assistant/ @@ -653,11 +699,13 @@ Experiencing issues introduced by this release? Please report them in our [issue [lifx docs]: /components/lifx/ [liveboxplaytv docs]: /components/liveboxplaytv/ [local_file docs]: /components/local_file/ +[locative docs]: /components/locative/ [logi_circle docs]: /components/logi_circle/ [mastodon docs]: /components/mastodon/ [media_extractor docs]: /components/media_extractor/ [media_player docs]: /components/media_player/ [meteoalarm docs]: /components/meteoalarm/ +[mobile_app docs]: /components/mobile_app/ [mqtt docs]: /components/mqtt/ [mysensors docs]: /components/mysensors/ [namecheapdns docs]: /components/namecheapdns/ diff --git a/source/images/blog/2019-05-release-93/automation-editor.png b/source/images/blog/2019-05-release-93/automation-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..b26584a58a694f2e666d27dc165c61bdbcb69f5d GIT binary patch literal 69366 zcma%iWmr^SwD-^mBHbZKhm>@8N_UNbpaK$7Gjw<7fHVpS2qQ?(A(U>Ft^tM;$)TIe z|9-gd*LQz7&xz-(wf0)S6?>h1;`DXZi3sQjKp+s2riO|k2!sO#fv{lsSPyq9spsB- zK$z$HFO5|nF8^;_US5K*aQ^S||MNssQ&UMv34uV+(b0{MkGHnA($doY`t=KBQ}%Ei z8yf=&Xy89007V0Wg2Dg*h>D79XlT&WGyM7UhlzIp6d4 z_V$N){rvfJYHI59=g)0zZRO<^qobp}y}k1C3g5qfx3#r%baedo?ORn<)w_32va)iC ziHRvGDVdp>B_$==+Arhc;$~)MYHDhvrDa%HSXTD0BO)Rmv=I~(6dfHM8XEfIg{ZNy z@w=&80|Ntpe}4%HNgp4d_wV1EnVAzH+L8;7ZY&}YP!$M%ezkn{n)%2`FFE-etq8s zYF@iJzPc%1xS83z{knXk+kL%$a_cdCW7mHZ_2)Wm>PEcl%75(U-azj@9t8SB!`ykv zMDqCX^x_@{au_=`n7AdxCB*2tx9i!#qa)1C&9iD-xi>Ka%~6@b$1$q@Uhl3RER9^3 z>)sc0-WOxubtDYTtg1Eby{MeJoou}xuNG5&iP3l*+x-_ez2ocHYF=}HXLIdctN*o} z94H=iRbw~A!3i3{IPcEega>#x&i|^*;T_X@SKG7Ws zIWsjq9~+mlo}jk0xV*ZEpkavG_Yn1ZweR(UcOf^SL8?k{Cup^MXt{SJBH$)iu(&wX zrtn}5ghA-7siJ5Mo!|Wt_Mgjy7T;D{Vy6y!dSsz*5Wvw{9U zZK?AL9hvYjvV~wW#fPD4@KkFXxKYK$k*u#Q&otEHF7uu_w2&wFCjVTlL_Dn+5KUtp znU4`N)Toii{5+II@ww8Z;v&{%*A+q(%=B}(OIc>Ui{oxAD^`buz>=gyJ1wX9Z60%U z?32MSsOf|hojtN-z;??Hu~K}l@iHykRJ{$`DSDQ!^-(EuRN(mhk*PO*Ohq)c{jZtW z;wjQj1u@Q8T0^_fa8j>z@bM{_$?Hapc=Dx?UMM~R0l^hLoopVn^KQKj{_lMJuy+%- z3=e*LV!Qm_mp-b5D{#E-PcNVP_ezRUse}8-7aczuV?#b>=71!NxlzCE7J72=u)VdxxBWrqL7GbIGbiVn=DW6>V`$amC$4G@FPGGpXDr;5^eRhz#Qi3 zl#M}agd|`&OIppg*O`IpKU#Wurz6@=sl@O|+lQ(Hx;x$OOo630un z6UtP&|czo+Uz)_^vbj(%*7jj{YU}ds#YZ5vw?)1)PJ&vu>@jJsd67Qt& z3v{bs(M-?Q0Mei-k*=CulOJZtLX)&wWkYF!8qD%H%g?D_%e@WnkQ|r_JJ6O&$JR{u z<;IAO(xCs{2U?$r!^0G~wL%=X@&&!d@lJk`{xGkG^2o|?)#53^x87$zUA8*-+es*t zVi_YUF$>li3tA+n+C?^7eG(4gO4-};VlyR;=YOm+!ao)FFYH~-{w#R_Ga=1Hv4 z(O57;P?finT+gxxr5Lst5y)p^!Zb>r2{GuGepV%0HYL~%Z<(UKrn2INYIb2lhXaxES}L~|5MG;OKg7tUT1Ak}c<_8#rdtZB${y3$A$y78h3zc8oe-I62M zyMi*<#PpQ4t4WHb~}KxK%W1Wxi5&=UujDkt<596S#OSzJsVK=TO9VI6D|jz@jseR zLhpa;Q4eigJfdigl^EgGL<&AavLQbR&X=F1g@fRv=#rn8^P-LpV zWYoUwGru>w1(4$znKnbD4|jyd>^nsgwqXgTjWqEi4?~Kpc#%R6LaAi8);bsS^(;-ug3mQl)-zH3KqPJdbmyeS0qw?cbGv}g$-$vJVsj_gVsNp{ z9Dnny0NQU0)IQ?F59gz|20m1ZmlTL+#F-%ob4>v|*2SE5jhv<3cph zvW?LlS-AtNwdn}l`*T{k&7J@`UOq<326=Dx08rK2j$?T8B%ib_86p+CA|DK3C2@hV zEyP-&M3J@&<2cWE`b+uMc)m!{ymO1>+|7;v54#UdJ zPh(+z=Q)GcOhN~_erPo{ZbB>bKZ&FTD`{JgVe3R}ngdTfxn^sw2BXLhv!MSO>nocz zkceYNf0S*%ygpwBAJENygd)N^-Piot>O~Ew={|0bgM3;{`uISYzVC9F?U>&Jc+0`T z(NQ3Awq3~D1CU4hp@#(3#!qsXeq)r(3e_`5hfBBjcnRM|2B#I$?()&ul%^6nJn~;; zUtvXN@n}&hzGMNLm}pj()D4!AeH%+)&W%Zc)UZ^6U9%ub$br0uE@`}ld0|DsZYC+? zC1M2lPEyzzbpCqG$gBKW`N+s93wV z@r&33`ub((27&k;9j|TtN$eZhO_mroPI9;bPIv-4m|*N1i$>onYV+A+mWysrs!1bNMK^>0cLc-<3%cOWS z3KJ_?=tin54WN+P3nIy1SLNfyP_)B6R!(VU3arP+Ht_zVSU7Ft7##1?X@RK$sSm44$K@;ZY{GyU0XGum(mCVpfiF2S)| z`p7Uj9J$22*6tDug#_JwuR{^h!>tqjVJge?X#>@5Kh0kE2DpHMS{GXKgPuC0y!cl) zS2>jzy*fp`vCR#nf#Dep{k|QCf5cMO8k21VrWpSQRt9&mB)ht}%@L9j0&7h}eWOmfk!yI_{WJ z0C?jxIcJQ&%uSEYcF216)e2)<;I=?B9FV|BL#ER;#IMZG098;e8fnwK))U~>F+lhM z)xK$21-+M02Ch+QvUwcC;z1{?+(ws=sSgA%WLY4L-jrFUc~-U+b6_i5FEeVhE8AJ? z9kD%}sE@7#9iJ|2LXoBMhR5{!cJ6|$vIUz>`-WC2t(>#3pVzSFwoJca3?=Y#tZBuI zt~u*y64D&Nt$zxxv(#Bc#G!l?Jg!N~s$@Og7UNK=sV}>G5ryjDO&iw&aXmeHi;rE1 z>~F|#66h!VT7VSUL7c1r)9uko<)G#SdM#r*e2u(Qy@$R^EURs)Y?H_19Ar#+K*KeU zyD(z&%lL5qN2zb<5P|-?=d-epDP>pw)nPCMyAuv(i`pQU&aiHKe!9Y?30$vBc9+Ds z8qSo8Y933yJWzi1)WOxRetEl6Y(cGy*Mm%pD9W{_#`VWi5@Ss!DV~@(^T3gXmCOyU;=HR4fb=T^7AAij>ZUqYEXjZ`aZAvrN50Dc_Tmv{&O}36QV#zE3anozj_K6e z#ZfB?KcR+)#lg(z(*w-RP*eOCFI2GHOQ9Cxv_;kn@ADCRZR8769@0GE>8Y;kLGMhu zH$!_HuYxaq{4VPT$9V))w27!7lq6a)1PPF^im3*dNjZY+_iHL02j|q{z73E)3WsON ztJ3)S`O+t$O{+C*`pziYYU=Ae4M}I<{J%#ci zW6hI`-P4t*dFR;AX?)mA0wi-PSjc^L~9^6Rw@<`Y`3bxz<$ufgp zHjGc6G#+oo1q`l!{4i9i4fy7b`rqV?x_u8B@7*a?qs(vepLO&!`$%ucIaq}t?6WIs zETU=rI%vR5tcWTIs|BI0h+u-kD_pEph-Qz zcWON{ek4fr>})UZm^V7<=I&(jq-+>A7;aZ@4;?C12LwXEwvAMQVBHj}tzO=Qu;is; z{KE2f44>lK4kMzZ6DGkXU+g4SMt0p{`qS=PW>_YQgHudqF=L;vAJ7EzDlsIgC__aPz9F*PRc)f7^Tc(s z#1HPi=GjYYBtaTcj@SE!0kqv87aorW14fBX?Wls*E<4l`mww>TjRD$!&fZq&itI)X z{!E{u=;iahtl8&ML;ZaN;VQKbrElOx01*F*^d|UWDWfmNCe0Nu16h6bj@8>8ME+2@ zJyblI66noiT`(g;nS&5WG)8Sia%ZnMXY|xLVM;!?08lIL-N8q$gCaLGGUKcX}{WyzQi6;AF1ed!1-TWfslwcfy8* zR5A5EYd{gp8LNs5k<5{^)sVLjdh-RUUAq^tPrID)z-B-RI?#WQI+)}P8h;PXQ3oT3 zs^KMk!RiBSS<#E+aP?HK(n#i5{vN#Lb`?M+i1e7lbtB30{EnJPJ-zOWdJGkeVRm0N{`jeHWDSZ-wsmjmnu<_FuPi3`k4aFPMqw#Xnh z>IX89sGi~1I}8ok%kMnl`H4kDdB8e}m^TIQ?al{rAVtw(uo5D`5*=S!{8V!Oc@y2o zKAEK-JzZ96Tq-0ELYb7)J+}~UwCrq}_%kHUarr_PY}WgCn)qq=bSz{d-s}iU<%sl_ zqoiaJ+03NOeQZTEJdp!kYqVNBozC>3e&EgQD2k`;JY-q|-H38z^STh^2fNm+mN=Lo z*(vBzz12FveI29;QS;E!P!A<>Cp+)L;}4I&`1+1FU0&rQ4QI(?m)OMB=r+x~h9qsH ztPXCS31ioDJCiG(4=jOyee9ZfEnrzmVdkW_MFo-{3Z-P)kObVTWW&RLgi;M;nKe{B(2`b9l7*PiyF;QvJrmD=!LmOP-8;cdN#iP6UU#|^=G*?A~R~cx~5PpAN}o%x7cZ8Zx#|rbbPq3Lc^EAQE>dwHqoZ3udq94{h($HfQ#i1WJmZb4Ye6 zym3IioBIt41arDC$$y;YI842lVip#MfmZk2NR>cs)DZ(-9|%^jHt-lvX0XFPzY)%@ z)I28yjy@Mu2C)xksFfdQA-dztKVOA#nb_xVT1G&Wk&GL3h0V9)MpPL=9>hRCqSCwk z^l#yo4$dAMJaE263s&9sW<6t@{u9(~j~dFNAh%DTLKPe9zk!&h6lpJ_#>A0U$(uW1 zJN~zb43qqlAN_u23mNM%pKG(UDn7Ld4u_ER=g`;qoaq*!l#kOkwBMs7swS-hjiM%Z**dBQYH5fWkZF zEmLg3AVZu0xwY#}YcokA*F+T#$wQD|e$cbRkRIUGOB}8)yP0zkrqytk%FsTr=+oZ7 z#8t7!PiH3ar&(fmVa?9hP_PfLe&X9D`PfX>_!9k@y+h8I(bsc-p5^&M z)ijTfIbntBifl+0Iw)3oRh8W)f*;8hM$aGRy^yd%bP)bI;uiDoh79@7q;1eBiUuS2 zHbn;Z$_Ya9SoU#CTt#*0D3O$_!l3yS$zv>H7wISS67Q{axKQz*%gT?y9OOB*@1C`Y zuecHj>n@APk!$j|M*yfs5yB}&7yAd~+D)zp-Bm@u>!Y{ny9Q$eED*%ora;~g=Z{NT zB7j{P*cop;Z~T!3kd9~r<^>LwCb(QUa16y9zu~U7Y21V0=GQV-X>3uh-;&MY4*hza z^|Xe+Z4Vb{%Z7;ipQ9H9YUk9tLL*#{=G@5%%wU~{Y;>I$B66YDUp||PzD|^VW>V+w z6FX^7!mlyGipDCs$gui6K*!NTogQ4%b$!RP=1A}YX;r;i z^VXc`cT$M&NR4V2?~8qKmLlNkU;P6sJEA_#Bk2ThfY-Dk&$tv-|H%dZ`|^&b5pTs6 zi37L3C@i5WwaD_E6yw7@2tB97f*X#1{+g}5eJTPQ8l}|SM;X_z{1k=0f_QQBk;V_S z6!Cr3@VwlpO8?d&F~pDm48P0nH|~)}4G&}E{0~NYsvu_qqsE$%DFu)cV+y|Lu{LOc z3;%H_GqXR*U;N_z$=?x9FbTCE2Q-P9WC~+4g2nw@u6lKD�WfX#|Z0ZER~0MEABv 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 literal 0 HcmV?d00001 From 22b5f3c256679db770fc914c08f28017a1730d6c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 14 May 2019 13:38:03 +0200 Subject: [PATCH 15/24] Add some notes --- source/_posts/2019-05-15-release-93.markdown | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/_posts/2019-05-15-release-93.markdown b/source/_posts/2019-05-15-release-93.markdown index 388c3d0e8aa..60b2f6a1507 100644 --- a/source/_posts/2019-05-15-release-93.markdown +++ b/source/_posts/2019-05-15-release-93.markdown @@ -13,6 +13,8 @@ og_image: /images/blog/2019-05-release-93/components.png +- Onboarding has been updated to allow users to configure integrations during onboarding. +
@@ -22,6 +24,11 @@ og_image: /images/blog/2019-05-release-93/components.png Screenshot of the updated automation editor.

+- When Lovelace is not configured, it will now use areas to group entities. +- We have updated a [progress report](/blog/2019/05/03/update-from-the-field/) on our plans for the year +- Nest has announced to [no longer allow access to their API](/blog/2019/05/08/nest-data-bye-bye/), integration will stop working at the end of August. + + ## {% linkable_title Sonos %} The Sonos integration has a number of changes in this release, some of them breaking existing configuration. From 7a8accc5aa564edfc0a04ab74050226f2faa6deb Mon Sep 17 00:00:00 2001 From: cogneato Date: Tue, 14 May 2019 07:43:31 -0600 Subject: [PATCH 16/24] Add descriptions to breaking changes Groups and adds descriptions to breaking changes --- source/_posts/2019-05-15-release-93.markdown | 58 ++++++++++++++++---- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/source/_posts/2019-05-15-release-93.markdown b/source/_posts/2019-05-15-release-93.markdown index 60b2f6a1507..2d1b8da31f9 100644 --- a/source/_posts/2019-05-15-release-93.markdown +++ b/source/_posts/2019-05-15-release-93.markdown @@ -96,17 +96,53 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Breaking Changes %} -- Add homematicip cloud temperature sensor from thermostats ([@SukramJ] - [#23263]) ([homematicip_cloud docs]) (breaking change) -- Convert Pollen.com sensor into IQVIA component ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) (breaking change) (new-integration) (new-platform) -- Remove support for deprecated Sonos configuration ([@amelchio] - [#23385]) ([sonos docs]) (breaking change) -- Remove historical allergen and asthma sensors from IQVIA ([@bachya] - [#23258]) ([iqvia docs]) (breaking change) -- Always pad mac addresses from nmap tracker with leading zeros ([@mikeage] - [#23492]) ([nmap_tracker docs]) (breaking change) -- Convert frontend to do client-side modern JS detection ([@balloob] - [#23618]) ([frontend docs]) (breaking change) -- Added option to select photoblack cartridge ([@ThaStealth] - [#23433]) ([epsonworkforce docs]) (breaking change) -- Move Sonos services to sonos domain ([@amelchio] - [#23670]) ([sonos docs]) (breaking change) -- Share snmp constants across all platforms ([@fabaff] - [#23678]) ([snmp docs]) (breaking change) -- Merge netatmo_public sensor into the netatmo integration ([@cgtobi] - [#23531]) ([netatmo docs]) ([netatmo_public docs]) (breaking change) -- Update Sesame component to use Candy House's library using the V3 API ([@zanglang] - [#23621]) ([sesame docs]) (breaking change) +- __Homematic IP Cloud__ - Adds homematicip cloud temperature sensor from thermostats. Entity IDs of HmIP-SLO (Light Sensor Outdoor) will change and stale entities will need to be removed from the entity registry. ([@SukramJ] - [#23263]) ([homematicip_cloud docs]) +- __Pollen.com__ + * IQVIA is the parent company which hosts a variety of sites (https://pollen.com, https://flustar.com, etc.) from which valid data can come. To accommodate this, the Pollen.com sensor platform is now the IQVIA component and the configuration.yaml schema has changed accordingly. ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) + * The IQVIA component no longer provides historical data for allergen and asthma conditions. Tactically, this means all historical sensors – including "Yesterday" sensors – will no longer appear; users will need to update any automations that previously relied on these sensors. ([@bachya] - [#23258]) ([iqvia docs]) + +Example configuration: +``` +iqvia: + zip_code: "12345" +``` + + + + +- __Sonos__ + * Configuring the Sonos integration as a media_player: platform in configuration.yaml was deprecated in 0.72 and has now been removed. Please see the notes above in this release post as well as the component documentation for further info. ([@amelchio] - [#23385]) ([sonos docs]) + * Sonos-specific services have been moved from the media_player domain to the sonos domain. For example, media_player.sonos_join has become sonos.join. Services sonos.set_sleep_timer, sonos.clear_sleep_timer, sonos.update_alarm and sonos.set_option now require the entity_id parameter and will not target all when it is missing. You can use all to target all. ([@amelchio] - [#23670]) ([sonos docs]) + + +- __Nmap__ - In Linux, and when running a setuid nmap, MAC addresses are reported with a leading zero in each byte. Under Mac OS X, when running the arp command, there is no leading zero. This makes it annoying to share config files between a Mac and Linux setup. This change fixes this by forcing MAC addresses to be zero padded, "breaking" Mac detection on a Mac by aligning it to the convention on Linux ([@mikeage] - [#23492]) ([nmap_tracker docs]) +- __Frontend__ - This change converts the frontend to do client-side modern JS detection. It is no longer possible to force the frontend version that is shown to a browser by specifying a javascript_version option. Instead, we use feature detection to make sure that each browser receives the latest supported version. Because of feature detection, we no longer have ES5 specific index pages, which means the option extra_html_url_es5 no longer does anything. All usages of extra_html_url should be migrated to use Lovelace imports.([@balloob] - [#23618]) ([frontend docs]) +- __Epson Workforce__ - This change adds the option to add photo black cartridge as a setting. It also corrects the spelling of "Inklevel" to "Ink level"([@ThaStealth] - [#23433]) ([epsonworkforce docs]) + +Example configuration: +``` + - platform: epsonworkforce + host: IP_ADDRESS + monitored_conditions: + - black + - photoblack + - yellow + - magenta + - cyan + - clean +``` + + +- __SNMP__ - The configuration of the SNMP device tracker was aligned with the other SNMP switch and the sensor configuration. If you are using authentication key and private key then change your configuration to auth_key: and priv_key:. ([@fabaff] - [#23678]) ([snmp docs]) + +- __Netatmo__ The netatmo_public sensor will be merged into the netatmo integration. In the config platform: netatmo_public becomes platform: netatmo, everything else stays the same. ([@cgtobi] - [#23531]) ([netatmo docs]) ([netatmo_public docs]) +- __Sesame Smart Lock__ - The Sesame smart lock's 1.0 API uses a username/password pair to authenticate, and may be deprecated in the future. The V3 API uses an API key, so it will require users to update their HA config. ([@zanglang] - [#23621]) ([sesame docs]) +Example configuration: +``` +lock: + - platform: sesame + api_key: !secret sesame_api_key +``` ## {% linkable_title Beta Fixes %} From 899af4948bf80ac887d2007fed87a4bc9485fb0e Mon Sep 17 00:00:00 2001 From: cogneato Date: Tue, 14 May 2019 07:49:59 -0600 Subject: [PATCH 17/24] fix code block for sesame --- source/_posts/2019-05-15-release-93.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_posts/2019-05-15-release-93.markdown b/source/_posts/2019-05-15-release-93.markdown index 2d1b8da31f9..90ed39f6963 100644 --- a/source/_posts/2019-05-15-release-93.markdown +++ b/source/_posts/2019-05-15-release-93.markdown @@ -137,6 +137,7 @@ Example configuration: - __Netatmo__ The netatmo_public sensor will be merged into the netatmo integration. In the config platform: netatmo_public becomes platform: netatmo, everything else stays the same. ([@cgtobi] - [#23531]) ([netatmo docs]) ([netatmo_public docs]) - __Sesame Smart Lock__ - The Sesame smart lock's 1.0 API uses a username/password pair to authenticate, and may be deprecated in the future. The V3 API uses an API key, so it will require users to update their HA config. ([@zanglang] - [#23621]) ([sesame docs]) + Example configuration: ``` lock: From 8b5a5f16fbb88dc35f89174b477694f0af3975d8 Mon Sep 17 00:00:00 2001 From: jo89lin Date: Tue, 14 May 2019 22:09:10 +0200 Subject: [PATCH 18/24] Update rpi_gpio.markdown (#9453) updated anchor to wiki article link --- source/_components/rpi_gpio.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/rpi_gpio.markdown b/source/_components/rpi_gpio.markdown index 3bb34d35080..ed21af54d40 100644 --- a/source/_components/rpi_gpio.markdown +++ b/source/_components/rpi_gpio.markdown @@ -191,7 +191,7 @@ invert_logic: type: boolean {% endconfiguration %} -For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi. +For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#General_purpose_input-output_(GPIO)_connector) about the Raspberry Pi.

Note that a pin managed by HASS is expected to be exclusive to HASS. From 1d87ac15dc10ad01ce39bedf67eea71cf684fcfd Mon Sep 17 00:00:00 2001 From: Sean Mooney Date: Tue, 14 May 2019 16:10:33 -0400 Subject: [PATCH 19/24] fix broken external link (#9452) simply added a missing forward slash --- source/_components/ambient_station.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/ambient_station.markdown b/source/_components/ambient_station.markdown index 6762eb5b210..25b8e2dfb09 100644 --- a/source/_components/ambient_station.markdown +++ b/source/_components/ambient_station.markdown @@ -21,7 +21,7 @@ via personal weather stations from [Ambient Weather](https://ambientweather.net) Using this component requires both an Application Key and an API Key. To generate both, simply utilize the profile section of -[your Ambient Weather dashboard](https:/dashboard.ambientweather.net). +[your Ambient Weather dashboard](https://dashboard.ambientweather.net). ## {% linkable_title Configuration %} From dfb56ab7406403d99dc4d11e7b7715c47950e2b2 Mon Sep 17 00:00:00 2001 From: Markus Ressel Date: Tue, 14 May 2019 22:19:37 +0200 Subject: [PATCH 20/24] device_tracker zone state is case sensitive (#9377) --- source/_components/device_tracker.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/device_tracker.markdown b/source/_components/device_tracker.markdown index 351cf4a37eb..d4f699982b4 100644 --- a/source/_components/device_tracker.markdown +++ b/source/_components/device_tracker.markdown @@ -114,7 +114,7 @@ If you want to track whether either your GPS based tracker or your local network ## {% linkable_title Device states %} -The state of your tracked device will be `'home'` if it is in the [home zone](/components/zone#home-zone), detected by your network or Bluetooth based presence detection. If you're using a presence detection method that includes coordinates then when it's in a zone the state will be the name of the zone (in lower case). When a device isn't at home and isn't in any zone, the state will be `'not_home'`. +The state of your tracked device will be `'home'` if it is in the [home zone](/components/zone#home-zone), detected by your network or Bluetooth based presence detection. If you're using a presence detection method that includes coordinates then when it's in a zone the state will be the name of the zone (case sensitive). When a device isn't at home and isn't in any zone, the state will be `'not_home'`. ## {% linkable_title `device_tracker.see` service %} From 103c84ce3382580536ac3fcf9046af7d8e70b747 Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Wed, 15 May 2019 03:10:19 +0200 Subject: [PATCH 21/24] Move Sonos services to sonos domain (#9380) --- source/_components/sonos.markdown | 22 +++++++++++----------- source/_cookbook/sonos_say.markdown | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/source/_components/sonos.markdown b/source/_components/sonos.markdown index 2142e1f148d..a954046e66f 100644 --- a/source/_components/sonos.markdown +++ b/source/_components/sonos.markdown @@ -23,7 +23,7 @@ If you don't have the discovery component enabled, you can configure the Sonos c Sonos makes various services available to allow configuring groups. They are currently registered under the media player component. -### {% linkable_title Service `media_player.sonos_snapshot` %} +### {% linkable_title Service `sonos.snapshot` %} Take a snapshot of what is currently playing on one or more speakers. This service, and the following one, are useful if you want to play a doorbell or notification sound and resume playback afterwards. If no `entity_id` is provided, all speakers are snapshotted. @@ -37,12 +37,12 @@ The queue is not snapshotted and must be left untouched until the restore. Using | `with_group` | yes | Should we also snapshot the group layout and the state of other speakers in the group. -### {% linkable_title Service `media_player.sonos_restore` %} +### {% linkable_title Service `sonos.restore` %} Restore a previously taken snapshot of one or more speakers. If no `entity_id` is provided, all speakers are restored.

-The playing queue is not snapshotted. Using `media_player.sonos_restore` on a speaker that has replaced its queue will restore the playing position, but in the new queue! +The playing queue is not snapshotted. Using `sonos.restore` on a speaker that has replaced its queue will restore the playing position, but in the new queue!

@@ -54,24 +54,24 @@ A cloud queue cannot be restarted. This includes queues started from within Spot | `entity_id` | yes | String or list of `entity_id`s that should have their snapshot restored. | `with_group` | yes | Should we also restore the group layout and the state of other speakers in the group. -### {% linkable_title Service `media_player.sonos_join` %} +### {% linkable_title Service `sonos.join` %} Group players together under a single coordinator. This will make a new group or join to an existing group. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `master` | no | A single `entity_id` that will become/stay the coordinator speaker. -| `entity_id` | no | String or list of `entity_id`s to join to the master. +| `entity_id` | yes | String or list of `entity_id`s to join to the master. -### {% linkable_title Service `media_player.sonos_unjoin` %} +### {% linkable_title Service `sonos.unjoin` %} Remove one or more speakers from their group of speakers. If no `entity_id` is provided, all speakers are unjoined. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | no | String or list of `entity_id`s to separate from their coordinator speaker. +| `entity_id` | yes | String or list of `entity_id`s to separate from their coordinator speaker. -### {% linkable_title Service `media_player.sonos_set_sleep_timer` %} +### {% linkable_title Service `sonos.set_sleep_timer` %} Sets a timer that will turn off a speaker by tapering the volume down to 0 after a certain amount of time. Protip: If you set the sleep_time value to 0, then the speaker will immediately start tapering the volume down. @@ -80,7 +80,7 @@ Sets a timer that will turn off a speaker by tapering the volume down to 0 after | `entity_id` | no | String or list of `entity_id`s that will have their timers set. | `sleep_time` | no | Integer number of seconds that the speaker should wait until it starts tapering. Cannot exceed 86399 (one day). -### {% linkable_title Service `media_player.sonos_clear_sleep_timer` %} +### {% linkable_title Service `sonos.clear_sleep_timer` %} Clear the sleep timer on a speaker, if one is set. @@ -88,7 +88,7 @@ Clear the sleep timer on a speaker, if one is set. | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of `entity_id`s that will have their timers cleared. Must be a coordinator speaker. -### {% linkable_title Service `media_player.sonos_update_alarm` %} +### {% linkable_title Service `sonos.update_alarm` %} Update an existing Sonos alarm. @@ -101,7 +101,7 @@ Update an existing Sonos alarm. | `enabled` | yes | Boolean for whether or not to enable this alarm. | `include_linked_zones` | yes | Boolean that defines if the alarm also plays on grouped players. -### {% linkable_title Service `media_player.sonos_set_option` %} +### {% linkable_title Service `sonos.set_option` %} Set Sonos speaker options. diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index fd4b04b402f..65c58fb6c4a 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -19,10 +19,10 @@ script: sonos_say: alias: "Sonos TTS script" sequence: - - service: media_player.sonos_snapshot + - service: sonos.snapshot data_template: entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} - - service: media_player.sonos_unjoin + - service: sonos.unjoin data_template: entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} - service: media_player.volume_set @@ -34,7 +34,7 @@ script: entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} message: {% raw %}"{{ message }}"{% endraw %} - delay: {% raw %}"{{ delay }}"{% endraw %} - - service: media_player.sonos_restore + - service: sonos.restore data_template: entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} ``` From 83fd850c6fe8d95e7f319cfc5d6b022cf26a9deb Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 16 May 2019 06:50:08 +0200 Subject: [PATCH 22/24] Update post --- source/_posts/2019-05-15-release-93.markdown | 821 ------------------- source/_posts/2019-05-16-release-93.markdown | 0 2 files changed, 821 deletions(-) delete mode 100644 source/_posts/2019-05-15-release-93.markdown create mode 100644 source/_posts/2019-05-16-release-93.markdown diff --git a/source/_posts/2019-05-15-release-93.markdown b/source/_posts/2019-05-15-release-93.markdown deleted file mode 100644 index 90ed39f6963..00000000000 --- a/source/_posts/2019-05-15-release-93.markdown +++ /dev/null @@ -1,821 +0,0 @@ ---- -layout: post -title: "0.93: TBD UPDATE DATE" -description: "TBD" -date: 2019-05-08 04:11:03 -date_formatted: "May 15, 2019" -author: Paulus Schoutsen -author_twitter: balloob -comments: true -categories: Release-Notes -og_image: /images/blog/2019-05-release-93/components.png ---- - - - -- Onboarding has been updated to allow users to configure integrations during onboarding. - -

- -
- -

-Screenshot of the updated automation editor. -Screenshot of the updated automation editor. -

- -- When Lovelace is not configured, it will now use areas to group entities. -- We have updated a [progress report](/blog/2019/05/03/update-from-the-field/) on our plans for the year -- Nest has announced to [no longer allow access to their API](/blog/2019/05/08/nest-data-bye-bye/), integration will stop working at the end of August. - - -## {% linkable_title Sonos %} - -The Sonos integration has a number of changes in this release, some of them breaking existing configuration. - -First, the Sonos custom services have been moved to the `sonos` domain. The new service names are as follows: -- `sonos.join` (before: `media_player.sonos_join`) -- `sonos.unjoin` (before: `media_player.sonos_unjoin`) -- `sonos.snapshot` (before: `media_player.sonos_snapshot`) -- `sonos.restore` (before: `media_player.sonos_restore`) -- `sonos.set_sleep_timer` (before: `media_player.sonos_set_sleep_timer`) -- `sonos.clear_sleep_timer` (before: `media_player.sonos_clear_sleep_timer`) -- `sonos.update_alarm` (before: `media_player.sonos_update_alarm`) -- `sonos.set_option` (before: `media_player.sonos_set_option`) - -The last four of those services no longer target all entities by default since that is usually a mistake. The `entity_id` attribute is thus becoming mandatory for those services. If you really do want to target all you can use `entity_id: all`. - -Next, YAML configuration of Sonos under the `media_player:` key is no longer accepted. While auto-configuration through the Integrations UI is now the preferred way, static configuration can still be specified under a `sonos:` key, for example: - -```yaml -sonos: - media_player: - hosts: - - 192.0.2.25 - - 192.0.2.26 -``` - -For those of you that like to power down your Sonos, Home Assistant should now handle that without logging errors. Also, speakers that are powered on will be added to Home Assistant without needing a restart. - - -## {% linkable_title New Integrations %} - -- Adds Orange Pi GPIO platform ([@pascallj] - [#22541]) ([orangepi_gpio docs]) (new-integration) (new-platform) -- Convert Pollen.com sensor into IQVIA component ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) (breaking change) (new-integration) (new-platform) -- Essent sensor ([@TheLastProject] - [#23513]) ([essent docs]) (new-integration) (new-platform) -- Ptvsd debugger component. ([@Swamp-Ig] - [#23336]) ([ptvsd docs]) (new-integration) -- Ambiclimate ([@Danielhiversen] - [#22827]) ([ambiclimate docs]) (new-integration) (new-platform) -- Added new binary sensor meteoalarm to get weather alerts in Europe ([@rolfberkenbosch] - [#23663]) ([meteoalarm docs]) (new-integration) (new-platform) -- Add Intergas InComfort Lan2RF gateway ([@zxdavb] - [#23736]) ([incomfort docs]) (new-integration) (new-platform) - -## {% linkable_title New Platforms %} - -- Adds Orange Pi GPIO platform ([@pascallj] - [#22541]) ([orangepi_gpio docs]) (new-integration) (new-platform) -- Added component named switcher_kis switcher water heater integration. ([@TomerFi] - [#22325]) ([switcher_kis docs]) (new-platform) -- MQTT Vacuum State Device ([@pszafer] - [#23171]) ([mqtt docs]) (new-platform) -- Convert Pollen.com sensor into IQVIA component ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) (breaking change) (new-integration) (new-platform) -- Add new nextbus sensor ([@ViViDboarder] - [#20197]) ([nextbus docs]) (new-platform) -- Add sensor support for dyson 2018 models ([@etheralm] - [#22578]) ([dyson docs]) (new-platform) -- Essent sensor ([@TheLastProject] - [#23513]) ([essent docs]) (new-integration) (new-platform) -- Ambiclimate ([@Danielhiversen] - [#22827]) ([ambiclimate docs]) (new-integration) (new-platform) -- Add Bizkaibus, Biscays (Spain) bus service component ([@UgaitzEtxebarria] - [#22934]) ([bizkaibus docs]) (new-platform) -- Added new binary sensor meteoalarm to get weather alerts in Europe ([@rolfberkenbosch] - [#23663]) ([meteoalarm docs]) (new-integration) (new-platform) -- Add water_heater to geniushub, bump client library ([@zxdavb] - [#23384]) ([geniushub docs]) (new-platform) -- Add Intergas InComfort Lan2RF gateway ([@zxdavb] - [#23736]) ([incomfort docs]) (new-integration) (new-platform) -- New cover platform for ADS integration ([@carstenschroeder] - [#23377]) ([ads 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 %} - -- __Homematic IP Cloud__ - Adds homematicip cloud temperature sensor from thermostats. Entity IDs of HmIP-SLO (Light Sensor Outdoor) will change and stale entities will need to be removed from the entity registry. ([@SukramJ] - [#23263]) ([homematicip_cloud docs]) -- __Pollen.com__ - * IQVIA is the parent company which hosts a variety of sites (https://pollen.com, https://flustar.com, etc.) from which valid data can come. To accommodate this, the Pollen.com sensor platform is now the IQVIA component and the configuration.yaml schema has changed accordingly. ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) - * The IQVIA component no longer provides historical data for allergen and asthma conditions. Tactically, this means all historical sensors – including "Yesterday" sensors – will no longer appear; users will need to update any automations that previously relied on these sensors. ([@bachya] - [#23258]) ([iqvia docs]) - -Example configuration: -``` -iqvia: - zip_code: "12345" -``` - - - - -- __Sonos__ - * Configuring the Sonos integration as a media_player: platform in configuration.yaml was deprecated in 0.72 and has now been removed. Please see the notes above in this release post as well as the component documentation for further info. ([@amelchio] - [#23385]) ([sonos docs]) - * Sonos-specific services have been moved from the media_player domain to the sonos domain. For example, media_player.sonos_join has become sonos.join. Services sonos.set_sleep_timer, sonos.clear_sleep_timer, sonos.update_alarm and sonos.set_option now require the entity_id parameter and will not target all when it is missing. You can use all to target all. ([@amelchio] - [#23670]) ([sonos docs]) - - -- __Nmap__ - In Linux, and when running a setuid nmap, MAC addresses are reported with a leading zero in each byte. Under Mac OS X, when running the arp command, there is no leading zero. This makes it annoying to share config files between a Mac and Linux setup. This change fixes this by forcing MAC addresses to be zero padded, "breaking" Mac detection on a Mac by aligning it to the convention on Linux ([@mikeage] - [#23492]) ([nmap_tracker docs]) -- __Frontend__ - This change converts the frontend to do client-side modern JS detection. It is no longer possible to force the frontend version that is shown to a browser by specifying a javascript_version option. Instead, we use feature detection to make sure that each browser receives the latest supported version. Because of feature detection, we no longer have ES5 specific index pages, which means the option extra_html_url_es5 no longer does anything. All usages of extra_html_url should be migrated to use Lovelace imports.([@balloob] - [#23618]) ([frontend docs]) -- __Epson Workforce__ - This change adds the option to add photo black cartridge as a setting. It also corrects the spelling of "Inklevel" to "Ink level"([@ThaStealth] - [#23433]) ([epsonworkforce docs]) - -Example configuration: -``` - - platform: epsonworkforce - host: IP_ADDRESS - monitored_conditions: - - black - - photoblack - - yellow - - magenta - - cyan - - clean -``` - - -- __SNMP__ - The configuration of the SNMP device tracker was aligned with the other SNMP switch and the sensor configuration. If you are using authentication key and private key then change your configuration to auth_key: and priv_key:. ([@fabaff] - [#23678]) ([snmp docs]) - -- __Netatmo__ The netatmo_public sensor will be merged into the netatmo integration. In the config platform: netatmo_public becomes platform: netatmo, everything else stays the same. ([@cgtobi] - [#23531]) ([netatmo docs]) ([netatmo_public docs]) -- __Sesame Smart Lock__ - The Sesame smart lock's 1.0 API uses a username/password pair to authenticate, and may be deprecated in the future. The V3 API uses an API key, so it will require users to update their HA config. ([@zanglang] - [#23621]) ([sesame docs]) - -Example configuration: -``` -lock: - - platform: sesame - api_key: !secret sesame_api_key -``` - -## {% linkable_title Beta Fixes %} - -- Sort discovered entries by 'st' to ensure getting the same device each discovery ([@StevenLooman] - [#23763]) ([upnp docs]) (beta fix) -- Bump pyatmo to v1.11 ([@cgtobi] - [#23766]) ([netatmo docs]) (beta fix) -- Fix for issue #23739. Added unique_id property so ([@dreed47] - [#23769]) ([zestimate docs]) (beta fix) -- Beta Fix: ONVIF ([@hunterjm] - [#23787]) ([onvif docs]) (beta fix) -- Synchronize Sonos service calls ([@amelchio] - [#23791]) ([sonos docs]) (beta fix) -- Do not add coordinator to the ZHA entities. ([@Adminiuga] - [#23803]) ([zha docs]) (beta fix) -- fix onvif wsdl import - take 2 ([@hunterjm] - [#23807]) ([onvif docs]) (beta fix) -- Correct ZHA illumination conversion ([@dmulcahey] - [#23853]) ([zha docs]) (beta fix) -- Fix ZHA battery when readings produce an unknown value ([@dmulcahey] - [#23854]) ([zha docs]) (beta fix) -- bump zha-quirks ([@dmulcahey] - [#23855]) ([zha docs]) (beta fix) -- Fix improper usage of body attribute on web.Response. Should be text since we arent sending bytes ([@robbiet480] - [#23857]) ([geofency docs]) ([locative docs]) ([mobile_app docs]) (beta fix) - -## {% linkable_title All changes %} - -- Pass configured host string instead of always forcing an ip-address ([@itn3rd77] - [#23164]) ([homematic docs]) -- Make less imports from yeelight ([@zewelor] - [#23124]) ([yeelight docs]) -- Add @Jc2k to codeowners for homekit_controller ([@Jc2k] - [#23173]) ([homekit_controller docs]) -- Add minimum/maximum to counter ([@rohankapoorcom] - [#22608]) ([counter docs]) -- Adds Orange Pi GPIO platform ([@pascallj] - [#22541]) ([orangepi_gpio docs]) (new-integration) (new-platform) -- Potential None ([@Swamp-Ig] - [#23187]) ([automation docs]) -- Add storage for cacheable homekit entity maps. ([@Jc2k] - [#23191]) ([homekit_controller docs]) -- Misc. ZHA changes ([@dmulcahey] - [#23190]) ([zha docs]) -- set myself as codeowner of xmpp, removed me from notify/* ([@flowolf] - [#23207]) ([notify docs]) ([xmpp docs]) -- Update vizio component to support latest pyvizio with soundbar support ([@raman325] - [#22294]) ([vizio docs]) -- Add json_attributes_template ([@emontnemery] - [#22981]) ([mqtt docs]) -- Only comment with changed coverage on release PRs [skip-ci] ([@balloob] - [#23224]) -- Fix optimistic mode + other bugs, tests ([@emontnemery] - [#22976]) ([mqtt docs]) -- Set default value for input_datetime ([@tsvi] - [#21919]) ([input_datetime docs]) -- Remove archived 17track packages from the entity registry ([@bachya] - [#23049]) ([seventeentrack docs]) -- Change configuration for orangepi ([@pascallj] - [#23231]) ([orangepi_gpio docs]) -- Add and use an async_fire_service_discovered helper ([@Jc2k] - [#23232]) -- Review feedback from #23191 ([@Jc2k] - [#23233]) ([homekit_controller docs]) -- Add missing service for persistent_notification ([@bieniu] - [#23230]) -- Add more CPU temp. labels to Glances ([@Chris-V] - [#23179]) ([glances docs]) -- Add accuracy and status for Traccar ([@GoNzCiD] - [#23180]) ([traccar docs]) -- Avoid calling async code in sync context ([@Jc2k] - [#23235]) ([homekit_controller docs]) -- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23246]) -- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23247]) -- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23248]) -- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23249]) -- Drop unnecessary block_till_done ([@emontnemery] - [#23250]) -- Drop unnecessary block_till_done ([@emontnemery] - [#23251]) -- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23252]) -- Added component named switcher_kis switcher water heater integration. ([@TomerFi] - [#22325]) ([switcher_kis docs]) (new-platform) -- Drop unnecessary block_till_done for MQTT fan tests ([@emontnemery] - [#23253]) -- Drop unnecessary block_till_done for MQTT tests ([@emontnemery] - [#23254]) -- Drop unnecessary block_till_done, improve tests for MQTT Cover tests ([@emontnemery] - [#23255]) -- Drop unnecessary block_till_done ([@emontnemery] - [#23256]) -- Add ctags file to .gitignore ([@bachya] - [#23279]) -- Upgrade xmltodict to 0.12.0 ([@BKPepe] - [#23277]) ([bluesound docs]) ([startca docs]) ([ted5000 docs]) ([yr docs]) ([zestimate docs]) -- Upgrade pyotp to 2.2.7 ([@BKPepe] - [#23274]) ([otp docs]) -- Add homematicip cloud temperature sensor from thermostats ([@SukramJ] - [#23263]) ([homematicip_cloud docs]) (breaking change) -- Improve MQTT tests ([@emontnemery] - [#23296]) -- Add support to play url ([@andrewsayre] - [#23273]) ([heos docs]) -- RFC: Upgrade philips_js component version and support channels and sources ([@elupus] - [#23061]) ([philips_js docs]) -- MQTT Vacuum State Device ([@pszafer] - [#23171]) ([mqtt docs]) (new-platform) -- Add connection control for netgear_lte ([@amelchio] - [#22946]) ([netgear_lte docs]) -- Set placeholders in homekit config flow title ([@Jc2k] - [#23311]) ([homekit_controller docs]) -- Random hassfest fixes ([@balloob] - [#23314]) -- Add get_states faster ([@balloob] - [#23315]) ([websocket_api docs]) -- Handle traccar connection errors ([@ludeeus] - [#23289]) ([traccar docs]) -- Upgrade attrs to 19.1.0 ([@BKPepe] - [#23323]) -- Fix ps4 not able to use different PSN accounts ([@ktnrg45] - [#22799]) ([ps4 docs]) -- Reorg Homematic IP Cloud imports and minor fixes ([@SukramJ] - [#23330]) ([homematicip_cloud docs]) -- Changes due to manifest.json. Awaiting coroutines instead of creating tasks ([@alengwenus] - [#23321]) ([lcn docs]) -- Fix Switchbot restore state ([@Danielhiversen] - [#23325]) ([switchbot docs]) -- Added override for kwikset 888. ([@sowelie] - [#23327]) ([zwave docs]) -- Upgrade youtube_dl to 2019.04.17 ([@fabaff] - [#23342]) ([media_extractor docs]) -- Fix Homematic IP Cloud remaining light imports ([@SukramJ] - [#23339]) ([homematicip_cloud docs]) -- Volume trait for google assistant ([@elupus] - [#23237]) ([google_assistant docs]) -- Upgrade ruamel.yaml to 0.15.94 ([@fabaff] - [#23344]) -- Netatmo 5min fetch interval ([@pvizeli] - [#23341]) ([netatmo docs]) -- Fixed test ([@Swamp-Ig] - [#23343]) -- Device type garage for binary sensor garage_door ([@elupus] - [#23345]) ([google_assistant docs]) -- Fix non-syncthru supporting printers ([@nielstron] - [#21482]) ([syncthru docs]) -- Add support for a wider variety of EnOcean devices ([@bdurrer] - [#22052]) ([enocean docs]) -- Convert Pollen.com sensor into IQVIA component ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) (breaking change) (new-integration) (new-platform) -- Upgrade to pyubee==0.6 ([@StevenLooman] - [#23355]) ([ubee docs]) -- Fix tox.ini lint target ([@ViViDboarder] - [#23359]) -- Add media player external url ([@balloob] - [#23337]) ([media_player docs]) -- Fix race condition. ([@mitchellrj] - [#21244]) ([plex docs]) -- Add amcrest camera services and deprecate switches ([@pnbruckner] - [#22949]) ([amcrest docs]) -- Convert some test helpers to coroutines and adjust tests ([@emontnemery] - [#23352]) -- Update xiaomi library ([@Danielhiversen] - [#23391]) ([xiaomi_aqara docs]) -- Add device classes for media player and map to google types ([@elupus] - [#23236]) ([google_assistant docs]) ([media_player docs]) -- Bump youtube-dl version to 2019.04.24 ([@cgtobi] - [#23398]) ([media_extractor docs]) -- add key parameter ([@panosmz] - [#23381]) ([oasa_telematics docs]) -- check if sabotage attr is in device ([@SukramJ] - [#23397]) ([homematicip_cloud docs]) -- Add Types to Homematic IP ([@SukramJ] - [#23401]) ([homematicip_cloud docs]) -- Add device info for Logi Circle camera and sensor entities ([@evanjd] - [#23373]) ([logi_circle docs]) -- Bump requirement to v55 ([@Kane610] - [#23410]) ([deconz docs]) -- restore battery_quantity for zha devices ([@vigonotion] - [#23320]) ([zha docs]) -- Remove support for deprecated Sonos configuration ([@amelchio] - [#23385]) ([sonos docs]) (breaking change) -- Additional cleanup of IQVIA integration ([@bachya] - [#23403]) ([iqvia docs]) -- Add new nextbus sensor ([@ViViDboarder] - [#20197]) ([nextbus docs]) (new-platform) -- Remove historical allergen and asthma sensors from IQVIA ([@bachya] - [#23258]) ([iqvia docs]) (breaking change) -- Return of travis ([@amelchio] - [#23409]) -- Fix broken forecast trend attribute in IQVIA ([@bachya] - [#23454]) ([iqvia docs]) -- Bump amcrest to 1.4.0 and use new storage_all method ([@pnbruckner] - [#23446]) ([amcrest docs]) -- Added option to use self-signed certificates ([@anrudolph] - [#23139]) ([caldav docs]) -- No longer promote imports inside methods ([@amelchio] - [#23471]) -- Improve handling of unavailable Sonos speakers ([@amelchio] - [#23472]) ([sonos docs]) -- Use remote image for HEOS ([@andrewsayre] - [#23420]) ([heos docs]) -- Add a warning that honeywell/EU is to be deprecated ([@zxdavb] - [#23469]) ([honeywell docs]) -- Skip flaky stream tests ([@amelchio] - [#23493]) -- Display person component as occupancy sensor HomeKit ([@chmielowiec] - [#23451]) ([homekit docs]) -- Fixes local_file camera service ([@robmarkcole] - [#23479]) ([local_file docs]) -- Update aiolifx_effects to 0.2.2 ([@arsaboo] - [#23473]) ([lifx docs]) -- Catch RequestException in influxdb writer ([@amelchio] - [#23508]) ([influxdb docs]) -- Fixed bug with max_result ([@atomic7777] - [#23507]) ([google docs]) -- Return state when changing optimistic covers ([@balloob] - [#23498]) ([google_assistant docs]) -- Update Philips js to v0.0.8 ([@elupus] - [#23462]) ([philips_js docs]) -- Fixed AlexaPowerController to report power state for thermostats ([@mcc05] - [#23468]) ([alexa docs]) -- Continuous discovery of Sonos speakers ([@amelchio] - [#23484]) ([sonos docs]) -- Ignore stale directories ([@amelchio] - [#23464]) -- Do not log tracebacks for influxdb write errors ([@amelchio] - [#23522]) ([influxdb docs]) -- limit concurrent updates to avoid network flood ([@dmulcahey] - [#23534]) ([zha docs]) -- Add current disease data to IQVIA ([@bachya] - [#23052]) ([iqvia docs]) -- Allow direct binding via ZHA for the ZLL profile ([@dmulcahey] - [#23536]) ([zha docs]) -- Improve logging of exceptions in async_create_task ([@emontnemery] - [#22689]) ([cast docs]) -- Install requirements when checking config ([@balloob] - [#23500]) -- Always print invalid configuration data ([@emontnemery] - [#21972]) -- Don't use zigpy profiles for ZHA entities ([@dmulcahey] - [#22844]) ([zha docs]) -- Add HomeKit low battery threshold config ([@adrum] - [#23363]) ([homekit docs]) -- Add sensor support for dyson 2018 models ([@etheralm] - [#22578]) ([dyson docs]) (new-platform) -- Bump homekit_python to 0.14.0 ([@Jc2k] - [#23562]) ([homekit_controller docs]) -- Upgrade pysonos to 0.0.12 ([@amelchio] - [#23560]) ([sonos docs]) -- Clean up ZHA discovery logic ([@dmulcahey] - [#23563]) ([zha docs]) -- Migrate tests to pytest ([@emontnemery] - [#23544]) -- bump zha-quirks version ([@dmulcahey] - [#23568]) ([zha docs]) -- Add core APIs to migrate device identifiers and entity unique_id ([@andrewsayre] - [#23481]) -- Essent sensor ([@TheLastProject] - [#23513]) ([essent docs]) (new-integration) (new-platform) -- Upgrade discord.py to v1.0.1 ([@cyrosy] - [#23523]) ([discord docs]) -- Always pad mac addresses from nmap tracker with leading zeros ([@mikeage] - [#23492]) ([nmap_tracker docs]) (breaking change) -- Update mysensors sensor icons ([@MartinHjelmare] - [#23491]) ([mysensors docs]) -- Add bypass and automatic bypass switch for Danfor Air. ([@JonasPed] - [#23572]) ([danfoss_air docs]) -- Ptvsd debugger component. ([@Swamp-Ig] - [#23336]) ([ptvsd docs]) (new-integration) -- Fix min/max temp and humidity for homekit_controller climate ([@Jc2k] - [#23421]) ([homekit_controller docs]) -- Fix failing state update tests ([@etheralm] - [#23575]) -- render_with_collect method for template ([@Swamp-Ig] - [#23283]) -- Upgrade youtube_dl to 2019.04.30 ([@fabaff] - [#23579]) ([media_extractor docs]) -- Bumpped the pyeconet version ([@w1ll1am23] - [#23578]) ([econet docs]) -- Simplify Travis cache config ([@scop] - [#23592]) -- Fix low_battery_threshold issue HomeKit ([@cdce8p] - [#23593]) ([homekit docs]) -- Redesign AlarmControlPanel for Homematic IP ([@SukramJ] - [#23565]) ([homematicip_cloud docs]) -- Ambiclimate ([@Danielhiversen] - [#22827]) ([ambiclimate docs]) (new-integration) (new-platform) -- Move I/O to executor thread pool ([@cyrosy] - [#23589]) ([discord docs]) -- Update bomradarloop to v0.1.3 ([@maddenp] - [#23599]) ([bom docs]) -- updated manifest.json with correct version of hangup ([@teliov] - [#23596]) ([hangouts docs]) -- Add and improve Homekit controller pairing messages and errors ([@Jc2k] - [#23532]) ([homekit_controller docs]) -- Added message to data_template at notify REST ([@4lloyd] - [#23108]) ([rest docs]) -- Fixed unhandled exception in OpenUV data update ([@bachya] - [#23611]) ([openuv docs]) -- Support STATE_AUTO in homekit_controller climate ([@Jc2k] - [#23583]) ([homekit_controller docs]) -- Add support for flow sensor metrics in RainMachine ([@bachya] - [#23221]) ([rainmachine docs]) -- Clean caldav calendar tests ([@MartinHjelmare] - [#23609]) -- Improve sun automation tests ([@emontnemery] - [#23588]) -- Update pyvesync_v2 version to 0.9.7 ([@bwarden] - [#23603]) ([vesync docs]) -- Prevent turning on tellduslive lights with 0 brightness ([@brange] - [#23135]) ([tellduslive docs]) -- Update docstrings ([@fabaff] - [#23624]) ([panasonic_bluray docs]) -- Order imports ([@fabaff] - [#23623]) ([opple docs]) -- Polling is default ([@fabaff] - [#23622]) ([serial_pm docs]) -- Loosen discovery config validation to avoid breaking changes ([@Jc2k] - [#23625]) ([discovery docs]) -- Clean up redundant same-package ..package imports ([@scop] - [#23587]) ([greeneye_monitor docs]) ([huawei_lte docs]) ([tplink_lte docs]) -- Upgrade pytest to 4.4.1 ([@scop] - [#23584]) -- Upgrade mypy ([@scop] - [#23586]) -- Allow removing Telegram reply keyboard ([@max-te] - [#23467]) ([telegram_bot docs]) -- Convert frontend to do client-side modern JS detection ([@balloob] - [#23618]) ([frontend docs]) (breaking change) -- Refactor evohome to prepare for water_heater ([@zxdavb] - [#23489]) ([evohome docs]) -- Extend play_media support ([@andrewsayre] - [#23580]) ([heos docs]) -- update switchbot library ([@Danielhiversen] - [#23643]) ([switchbot docs]) -- Add "soc-thermal 1" as CPU Temp label to Glances ([@phdelodder] - [#23635]) ([glances docs]) -- deCONZ - Retry on BridgeBusy errors ([@Kane610] - [#23436]) ([deconz docs]) -- Added option to select photoblack cartridge ([@ThaStealth] - [#23433]) ([epsonworkforce docs]) (breaking change) -- Fix bad request for some IP ONVIF camera ([@GeertvanHorrik] - [#22972]) ([onvif docs]) -- Bump pyteleloisirs version ([@SNoof85] - [#23661]) ([liveboxplaytv docs]) -- Upgrade psutil to 5.6.2 ([@fabaff] - [#23671]) ([systemmonitor docs]) -- Upgrade shodan to 1.13.0 ([@fabaff] - [#23675]) ([shodan docs]) -- Upgrade slacker to 0.13.0 ([@fabaff] - [#23672]) ([slack docs]) -- Upgrade tapsaff to 0.2.1 ([@fabaff] - [#23676]) ([tapsaff docs]) -- Upgrade sqlalchemy to 1.3.3 ([@fabaff] - [#23674]) ([recorder docs]) ([sql docs]) -- Remove extraneous update call in SimpliSafe ([@bachya] - [#23680]) ([simplisafe docs]) -- Upgrade pysnmp to 4.4.9 ([@fabaff] - [#23677]) ([snmp docs]) -- Upgrade spotcrime to 1.0.4 (fixes #13189) ([@fabaff] - [#23679]) ([spotcrime docs]) -- Add Bizkaibus, Biscays (Spain) bus service component ([@UgaitzEtxebarria] - [#22934]) ([bizkaibus docs]) (new-platform) -- Add HomeKit Television functionality ([@adrum] - [#22968]) ([homekit docs]) -- Clean and fix google calendar tests ([@MartinHjelmare] - [#23608]) ([google docs]) -- Update requirements for pyvlx. ([@Julius2342] - [#23694]) ([velux docs]) -- Clean up mqtt device tracker tests ([@MartinHjelmare] - [#23700]) -- Clean up device tracker tests ([@MartinHjelmare] - [#23695]) -- Move Sonos services to sonos domain ([@amelchio] - [#23670]) ([sonos docs]) (breaking change) -- Move owntracks device tracker test under owntracks ([@MartinHjelmare] - [#23701]) -- Add support for SET_AWAY_MODE and TURN_ON/OFF on Daikin Climate ([@fredrike] - [#23585]) ([daikin docs]) -- Bump ZHA modules versions. ([@Adminiuga] - [#23705]) ([zha docs]) -- Add additional single input cluster entries - ZHA ([@dmulcahey] - [#23697]) ([zha docs]) -- Add media_type_app to media_player ([@ktnrg45] - [#23666]) ([media_player docs]) ([ps4 docs]) -- Add a TCP timeout of 5 seconds to ffmpeg ([@droopanu] - [#23617]) ([stream docs]) -- Catch thethingsnetwork TypeError ([@fabaff] - [#23667]) ([thethingsnetwork docs]) -- Use local constant in Daikin for STATE_OFF ([@fredrike] - [#23712]) ([daikin docs]) -- Upgrade sendgrid to 6.0.5 ([@fabaff] - [#23711]) ([sendgrid docs]) -- bump zha-quirks ([@dmulcahey] - [#23714]) ([zha docs]) -- Update IDs after firmware upgrade in HEOS ([@andrewsayre] - [#23641]) ([heos docs]) -- huawei_lte: handle icons for None sensor values gracefully ([@scop] - [#23649]) ([huawei_lte docs]) -- Upgrade switchbot , fixes #23702 ([@Danielhiversen] - [#23716]) ([switchbot docs]) -- Share snmp constants across all platforms ([@fabaff] - [#23678]) ([snmp docs]) (breaking change) -- Add TTL support and custom headers support. ([@pszafer] - [#22988]) ([html5 docs]) -- Added new binary sensor meteoalarm to get weather alerts in Europe ([@rolfberkenbosch] - [#23663]) ([meteoalarm docs]) (new-integration) (new-platform) -- add abbreviation for current_temperature_template ([@unixko] - [#23733]) ([mqtt docs]) -- Add water_heater to geniushub, bump client library ([@zxdavb] - [#23384]) ([geniushub docs]) (new-platform) -- Add debug prints to sun ([@emontnemery] - [#23598]) ([sun docs]) -- Add HEOS sign-in/out services ([@andrewsayre] - [#23729]) ([heos docs]) -- Fix Hue sensor integration with multiple bridges. ([@mitchellrj] - [#23713]) ([hue docs]) -- Fix effects on HUE integration for Osram bulbs ([@SukramJ] - [#22789]) ([hue docs]) -- Upgrade aiodns to 2.0.0 ([@fabaff] - [#23743]) ([dnsip docs]) -- Add abbreviation for position_topic ([@bieniu] - [#23740]) ([mqtt docs]) -- Update PR template ([@balloob] - [#23520]) -- Add Intergas InComfort Lan2RF gateway ([@zxdavb] - [#23736]) ([incomfort docs]) (new-integration) (new-platform) -- Fix upnp logger name ([@StevenLooman] - [#23724]) ([upnp docs]) -- Add update events to registries ([@balloob] - [#23746]) ([websocket_api docs]) -- Add integration step to onboarding ([@balloob] - [#23732]) ([onboarding docs]) -- Merge netatmo_public sensor into the netatmo integration ([@cgtobi] - [#23531]) ([netatmo docs]) ([netatmo_public docs]) (breaking change) -- Upgrade numpy to 1.16.3 ([@fabaff] - [#23673]) ([iqvia docs]) ([opencv docs]) ([tensorflow docs]) ([trend docs]) -- Upgrade Mastodon.py to 1.4.0 ([@fabaff] - [#23753]) ([mastodon docs]) -- New cover platform for ADS integration ([@carstenschroeder] - [#23377]) ([ads docs]) (new-platform) -- Prompt for pin only on open / unlock ([@Swamp-Ig] - [#23751]) ([google_assistant docs]) -- Upgrade defusedxml to 0.6.0 ([@scop] - [#23651]) ([ihc docs]) ([namecheapdns docs]) ([ohmconnect docs]) ([upc_connect docs]) -- Refactor child validation ([@MartinHjelmare] - [#23482]) ([mysensors docs]) -- Update Sesame component to use Candy House's library using the V3 API ([@zanglang] - [#23621]) ([sesame docs]) (breaking change) -- Upgrade zeroconf to 0.22.0 ([@BKPepe] - [#23524]) ([zeroconf docs]) -- No longer rely on requests ([@balloob] - [#23685]) ([ps4 docs]) -- Sort discovered entries by 'st' to ensure getting the same device each discovery ([@StevenLooman] - [#23763]) ([upnp docs]) (beta fix) -- Bump pyatmo to v1.11 ([@cgtobi] - [#23766]) ([netatmo docs]) (beta fix) -- Fix for issue #23739. Added unique_id property so ([@dreed47] - [#23769]) ([zestimate docs]) (beta fix) -- Beta Fix: ONVIF ([@hunterjm] - [#23787]) ([onvif docs]) (beta fix) -- Synchronize Sonos service calls ([@amelchio] - [#23791]) ([sonos docs]) (beta fix) -- Do not add coordinator to the ZHA entities. ([@Adminiuga] - [#23803]) ([zha docs]) (beta fix) -- fix onvif wsdl import - take 2 ([@hunterjm] - [#23807]) ([onvif docs]) (beta fix) -- Correct ZHA illumination conversion ([@dmulcahey] - [#23853]) ([zha docs]) (beta fix) -- Fix ZHA battery when readings produce an unknown value ([@dmulcahey] - [#23854]) ([zha docs]) (beta fix) -- bump zha-quirks ([@dmulcahey] - [#23855]) ([zha docs]) (beta fix) -- Fix improper usage of body attribute on web.Response. Should be text since we arent sending bytes ([@robbiet480] - [#23857]) ([geofency docs]) ([locative docs]) ([mobile_app docs]) (beta fix) - -[#20197]: https://github.com/home-assistant/home-assistant/pull/20197 -[#21244]: https://github.com/home-assistant/home-assistant/pull/21244 -[#21482]: https://github.com/home-assistant/home-assistant/pull/21482 -[#21919]: https://github.com/home-assistant/home-assistant/pull/21919 -[#21972]: https://github.com/home-assistant/home-assistant/pull/21972 -[#22052]: https://github.com/home-assistant/home-assistant/pull/22052 -[#22294]: https://github.com/home-assistant/home-assistant/pull/22294 -[#22325]: https://github.com/home-assistant/home-assistant/pull/22325 -[#22541]: https://github.com/home-assistant/home-assistant/pull/22541 -[#22578]: https://github.com/home-assistant/home-assistant/pull/22578 -[#22608]: https://github.com/home-assistant/home-assistant/pull/22608 -[#22689]: https://github.com/home-assistant/home-assistant/pull/22689 -[#22789]: https://github.com/home-assistant/home-assistant/pull/22789 -[#22799]: https://github.com/home-assistant/home-assistant/pull/22799 -[#22827]: https://github.com/home-assistant/home-assistant/pull/22827 -[#22844]: https://github.com/home-assistant/home-assistant/pull/22844 -[#22934]: https://github.com/home-assistant/home-assistant/pull/22934 -[#22946]: https://github.com/home-assistant/home-assistant/pull/22946 -[#22949]: https://github.com/home-assistant/home-assistant/pull/22949 -[#22968]: https://github.com/home-assistant/home-assistant/pull/22968 -[#22972]: https://github.com/home-assistant/home-assistant/pull/22972 -[#22976]: https://github.com/home-assistant/home-assistant/pull/22976 -[#22981]: https://github.com/home-assistant/home-assistant/pull/22981 -[#22986]: https://github.com/home-assistant/home-assistant/pull/22986 -[#22988]: https://github.com/home-assistant/home-assistant/pull/22988 -[#23049]: https://github.com/home-assistant/home-assistant/pull/23049 -[#23052]: https://github.com/home-assistant/home-assistant/pull/23052 -[#23061]: https://github.com/home-assistant/home-assistant/pull/23061 -[#23108]: https://github.com/home-assistant/home-assistant/pull/23108 -[#23124]: https://github.com/home-assistant/home-assistant/pull/23124 -[#23135]: https://github.com/home-assistant/home-assistant/pull/23135 -[#23139]: https://github.com/home-assistant/home-assistant/pull/23139 -[#23164]: https://github.com/home-assistant/home-assistant/pull/23164 -[#23171]: https://github.com/home-assistant/home-assistant/pull/23171 -[#23173]: https://github.com/home-assistant/home-assistant/pull/23173 -[#23179]: https://github.com/home-assistant/home-assistant/pull/23179 -[#23180]: https://github.com/home-assistant/home-assistant/pull/23180 -[#23187]: https://github.com/home-assistant/home-assistant/pull/23187 -[#23190]: https://github.com/home-assistant/home-assistant/pull/23190 -[#23191]: https://github.com/home-assistant/home-assistant/pull/23191 -[#23207]: https://github.com/home-assistant/home-assistant/pull/23207 -[#23221]: https://github.com/home-assistant/home-assistant/pull/23221 -[#23224]: https://github.com/home-assistant/home-assistant/pull/23224 -[#23230]: https://github.com/home-assistant/home-assistant/pull/23230 -[#23231]: https://github.com/home-assistant/home-assistant/pull/23231 -[#23232]: https://github.com/home-assistant/home-assistant/pull/23232 -[#23233]: https://github.com/home-assistant/home-assistant/pull/23233 -[#23235]: https://github.com/home-assistant/home-assistant/pull/23235 -[#23236]: https://github.com/home-assistant/home-assistant/pull/23236 -[#23237]: https://github.com/home-assistant/home-assistant/pull/23237 -[#23246]: https://github.com/home-assistant/home-assistant/pull/23246 -[#23247]: https://github.com/home-assistant/home-assistant/pull/23247 -[#23248]: https://github.com/home-assistant/home-assistant/pull/23248 -[#23249]: https://github.com/home-assistant/home-assistant/pull/23249 -[#23250]: https://github.com/home-assistant/home-assistant/pull/23250 -[#23251]: https://github.com/home-assistant/home-assistant/pull/23251 -[#23252]: https://github.com/home-assistant/home-assistant/pull/23252 -[#23253]: https://github.com/home-assistant/home-assistant/pull/23253 -[#23254]: https://github.com/home-assistant/home-assistant/pull/23254 -[#23255]: https://github.com/home-assistant/home-assistant/pull/23255 -[#23256]: https://github.com/home-assistant/home-assistant/pull/23256 -[#23258]: https://github.com/home-assistant/home-assistant/pull/23258 -[#23263]: https://github.com/home-assistant/home-assistant/pull/23263 -[#23273]: https://github.com/home-assistant/home-assistant/pull/23273 -[#23274]: https://github.com/home-assistant/home-assistant/pull/23274 -[#23277]: https://github.com/home-assistant/home-assistant/pull/23277 -[#23279]: https://github.com/home-assistant/home-assistant/pull/23279 -[#23283]: https://github.com/home-assistant/home-assistant/pull/23283 -[#23289]: https://github.com/home-assistant/home-assistant/pull/23289 -[#23296]: https://github.com/home-assistant/home-assistant/pull/23296 -[#23311]: https://github.com/home-assistant/home-assistant/pull/23311 -[#23314]: https://github.com/home-assistant/home-assistant/pull/23314 -[#23315]: https://github.com/home-assistant/home-assistant/pull/23315 -[#23320]: https://github.com/home-assistant/home-assistant/pull/23320 -[#23321]: https://github.com/home-assistant/home-assistant/pull/23321 -[#23323]: https://github.com/home-assistant/home-assistant/pull/23323 -[#23325]: https://github.com/home-assistant/home-assistant/pull/23325 -[#23327]: https://github.com/home-assistant/home-assistant/pull/23327 -[#23330]: https://github.com/home-assistant/home-assistant/pull/23330 -[#23336]: https://github.com/home-assistant/home-assistant/pull/23336 -[#23337]: https://github.com/home-assistant/home-assistant/pull/23337 -[#23339]: https://github.com/home-assistant/home-assistant/pull/23339 -[#23341]: https://github.com/home-assistant/home-assistant/pull/23341 -[#23342]: https://github.com/home-assistant/home-assistant/pull/23342 -[#23343]: https://github.com/home-assistant/home-assistant/pull/23343 -[#23344]: https://github.com/home-assistant/home-assistant/pull/23344 -[#23345]: https://github.com/home-assistant/home-assistant/pull/23345 -[#23352]: https://github.com/home-assistant/home-assistant/pull/23352 -[#23355]: https://github.com/home-assistant/home-assistant/pull/23355 -[#23359]: https://github.com/home-assistant/home-assistant/pull/23359 -[#23363]: https://github.com/home-assistant/home-assistant/pull/23363 -[#23373]: https://github.com/home-assistant/home-assistant/pull/23373 -[#23377]: https://github.com/home-assistant/home-assistant/pull/23377 -[#23381]: https://github.com/home-assistant/home-assistant/pull/23381 -[#23384]: https://github.com/home-assistant/home-assistant/pull/23384 -[#23385]: https://github.com/home-assistant/home-assistant/pull/23385 -[#23391]: https://github.com/home-assistant/home-assistant/pull/23391 -[#23397]: https://github.com/home-assistant/home-assistant/pull/23397 -[#23398]: https://github.com/home-assistant/home-assistant/pull/23398 -[#23401]: https://github.com/home-assistant/home-assistant/pull/23401 -[#23403]: https://github.com/home-assistant/home-assistant/pull/23403 -[#23409]: https://github.com/home-assistant/home-assistant/pull/23409 -[#23410]: https://github.com/home-assistant/home-assistant/pull/23410 -[#23420]: https://github.com/home-assistant/home-assistant/pull/23420 -[#23421]: https://github.com/home-assistant/home-assistant/pull/23421 -[#23433]: https://github.com/home-assistant/home-assistant/pull/23433 -[#23436]: https://github.com/home-assistant/home-assistant/pull/23436 -[#23446]: https://github.com/home-assistant/home-assistant/pull/23446 -[#23451]: https://github.com/home-assistant/home-assistant/pull/23451 -[#23454]: https://github.com/home-assistant/home-assistant/pull/23454 -[#23462]: https://github.com/home-assistant/home-assistant/pull/23462 -[#23464]: https://github.com/home-assistant/home-assistant/pull/23464 -[#23467]: https://github.com/home-assistant/home-assistant/pull/23467 -[#23468]: https://github.com/home-assistant/home-assistant/pull/23468 -[#23469]: https://github.com/home-assistant/home-assistant/pull/23469 -[#23471]: https://github.com/home-assistant/home-assistant/pull/23471 -[#23472]: https://github.com/home-assistant/home-assistant/pull/23472 -[#23473]: https://github.com/home-assistant/home-assistant/pull/23473 -[#23479]: https://github.com/home-assistant/home-assistant/pull/23479 -[#23481]: https://github.com/home-assistant/home-assistant/pull/23481 -[#23482]: https://github.com/home-assistant/home-assistant/pull/23482 -[#23484]: https://github.com/home-assistant/home-assistant/pull/23484 -[#23489]: https://github.com/home-assistant/home-assistant/pull/23489 -[#23491]: https://github.com/home-assistant/home-assistant/pull/23491 -[#23492]: https://github.com/home-assistant/home-assistant/pull/23492 -[#23493]: https://github.com/home-assistant/home-assistant/pull/23493 -[#23498]: https://github.com/home-assistant/home-assistant/pull/23498 -[#23500]: https://github.com/home-assistant/home-assistant/pull/23500 -[#23507]: https://github.com/home-assistant/home-assistant/pull/23507 -[#23508]: https://github.com/home-assistant/home-assistant/pull/23508 -[#23513]: https://github.com/home-assistant/home-assistant/pull/23513 -[#23520]: https://github.com/home-assistant/home-assistant/pull/23520 -[#23522]: https://github.com/home-assistant/home-assistant/pull/23522 -[#23523]: https://github.com/home-assistant/home-assistant/pull/23523 -[#23524]: https://github.com/home-assistant/home-assistant/pull/23524 -[#23531]: https://github.com/home-assistant/home-assistant/pull/23531 -[#23532]: https://github.com/home-assistant/home-assistant/pull/23532 -[#23534]: https://github.com/home-assistant/home-assistant/pull/23534 -[#23536]: https://github.com/home-assistant/home-assistant/pull/23536 -[#23544]: https://github.com/home-assistant/home-assistant/pull/23544 -[#23560]: https://github.com/home-assistant/home-assistant/pull/23560 -[#23562]: https://github.com/home-assistant/home-assistant/pull/23562 -[#23563]: https://github.com/home-assistant/home-assistant/pull/23563 -[#23565]: https://github.com/home-assistant/home-assistant/pull/23565 -[#23568]: https://github.com/home-assistant/home-assistant/pull/23568 -[#23572]: https://github.com/home-assistant/home-assistant/pull/23572 -[#23575]: https://github.com/home-assistant/home-assistant/pull/23575 -[#23578]: https://github.com/home-assistant/home-assistant/pull/23578 -[#23579]: https://github.com/home-assistant/home-assistant/pull/23579 -[#23580]: https://github.com/home-assistant/home-assistant/pull/23580 -[#23583]: https://github.com/home-assistant/home-assistant/pull/23583 -[#23584]: https://github.com/home-assistant/home-assistant/pull/23584 -[#23585]: https://github.com/home-assistant/home-assistant/pull/23585 -[#23586]: https://github.com/home-assistant/home-assistant/pull/23586 -[#23587]: https://github.com/home-assistant/home-assistant/pull/23587 -[#23588]: https://github.com/home-assistant/home-assistant/pull/23588 -[#23589]: https://github.com/home-assistant/home-assistant/pull/23589 -[#23592]: https://github.com/home-assistant/home-assistant/pull/23592 -[#23593]: https://github.com/home-assistant/home-assistant/pull/23593 -[#23596]: https://github.com/home-assistant/home-assistant/pull/23596 -[#23598]: https://github.com/home-assistant/home-assistant/pull/23598 -[#23599]: https://github.com/home-assistant/home-assistant/pull/23599 -[#23603]: https://github.com/home-assistant/home-assistant/pull/23603 -[#23608]: https://github.com/home-assistant/home-assistant/pull/23608 -[#23609]: https://github.com/home-assistant/home-assistant/pull/23609 -[#23611]: https://github.com/home-assistant/home-assistant/pull/23611 -[#23617]: https://github.com/home-assistant/home-assistant/pull/23617 -[#23618]: https://github.com/home-assistant/home-assistant/pull/23618 -[#23621]: https://github.com/home-assistant/home-assistant/pull/23621 -[#23622]: https://github.com/home-assistant/home-assistant/pull/23622 -[#23623]: https://github.com/home-assistant/home-assistant/pull/23623 -[#23624]: https://github.com/home-assistant/home-assistant/pull/23624 -[#23625]: https://github.com/home-assistant/home-assistant/pull/23625 -[#23635]: https://github.com/home-assistant/home-assistant/pull/23635 -[#23641]: https://github.com/home-assistant/home-assistant/pull/23641 -[#23643]: https://github.com/home-assistant/home-assistant/pull/23643 -[#23649]: https://github.com/home-assistant/home-assistant/pull/23649 -[#23651]: https://github.com/home-assistant/home-assistant/pull/23651 -[#23661]: https://github.com/home-assistant/home-assistant/pull/23661 -[#23663]: https://github.com/home-assistant/home-assistant/pull/23663 -[#23666]: https://github.com/home-assistant/home-assistant/pull/23666 -[#23667]: https://github.com/home-assistant/home-assistant/pull/23667 -[#23670]: https://github.com/home-assistant/home-assistant/pull/23670 -[#23671]: https://github.com/home-assistant/home-assistant/pull/23671 -[#23672]: https://github.com/home-assistant/home-assistant/pull/23672 -[#23673]: https://github.com/home-assistant/home-assistant/pull/23673 -[#23674]: https://github.com/home-assistant/home-assistant/pull/23674 -[#23675]: https://github.com/home-assistant/home-assistant/pull/23675 -[#23676]: https://github.com/home-assistant/home-assistant/pull/23676 -[#23677]: https://github.com/home-assistant/home-assistant/pull/23677 -[#23678]: https://github.com/home-assistant/home-assistant/pull/23678 -[#23679]: https://github.com/home-assistant/home-assistant/pull/23679 -[#23680]: https://github.com/home-assistant/home-assistant/pull/23680 -[#23685]: https://github.com/home-assistant/home-assistant/pull/23685 -[#23694]: https://github.com/home-assistant/home-assistant/pull/23694 -[#23695]: https://github.com/home-assistant/home-assistant/pull/23695 -[#23697]: https://github.com/home-assistant/home-assistant/pull/23697 -[#23700]: https://github.com/home-assistant/home-assistant/pull/23700 -[#23701]: https://github.com/home-assistant/home-assistant/pull/23701 -[#23705]: https://github.com/home-assistant/home-assistant/pull/23705 -[#23711]: https://github.com/home-assistant/home-assistant/pull/23711 -[#23712]: https://github.com/home-assistant/home-assistant/pull/23712 -[#23713]: https://github.com/home-assistant/home-assistant/pull/23713 -[#23714]: https://github.com/home-assistant/home-assistant/pull/23714 -[#23716]: https://github.com/home-assistant/home-assistant/pull/23716 -[#23724]: https://github.com/home-assistant/home-assistant/pull/23724 -[#23729]: https://github.com/home-assistant/home-assistant/pull/23729 -[#23732]: https://github.com/home-assistant/home-assistant/pull/23732 -[#23733]: https://github.com/home-assistant/home-assistant/pull/23733 -[#23736]: https://github.com/home-assistant/home-assistant/pull/23736 -[#23740]: https://github.com/home-assistant/home-assistant/pull/23740 -[#23743]: https://github.com/home-assistant/home-assistant/pull/23743 -[#23746]: https://github.com/home-assistant/home-assistant/pull/23746 -[#23751]: https://github.com/home-assistant/home-assistant/pull/23751 -[#23753]: https://github.com/home-assistant/home-assistant/pull/23753 -[#23763]: https://github.com/home-assistant/home-assistant/pull/23763 -[#23766]: https://github.com/home-assistant/home-assistant/pull/23766 -[#23769]: https://github.com/home-assistant/home-assistant/pull/23769 -[#23787]: https://github.com/home-assistant/home-assistant/pull/23787 -[#23791]: https://github.com/home-assistant/home-assistant/pull/23791 -[#23803]: https://github.com/home-assistant/home-assistant/pull/23803 -[#23807]: https://github.com/home-assistant/home-assistant/pull/23807 -[#23853]: https://github.com/home-assistant/home-assistant/pull/23853 -[#23854]: https://github.com/home-assistant/home-assistant/pull/23854 -[#23855]: https://github.com/home-assistant/home-assistant/pull/23855 -[#23857]: https://github.com/home-assistant/home-assistant/pull/23857 -[@4lloyd]: https://github.com/4lloyd -[@Adminiuga]: https://github.com/Adminiuga -[@BKPepe]: https://github.com/BKPepe -[@Chris-V]: https://github.com/Chris-V -[@Danielhiversen]: https://github.com/Danielhiversen -[@GeertvanHorrik]: https://github.com/GeertvanHorrik -[@GoNzCiD]: https://github.com/GoNzCiD -[@Jc2k]: https://github.com/Jc2k -[@JonasPed]: https://github.com/JonasPed -[@Julius2342]: https://github.com/Julius2342 -[@Kane610]: https://github.com/Kane610 -[@MartinHjelmare]: https://github.com/MartinHjelmare -[@SNoof85]: https://github.com/SNoof85 -[@StevenLooman]: https://github.com/StevenLooman -[@SukramJ]: https://github.com/SukramJ -[@Swamp-Ig]: https://github.com/Swamp-Ig -[@ThaStealth]: https://github.com/ThaStealth -[@TheLastProject]: https://github.com/TheLastProject -[@TomerFi]: https://github.com/TomerFi -[@UgaitzEtxebarria]: https://github.com/UgaitzEtxebarria -[@ViViDboarder]: https://github.com/ViViDboarder -[@adrum]: https://github.com/adrum -[@alengwenus]: https://github.com/alengwenus -[@amelchio]: https://github.com/amelchio -[@andrewsayre]: https://github.com/andrewsayre -[@anrudolph]: https://github.com/anrudolph -[@arsaboo]: https://github.com/arsaboo -[@atomic7777]: https://github.com/atomic7777 -[@bachya]: https://github.com/bachya -[@balloob]: https://github.com/balloob -[@bdurrer]: https://github.com/bdurrer -[@bieniu]: https://github.com/bieniu -[@brange]: https://github.com/brange -[@bwarden]: https://github.com/bwarden -[@carstenschroeder]: https://github.com/carstenschroeder -[@cdce8p]: https://github.com/cdce8p -[@cgtobi]: https://github.com/cgtobi -[@chmielowiec]: https://github.com/chmielowiec -[@cyrosy]: https://github.com/cyrosy -[@dmulcahey]: https://github.com/dmulcahey -[@dreed47]: https://github.com/dreed47 -[@droopanu]: https://github.com/droopanu -[@elupus]: https://github.com/elupus -[@emontnemery]: https://github.com/emontnemery -[@etheralm]: https://github.com/etheralm -[@evanjd]: https://github.com/evanjd -[@fabaff]: https://github.com/fabaff -[@flowolf]: https://github.com/flowolf -[@fredrike]: https://github.com/fredrike -[@hunterjm]: https://github.com/hunterjm -[@itn3rd77]: https://github.com/itn3rd77 -[@ktnrg45]: https://github.com/ktnrg45 -[@ludeeus]: https://github.com/ludeeus -[@maddenp]: https://github.com/maddenp -[@max-te]: https://github.com/max-te -[@mcc05]: https://github.com/mcc05 -[@mikeage]: https://github.com/mikeage -[@mitchellrj]: https://github.com/mitchellrj -[@nielstron]: https://github.com/nielstron -[@panosmz]: https://github.com/panosmz -[@pascallj]: https://github.com/pascallj -[@phdelodder]: https://github.com/phdelodder -[@pnbruckner]: https://github.com/pnbruckner -[@pszafer]: https://github.com/pszafer -[@pvizeli]: https://github.com/pvizeli -[@raman325]: https://github.com/raman325 -[@robbiet480]: https://github.com/robbiet480 -[@robmarkcole]: https://github.com/robmarkcole -[@rohankapoorcom]: https://github.com/rohankapoorcom -[@rolfberkenbosch]: https://github.com/rolfberkenbosch -[@scop]: https://github.com/scop -[@sowelie]: https://github.com/sowelie -[@teliov]: https://github.com/teliov -[@tsvi]: https://github.com/tsvi -[@unixko]: https://github.com/unixko -[@vigonotion]: https://github.com/vigonotion -[@w1ll1am23]: https://github.com/w1ll1am23 -[@zanglang]: https://github.com/zanglang -[@zewelor]: https://github.com/zewelor -[@zxdavb]: https://github.com/zxdavb -[ads docs]: /components/ads/ -[alexa docs]: /components/alexa/ -[ambiclimate docs]: /components/ambiclimate/ -[amcrest docs]: /components/amcrest/ -[automation docs]: /components/automation/ -[bizkaibus docs]: /components/bizkaibus/ -[bluesound docs]: /components/bluesound/ -[bom docs]: /components/bom/ -[caldav docs]: /components/caldav/ -[cast docs]: /components/cast/ -[counter docs]: /components/counter/ -[daikin docs]: /components/daikin/ -[danfoss_air docs]: /components/danfoss_air/ -[deconz docs]: /components/deconz/ -[discord docs]: /components/discord/ -[discovery docs]: /components/discovery/ -[dnsip docs]: /components/dnsip/ -[dyson docs]: /components/dyson/ -[econet docs]: /components/econet/ -[enocean docs]: /components/enocean/ -[epsonworkforce docs]: /components/epsonworkforce/ -[essent docs]: /components/essent/ -[evohome docs]: /components/evohome/ -[frontend docs]: /components/frontend/ -[geniushub docs]: /components/geniushub/ -[geofency docs]: /components/geofency/ -[glances docs]: /components/glances/ -[google docs]: /components/google/ -[google_assistant docs]: /components/google_assistant/ -[greeneye_monitor docs]: /components/greeneye_monitor/ -[hangouts docs]: /components/hangouts/ -[heos docs]: /components/heos/ -[homekit docs]: /components/homekit/ -[homekit_controller docs]: /components/homekit_controller/ -[homematic docs]: /components/homematic/ -[homematicip_cloud docs]: /components/homematicip_cloud/ -[honeywell docs]: /components/honeywell/ -[html5 docs]: /components/html5/ -[huawei_lte docs]: /components/huawei_lte/ -[hue docs]: /components/hue/ -[ihc docs]: /components/ihc/ -[incomfort docs]: /components/incomfort/ -[influxdb docs]: /components/influxdb/ -[input_datetime docs]: /components/input_datetime/ -[iqvia docs]: /components/iqvia/ -[lcn docs]: /components/lcn/ -[lifx docs]: /components/lifx/ -[liveboxplaytv docs]: /components/liveboxplaytv/ -[local_file docs]: /components/local_file/ -[locative docs]: /components/locative/ -[logi_circle docs]: /components/logi_circle/ -[mastodon docs]: /components/mastodon/ -[media_extractor docs]: /components/media_extractor/ -[media_player docs]: /components/media_player/ -[meteoalarm docs]: /components/meteoalarm/ -[mobile_app docs]: /components/mobile_app/ -[mqtt docs]: /components/mqtt/ -[mysensors docs]: /components/mysensors/ -[namecheapdns docs]: /components/namecheapdns/ -[netatmo docs]: /components/netatmo/ -[netatmo_public docs]: /components/netatmo_public/ -[netgear_lte docs]: /components/netgear_lte/ -[nextbus docs]: /components/nextbus/ -[nmap_tracker docs]: /components/nmap_tracker/ -[notify docs]: /components/notify/ -[oasa_telematics docs]: /components/oasa_telematics/ -[ohmconnect docs]: /components/ohmconnect/ -[onboarding docs]: /components/onboarding/ -[onvif docs]: /components/onvif/ -[opencv docs]: /components/opencv/ -[openuv docs]: /components/openuv/ -[opple docs]: /components/opple/ -[orangepi_gpio docs]: /components/orangepi_gpio/ -[otp docs]: /components/otp/ -[panasonic_bluray docs]: /components/panasonic_bluray/ -[philips_js docs]: /components/philips_js/ -[plex docs]: /components/plex/ -[pollen docs]: /components/pollen/ -[ps4 docs]: /components/ps4/ -[ptvsd docs]: /components/ptvsd/ -[rainmachine docs]: /components/rainmachine/ -[recorder docs]: /components/recorder/ -[rest docs]: /components/rest/ -[sendgrid docs]: /components/sendgrid/ -[serial_pm docs]: /components/serial_pm/ -[sesame docs]: /components/sesame/ -[seventeentrack docs]: /components/seventeentrack/ -[shodan docs]: /components/shodan/ -[simplisafe docs]: /components/simplisafe/ -[slack docs]: /components/slack/ -[snmp docs]: /components/snmp/ -[sonos docs]: /components/sonos/ -[spotcrime docs]: /components/spotcrime/ -[sql docs]: /components/sql/ -[startca docs]: /components/startca/ -[stream docs]: /components/stream/ -[sun docs]: /components/sun/ -[switchbot docs]: /components/switchbot/ -[switcher_kis docs]: /components/switcher_kis/ -[syncthru docs]: /components/syncthru/ -[systemmonitor docs]: /components/systemmonitor/ -[tapsaff docs]: /components/tapsaff/ -[ted5000 docs]: /components/ted5000/ -[telegram_bot docs]: /components/telegram_bot/ -[tellduslive docs]: /components/tellduslive/ -[tensorflow docs]: /components/tensorflow/ -[thethingsnetwork docs]: /components/thethingsnetwork/ -[tplink_lte docs]: /components/tplink_lte/ -[traccar docs]: /components/traccar/ -[trend docs]: /components/trend/ -[ubee docs]: /components/ubee/ -[upc_connect docs]: /components/upc_connect/ -[upnp docs]: /components/upnp/ -[velux docs]: /components/velux/ -[vesync docs]: /components/vesync/ -[vizio docs]: /components/vizio/ -[websocket_api docs]: /components/websocket_api/ -[xiaomi_aqara docs]: /components/xiaomi_aqara/ -[xmpp docs]: /components/xmpp/ -[yeelight docs]: /components/yeelight/ -[yr docs]: /components/yr/ -[zeroconf docs]: /components/zeroconf/ -[zestimate docs]: /components/zestimate/ -[zha docs]: /components/zha/ -[zwave docs]: /components/zwave/ diff --git a/source/_posts/2019-05-16-release-93.markdown b/source/_posts/2019-05-16-release-93.markdown new file mode 100644 index 00000000000..e69de29bb2d From ae5112cc4c43bb5566c3808f178f6147d568d9ea Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 16 May 2019 06:57:56 +0200 Subject: [PATCH 23/24] put post back, oops --- source/_posts/2019-05-16-release-93.markdown | 831 +++++++++++++++++++ 1 file changed, 831 insertions(+) diff --git a/source/_posts/2019-05-16-release-93.markdown b/source/_posts/2019-05-16-release-93.markdown index e69de29bb2d..a17cfe0b8dd 100644 --- a/source/_posts/2019-05-16-release-93.markdown +++ b/source/_posts/2019-05-16-release-93.markdown @@ -0,0 +1,831 @@ +--- +layout: post +title: "0.93: Essent, AmbiClimate, VS Code debugging" +description: "This release improves our onboarding experience and our automation page." +date: 2019-05-16 04:11:03 +date_formatted: "May 16, 2019" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2019-05-release-93/components.png +--- + + + +It's time for our 0.93 release and it is a whopping cool one. It's a day later than usual as I am travelling. [Frenck](https://www.github.com/frenck) streams his work on Home Assistant / Hass.io each Tuesday and Friday, and last Tuesday I decided to surprise him and visit his house during the stream 😛. We ended up talking about everything Home Assistant with the viewers for over 3 hours. For the full conversation, check out [Frenck's blog](https://frenck.dev/home-assistant-paulus-invaded-my-live-stream/). Clip of me walking into the stream: + +
+ +
+ +Last week we also wrote about [our updated plans](/blog/2019/05/03/update-from-the-field/) for Home Assistant for this year. If you haven't read it yet, worth the read! + +If you are a Nest user, we have some sad news: Google announced that they are [shutting down the Nest API](/blog/2019/05/08/nest-data-bye-bye/) at the end of August. This will cause Nest hardware to no longer work with Home Assistant (╯°□°)╯︵ ┻━┻ + +As always, this release is accompanied by [a new episode of the Home Assistant podcast](https://hasspodcast.io/ha050/). Rohan and Phil discuss the new release, the Nest API and a lot more. This episode is their 50th episode already, congratulations on this milestone! + +## {% linkable_title Home Assistant 1.0 %} + +As we mentioned in [our updated plans post](/blog/2019/05/03/update-from-the-field/), we're working hard on Home Assistant 1.0. Over the next releases we will work on polishing the UI, the backend architecture, and everything in between. + +One of the new things that we introduced is a new step in our onboarding allowing users to set up integrations. We will automatically highlight discovered integrations. Once the user finishes the onboarding flow, entities will be automatically grouped by the areas that they are in. Neat! + +
+ +
+ +We've also been working on polishing parts of our config UI. The automation editor will now show all automations, the last time they got triggered, and allow users to enable/disable them. + +

+Screenshot of the updated automation editor. +Screenshot of the updated automation editor. +

+ +## {% linkable_title Sonos %} + +The Sonos integration has a number of changes in this release, some of them breaking existing configuration. + +First, the Sonos custom services have been moved to the `sonos` domain. The new service names are as follows: + +- `sonos.join` (before: `media_player.sonos_join`) +- `sonos.unjoin` (before: `media_player.sonos_unjoin`) +- `sonos.snapshot` (before: `media_player.sonos_snapshot`) +- `sonos.restore` (before: `media_player.sonos_restore`) +- `sonos.set_sleep_timer` (before: `media_player.sonos_set_sleep_timer`) +- `sonos.clear_sleep_timer` (before: `media_player.sonos_clear_sleep_timer`) +- `sonos.update_alarm` (before: `media_player.sonos_update_alarm`) +- `sonos.set_option` (before: `media_player.sonos_set_option`) + +The last four of those services no longer target all entities by default since that is usually a mistake. The `entity_id` attribute is thus becoming mandatory for those services. If you really do want to target all you can use `entity_id: all`. + +Next, YAML configuration of Sonos under the `media_player:` key is no longer accepted. While auto-configuration through the Integrations UI is now the preferred way, static configuration can still be specified under a `sonos:` key, for example: + +```yaml +sonos: + media_player: + hosts: + - 192.0.2.25 + - 192.0.2.26 +``` + +For those of you that like to power down your Sonos, Home Assistant should now handle that without logging errors. Also, speakers that are powered on will be added to Home Assistant without needing a restart. + +## {% linkable_title New Integrations %} + +- Adds Orange Pi GPIO platform ([@pascallj] - [#22541]) ([orangepi_gpio docs]) (new-integration) (new-platform) +- Essent sensor ([@TheLastProject] - [#23513]) ([essent docs]) (new-integration) (new-platform) +- Ptvsd debugger component. ([@Swamp-Ig] - [#23336]) ([ptvsd docs]) (new-integration) +- Ambiclimate ([@Danielhiversen] - [#22827]) ([ambiclimate docs]) (new-integration) (new-platform) +- Add Intergas InComfort Lan2RF gateway ([@zxdavb] - [#23736]) ([incomfort docs]) (new-integration) (new-platform) + +## {% linkable_title New Platforms %} + +- Adds Orange Pi GPIO platform ([@pascallj] - [#22541]) ([orangepi_gpio docs]) (new-integration) (new-platform) +- Added component named switcher_kis switcher water heater integration. ([@TomerFi] - [#22325]) ([switcher_kis docs]) (new-platform) +- MQTT Vacuum State Device ([@pszafer] - [#23171]) ([mqtt docs]) (new-platform) +- Add new nextbus sensor ([@ViViDboarder] - [#20197]) ([nextbus docs]) (new-platform) +- Add sensor support for dyson 2018 models ([@etheralm] - [#22578]) ([dyson docs]) (new-platform) +- Add Bizkaibus, Biscays (Spain) bus service component ([@UgaitzEtxebarria] - [#22934]) ([bizkaibus docs]) (new-platform) +- Added new binary sensor meteoalarm to get weather alerts in Europe ([@rolfberkenbosch] - [#23663]) ([meteoalarm docs]) (new-integration) (new-platform) +- Add water_heater to geniushub, bump client library ([@zxdavb] - [#23384]) ([geniushub docs]) (new-platform) +- New cover platform for ADS integration ([@carstenschroeder] - [#23377]) ([ads 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 %} + +- __Homematic IP Cloud__ - Adds homematicip cloud temperature sensor from thermostats. Entity IDs of HmIP-SLO (Light Sensor Outdoor) will change and stale entities will need to be removed from the entity registry. ([@SukramJ] - [#23263]) ([homematicip_cloud docs]) +- __Pollen.com__ + * IQVIA is the parent company which hosts a variety of sites (https://pollen.com, https://flustar.com, etc.) from which valid data can come. To accommodate this, the Pollen.com sensor platform is now the IQVIA component and the configuration.yaml schema has changed accordingly. ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) + * The IQVIA component no longer provides historical data for allergen and asthma conditions. Tactically, this means all historical sensors – including "Yesterday" sensors – will no longer appear; users will need to update any automations that previously relied on these sensors. ([@bachya] - [#23258]) ([iqvia docs]) + + Example configuration: + ``` + iqvia: + zip_code: "12345" + ``` + + + + +- __Sonos__ + * Configuring the Sonos integration as a media_player: platform in configuration.yaml was deprecated in 0.72 and has now been removed. Please see the notes above in this release post as well as the component documentation for further info. ([@amelchio] - [#23385]) ([sonos docs]) + * Sonos-specific services have been moved from the media_player domain to the sonos domain. For example, media_player.sonos_join has become sonos.join. Services sonos.set_sleep_timer, sonos.clear_sleep_timer, sonos.update_alarm and sonos.set_option now require the entity_id parameter and will not target all when it is missing. You can use all to target all. ([@amelchio] - [#23670]) ([sonos docs]) + + +- __Nmap__ - In Linux, and when running a setuid nmap, MAC addresses are reported with a leading zero in each byte. Under Mac OS X, when running the arp command, there is no leading zero. This makes it annoying to share config files between a Mac and Linux setup. This change fixes this by forcing MAC addresses to be zero padded, "breaking" Mac detection on a Mac by aligning it to the convention on Linux ([@mikeage] - [#23492]) ([nmap_tracker docs]) +- __Frontend__ - This change converts the frontend to do client-side modern JS detection. It is no longer possible to force the frontend version that is shown to a browser by specifying a javascript_version option. Instead, we use feature detection to make sure that each browser receives the latest supported version. Because of feature detection, we no longer have ES5 specific index pages, which means the option extra_html_url_es5 no longer does anything. All usages of extra_html_url should be migrated to use Lovelace imports.([@balloob] - [#23618]) ([frontend docs]) +- __Epson Workforce__ - This change adds the option to add photo black cartridge as a setting. It also corrects the spelling of "Inklevel" to "Ink level"([@ThaStealth] - [#23433]) ([epsonworkforce docs]) + + Example configuration: + ``` + - platform: epsonworkforce + host: IP_ADDRESS + monitored_conditions: + - black + - photoblack + - yellow + - magenta + - cyan + - clean + ``` + + +- __SNMP__ - The configuration of the SNMP device tracker was aligned with the other SNMP switch and the sensor configuration. If you are using authentication key and private key then change your configuration to auth_key: and priv_key:. ([@fabaff] - [#23678]) ([snmp docs]) + +- __Netatmo__ The netatmo_public sensor will be merged into the netatmo integration. In the config platform: netatmo_public becomes platform: netatmo, everything else stays the same. ([@cgtobi] - [#23531]) ([netatmo docs]) +- __Sesame Smart Lock__ - The Sesame smart lock's 1.0 API uses a username/password pair to authenticate, and may be deprecated in the future. The V3 API uses an API key, so it will require users to update their HA config. ([@zanglang] - [#23621]) ([sesame docs]) + + Example configuration: + ``` + lock: + - platform: sesame + api_key: !secret sesame_api_key + ``` + +## {% linkable_title Beta Fixes %} + +- Sort discovered entries by 'st' to ensure getting the same device each discovery ([@StevenLooman] - [#23763]) ([upnp docs]) (beta fix) +- Bump pyatmo to v1.11 ([@cgtobi] - [#23766]) ([netatmo docs]) (beta fix) +- Fix for issue #23739. Added unique_id property so ([@dreed47] - [#23769]) ([zestimate docs]) (beta fix) +- Beta Fix: ONVIF ([@hunterjm] - [#23787]) ([onvif docs]) (beta fix) +- Synchronize Sonos service calls ([@amelchio] - [#23791]) ([sonos docs]) (beta fix) +- Do not add coordinator to the ZHA entities. ([@Adminiuga] - [#23803]) ([zha docs]) (beta fix) +- fix onvif wsdl import - take 2 ([@hunterjm] - [#23807]) ([onvif docs]) (beta fix) +- Correct ZHA illumination conversion ([@dmulcahey] - [#23853]) ([zha docs]) (beta fix) +- Fix ZHA battery when readings produce an unknown value ([@dmulcahey] - [#23854]) ([zha docs]) (beta fix) +- bump zha-quirks ([@dmulcahey] - [#23855]) ([zha docs]) (beta fix) +- Fix improper usage of body attribute on web.Response. Should be text since we arent sending bytes ([@robbiet480] - [#23857]) ([geofency docs]) ([locative docs]) ([mobile_app docs]) (beta fix) + +## {% linkable_title All changes %} + +- Pass configured host string instead of always forcing an ip-address ([@itn3rd77] - [#23164]) ([homematic docs]) +- Make less imports from yeelight ([@zewelor] - [#23124]) ([yeelight docs]) +- Add @Jc2k to codeowners for homekit_controller ([@Jc2k] - [#23173]) ([homekit_controller docs]) +- Add minimum/maximum to counter ([@rohankapoorcom] - [#22608]) ([counter docs]) +- Adds Orange Pi GPIO platform ([@pascallj] - [#22541]) ([orangepi_gpio docs]) (new-integration) (new-platform) +- Potential None ([@Swamp-Ig] - [#23187]) ([automation docs]) +- Add storage for cacheable homekit entity maps. ([@Jc2k] - [#23191]) ([homekit_controller docs]) +- Misc. ZHA changes ([@dmulcahey] - [#23190]) ([zha docs]) +- set myself as codeowner of xmpp, removed me from notify/* ([@flowolf] - [#23207]) ([notify docs]) ([xmpp docs]) +- Update vizio component to support latest pyvizio with soundbar support ([@raman325] - [#22294]) ([vizio docs]) +- Add json_attributes_template ([@emontnemery] - [#22981]) ([mqtt docs]) +- Only comment with changed coverage on release PRs [skip-ci] ([@balloob] - [#23224]) +- Fix optimistic mode + other bugs, tests ([@emontnemery] - [#22976]) ([mqtt docs]) +- Set default value for input_datetime ([@tsvi] - [#21919]) ([input_datetime docs]) +- Remove archived 17track packages from the entity registry ([@bachya] - [#23049]) ([seventeentrack docs]) +- Change configuration for orangepi ([@pascallj] - [#23231]) ([orangepi_gpio docs]) +- Add and use an async_fire_service_discovered helper ([@Jc2k] - [#23232]) +- Review feedback from #23191 ([@Jc2k] - [#23233]) ([homekit_controller docs]) +- Add missing service for persistent_notification ([@bieniu] - [#23230]) +- Add more CPU temp. labels to Glances ([@Chris-V] - [#23179]) ([glances docs]) +- Add accuracy and status for Traccar ([@GoNzCiD] - [#23180]) ([traccar docs]) +- Avoid calling async code in sync context ([@Jc2k] - [#23235]) ([homekit_controller docs]) +- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23246]) +- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23247]) +- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23248]) +- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23249]) +- Drop unnecessary block_till_done ([@emontnemery] - [#23250]) +- Drop unnecessary block_till_done ([@emontnemery] - [#23251]) +- Drop unnecessary block_till_done, improve tests ([@emontnemery] - [#23252]) +- Added component named switcher_kis switcher water heater integration. ([@TomerFi] - [#22325]) ([switcher_kis docs]) (new-platform) +- Drop unnecessary block_till_done for MQTT fan tests ([@emontnemery] - [#23253]) +- Drop unnecessary block_till_done for MQTT tests ([@emontnemery] - [#23254]) +- Drop unnecessary block_till_done, improve tests for MQTT Cover tests ([@emontnemery] - [#23255]) +- Drop unnecessary block_till_done ([@emontnemery] - [#23256]) +- Add ctags file to .gitignore ([@bachya] - [#23279]) +- Upgrade xmltodict to 0.12.0 ([@BKPepe] - [#23277]) ([bluesound docs]) ([startca docs]) ([ted5000 docs]) ([yr docs]) ([zestimate docs]) +- Upgrade pyotp to 2.2.7 ([@BKPepe] - [#23274]) ([otp docs]) +- Add homematicip cloud temperature sensor from thermostats ([@SukramJ] - [#23263]) ([homematicip_cloud docs]) (breaking change) +- Improve MQTT tests ([@emontnemery] - [#23296]) +- Add support to play url ([@andrewsayre] - [#23273]) ([heos docs]) +- RFC: Upgrade philips_js component version and support channels and sources ([@elupus] - [#23061]) ([philips_js docs]) +- MQTT Vacuum State Device ([@pszafer] - [#23171]) ([mqtt docs]) (new-platform) +- Add connection control for netgear_lte ([@amelchio] - [#22946]) ([netgear_lte docs]) +- Set placeholders in homekit config flow title ([@Jc2k] - [#23311]) ([homekit_controller docs]) +- Random hassfest fixes ([@balloob] - [#23314]) +- Add get_states faster ([@balloob] - [#23315]) ([websocket_api docs]) +- Handle traccar connection errors ([@ludeeus] - [#23289]) ([traccar docs]) +- Upgrade attrs to 19.1.0 ([@BKPepe] - [#23323]) +- Fix ps4 not able to use different PSN accounts ([@ktnrg45] - [#22799]) ([ps4 docs]) +- Reorg Homematic IP Cloud imports and minor fixes ([@SukramJ] - [#23330]) ([homematicip_cloud docs]) +- Changes due to manifest.json. Awaiting coroutines instead of creating tasks ([@alengwenus] - [#23321]) ([lcn docs]) +- Fix Switchbot restore state ([@Danielhiversen] - [#23325]) ([switchbot docs]) +- Added override for kwikset 888. ([@sowelie] - [#23327]) ([zwave docs]) +- Upgrade youtube_dl to 2019.04.17 ([@fabaff] - [#23342]) ([media_extractor docs]) +- Fix Homematic IP Cloud remaining light imports ([@SukramJ] - [#23339]) ([homematicip_cloud docs]) +- Volume trait for google assistant ([@elupus] - [#23237]) ([google_assistant docs]) +- Upgrade ruamel.yaml to 0.15.94 ([@fabaff] - [#23344]) +- Netatmo 5min fetch interval ([@pvizeli] - [#23341]) ([netatmo docs]) +- Fixed test ([@Swamp-Ig] - [#23343]) +- Device type garage for binary sensor garage_door ([@elupus] - [#23345]) ([google_assistant docs]) +- Fix non-syncthru supporting printers ([@nielstron] - [#21482]) ([syncthru docs]) +- Add support for a wider variety of EnOcean devices ([@bdurrer] - [#22052]) ([enocean docs]) +- Convert Pollen.com sensor into IQVIA component ([@bachya] - [#22986]) ([iqvia docs]) ([pollen docs]) (breaking change) (new-integration) (new-platform) +- Upgrade to pyubee==0.6 ([@StevenLooman] - [#23355]) ([ubee docs]) +- Fix tox.ini lint target ([@ViViDboarder] - [#23359]) +- Add media player external url ([@balloob] - [#23337]) ([media_player docs]) +- Fix race condition. ([@mitchellrj] - [#21244]) ([plex docs]) +- Add amcrest camera services and deprecate switches ([@pnbruckner] - [#22949]) ([amcrest docs]) +- Convert some test helpers to coroutines and adjust tests ([@emontnemery] - [#23352]) +- Update xiaomi library ([@Danielhiversen] - [#23391]) ([xiaomi_aqara docs]) +- Add device classes for media player and map to google types ([@elupus] - [#23236]) ([google_assistant docs]) ([media_player docs]) +- Bump youtube-dl version to 2019.04.24 ([@cgtobi] - [#23398]) ([media_extractor docs]) +- add key parameter ([@panosmz] - [#23381]) ([oasa_telematics docs]) +- check if sabotage attr is in device ([@SukramJ] - [#23397]) ([homematicip_cloud docs]) +- Add Types to Homematic IP ([@SukramJ] - [#23401]) ([homematicip_cloud docs]) +- Add device info for Logi Circle camera and sensor entities ([@evanjd] - [#23373]) ([logi_circle docs]) +- Bump requirement to v55 ([@Kane610] - [#23410]) ([deconz docs]) +- restore battery_quantity for zha devices ([@vigonotion] - [#23320]) ([zha docs]) +- Remove support for deprecated Sonos configuration ([@amelchio] - [#23385]) ([sonos docs]) (breaking change) +- Additional cleanup of IQVIA integration ([@bachya] - [#23403]) ([iqvia docs]) +- Add new nextbus sensor ([@ViViDboarder] - [#20197]) ([nextbus docs]) (new-platform) +- Remove historical allergen and asthma sensors from IQVIA ([@bachya] - [#23258]) ([iqvia docs]) (breaking change) +- Return of travis ([@amelchio] - [#23409]) +- Fix broken forecast trend attribute in IQVIA ([@bachya] - [#23454]) ([iqvia docs]) +- Bump amcrest to 1.4.0 and use new storage_all method ([@pnbruckner] - [#23446]) ([amcrest docs]) +- Added option to use self-signed certificates ([@anrudolph] - [#23139]) ([caldav docs]) +- No longer promote imports inside methods ([@amelchio] - [#23471]) +- Improve handling of unavailable Sonos speakers ([@amelchio] - [#23472]) ([sonos docs]) +- Use remote image for HEOS ([@andrewsayre] - [#23420]) ([heos docs]) +- Add a warning that honeywell/EU is to be deprecated ([@zxdavb] - [#23469]) ([honeywell docs]) +- Skip flaky stream tests ([@amelchio] - [#23493]) +- Display person component as occupancy sensor HomeKit ([@chmielowiec] - [#23451]) ([homekit docs]) +- Fixes local_file camera service ([@robmarkcole] - [#23479]) ([local_file docs]) +- Update aiolifx_effects to 0.2.2 ([@arsaboo] - [#23473]) ([lifx docs]) +- Catch RequestException in influxdb writer ([@amelchio] - [#23508]) ([influxdb docs]) +- Fixed bug with max_result ([@atomic7777] - [#23507]) ([google docs]) +- Return state when changing optimistic covers ([@balloob] - [#23498]) ([google_assistant docs]) +- Update Philips js to v0.0.8 ([@elupus] - [#23462]) ([philips_js docs]) +- Fixed AlexaPowerController to report power state for thermostats ([@mcc05] - [#23468]) ([alexa docs]) +- Continuous discovery of Sonos speakers ([@amelchio] - [#23484]) ([sonos docs]) +- Ignore stale directories ([@amelchio] - [#23464]) +- Do not log tracebacks for influxdb write errors ([@amelchio] - [#23522]) ([influxdb docs]) +- limit concurrent updates to avoid network flood ([@dmulcahey] - [#23534]) ([zha docs]) +- Add current disease data to IQVIA ([@bachya] - [#23052]) ([iqvia docs]) +- Allow direct binding via ZHA for the ZLL profile ([@dmulcahey] - [#23536]) ([zha docs]) +- Improve logging of exceptions in async_create_task ([@emontnemery] - [#22689]) ([cast docs]) +- Install requirements when checking config ([@balloob] - [#23500]) +- Always print invalid configuration data ([@emontnemery] - [#21972]) +- Don't use zigpy profiles for ZHA entities ([@dmulcahey] - [#22844]) ([zha docs]) +- Add HomeKit low battery threshold config ([@adrum] - [#23363]) ([homekit docs]) +- Add sensor support for dyson 2018 models ([@etheralm] - [#22578]) ([dyson docs]) (new-platform) +- Bump homekit_python to 0.14.0 ([@Jc2k] - [#23562]) ([homekit_controller docs]) +- Upgrade pysonos to 0.0.12 ([@amelchio] - [#23560]) ([sonos docs]) +- Clean up ZHA discovery logic ([@dmulcahey] - [#23563]) ([zha docs]) +- Migrate tests to pytest ([@emontnemery] - [#23544]) +- bump zha-quirks version ([@dmulcahey] - [#23568]) ([zha docs]) +- Add core APIs to migrate device identifiers and entity unique_id ([@andrewsayre] - [#23481]) +- Essent sensor ([@TheLastProject] - [#23513]) ([essent docs]) (new-integration) (new-platform) +- Upgrade discord.py to v1.0.1 ([@cyrosy] - [#23523]) ([discord docs]) +- Always pad mac addresses from nmap tracker with leading zeros ([@mikeage] - [#23492]) ([nmap_tracker docs]) (breaking change) +- Update mysensors sensor icons ([@MartinHjelmare] - [#23491]) ([mysensors docs]) +- Add bypass and automatic bypass switch for Danfor Air. ([@JonasPed] - [#23572]) ([danfoss_air docs]) +- Ptvsd debugger component. ([@Swamp-Ig] - [#23336]) ([ptvsd docs]) (new-integration) +- Fix min/max temp and humidity for homekit_controller climate ([@Jc2k] - [#23421]) ([homekit_controller docs]) +- Fix failing state update tests ([@etheralm] - [#23575]) +- render_with_collect method for template ([@Swamp-Ig] - [#23283]) +- Upgrade youtube_dl to 2019.04.30 ([@fabaff] - [#23579]) ([media_extractor docs]) +- Bumpped the pyeconet version ([@w1ll1am23] - [#23578]) ([econet docs]) +- Simplify Travis cache config ([@scop] - [#23592]) +- Fix low_battery_threshold issue HomeKit ([@cdce8p] - [#23593]) ([homekit docs]) +- Redesign AlarmControlPanel for Homematic IP ([@SukramJ] - [#23565]) ([homematicip_cloud docs]) +- Ambiclimate ([@Danielhiversen] - [#22827]) ([ambiclimate docs]) (new-integration) (new-platform) +- Move I/O to executor thread pool ([@cyrosy] - [#23589]) ([discord docs]) +- Update bomradarloop to v0.1.3 ([@maddenp] - [#23599]) ([bom docs]) +- updated manifest.json with correct version of hangup ([@teliov] - [#23596]) ([hangouts docs]) +- Add and improve Homekit controller pairing messages and errors ([@Jc2k] - [#23532]) ([homekit_controller docs]) +- Added message to data_template at notify REST ([@4lloyd] - [#23108]) ([rest docs]) +- Fixed unhandled exception in OpenUV data update ([@bachya] - [#23611]) ([openuv docs]) +- Support STATE_AUTO in homekit_controller climate ([@Jc2k] - [#23583]) ([homekit_controller docs]) +- Add support for flow sensor metrics in RainMachine ([@bachya] - [#23221]) ([rainmachine docs]) +- Clean caldav calendar tests ([@MartinHjelmare] - [#23609]) +- Improve sun automation tests ([@emontnemery] - [#23588]) +- Update pyvesync_v2 version to 0.9.7 ([@bwarden] - [#23603]) ([vesync docs]) +- Prevent turning on tellduslive lights with 0 brightness ([@brange] - [#23135]) ([tellduslive docs]) +- Update docstrings ([@fabaff] - [#23624]) ([panasonic_bluray docs]) +- Order imports ([@fabaff] - [#23623]) ([opple docs]) +- Polling is default ([@fabaff] - [#23622]) ([serial_pm docs]) +- Loosen discovery config validation to avoid breaking changes ([@Jc2k] - [#23625]) ([discovery docs]) +- Clean up redundant same-package ..package imports ([@scop] - [#23587]) ([greeneye_monitor docs]) ([huawei_lte docs]) ([tplink_lte docs]) +- Upgrade pytest to 4.4.1 ([@scop] - [#23584]) +- Upgrade mypy ([@scop] - [#23586]) +- Allow removing Telegram reply keyboard ([@max-te] - [#23467]) ([telegram_bot docs]) +- Convert frontend to do client-side modern JS detection ([@balloob] - [#23618]) ([frontend docs]) (breaking change) +- Refactor evohome to prepare for water_heater ([@zxdavb] - [#23489]) ([evohome docs]) +- Extend play_media support ([@andrewsayre] - [#23580]) ([heos docs]) +- update switchbot library ([@Danielhiversen] - [#23643]) ([switchbot docs]) +- Add "soc-thermal 1" as CPU Temp label to Glances ([@phdelodder] - [#23635]) ([glances docs]) +- deCONZ - Retry on BridgeBusy errors ([@Kane610] - [#23436]) ([deconz docs]) +- Added option to select photoblack cartridge ([@ThaStealth] - [#23433]) ([epsonworkforce docs]) (breaking change) +- Fix bad request for some IP ONVIF camera ([@GeertvanHorrik] - [#22972]) ([onvif docs]) +- Bump pyteleloisirs version ([@SNoof85] - [#23661]) ([liveboxplaytv docs]) +- Upgrade psutil to 5.6.2 ([@fabaff] - [#23671]) ([systemmonitor docs]) +- Upgrade shodan to 1.13.0 ([@fabaff] - [#23675]) ([shodan docs]) +- Upgrade slacker to 0.13.0 ([@fabaff] - [#23672]) ([slack docs]) +- Upgrade tapsaff to 0.2.1 ([@fabaff] - [#23676]) ([tapsaff docs]) +- Upgrade sqlalchemy to 1.3.3 ([@fabaff] - [#23674]) ([recorder docs]) ([sql docs]) +- Remove extraneous update call in SimpliSafe ([@bachya] - [#23680]) ([simplisafe docs]) +- Upgrade pysnmp to 4.4.9 ([@fabaff] - [#23677]) ([snmp docs]) +- Upgrade spotcrime to 1.0.4 (fixes #13189) ([@fabaff] - [#23679]) ([spotcrime docs]) +- Add Bizkaibus, Biscays (Spain) bus service component ([@UgaitzEtxebarria] - [#22934]) ([bizkaibus docs]) (new-platform) +- Add HomeKit Television functionality ([@adrum] - [#22968]) ([homekit docs]) +- Clean and fix google calendar tests ([@MartinHjelmare] - [#23608]) ([google docs]) +- Update requirements for pyvlx. ([@Julius2342] - [#23694]) ([velux docs]) +- Clean up mqtt device tracker tests ([@MartinHjelmare] - [#23700]) +- Clean up device tracker tests ([@MartinHjelmare] - [#23695]) +- Move Sonos services to sonos domain ([@amelchio] - [#23670]) ([sonos docs]) (breaking change) +- Move owntracks device tracker test under owntracks ([@MartinHjelmare] - [#23701]) +- Add support for SET_AWAY_MODE and TURN_ON/OFF on Daikin Climate ([@fredrike] - [#23585]) ([daikin docs]) +- Bump ZHA modules versions. ([@Adminiuga] - [#23705]) ([zha docs]) +- Add additional single input cluster entries - ZHA ([@dmulcahey] - [#23697]) ([zha docs]) +- Add media_type_app to media_player ([@ktnrg45] - [#23666]) ([media_player docs]) ([ps4 docs]) +- Add a TCP timeout of 5 seconds to ffmpeg ([@droopanu] - [#23617]) ([stream docs]) +- Catch thethingsnetwork TypeError ([@fabaff] - [#23667]) ([thethingsnetwork docs]) +- Use local constant in Daikin for STATE_OFF ([@fredrike] - [#23712]) ([daikin docs]) +- Upgrade sendgrid to 6.0.5 ([@fabaff] - [#23711]) ([sendgrid docs]) +- bump zha-quirks ([@dmulcahey] - [#23714]) ([zha docs]) +- Update IDs after firmware upgrade in HEOS ([@andrewsayre] - [#23641]) ([heos docs]) +- huawei_lte: handle icons for None sensor values gracefully ([@scop] - [#23649]) ([huawei_lte docs]) +- Upgrade switchbot , fixes #23702 ([@Danielhiversen] - [#23716]) ([switchbot docs]) +- Share snmp constants across all platforms ([@fabaff] - [#23678]) ([snmp docs]) (breaking change) +- Add TTL support and custom headers support. ([@pszafer] - [#22988]) ([html5 docs]) +- Added new binary sensor meteoalarm to get weather alerts in Europe ([@rolfberkenbosch] - [#23663]) ([meteoalarm docs]) (new-integration) (new-platform) +- add abbreviation for current_temperature_template ([@unixko] - [#23733]) ([mqtt docs]) +- Add water_heater to geniushub, bump client library ([@zxdavb] - [#23384]) ([geniushub docs]) (new-platform) +- Add debug prints to sun ([@emontnemery] - [#23598]) ([sun docs]) +- Add HEOS sign-in/out services ([@andrewsayre] - [#23729]) ([heos docs]) +- Fix Hue sensor integration with multiple bridges. ([@mitchellrj] - [#23713]) ([hue docs]) +- Fix effects on HUE integration for Osram bulbs ([@SukramJ] - [#22789]) ([hue docs]) +- Upgrade aiodns to 2.0.0 ([@fabaff] - [#23743]) ([dnsip docs]) +- Add abbreviation for position_topic ([@bieniu] - [#23740]) ([mqtt docs]) +- Update PR template ([@balloob] - [#23520]) +- Add Intergas InComfort Lan2RF gateway ([@zxdavb] - [#23736]) ([incomfort docs]) (new-integration) (new-platform) +- Fix upnp logger name ([@StevenLooman] - [#23724]) ([upnp docs]) +- Add update events to registries ([@balloob] - [#23746]) ([websocket_api docs]) +- Add integration step to onboarding ([@balloob] - [#23732]) ([onboarding docs]) +- Merge netatmo_public sensor into the netatmo integration ([@cgtobi] - [#23531]) ([netatmo docs]) (breaking change) +- Upgrade numpy to 1.16.3 ([@fabaff] - [#23673]) ([iqvia docs]) ([opencv docs]) ([tensorflow docs]) ([trend docs]) +- Upgrade Mastodon.py to 1.4.0 ([@fabaff] - [#23753]) ([mastodon docs]) +- New cover platform for ADS integration ([@carstenschroeder] - [#23377]) ([ads docs]) (new-platform) +- Prompt for pin only on open / unlock ([@Swamp-Ig] - [#23751]) ([google_assistant docs]) +- Upgrade defusedxml to 0.6.0 ([@scop] - [#23651]) ([ihc docs]) ([namecheapdns docs]) ([ohmconnect docs]) ([upc_connect docs]) +- Refactor child validation ([@MartinHjelmare] - [#23482]) ([mysensors docs]) +- Update Sesame component to use Candy House's library using the V3 API ([@zanglang] - [#23621]) ([sesame docs]) (breaking change) +- Upgrade zeroconf to 0.22.0 ([@BKPepe] - [#23524]) ([zeroconf docs]) +- No longer rely on requests ([@balloob] - [#23685]) ([ps4 docs]) +- Sort discovered entries by 'st' to ensure getting the same device each discovery ([@StevenLooman] - [#23763]) ([upnp docs]) (beta fix) +- Bump pyatmo to v1.11 ([@cgtobi] - [#23766]) ([netatmo docs]) (beta fix) +- Fix for issue #23739. Added unique_id property so ([@dreed47] - [#23769]) ([zestimate docs]) (beta fix) +- Beta Fix: ONVIF ([@hunterjm] - [#23787]) ([onvif docs]) (beta fix) +- Synchronize Sonos service calls ([@amelchio] - [#23791]) ([sonos docs]) (beta fix) +- Do not add coordinator to the ZHA entities. ([@Adminiuga] - [#23803]) ([zha docs]) (beta fix) +- fix onvif wsdl import - take 2 ([@hunterjm] - [#23807]) ([onvif docs]) (beta fix) +- Correct ZHA illumination conversion ([@dmulcahey] - [#23853]) ([zha docs]) (beta fix) +- Fix ZHA battery when readings produce an unknown value ([@dmulcahey] - [#23854]) ([zha docs]) (beta fix) +- bump zha-quirks ([@dmulcahey] - [#23855]) ([zha docs]) (beta fix) +- Fix improper usage of body attribute on web.Response. Should be text since we arent sending bytes ([@robbiet480] - [#23857]) ([geofency docs]) ([locative docs]) ([mobile_app docs]) (beta fix) + +[#20197]: https://github.com/home-assistant/home-assistant/pull/20197 +[#21244]: https://github.com/home-assistant/home-assistant/pull/21244 +[#21482]: https://github.com/home-assistant/home-assistant/pull/21482 +[#21919]: https://github.com/home-assistant/home-assistant/pull/21919 +[#21972]: https://github.com/home-assistant/home-assistant/pull/21972 +[#22052]: https://github.com/home-assistant/home-assistant/pull/22052 +[#22294]: https://github.com/home-assistant/home-assistant/pull/22294 +[#22325]: https://github.com/home-assistant/home-assistant/pull/22325 +[#22541]: https://github.com/home-assistant/home-assistant/pull/22541 +[#22578]: https://github.com/home-assistant/home-assistant/pull/22578 +[#22608]: https://github.com/home-assistant/home-assistant/pull/22608 +[#22689]: https://github.com/home-assistant/home-assistant/pull/22689 +[#22789]: https://github.com/home-assistant/home-assistant/pull/22789 +[#22799]: https://github.com/home-assistant/home-assistant/pull/22799 +[#22827]: https://github.com/home-assistant/home-assistant/pull/22827 +[#22844]: https://github.com/home-assistant/home-assistant/pull/22844 +[#22934]: https://github.com/home-assistant/home-assistant/pull/22934 +[#22946]: https://github.com/home-assistant/home-assistant/pull/22946 +[#22949]: https://github.com/home-assistant/home-assistant/pull/22949 +[#22968]: https://github.com/home-assistant/home-assistant/pull/22968 +[#22972]: https://github.com/home-assistant/home-assistant/pull/22972 +[#22976]: https://github.com/home-assistant/home-assistant/pull/22976 +[#22981]: https://github.com/home-assistant/home-assistant/pull/22981 +[#22986]: https://github.com/home-assistant/home-assistant/pull/22986 +[#22988]: https://github.com/home-assistant/home-assistant/pull/22988 +[#23049]: https://github.com/home-assistant/home-assistant/pull/23049 +[#23052]: https://github.com/home-assistant/home-assistant/pull/23052 +[#23061]: https://github.com/home-assistant/home-assistant/pull/23061 +[#23108]: https://github.com/home-assistant/home-assistant/pull/23108 +[#23124]: https://github.com/home-assistant/home-assistant/pull/23124 +[#23135]: https://github.com/home-assistant/home-assistant/pull/23135 +[#23139]: https://github.com/home-assistant/home-assistant/pull/23139 +[#23164]: https://github.com/home-assistant/home-assistant/pull/23164 +[#23171]: https://github.com/home-assistant/home-assistant/pull/23171 +[#23173]: https://github.com/home-assistant/home-assistant/pull/23173 +[#23179]: https://github.com/home-assistant/home-assistant/pull/23179 +[#23180]: https://github.com/home-assistant/home-assistant/pull/23180 +[#23187]: https://github.com/home-assistant/home-assistant/pull/23187 +[#23190]: https://github.com/home-assistant/home-assistant/pull/23190 +[#23191]: https://github.com/home-assistant/home-assistant/pull/23191 +[#23207]: https://github.com/home-assistant/home-assistant/pull/23207 +[#23221]: https://github.com/home-assistant/home-assistant/pull/23221 +[#23224]: https://github.com/home-assistant/home-assistant/pull/23224 +[#23230]: https://github.com/home-assistant/home-assistant/pull/23230 +[#23231]: https://github.com/home-assistant/home-assistant/pull/23231 +[#23232]: https://github.com/home-assistant/home-assistant/pull/23232 +[#23233]: https://github.com/home-assistant/home-assistant/pull/23233 +[#23235]: https://github.com/home-assistant/home-assistant/pull/23235 +[#23236]: https://github.com/home-assistant/home-assistant/pull/23236 +[#23237]: https://github.com/home-assistant/home-assistant/pull/23237 +[#23246]: https://github.com/home-assistant/home-assistant/pull/23246 +[#23247]: https://github.com/home-assistant/home-assistant/pull/23247 +[#23248]: https://github.com/home-assistant/home-assistant/pull/23248 +[#23249]: https://github.com/home-assistant/home-assistant/pull/23249 +[#23250]: https://github.com/home-assistant/home-assistant/pull/23250 +[#23251]: https://github.com/home-assistant/home-assistant/pull/23251 +[#23252]: https://github.com/home-assistant/home-assistant/pull/23252 +[#23253]: https://github.com/home-assistant/home-assistant/pull/23253 +[#23254]: https://github.com/home-assistant/home-assistant/pull/23254 +[#23255]: https://github.com/home-assistant/home-assistant/pull/23255 +[#23256]: https://github.com/home-assistant/home-assistant/pull/23256 +[#23258]: https://github.com/home-assistant/home-assistant/pull/23258 +[#23263]: https://github.com/home-assistant/home-assistant/pull/23263 +[#23273]: https://github.com/home-assistant/home-assistant/pull/23273 +[#23274]: https://github.com/home-assistant/home-assistant/pull/23274 +[#23277]: https://github.com/home-assistant/home-assistant/pull/23277 +[#23279]: https://github.com/home-assistant/home-assistant/pull/23279 +[#23283]: https://github.com/home-assistant/home-assistant/pull/23283 +[#23289]: https://github.com/home-assistant/home-assistant/pull/23289 +[#23296]: https://github.com/home-assistant/home-assistant/pull/23296 +[#23311]: https://github.com/home-assistant/home-assistant/pull/23311 +[#23314]: https://github.com/home-assistant/home-assistant/pull/23314 +[#23315]: https://github.com/home-assistant/home-assistant/pull/23315 +[#23320]: https://github.com/home-assistant/home-assistant/pull/23320 +[#23321]: https://github.com/home-assistant/home-assistant/pull/23321 +[#23323]: https://github.com/home-assistant/home-assistant/pull/23323 +[#23325]: https://github.com/home-assistant/home-assistant/pull/23325 +[#23327]: https://github.com/home-assistant/home-assistant/pull/23327 +[#23330]: https://github.com/home-assistant/home-assistant/pull/23330 +[#23336]: https://github.com/home-assistant/home-assistant/pull/23336 +[#23337]: https://github.com/home-assistant/home-assistant/pull/23337 +[#23339]: https://github.com/home-assistant/home-assistant/pull/23339 +[#23341]: https://github.com/home-assistant/home-assistant/pull/23341 +[#23342]: https://github.com/home-assistant/home-assistant/pull/23342 +[#23343]: https://github.com/home-assistant/home-assistant/pull/23343 +[#23344]: https://github.com/home-assistant/home-assistant/pull/23344 +[#23345]: https://github.com/home-assistant/home-assistant/pull/23345 +[#23352]: https://github.com/home-assistant/home-assistant/pull/23352 +[#23355]: https://github.com/home-assistant/home-assistant/pull/23355 +[#23359]: https://github.com/home-assistant/home-assistant/pull/23359 +[#23363]: https://github.com/home-assistant/home-assistant/pull/23363 +[#23373]: https://github.com/home-assistant/home-assistant/pull/23373 +[#23377]: https://github.com/home-assistant/home-assistant/pull/23377 +[#23381]: https://github.com/home-assistant/home-assistant/pull/23381 +[#23384]: https://github.com/home-assistant/home-assistant/pull/23384 +[#23385]: https://github.com/home-assistant/home-assistant/pull/23385 +[#23391]: https://github.com/home-assistant/home-assistant/pull/23391 +[#23397]: https://github.com/home-assistant/home-assistant/pull/23397 +[#23398]: https://github.com/home-assistant/home-assistant/pull/23398 +[#23401]: https://github.com/home-assistant/home-assistant/pull/23401 +[#23403]: https://github.com/home-assistant/home-assistant/pull/23403 +[#23409]: https://github.com/home-assistant/home-assistant/pull/23409 +[#23410]: https://github.com/home-assistant/home-assistant/pull/23410 +[#23420]: https://github.com/home-assistant/home-assistant/pull/23420 +[#23421]: https://github.com/home-assistant/home-assistant/pull/23421 +[#23433]: https://github.com/home-assistant/home-assistant/pull/23433 +[#23436]: https://github.com/home-assistant/home-assistant/pull/23436 +[#23446]: https://github.com/home-assistant/home-assistant/pull/23446 +[#23451]: https://github.com/home-assistant/home-assistant/pull/23451 +[#23454]: https://github.com/home-assistant/home-assistant/pull/23454 +[#23462]: https://github.com/home-assistant/home-assistant/pull/23462 +[#23464]: https://github.com/home-assistant/home-assistant/pull/23464 +[#23467]: https://github.com/home-assistant/home-assistant/pull/23467 +[#23468]: https://github.com/home-assistant/home-assistant/pull/23468 +[#23469]: https://github.com/home-assistant/home-assistant/pull/23469 +[#23471]: https://github.com/home-assistant/home-assistant/pull/23471 +[#23472]: https://github.com/home-assistant/home-assistant/pull/23472 +[#23473]: https://github.com/home-assistant/home-assistant/pull/23473 +[#23479]: https://github.com/home-assistant/home-assistant/pull/23479 +[#23481]: https://github.com/home-assistant/home-assistant/pull/23481 +[#23482]: https://github.com/home-assistant/home-assistant/pull/23482 +[#23484]: https://github.com/home-assistant/home-assistant/pull/23484 +[#23489]: https://github.com/home-assistant/home-assistant/pull/23489 +[#23491]: https://github.com/home-assistant/home-assistant/pull/23491 +[#23492]: https://github.com/home-assistant/home-assistant/pull/23492 +[#23493]: https://github.com/home-assistant/home-assistant/pull/23493 +[#23498]: https://github.com/home-assistant/home-assistant/pull/23498 +[#23500]: https://github.com/home-assistant/home-assistant/pull/23500 +[#23507]: https://github.com/home-assistant/home-assistant/pull/23507 +[#23508]: https://github.com/home-assistant/home-assistant/pull/23508 +[#23513]: https://github.com/home-assistant/home-assistant/pull/23513 +[#23520]: https://github.com/home-assistant/home-assistant/pull/23520 +[#23522]: https://github.com/home-assistant/home-assistant/pull/23522 +[#23523]: https://github.com/home-assistant/home-assistant/pull/23523 +[#23524]: https://github.com/home-assistant/home-assistant/pull/23524 +[#23531]: https://github.com/home-assistant/home-assistant/pull/23531 +[#23532]: https://github.com/home-assistant/home-assistant/pull/23532 +[#23534]: https://github.com/home-assistant/home-assistant/pull/23534 +[#23536]: https://github.com/home-assistant/home-assistant/pull/23536 +[#23544]: https://github.com/home-assistant/home-assistant/pull/23544 +[#23560]: https://github.com/home-assistant/home-assistant/pull/23560 +[#23562]: https://github.com/home-assistant/home-assistant/pull/23562 +[#23563]: https://github.com/home-assistant/home-assistant/pull/23563 +[#23565]: https://github.com/home-assistant/home-assistant/pull/23565 +[#23568]: https://github.com/home-assistant/home-assistant/pull/23568 +[#23572]: https://github.com/home-assistant/home-assistant/pull/23572 +[#23575]: https://github.com/home-assistant/home-assistant/pull/23575 +[#23578]: https://github.com/home-assistant/home-assistant/pull/23578 +[#23579]: https://github.com/home-assistant/home-assistant/pull/23579 +[#23580]: https://github.com/home-assistant/home-assistant/pull/23580 +[#23583]: https://github.com/home-assistant/home-assistant/pull/23583 +[#23584]: https://github.com/home-assistant/home-assistant/pull/23584 +[#23585]: https://github.com/home-assistant/home-assistant/pull/23585 +[#23586]: https://github.com/home-assistant/home-assistant/pull/23586 +[#23587]: https://github.com/home-assistant/home-assistant/pull/23587 +[#23588]: https://github.com/home-assistant/home-assistant/pull/23588 +[#23589]: https://github.com/home-assistant/home-assistant/pull/23589 +[#23592]: https://github.com/home-assistant/home-assistant/pull/23592 +[#23593]: https://github.com/home-assistant/home-assistant/pull/23593 +[#23596]: https://github.com/home-assistant/home-assistant/pull/23596 +[#23598]: https://github.com/home-assistant/home-assistant/pull/23598 +[#23599]: https://github.com/home-assistant/home-assistant/pull/23599 +[#23603]: https://github.com/home-assistant/home-assistant/pull/23603 +[#23608]: https://github.com/home-assistant/home-assistant/pull/23608 +[#23609]: https://github.com/home-assistant/home-assistant/pull/23609 +[#23611]: https://github.com/home-assistant/home-assistant/pull/23611 +[#23617]: https://github.com/home-assistant/home-assistant/pull/23617 +[#23618]: https://github.com/home-assistant/home-assistant/pull/23618 +[#23621]: https://github.com/home-assistant/home-assistant/pull/23621 +[#23622]: https://github.com/home-assistant/home-assistant/pull/23622 +[#23623]: https://github.com/home-assistant/home-assistant/pull/23623 +[#23624]: https://github.com/home-assistant/home-assistant/pull/23624 +[#23625]: https://github.com/home-assistant/home-assistant/pull/23625 +[#23635]: https://github.com/home-assistant/home-assistant/pull/23635 +[#23641]: https://github.com/home-assistant/home-assistant/pull/23641 +[#23643]: https://github.com/home-assistant/home-assistant/pull/23643 +[#23649]: https://github.com/home-assistant/home-assistant/pull/23649 +[#23651]: https://github.com/home-assistant/home-assistant/pull/23651 +[#23661]: https://github.com/home-assistant/home-assistant/pull/23661 +[#23663]: https://github.com/home-assistant/home-assistant/pull/23663 +[#23666]: https://github.com/home-assistant/home-assistant/pull/23666 +[#23667]: https://github.com/home-assistant/home-assistant/pull/23667 +[#23670]: https://github.com/home-assistant/home-assistant/pull/23670 +[#23671]: https://github.com/home-assistant/home-assistant/pull/23671 +[#23672]: https://github.com/home-assistant/home-assistant/pull/23672 +[#23673]: https://github.com/home-assistant/home-assistant/pull/23673 +[#23674]: https://github.com/home-assistant/home-assistant/pull/23674 +[#23675]: https://github.com/home-assistant/home-assistant/pull/23675 +[#23676]: https://github.com/home-assistant/home-assistant/pull/23676 +[#23677]: https://github.com/home-assistant/home-assistant/pull/23677 +[#23678]: https://github.com/home-assistant/home-assistant/pull/23678 +[#23679]: https://github.com/home-assistant/home-assistant/pull/23679 +[#23680]: https://github.com/home-assistant/home-assistant/pull/23680 +[#23685]: https://github.com/home-assistant/home-assistant/pull/23685 +[#23694]: https://github.com/home-assistant/home-assistant/pull/23694 +[#23695]: https://github.com/home-assistant/home-assistant/pull/23695 +[#23697]: https://github.com/home-assistant/home-assistant/pull/23697 +[#23700]: https://github.com/home-assistant/home-assistant/pull/23700 +[#23701]: https://github.com/home-assistant/home-assistant/pull/23701 +[#23705]: https://github.com/home-assistant/home-assistant/pull/23705 +[#23711]: https://github.com/home-assistant/home-assistant/pull/23711 +[#23712]: https://github.com/home-assistant/home-assistant/pull/23712 +[#23713]: https://github.com/home-assistant/home-assistant/pull/23713 +[#23714]: https://github.com/home-assistant/home-assistant/pull/23714 +[#23716]: https://github.com/home-assistant/home-assistant/pull/23716 +[#23724]: https://github.com/home-assistant/home-assistant/pull/23724 +[#23729]: https://github.com/home-assistant/home-assistant/pull/23729 +[#23732]: https://github.com/home-assistant/home-assistant/pull/23732 +[#23733]: https://github.com/home-assistant/home-assistant/pull/23733 +[#23736]: https://github.com/home-assistant/home-assistant/pull/23736 +[#23740]: https://github.com/home-assistant/home-assistant/pull/23740 +[#23743]: https://github.com/home-assistant/home-assistant/pull/23743 +[#23746]: https://github.com/home-assistant/home-assistant/pull/23746 +[#23751]: https://github.com/home-assistant/home-assistant/pull/23751 +[#23753]: https://github.com/home-assistant/home-assistant/pull/23753 +[#23763]: https://github.com/home-assistant/home-assistant/pull/23763 +[#23766]: https://github.com/home-assistant/home-assistant/pull/23766 +[#23769]: https://github.com/home-assistant/home-assistant/pull/23769 +[#23787]: https://github.com/home-assistant/home-assistant/pull/23787 +[#23791]: https://github.com/home-assistant/home-assistant/pull/23791 +[#23803]: https://github.com/home-assistant/home-assistant/pull/23803 +[#23807]: https://github.com/home-assistant/home-assistant/pull/23807 +[#23853]: https://github.com/home-assistant/home-assistant/pull/23853 +[#23854]: https://github.com/home-assistant/home-assistant/pull/23854 +[#23855]: https://github.com/home-assistant/home-assistant/pull/23855 +[#23857]: https://github.com/home-assistant/home-assistant/pull/23857 +[@4lloyd]: https://github.com/4lloyd +[@Adminiuga]: https://github.com/Adminiuga +[@BKPepe]: https://github.com/BKPepe +[@Chris-V]: https://github.com/Chris-V +[@Danielhiversen]: https://github.com/Danielhiversen +[@GeertvanHorrik]: https://github.com/GeertvanHorrik +[@GoNzCiD]: https://github.com/GoNzCiD +[@Jc2k]: https://github.com/Jc2k +[@JonasPed]: https://github.com/JonasPed +[@Julius2342]: https://github.com/Julius2342 +[@Kane610]: https://github.com/Kane610 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@SNoof85]: https://github.com/SNoof85 +[@StevenLooman]: https://github.com/StevenLooman +[@SukramJ]: https://github.com/SukramJ +[@Swamp-Ig]: https://github.com/Swamp-Ig +[@ThaStealth]: https://github.com/ThaStealth +[@TheLastProject]: https://github.com/TheLastProject +[@TomerFi]: https://github.com/TomerFi +[@UgaitzEtxebarria]: https://github.com/UgaitzEtxebarria +[@ViViDboarder]: https://github.com/ViViDboarder +[@adrum]: https://github.com/adrum +[@alengwenus]: https://github.com/alengwenus +[@amelchio]: https://github.com/amelchio +[@andrewsayre]: https://github.com/andrewsayre +[@anrudolph]: https://github.com/anrudolph +[@arsaboo]: https://github.com/arsaboo +[@atomic7777]: https://github.com/atomic7777 +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bdurrer]: https://github.com/bdurrer +[@bieniu]: https://github.com/bieniu +[@brange]: https://github.com/brange +[@bwarden]: https://github.com/bwarden +[@carstenschroeder]: https://github.com/carstenschroeder +[@cdce8p]: https://github.com/cdce8p +[@cgtobi]: https://github.com/cgtobi +[@chmielowiec]: https://github.com/chmielowiec +[@cyrosy]: https://github.com/cyrosy +[@dmulcahey]: https://github.com/dmulcahey +[@dreed47]: https://github.com/dreed47 +[@droopanu]: https://github.com/droopanu +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@etheralm]: https://github.com/etheralm +[@evanjd]: https://github.com/evanjd +[@fabaff]: https://github.com/fabaff +[@flowolf]: https://github.com/flowolf +[@fredrike]: https://github.com/fredrike +[@hunterjm]: https://github.com/hunterjm +[@itn3rd77]: https://github.com/itn3rd77 +[@ktnrg45]: https://github.com/ktnrg45 +[@ludeeus]: https://github.com/ludeeus +[@maddenp]: https://github.com/maddenp +[@max-te]: https://github.com/max-te +[@mcc05]: https://github.com/mcc05 +[@mikeage]: https://github.com/mikeage +[@mitchellrj]: https://github.com/mitchellrj +[@nielstron]: https://github.com/nielstron +[@panosmz]: https://github.com/panosmz +[@pascallj]: https://github.com/pascallj +[@phdelodder]: https://github.com/phdelodder +[@pnbruckner]: https://github.com/pnbruckner +[@pszafer]: https://github.com/pszafer +[@pvizeli]: https://github.com/pvizeli +[@raman325]: https://github.com/raman325 +[@robbiet480]: https://github.com/robbiet480 +[@robmarkcole]: https://github.com/robmarkcole +[@rohankapoorcom]: https://github.com/rohankapoorcom +[@rolfberkenbosch]: https://github.com/rolfberkenbosch +[@scop]: https://github.com/scop +[@sowelie]: https://github.com/sowelie +[@teliov]: https://github.com/teliov +[@tsvi]: https://github.com/tsvi +[@unixko]: https://github.com/unixko +[@vigonotion]: https://github.com/vigonotion +[@w1ll1am23]: https://github.com/w1ll1am23 +[@zanglang]: https://github.com/zanglang +[@zewelor]: https://github.com/zewelor +[@zxdavb]: https://github.com/zxdavb +[ads docs]: /components/ads/ +[alexa docs]: /components/alexa/ +[ambiclimate docs]: /components/ambiclimate/ +[amcrest docs]: /components/amcrest/ +[automation docs]: /components/automation/ +[bizkaibus docs]: /components/bizkaibus/ +[bluesound docs]: /components/bluesound/ +[bom docs]: /components/bom/ +[caldav docs]: /components/caldav/ +[cast docs]: /components/cast/ +[counter docs]: /components/counter/ +[daikin docs]: /components/daikin/ +[danfoss_air docs]: /components/danfoss_air/ +[deconz docs]: /components/deconz/ +[discord docs]: /components/discord/ +[discovery docs]: /components/discovery/ +[dnsip docs]: /components/dnsip/ +[dyson docs]: /components/dyson/ +[econet docs]: /components/econet/ +[enocean docs]: /components/enocean/ +[epsonworkforce docs]: /components/epsonworkforce/ +[essent docs]: /components/essent/ +[evohome docs]: /components/evohome/ +[frontend docs]: /components/frontend/ +[geniushub docs]: /components/geniushub/ +[geofency docs]: /components/geofency/ +[glances docs]: /components/glances/ +[google docs]: /components/google/ +[google_assistant docs]: /components/google_assistant/ +[greeneye_monitor docs]: /components/greeneye_monitor/ +[hangouts docs]: /components/hangouts/ +[heos docs]: /components/heos/ +[homekit docs]: /components/homekit/ +[homekit_controller docs]: /components/homekit_controller/ +[homematic docs]: /components/homematic/ +[homematicip_cloud docs]: /components/homematicip_cloud/ +[honeywell docs]: /components/honeywell/ +[html5 docs]: /components/html5/ +[huawei_lte docs]: /components/huawei_lte/ +[hue docs]: /components/hue/ +[ihc docs]: /components/ihc/ +[incomfort docs]: /components/incomfort/ +[influxdb docs]: /components/influxdb/ +[input_datetime docs]: /components/input_datetime/ +[iqvia docs]: /components/iqvia/ +[lcn docs]: /components/lcn/ +[lifx docs]: /components/lifx/ +[liveboxplaytv docs]: /components/liveboxplaytv/ +[local_file docs]: /components/local_file/ +[locative docs]: /components/locative/ +[logi_circle docs]: /components/logi_circle/ +[mastodon docs]: /components/mastodon/ +[media_extractor docs]: /components/media_extractor/ +[media_player docs]: /components/media_player/ +[meteoalarm docs]: /components/meteoalarm/ +[mobile_app docs]: /components/mobile_app/ +[mqtt docs]: /components/mqtt/ +[mysensors docs]: /components/mysensors/ +[namecheapdns docs]: /components/namecheapdns/ +[netatmo docs]: /components/netatmo/ +[netatmo_public docs]: /components/netatmo_public/ +[netgear_lte docs]: /components/netgear_lte/ +[nextbus docs]: /components/nextbus/ +[nmap_tracker docs]: /components/nmap_tracker/ +[notify docs]: /components/notify/ +[oasa_telematics docs]: /components/oasa_telematics/ +[ohmconnect docs]: /components/ohmconnect/ +[onboarding docs]: /components/onboarding/ +[onvif docs]: /components/onvif/ +[opencv docs]: /components/opencv/ +[openuv docs]: /components/openuv/ +[opple docs]: /components/opple/ +[orangepi_gpio docs]: /components/orangepi_gpio/ +[otp docs]: /components/otp/ +[panasonic_bluray docs]: /components/panasonic_bluray/ +[philips_js docs]: /components/philips_js/ +[plex docs]: /components/plex/ +[pollen docs]: /components/pollen/ +[ps4 docs]: /components/ps4/ +[ptvsd docs]: /components/ptvsd/ +[rainmachine docs]: /components/rainmachine/ +[recorder docs]: /components/recorder/ +[rest docs]: /components/rest/ +[sendgrid docs]: /components/sendgrid/ +[serial_pm docs]: /components/serial_pm/ +[sesame docs]: /components/sesame/ +[seventeentrack docs]: /components/seventeentrack/ +[shodan docs]: /components/shodan/ +[simplisafe docs]: /components/simplisafe/ +[slack docs]: /components/slack/ +[snmp docs]: /components/snmp/ +[sonos docs]: /components/sonos/ +[spotcrime docs]: /components/spotcrime/ +[sql docs]: /components/sql/ +[startca docs]: /components/startca/ +[stream docs]: /components/stream/ +[sun docs]: /components/sun/ +[switchbot docs]: /components/switchbot/ +[switcher_kis docs]: /components/switcher_kis/ +[syncthru docs]: /components/syncthru/ +[systemmonitor docs]: /components/systemmonitor/ +[tapsaff docs]: /components/tapsaff/ +[ted5000 docs]: /components/ted5000/ +[telegram_bot docs]: /components/telegram_bot/ +[tellduslive docs]: /components/tellduslive/ +[tensorflow docs]: /components/tensorflow/ +[thethingsnetwork docs]: /components/thethingsnetwork/ +[tplink_lte docs]: /components/tplink_lte/ +[traccar docs]: /components/traccar/ +[trend docs]: /components/trend/ +[ubee docs]: /components/ubee/ +[upc_connect docs]: /components/upc_connect/ +[upnp docs]: /components/upnp/ +[velux docs]: /components/velux/ +[vesync docs]: /components/vesync/ +[vizio docs]: /components/vizio/ +[websocket_api docs]: /components/websocket_api/ +[xiaomi_aqara docs]: /components/xiaomi_aqara/ +[xmpp docs]: /components/xmpp/ +[yeelight docs]: /components/yeelight/ +[yr docs]: /components/yr/ +[zeroconf docs]: /components/zeroconf/ +[zestimate docs]: /components/zestimate/ +[zha docs]: /components/zha/ +[zwave docs]: /components/zwave/ From d78e348574fb2db3c75304476087cc8be4010863 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 16 May 2019 07:09:59 +0200 Subject: [PATCH 24/24] Update release --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 7301761a793..018bcd66b51 100644 --- a/_config.yml +++ b/_config.yml @@ -140,7 +140,7 @@ social: current_major_version: 0 current_minor_version: 93 current_patch_version: 0 -date_released: 2019-05-08 +date_released: 2019-05-16 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it.