Date set for dropping Python 3.4 support
As [announced in October](https://home-assistant.io/blog/2017/10/06/deprecating-python-3.4-support/), we're going to drop Python 3.4 support in 2018. We've now decided that in two releases, 0.65, the minimum Python version that will be supported is bumped to 3.5.3. This won't impact most users. You are already fine if you're using Hass.io, the latest Debian stable (Stretch) or a derivative of that (Raspbian, Ubuntu).
Entity Registry
This release introduces the entity registry. The entity registry allows integrations to reserve entity IDs. This means that we'll automatically grant an entity ID to a device. It's reserved so that no other device will ever get that entity ID. It also means that as a user, you will be able to customize the entity IDs for these devices.
For an integration to leverage the entity registry, it needs to define a unique ID for each of their entities. A unique ID is something that we can uniquely identify the device and that is not configurable. So a serial number and mac address are ok, IP addresses or names are not.
Examples of integrations that have unique IDs defined in this release are Z-Wave, Hue, Nest, LIFX, Sonos, Apple TV.
To update the entity ID that will be assigned to your device, update `<config>/entity_registry.yaml` and restart Home Assistant (reloading on the fly is planned for a future release).
The entity registry will assign an entity ID the first time that a device is seen. This should be the same entity ID as it always was before. If this is not the case, update the registration entity to change it back to the old entity ID.
We're planning a lot of cool stuff around the entity registry. Stay tuned!
New Platforms
- Adds allergy/disease sensor platform from Pollen.com ([bachya] - [11573]) ([sensor.pollen docs]) (new-platform)
- Add Goalfeed platform ([wardcraigj] - [11098]) ([goalfeed docs]) (new-platform)
- Add Melissa (HVAC/climate) component ([kennedyshead] - [11503]) ([melissa docs]) ([sensor.melissa docs]) (new-platform)
- Mediaroom ([dgomes] - [11864]) ([media_player.mediaroom docs]) (new-platform)
- Add Xiaomi Universal IR Remote (Chuangmi IR) ([cnrd] - [11891]) ([remote.xiaomi_miio docs]) (new-platform)
- SQL sensor ([dgomes] - [12142]) ([sensor.sql docs]) (new-platform)
Breaking Changes
- updated sensor name ([philklei] - [12084]) ([sensor.tahoma docs]) (breaking change)
- Originally Canary camera is added per location and only displays an image that was captured due to motion. Now it is per device (each location can have multiple devices) with live stream support. ([snjoetw] - [11949]) ([canary docs]) ([camera.canary docs]) (breaking change)
- Avoid influxdb filling connection pool: The influxdb `retry_queue_limit` configuration variable no longer has any effect and can be removed. ([amelchio] - [12182]) ([influxdb docs]) (breaking change)
- Some spelling mistakes in default entity names have been fixed in ([OttoWinter] - [12041]). This is causing these `entity_id` changes:
- [Seven segments display](https://home-assistant.io/components/image_processing.seven_segments/): `image_processing.seven_segement_ocr_[...]` → `image_processing.seven_segment_ocr_[...]`
- [Rain Bird Switch](https://home-assistant.io/components/switch.rainbird/): `switch.sprinker_[...]` → `switch.sprinkler_[...]`
- [OpenEVSE Sensor](https://home-assistant.io/components/sensor.openevse/): `sensor.ambient_termperature` → `sensor.ambient_temperature`
- [Fido](https://home-assistant.io/components/sensor.fido/): `sensor.[...]_internaltional_remaining` → `sensor.[...]_international remaining`
- From version 0.64, Home Assistant will by default purge recorded state history that is older than 10 days. If you want to keep your recorded data for longer than that, you must configure the number of days to retain:
yaml
recorder:
purge_keep_days: 30
If you want to keep the previous default of never deleting history, use this configuration:
yaml
recorder:
purge_interval: 0
([amelchio] - [11976])
- Fix duplicate entity_ids in System Monitor ([fanaticDavid] - [12124]) ([sensor.systemmonitor docs]) (breaking change)
| Resource | Old Entity ID | New Entity ID |
| :------------------ | :------------------ |:-------------------------|
| disk_use | sensor.disk_used | sensor.disk_use |
| load_15m | sensor.average_load_15m | sensor.load_15m |
| load_1m | sensor.average_load_1m | sensor.load_1m |
| load_5m | sensor.average_load_5m | sensor.load_5m |
| memory_free | sensor.ram_available | sensor.memory_free |
| memory_use | sensor.ram_used | sensor.memory_use |
| network_in | sensor.received | sensor.network_in |
| network_out | sensor.sent | sensor.network_out |
| packets_in | sensor.packets_received | sensor.packets_in |
| packets_out | sensor.packets_sent | sensor.packets_out |
| processor_use | sensor.cpu_used | sensor.processor_use |
| swap_use | sensor.swap_used | sensor.swap_use |
- Developers only: Following EntityComponent methods have been removed: `extract_from_service`, `async_update_group`, `async_reset`, `prepare_reload` ([balloob] - [12237]) (breaking change)
All changes
- Map media_stop to idle state ([akloeckner] - [11819])
- Adds allergy/disease sensor platform from Pollen.com ([bachya] - [11573]) ([sensor.pollen docs]) (new-platform)
- check_config.py: allow colorlog==3.1. ([dotlambda] - [11927])
- Weblink - Allow relative urls in config ([ReneNulschDE] - [11808]) ([weblink docs])
- Panel_Iframe - Allow relative urls in config ([ReneNulschDE] - [11832]) ([panel_iframe docs])
- Python 3.6 invalid escape sequence deprecation fixes ([scop] - [11941])
- tests: Use assertEqual instead of deprecated assertEquals ([scop] - [11943])
- huawei_router: Fix documentation link ([scop] - [11961]) ([device_tracker.huawei_router docs])
- Spelling fixes ([scop] - [11940])
- Upgrade sqlalchemy to 1.2.2 ([fabaff] - [11956])
- Upgrade youtube_dl to 2018.01.21 ([fabaff] - [11955]) ([media_extractor docs])
- Upgrade sphinx-autodoc-typehints to 1.2.4 ([fabaff] - [11954])
- Upgrade coinmarketcap to 4.2.1 ([fabaff] - [11953]) ([sensor.coinmarketcap docs])
- Bump dev to 0.63.0.dev0 ([fabaff] - [11952])
- Update xiaomi_aqara.py ([MGWGIT] - [11969]) ([sensor.xiaomi_aqara docs])
- panasonic_viera: Set device name from discovery info ([scop] - [11990]) ([media_player.panasonic_viera docs])
- Update panasonic_viera to 0.3 ([scop] - [11989]) ([media_player.panasonic_viera docs])
- Fix 11982 - uvc don't handle null as username ([bratanon] - [11984]) ([camera.uvc docs])
- Add Goalfeed platform ([wardcraigj] - [11098]) ([goalfeed docs]) (new-platform)
- Added support for hourly percent change in coinmarketcap component ([kevindgoff] - [11996]) ([sensor.coinmarketcap docs])
- Upgrade coinbase to 2.0.7 ([fabaff] - [11992]) ([coinbase docs]) ([sensor.coinbase docs])
- Upgrade pyota to 2.0.4 ([fabaff] - [11991]) ([iota docs])
- Fixed Canary temperature sensor and remapped air quality value ([snjoetw] - [11355]) ([canary docs]) ([sensor.canary docs])
- Refactor Alexa Smart Home API ([bitglue] - [12016]) ([alexa docs])
- Report states ([bitglue] - [11973]) ([alexa docs])
- alexa: Add media_player InputController support ([philk] - [11946]) ([alexa docs])
- emulated_hue: allow customization within emulated_hue configuration ([jackwilsdon] - [11981]) ([emulated_hue docs])
- Flake8 35 ([scop] - [11972]) ([feedreader docs]) ([spc docs]) ([media_player.bluesound docs]) ([media_player.clementine docs]) ([sensor.fritzbox_callmonitor docs]) ([sensor.qnap docs]) ([sensor.synologydsm docs])
- Typing fixes ([scop] - [12015])
- Fix DoorBird push notifications for installations with an API password ([Klikini] - [12020]) ([doorbird docs])
- Bump upstream lib version. ([Cinntax] - [12021]) ([climate.venstar docs])
- sensor.deutsche_bahn: add only_direct option ([akloeckner] - [11999]) ([sensor.deutsche_bahn docs])
- Fix MQTT cover availability subscription ([OttoWinter] - [12036]) ([cover.mqtt docs])
- Spelling fixes ([OttoWinter] - [12041]) (breaking change)
- Online state for samsungtv is jumping when TV is idle ([kennedyshead] - [11998]) ([media_player.samsungtv docs])
- Upgrade astral to 1.5 ([fabaff] - [12042])
- Refactor alexa smart_home tests ([bitglue] - [12044])
- Handling of payload not for this entity. ([freol35241] - [11836]) ([binary_sensor.mqtt docs])
- Refactor Google Assistant query_device ([philk] - [12022]) ([google_assistant docs])
- Entity registry ([balloob] - [11979]) ([group docs]) ([climate.nest docs])
- Return all attributes that are not None in base lock entity class ([snjoetw] - [12049]) ([lock docs])
- Extract requirements ([balloob] - [12051])
- Prepare for recorder purge to be active by default ([amelchio] - [11976]) (breaking change)
- Bumped up pymochad requirement to 0.2.0 as a fix for 11928 ([aosadchyy] - [12014]) ([mochad docs])
- Publish errors on the event bus ([postlund] - [11964]) ([system_log docs])
- Unique ID for LIFX lights ([amelchio] - [12064]) ([light.lifx docs])
- Deconz use entity registry ([Kane610] - [12067]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([sensor.deconz docs])
- Flake8 bugbear fixes ([scop] - [12072]) ([ios docs]) ([plant docs]) ([rfxtrx docs]) ([zwave docs]) ([climate.heatmiser docs]) ([media_player.plex docs]) ([notify.kodi docs])
- Fix demo platform support ([ciotlosm] - [12070]) ([climate.demo docs])
- fix event channel name ([wardcraigj] - [12077]) ([goalfeed docs])
- fixed timestamp problem in firefox ([escoand] - [12073]) ([weather.openweathermap docs])
- Handle more file closing using context manager ([scop] - [11942]) ([light.greenwave docs]) ([notify.gntp docs]) ([sensor.onewire docs])
- Influx import improvements ([RePeet13] - [11988])
- Set flux default stop time to dusk ([infernix] - [12062]) ([switch.flux docs])
- Add conditions to forecast ([escoand] - [12074]) ([weather.openweathermap docs])
- Squeezebox Fix duplicate server from discovery ([mezz64] - [12063]) ([media_player.squeezebox docs])
- Upgrade keyring to 11.0.0 ([fabaff] - [12082])
- Correct use of middleware async handling. ([pelson] - [12078]) ([http docs])
- updated sensor name ([philklei] - [12084]) ([sensor.tahoma docs]) (breaking change)
- Fix detection of mobile browsers ([c727] - [12075]) ([frontend docs])
- update tahoma api to version 0.0.11 ([philklei] - [12099]) ([tahoma docs])
- added media_stop ([jodur] - [12100]) ([media_player.vlc docs])
- Goalfeed channel ([wardcraigj] - [12086]) ([goalfeed docs])
- Update jinja2 to 2.10 ([arsaboo] - [12118])
- Downgrade Sonarr and Radarr 'Host is not avaliable' errors to warnings ([timmo001] - [12119]) ([sensor.radarr docs]) ([sensor.sonarr docs])
- Fixes away_mode error on startup ([ciotlosm] - [12121]) ([climate.generic_thermostat docs])
- except vol.MultipleInvalid in Broadlink 11795 ([danielhiversen] - [12107]) ([sensor.broadlink docs])
- Adds SUPPORT_TARGET_TEMPERATURE_HIGH and SUPPORT_TARGET_TEMPERATURE_LOW support ([hawk259] - [12110]) ([climate.ecobee docs])
- Dark sky precip accumulation ([nordlead2005] - [12127]) ([sensor.darksky docs])
- fixed wrong check for valid range of 'rgb' values ([PaulAnnekov] - [12132]) ([light.xiaomi_aqara docs])
- OpenALPR Cloud API - transfer image in body of POST request ([ReneNulschDE] - [12112]) ([image_processing.openalpr_cloud docs])
- Add support for "off" function to iTunes ([lexam79] - [12109]) ([media_player.itunes docs])
- Remove asyncio.test_utils to fix tests in Docker/Python 3.7 ([ubnt-marc-khouri] - [12102])
- Add Mercedes me component ([ReneNulschDE] - [11743])
- Spelling fixes ([scop] - [12138]) ([plant docs]) ([switch.pulseaudio_loopback docs])
- Update volumio component ([titilambert] - [12045]) ([media_player.volumio docs])
- Adding information about current TV channel to WebOS media player ([led-spb] - [11339]) ([media_player.webostv docs])
- Fix 8475 device tracker ubus tracks unauthenticated and unassociated devices ([aarnaud] - [12140]) ([device_tracker.ubus docs])
- Fix 11875 Ubus broken since upgrade to 0 57 ([aarnaud] - [12141]) ([device_tracker.ubus docs])
- Update flake8-docstrings to 1.0.3 ([scop] - [12136])
- Tado fixes ([NigelRook] - [11294]) ([tado docs]) ([climate.tado docs])
- Add Melissa (HVAC/climate) component ([kennedyshead] - [11503]) ([melissa docs]) ([sensor.melissa docs]) (new-platform)
- Mediaroom ([dgomes] - [11864]) ([media_player.mediaroom docs]) (new-platform)
- Upgrade mutagen to 1.40.0 ([fabaff] - [12152]) ([tts docs])
- Upgrade TwitterAPI to 2.4.8 ([fabaff] - [12148]) ([notify.twitter docs])
- fix generic_thermostat bug when restore state from HA start up ([crhan] - [12134]) ([climate.generic_thermostat docs])
- Adding xy_color attribute support to deconz lights ([ErnstEeldert] - [12106]) ([light.deconz docs])
- update python-openzwave to 4.1.3 ([perosb] - [12057]) ([zwave docs])
- Panasonic viera new services ([dgomes] - [11963]) ([media_player docs]) ([media_player.panasonic_viera docs])
- [Mediaroom media_player] Follow up on PR 11864 ([dgomes] - [12155]) ([media_player.mediaroom docs])
- Tests for samsungtv ([kennedyshead] - [11933])
- Upgrade influxdb to 5.0.0 ([fabaff] - [12156]) ([influxdb docs])
- add delay_arrival ([akloeckner] - [12169]) ([sensor.deutsche_bahn docs])
- Move TP-Link socket LED state setting to update() ([DanNixon] - [12170]) ([switch.tplink docs])
- Upgrade schiene to 0.21 ([fabaff] - [12176]) ([sensor.deutsche_bahn docs])
- python-miio version bumped. Fixes all xiaomi_miio components. (Closes: 12017, Closes: 11948, Closes: 11200) ([syssi] - [12188]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs])
- Services (small_pr)(fix): Added missing return on data template error ([tschmidty69] - [12184])
- fix ecobee is_aux_heat_on property ([titilambert] - [12186]) ([climate.ecobee docs])
- Upgrade pytouchline to 0.7 ([tbergo] - [12179]) ([climate.touchline docs])
- Canary live stream ([snjoetw] - [11949]) ([canary docs]) ([camera.canary docs]) (breaking change)
- Replace Gitter with Discord ([fabaff] - [12199])
- Upgrade Sphinx to 1.6.7 ([fabaff] - [12200])
- Change attributes in new Mercedes Me component ([ReneNulschDE] - [12147]) ([mercedesme docs]) ([binary_sensor.mercedesme docs]) ([device_tracker.mercedesme docs]) ([sensor.mercedesme docs])
- Binary Sensor Template: Add icon_template and entity_picture_template support ([hawk259] - [12158]) ([binary_sensor.template docs])
- Bump pyeconet version to fix JSONDecodeError ([w1ll1am23] - [12204]) ([climate.econet docs])
- Add support for Alexa.StepSpeaker ([lucasweb78] - [12183]) ([alexa docs])
- Upgrade wakeonlan to 1.0.0 ([Tadly] - [12190]) ([wake_on_lan docs]) ([media_player.panasonic_viera docs]) ([media_player.samsungtv docs]) ([media_player.webostv docs]) ([switch.wake_on_lan docs])
- zha: Update to bellows 0.5.0+zigpy ([rcloran] - [12187]) ([zha docs]) ([binary_sensor.zha docs]) ([light.zha docs]) ([sensor.zha docs]) ([zha.const docs])
- Make waterfurnace recovery more robust ([sdague] - [12202]) ([waterfurnace docs])
- Much nicer icon ([lance36] - [12212]) ([vacuum.xiaomi_miio docs])
- Properly handle thresholds of zero ([DanNixon] - [12175]) ([binary_sensor.threshold docs])
- zha: Add support for XBee radios ([rcloran] - [12205]) ([zha docs]) ([binary_sensor.zha docs])
- Fix clear playlist in Volumio component ([titilambert] - [12173]) ([media_player.volumio docs])
- Add Xiaomi Universal IR Remote (Chuangmi IR) ([cnrd] - [11891]) ([remote.xiaomi_miio docs]) (new-platform)
- Fix Xeoma camera platform to allow different admin/viewer credentials ([jeradM] - [12161]) ([camera.xeoma docs])
- Xiaomi MiIO Light: Brightness mapping improved ([syssi] - [12203]) ([light.xiaomi_miio docs])
- Fixes according to review from MartinHjelmare Thank you. ([kennedyshead] - [12171]) ([climate.melissa docs]) ([sensor.melissa docs])
- Fix logger bug on Windows: path contains '\'. ([fanthos] - [12197]) ([system_log docs])
- Catch concurrent.futures.CancelledError in websocket code. ([pelson] - [12150]) ([websocket_api docs])
- Update pushsafer.py ([appzer] - [11466]) ([notify.pushsafer docs])
- Add wake on lan capability to philips TV ([frog32] - [12065]) ([media_player.philips_js docs])
- Specify the minimum python version in the setup.py. ([pelson] - [12144])
- Return of entity_id in template platforms ([amelchio] - [12234]) ([binary_sensor.template docs]) ([cover.template docs]) ([light.template docs]) ([sensor.template docs]) ([switch.template docs])
- Allow zero purge_interval to disable recorder purge ([amelchio] - [12220])
- Update min js=latest version ([andrey-git] - [12091]) ([frontend docs])
- librouteros version bump ([zabuldon] - [12227]) ([device_tracker.mikrotik docs])
- SQL sensor ([dgomes] - [12142]) ([sensor.sql docs]) (new-platform)
- Fixes for tesla. New sensors. ([zabuldon] - [12225]) ([tesla docs]) ([sensor.tesla docs])
- Entity layer cleanup ([balloob] - [12237]) (breaking change)
- [SMALL PATCH] Sql sensor ([dgomes] - [12242]) ([sensor.sql docs])
- Set tahoma cover update interval to default ([bakedraccoon] - [12232]) ([cover.tahoma docs])
- Avoid influxdb filling connection pool ([amelchio] - [12182]) ([influxdb docs]) (breaking change)
- Force update support for mqtt binary sensor ([mkfink] - [12092]) ([binary_sensor.mqtt docs])
- Added password mode to input_text (obscure content of text box) ([covrig] - [11849]) ([input_text docs]) ([sensor.xiaomi_aqara docs])
- Fix cover service description ([cdce8p] - [12243])
- Add explicit first-time config for new purge_keep_days default ([amelchio] - [12246])
- added more debug logging for sensor.alpha_vantage ([ChristianKuehnel] - [12249]) ([sensor.alpha_vantage docs])
- Add Service Schema to Broadlink Switch ([maddox] - [12253]) ([switch.broadlink docs])
- Update aiohttp 2.3.10 / yarl 1.1.0 ([pvizeli] - [12244])
- Fix source code using Windows newline ([OttoWinter] - [12248])
- miflora - fix for exception handling bug ([ChristianKuehnel] - [12149]) ([sensor.miflora docs])
- Update pyhomematic to 0.1.39 ([danielperna84] - [12265]) ([homematic docs])
- Update owntracks.py ([luca-angemi] - [12260]) ([device_tracker.owntracks docs])
- Fix for iTunes media player not updating artwork ([lexam79] - [12089]) ([media_player.itunes docs])
- Fix duplicate entity_ids in System Monitor ([fanaticDavid] - [12124]) ([sensor.systemmonitor docs]) (breaking change)
- One bug fix and one improvement to the statistics sensor. ([glance-] - [12259]) ([sensor.statistics docs])
- allow wildcards in subscription ([escoand] - [12247]) ([device_tracker.mqtt docs])
- Retry keyset cloud ([balloob] - [12270]) ([cloud docs])
- Update limitlessled requirement to v1.0.9 ([vaceslav] - [12275]) ([light.limitlessled docs])
[11098]: https://github.com/home-assistant/home-assistant/pull/11098
[11294]: https://github.com/home-assistant/home-assistant/pull/11294
[11339]: https://github.com/home-assistant/home-assistant/pull/11339
[11355]: https://github.com/home-assistant/home-assistant/pull/11355
[11466]: https://github.com/home-assistant/home-assistant/pull/11466
[11503]: https://github.com/home-assistant/home-assistant/pull/11503
[11573]: https://github.com/home-assistant/home-assistant/pull/11573
[11743]: https://github.com/home-assistant/home-assistant/pull/11743
[11808]: https://github.com/home-assistant/home-assistant/pull/11808
[11819]: https://github.com/home-assistant/home-assistant/pull/11819
[11832]: https://github.com/home-assistant/home-assistant/pull/11832
[11836]: https://github.com/home-assistant/home-assistant/pull/11836
[11849]: https://github.com/home-assistant/home-assistant/pull/11849
[11864]: https://github.com/home-assistant/home-assistant/pull/11864
[11891]: https://github.com/home-assistant/home-assistant/pull/11891
[11927]: https://github.com/home-assistant/home-assistant/pull/11927
[11933]: https://github.com/home-assistant/home-assistant/pull/11933
[11940]: https://github.com/home-assistant/home-assistant/pull/11940
[11941]: https://github.com/home-assistant/home-assistant/pull/11941
[11942]: https://github.com/home-assistant/home-assistant/pull/11942
[11943]: https://github.com/home-assistant/home-assistant/pull/11943
[11946]: https://github.com/home-assistant/home-assistant/pull/11946
[11949]: https://github.com/home-assistant/home-assistant/pull/11949
[11952]: https://github.com/home-assistant/home-assistant/pull/11952
[11953]: https://github.com/home-assistant/home-assistant/pull/11953
[11954]: https://github.com/home-assistant/home-assistant/pull/11954
[11955]: https://github.com/home-assistant/home-assistant/pull/11955
[11956]: https://github.com/home-assistant/home-assistant/pull/11956
[11961]: https://github.com/home-assistant/home-assistant/pull/11961
[11963]: https://github.com/home-assistant/home-assistant/pull/11963
[11964]: https://github.com/home-assistant/home-assistant/pull/11964
[11969]: https://github.com/home-assistant/home-assistant/pull/11969
[11972]: https://github.com/home-assistant/home-assistant/pull/11972
[11973]: https://github.com/home-assistant/home-assistant/pull/11973
[11976]: https://github.com/home-assistant/home-assistant/pull/11976
[11979]: https://github.com/home-assistant/home-assistant/pull/11979
[11981]: https://github.com/home-assistant/home-assistant/pull/11981
[11984]: https://github.com/home-assistant/home-assistant/pull/11984
[11988]: https://github.com/home-assistant/home-assistant/pull/11988
[11989]: https://github.com/home-assistant/home-assistant/pull/11989
[11990]: https://github.com/home-assistant/home-assistant/pull/11990
[11991]: https://github.com/home-assistant/home-assistant/pull/11991
[11992]: https://github.com/home-assistant/home-assistant/pull/11992
[11996]: https://github.com/home-assistant/home-assistant/pull/11996
[11998]: https://github.com/home-assistant/home-assistant/pull/11998
[11999]: https://github.com/home-assistant/home-assistant/pull/11999
[12014]: https://github.com/home-assistant/home-assistant/pull/12014
[12015]: https://github.com/home-assistant/home-assistant/pull/12015
[12016]: https://github.com/home-assistant/home-assistant/pull/12016
[12020]: https://github.com/home-assistant/home-assistant/pull/12020
[12021]: https://github.com/home-assistant/home-assistant/pull/12021
[12022]: https://github.com/home-assistant/home-assistant/pull/12022
[12036]: https://github.com/home-assistant/home-assistant/pull/12036
[12041]: https://github.com/home-assistant/home-assistant/pull/12041
[12042]: https://github.com/home-assistant/home-assistant/pull/12042
[12044]: https://github.com/home-assistant/home-assistant/pull/12044
[12045]: https://github.com/home-assistant/home-assistant/pull/12045
[12049]: https://github.com/home-assistant/home-assistant/pull/12049
[12051]: https://github.com/home-assistant/home-assistant/pull/12051
[12057]: https://github.com/home-assistant/home-assistant/pull/12057
[12062]: https://github.com/home-assistant/home-assistant/pull/12062
[12063]: https://github.com/home-assistant/home-assistant/pull/12063
[12064]: https://github.com/home-assistant/home-assistant/pull/12064
[12065]: https://github.com/home-assistant/home-assistant/pull/12065
[12067]: https://github.com/home-assistant/home-assistant/pull/12067
[12070]: https://github.com/home-assistant/home-assistant/pull/12070
[12072]: https://github.com/home-assistant/home-assistant/pull/12072
[12073]: https://github.com/home-assistant/home-assistant/pull/12073
[12074]: https://github.com/home-assistant/home-assistant/pull/12074
[12075]: https://github.com/home-assistant/home-assistant/pull/12075
[12077]: https://github.com/home-assistant/home-assistant/pull/12077
[12078]: https://github.com/home-assistant/home-assistant/pull/12078
[12082]: https://github.com/home-assistant/home-assistant/pull/12082
[12084]: https://github.com/home-assistant/home-assistant/pull/12084
[12086]: https://github.com/home-assistant/home-assistant/pull/12086
[12089]: https://github.com/home-assistant/home-assistant/pull/12089
[12091]: https://github.com/home-assistant/home-assistant/pull/12091
[12092]: https://github.com/home-assistant/home-assistant/pull/12092
[12099]: https://github.com/home-assistant/home-assistant/pull/12099
[12100]: https://github.com/home-assistant/home-assistant/pull/12100
[12102]: https://github.com/home-assistant/home-assistant/pull/12102
[12106]: https://github.com/home-assistant/home-assistant/pull/12106
[12107]: https://github.com/home-assistant/home-assistant/pull/12107
[12109]: https://github.com/home-assistant/home-assistant/pull/12109
[12110]: https://github.com/home-assistant/home-assistant/pull/12110
[12112]: https://github.com/home-assistant/home-assistant/pull/12112
[12118]: https://github.com/home-assistant/home-assistant/pull/12118
[12119]: https://github.com/home-assistant/home-assistant/pull/12119
[12121]: https://github.com/home-assistant/home-assistant/pull/12121
[12124]: https://github.com/home-assistant/home-assistant/pull/12124
[12127]: https://github.com/home-assistant/home-assistant/pull/12127
[12132]: https://github.com/home-assistant/home-assistant/pull/12132
[12134]: https://github.com/home-assistant/home-assistant/pull/12134
[12136]: https://github.com/home-assistant/home-assistant/pull/12136
[12138]: https://github.com/home-assistant/home-assistant/pull/12138
[12140]: https://github.com/home-assistant/home-assistant/pull/12140
[12141]: https://github.com/home-assistant/home-assistant/pull/12141
[12142]: https://github.com/home-assistant/home-assistant/pull/12142
[12144]: https://github.com/home-assistant/home-assistant/pull/12144
[12147]: https://github.com/home-assistant/home-assistant/pull/12147
[12148]: https://github.com/home-assistant/home-assistant/pull/12148
[12149]: https://github.com/home-assistant/home-assistant/pull/12149
[12150]: https://github.com/home-assistant/home-assistant/pull/12150
[12152]: https://github.com/home-assistant/home-assistant/pull/12152
[12155]: https://github.com/home-assistant/home-assistant/pull/12155
[12156]: https://github.com/home-assistant/home-assistant/pull/12156
[12158]: https://github.com/home-assistant/home-assistant/pull/12158
[12161]: https://github.com/home-assistant/home-assistant/pull/12161
[12169]: https://github.com/home-assistant/home-assistant/pull/12169
[12170]: https://github.com/home-assistant/home-assistant/pull/12170
[12171]: https://github.com/home-assistant/home-assistant/pull/12171
[12173]: https://github.com/home-assistant/home-assistant/pull/12173
[12175]: https://github.com/home-assistant/home-assistant/pull/12175
[12176]: https://github.com/home-assistant/home-assistant/pull/12176
[12179]: https://github.com/home-assistant/home-assistant/pull/12179
[12182]: https://github.com/home-assistant/home-assistant/pull/12182
[12183]: https://github.com/home-assistant/home-assistant/pull/12183
[12184]: https://github.com/home-assistant/home-assistant/pull/12184
[12186]: https://github.com/home-assistant/home-assistant/pull/12186
[12187]: https://github.com/home-assistant/home-assistant/pull/12187
[12188]: https://github.com/home-assistant/home-assistant/pull/12188
[12190]: https://github.com/home-assistant/home-assistant/pull/12190
[12197]: https://github.com/home-assistant/home-assistant/pull/12197
[12199]: https://github.com/home-assistant/home-assistant/pull/12199
[12200]: https://github.com/home-assistant/home-assistant/pull/12200
[12202]: https://github.com/home-assistant/home-assistant/pull/12202
[12203]: https://github.com/home-assistant/home-assistant/pull/12203
[12204]: https://github.com/home-assistant/home-assistant/pull/12204
[12205]: https://github.com/home-assistant/home-assistant/pull/12205
[12212]: https://github.com/home-assistant/home-assistant/pull/12212
[12220]: https://github.com/home-assistant/home-assistant/pull/12220
[12225]: https://github.com/home-assistant/home-assistant/pull/12225
[12227]: https://github.com/home-assistant/home-assistant/pull/12227
[12232]: https://github.com/home-assistant/home-assistant/pull/12232
[12234]: https://github.com/home-assistant/home-assistant/pull/12234
[12237]: https://github.com/home-assistant/home-assistant/pull/12237
[12242]: https://github.com/home-assistant/home-assistant/pull/12242
[12243]: https://github.com/home-assistant/home-assistant/pull/12243
[12244]: https://github.com/home-assistant/home-assistant/pull/12244
[12246]: https://github.com/home-assistant/home-assistant/pull/12246
[12247]: https://github.com/home-assistant/home-assistant/pull/12247
[12248]: https://github.com/home-assistant/home-assistant/pull/12248
[12249]: https://github.com/home-assistant/home-assistant/pull/12249
[12253]: https://github.com/home-assistant/home-assistant/pull/12253
[12259]: https://github.com/home-assistant/home-assistant/pull/12259
[12260]: https://github.com/home-assistant/home-assistant/pull/12260
[12265]: https://github.com/home-assistant/home-assistant/pull/12265
[12270]: https://github.com/home-assistant/home-assistant/pull/12270
[12275]: https://github.com/home-assistant/home-assistant/pull/12275
[ChristianKuehnel]: https://github.com/ChristianKuehnel
[Cinntax]: https://github.com/Cinntax
[DanNixon]: https://github.com/DanNixon
[ErnstEeldert]: https://github.com/ErnstEeldert
[Kane610]: https://github.com/Kane610
[Klikini]: https://github.com/Klikini
[MGWGIT]: https://github.com/MGWGIT
[NigelRook]: https://github.com/NigelRook
[OttoWinter]: https://github.com/OttoWinter
[PaulAnnekov]: https://github.com/PaulAnnekov
[RePeet13]: https://github.com/RePeet13
[ReneNulschDE]: https://github.com/ReneNulschDE
[Tadly]: https://github.com/Tadly
[aarnaud]: https://github.com/aarnaud
[akloeckner]: https://github.com/akloeckner
[amelchio]: https://github.com/amelchio
[andrey-git]: https://github.com/andrey-git
[aosadchyy]: https://github.com/aosadchyy
[appzer]: https://github.com/appzer
[arsaboo]: https://github.com/arsaboo
[bachya]: https://github.com/bachya
[bakedraccoon]: https://github.com/bakedraccoon
[balloob]: https://github.com/balloob
[bitglue]: https://github.com/bitglue
[bratanon]: https://github.com/bratanon
[c727]: https://github.com/c727
[cdce8p]: https://github.com/cdce8p
[ciotlosm]: https://github.com/ciotlosm
[cnrd]: https://github.com/cnrd
[covrig]: https://github.com/covrig
[crhan]: https://github.com/crhan
[danielhiversen]: https://github.com/danielhiversen
[danielperna84]: https://github.com/danielperna84
[dgomes]: https://github.com/dgomes
[dotlambda]: https://github.com/dotlambda
[escoand]: https://github.com/escoand
[fabaff]: https://github.com/fabaff
[fanaticDavid]: https://github.com/fanaticDavid
[fanthos]: https://github.com/fanthos
[freol35241]: https://github.com/freol35241
[frog32]: https://github.com/frog32
[glance-]: https://github.com/glance-
[hawk259]: https://github.com/hawk259
[infernix]: https://github.com/infernix
[jackwilsdon]: https://github.com/jackwilsdon
[jeradM]: https://github.com/jeradM
[jodur]: https://github.com/jodur
[kennedyshead]: https://github.com/kennedyshead
[kevindgoff]: https://github.com/kevindgoff
[lance36]: https://github.com/lance36
[led-spb]: https://github.com/led-spb
[lexam79]: https://github.com/lexam79
[luca-angemi]: https://github.com/luca-angemi
[lucasweb78]: https://github.com/lucasweb78
[maddox]: https://github.com/maddox
[mezz64]: https://github.com/mezz64
[mkfink]: https://github.com/mkfink
[nordlead2005]: https://github.com/nordlead2005
[pelson]: https://github.com/pelson
[perosb]: https://github.com/perosb
[philk]: https://github.com/philk
[philklei]: https://github.com/philklei
[postlund]: https://github.com/postlund
[pvizeli]: https://github.com/pvizeli
[rcloran]: https://github.com/rcloran
[scop]: https://github.com/scop
[sdague]: https://github.com/sdague
[snjoetw]: https://github.com/snjoetw
[syssi]: https://github.com/syssi
[tbergo]: https://github.com/tbergo
[timmo001]: https://github.com/timmo001
[titilambert]: https://github.com/titilambert
[tschmidty69]: https://github.com/tschmidty69
[ubnt-marc-khouri]: https://github.com/ubnt-marc-khouri
[vaceslav]: https://github.com/vaceslav
[w1ll1am23]: https://github.com/w1ll1am23
[wardcraigj]: https://github.com/wardcraigj
[zabuldon]: https://github.com/zabuldon
[alexa docs]: https://home-assistant.io/components/alexa/
[binary_sensor.deconz docs]: https://home-assistant.io/components/binary_sensor.deconz/
[binary_sensor.mercedesme docs]: https://home-assistant.io/components/binary_sensor.mercedesme/
[binary_sensor.mqtt docs]: https://home-assistant.io/components/binary_sensor.mqtt/
[binary_sensor.template docs]: https://home-assistant.io/components/binary_sensor.template/
[binary_sensor.threshold docs]: https://home-assistant.io/components/binary_sensor.threshold/
[binary_sensor.zha docs]: https://home-assistant.io/components/binary_sensor.zha/
[camera.canary docs]: https://home-assistant.io/components/camera.canary/
[camera.uvc docs]: https://home-assistant.io/components/camera.uvc/
[camera.xeoma docs]: https://home-assistant.io/components/camera.xeoma/
[canary docs]: https://home-assistant.io/components/canary/
[climate.demo docs]: https://home-assistant.io/components/climate.demo/
[climate.ecobee docs]: https://home-assistant.io/components/climate.ecobee/
[climate.econet docs]: https://home-assistant.io/components/climate.econet/
[climate.generic_thermostat docs]: https://home-assistant.io/components/climate.generic_thermostat/
[climate.heatmiser docs]: https://home-assistant.io/components/climate.heatmiser/
[climate.melissa docs]: https://home-assistant.io/components/climate.melissa/
[climate.nest docs]: https://home-assistant.io/components/climate.nest/
[climate.tado docs]: https://home-assistant.io/components/climate.tado/
[climate.touchline docs]: https://home-assistant.io/components/climate.touchline/
[climate.venstar docs]: https://home-assistant.io/components/climate.venstar/
[cloud docs]: https://home-assistant.io/components/cloud/
[coinbase docs]: https://home-assistant.io/components/coinbase/
[cover.mqtt docs]: https://home-assistant.io/components/cover.mqtt/
[cover.tahoma docs]: https://home-assistant.io/components/cover.tahoma/
[cover.template docs]: https://home-assistant.io/components/cover.template/
[deconz docs]: https://home-assistant.io/components/deconz/
[device_tracker.huawei_router docs]: https://home-assistant.io/components/device_tracker.huawei_router/
[device_tracker.mercedesme docs]: https://home-assistant.io/components/device_tracker.mercedesme/
[device_tracker.mikrotik docs]: https://home-assistant.io/components/device_tracker.mikrotik/
[device_tracker.mqtt docs]: https://home-assistant.io/components/device_tracker.mqtt/
[device_tracker.owntracks docs]: https://home-assistant.io/components/device_tracker.owntracks/
[device_tracker.ubus docs]: https://home-assistant.io/components/device_tracker.ubus/
[doorbird docs]: https://home-assistant.io/components/doorbird/
[emulated_hue docs]: https://home-assistant.io/components/emulated_hue/
[fan.xiaomi_miio docs]: https://home-assistant.io/components/fan.xiaomi_miio/
[feedreader docs]: https://home-assistant.io/components/feedreader/
[frontend docs]: https://home-assistant.io/components/frontend/
[goalfeed docs]: https://home-assistant.io/components/goalfeed/
[google_assistant docs]: https://home-assistant.io/components/google_assistant/
[group docs]: https://home-assistant.io/components/group/
[homematic docs]: https://home-assistant.io/components/homematic/
[http docs]: https://home-assistant.io/components/http/
[image_processing.openalpr_cloud docs]: https://home-assistant.io/components/image_processing.openalpr_cloud/
[influxdb docs]: https://home-assistant.io/components/influxdb/
[input_text docs]: https://home-assistant.io/components/input_text/
[ios docs]: https://home-assistant.io/components/ios/
[iota docs]: https://home-assistant.io/components/iota/
[light.deconz docs]: https://home-assistant.io/components/light.deconz/
[light.greenwave docs]: https://home-assistant.io/components/light.greenwave/
[light.lifx docs]: https://home-assistant.io/components/light.lifx/
[light.limitlessled docs]: https://home-assistant.io/components/light.limitlessled/
[light.template docs]: https://home-assistant.io/components/light.template/
[light.xiaomi_aqara docs]: https://home-assistant.io/components/light.xiaomi_aqara/
[light.xiaomi_miio docs]: https://home-assistant.io/components/light.xiaomi_miio/
[light.zha docs]: https://home-assistant.io/components/light.zha/
[lock docs]: https://home-assistant.io/components/lock/
[media_extractor docs]: https://home-assistant.io/components/media_extractor/
[media_player docs]: https://home-assistant.io/components/media_player/
[media_player.bluesound docs]: https://home-assistant.io/components/media_player.bluesound/
[media_player.clementine docs]: https://home-assistant.io/components/media_player.clementine/
[media_player.itunes docs]: https://home-assistant.io/components/media_player.itunes/
[media_player.mediaroom docs]: https://home-assistant.io/components/media_player.mediaroom/
[media_player.panasonic_viera docs]: https://home-assistant.io/components/media_player.panasonic_viera/
[media_player.philips_js docs]: https://home-assistant.io/components/media_player.philips_js/
[media_player.plex docs]: https://home-assistant.io/components/media_player.plex/
[media_player.samsungtv docs]: https://home-assistant.io/components/media_player.samsungtv/
[media_player.squeezebox docs]: https://home-assistant.io/components/media_player.squeezebox/
[media_player.vlc docs]: https://home-assistant.io/components/media_player.vlc/
[media_player.volumio docs]: https://home-assistant.io/components/media_player.volumio/
[media_player.webostv docs]: https://home-assistant.io/components/media_player.webostv/
[melissa docs]: https://home-assistant.io/components/melissa/
[mercedesme docs]: https://home-assistant.io/components/mercedesme/
[mochad docs]: https://home-assistant.io/components/mochad/
[notify.gntp docs]: https://home-assistant.io/components/notify.gntp/
[notify.kodi docs]: https://home-assistant.io/components/notify.kodi/
[notify.pushsafer docs]: https://home-assistant.io/components/notify.pushsafer/
[notify.twitter docs]: https://home-assistant.io/components/notify.twitter/
[panel_iframe docs]: https://home-assistant.io/components/panel_iframe/
[plant docs]: https://home-assistant.io/components/plant/
[remote.xiaomi_miio docs]: https://home-assistant.io/components/remote.xiaomi_miio/
[rfxtrx docs]: https://home-assistant.io/components/rfxtrx/
[sensor.alpha_vantage docs]: https://home-assistant.io/components/sensor.alpha_vantage/
[sensor.broadlink docs]: https://home-assistant.io/components/sensor.broadlink/
[sensor.canary docs]: https://home-assistant.io/components/sensor.canary/
[sensor.coinbase docs]: https://home-assistant.io/components/sensor.coinbase/
[sensor.coinmarketcap docs]: https://home-assistant.io/components/sensor.coinmarketcap/
[sensor.darksky docs]: https://home-assistant.io/components/sensor.darksky/
[sensor.deconz docs]: https://home-assistant.io/components/sensor.deconz/
[sensor.deutsche_bahn docs]: https://home-assistant.io/components/sensor.deutsche_bahn/
[sensor.fritzbox_callmonitor docs]: https://home-assistant.io/components/sensor.fritzbox_callmonitor/
[sensor.melissa docs]: https://home-assistant.io/components/sensor.melissa/
[sensor.mercedesme docs]: https://home-assistant.io/components/sensor.mercedesme/
[sensor.miflora docs]: https://home-assistant.io/components/sensor.miflora/
[sensor.onewire docs]: https://home-assistant.io/components/sensor.onewire/
[sensor.pollen docs]: https://home-assistant.io/components/sensor.pollen/
[sensor.qnap docs]: https://home-assistant.io/components/sensor.qnap/
[sensor.radarr docs]: https://home-assistant.io/components/sensor.radarr/
[sensor.sonarr docs]: https://home-assistant.io/components/sensor.sonarr/
[sensor.sql docs]: https://home-assistant.io/components/sensor.sql/
[sensor.statistics docs]: https://home-assistant.io/components/sensor.statistics/
[sensor.synologydsm docs]: https://home-assistant.io/components/sensor.synologydsm/
[sensor.systemmonitor docs]: https://home-assistant.io/components/sensor.systemmonitor/
[sensor.tahoma docs]: https://home-assistant.io/components/sensor.tahoma/
[sensor.template docs]: https://home-assistant.io/components/sensor.template/
[sensor.tesla docs]: https://home-assistant.io/components/sensor.tesla/
[sensor.xiaomi_aqara docs]: https://home-assistant.io/components/sensor.xiaomi_aqara/
[sensor.zha docs]: https://home-assistant.io/components/sensor.zha/
[spc docs]: https://home-assistant.io/components/spc/
[switch.broadlink docs]: https://home-assistant.io/components/switch.broadlink/
[switch.flux docs]: https://home-assistant.io/components/switch.flux/
[switch.pulseaudio_loopback docs]: https://home-assistant.io/components/switch.pulseaudio_loopback/
[switch.template docs]: https://home-assistant.io/components/switch.template/
[switch.tplink docs]: https://home-assistant.io/components/switch.tplink/
[switch.wake_on_lan docs]: https://home-assistant.io/components/switch.wake_on_lan/
[switch.xiaomi_miio docs]: https://home-assistant.io/components/switch.xiaomi_miio/
[system_log docs]: https://home-assistant.io/components/system_log/
[tado docs]: https://home-assistant.io/components/tado/
[tahoma docs]: https://home-assistant.io/components/tahoma/
[tesla docs]: https://home-assistant.io/components/tesla/
[tts docs]: https://home-assistant.io/components/tts/
[vacuum.xiaomi_miio docs]: https://home-assistant.io/components/vacuum.xiaomi_miio/
[wake_on_lan docs]: https://home-assistant.io/components/wake_on_lan/
[waterfurnace docs]: https://home-assistant.io/components/waterfurnace/
[weather.openweathermap docs]: https://home-assistant.io/components/weather.openweathermap/
[weblink docs]: https://home-assistant.io/components/weblink/
[websocket_api docs]: https://home-assistant.io/components/websocket_api/
[zha docs]: https://home-assistant.io/components/zha/
[zha.const docs]: https://home-assistant.io/components/zha.const/
[zwave docs]: https://home-assistant.io/components/zwave/