diff --git a/.vscode/cSpell.json b/.vscode/cSpell.json index 5f2a8e2f8c6..6cfe3e27ef3 100644 --- a/.vscode/cSpell.json +++ b/.vscode/cSpell.json @@ -4,6 +4,7 @@ "version": "0.2", "language": "en", "words": [ + "Accu", "aeotec", "Alexa", "arest", @@ -16,6 +17,7 @@ "BTLE", "CEST", "Chromecast", + "codeowners", "deCONZ", "Denon", "DSMR", @@ -44,9 +46,11 @@ "HomeKit", "Homematic", "HVAC", + "Hygro", "IBAN", "icloud", "IFTTT", + "Jeelink", "kardon", "laundrify", "Lutron", @@ -54,6 +58,7 @@ "Meteobridge", "Modbus", "Mosquitto", + "Multiday", "Nabu Casa", "nginx", "Nijhof", @@ -65,6 +70,7 @@ "OwnTracks", "Paulus", "PECO", + "POOLV", "Powerwall", "Pushbullet", "Schoutsen", @@ -80,6 +86,9 @@ "waqi", "WLED", "worldclock", + "WRTHV", + "WSDTH", + "WTHV", "Xiaomi", "Zigbee" ], diff --git a/CODEOWNERS b/CODEOWNERS index 14311626598..5d7872e0d3f 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -37,6 +37,7 @@ source/_integrations/ambient_station.markdown @bachya source/_integrations/amcrest.markdown @flacjacket source/_integrations/amp_motorization.markdown @starkillerOG source/_integrations/analytics.markdown @home-assistant/core @ludeeus +source/_integrations/android_ip_webcam.markdown @engrbm87 source/_integrations/androidtv.markdown @JeffLIrion @ollo69 source/_integrations/anthemav.markdown @hyralex source/_integrations/apache_kafka.markdown @bachya @@ -53,6 +54,7 @@ source/_integrations/atag.markdown @MatsNL source/_integrations/aten_pe.markdown @mtdcr source/_integrations/atome.markdown @baqs source/_integrations/august.markdown @bdraco +source/_integrations/august_ble.markdown @bdraco source/_integrations/aurora.markdown @djtimca source/_integrations/aurora_abb_powerone.markdown @davet2001 source/_integrations/aussie_broadband.markdown @nickw444 @Bre77 @@ -87,6 +89,7 @@ source/_integrations/brother.markdown @bieniu source/_integrations/brunt.markdown @eavanvalkenburg source/_integrations/bsblan.markdown @liudger source/_integrations/bt_smarthub.markdown @jxwolstenholme +source/_integrations/bthome.markdown @Ernst79 source/_integrations/buienradar.markdown @mjj4791 @ties @Robbie1221 source/_integrations/button.markdown @home-assistant/core source/_integrations/calendar.markdown @home-assistant/core @@ -151,7 +154,8 @@ source/_integrations/dwd_weather_warnings.markdown @runningman84 @stephan192 @Hu source/_integrations/dynalite.markdown @ziv1234 source/_integrations/ecobee.markdown @marthoc source/_integrations/econet.markdown @vangorra @w1ll1am23 -source/_integrations/ecovacs.markdown @OverloadUT +source/_integrations/ecovacs.markdown @OverloadUT @mib1185 +source/_integrations/ecowitt.markdown @pvizeli source/_integrations/edl21.markdown @mtdcr source/_integrations/efergy.markdown @tkdrob source/_integrations/egardia.markdown @jeroenterheerdt @@ -176,6 +180,7 @@ source/_integrations/ephember.markdown @ttroy50 source/_integrations/epson.markdown @pszafer source/_integrations/epsonworkforce.markdown @ThaStealth source/_integrations/eq3btsmart.markdown @rytilahti +source/_integrations/escea.markdown @lazdavila source/_integrations/esphome.markdown @OttoWinter @jesserockz source/_integrations/evil_genius_labs.markdown @balloob source/_integrations/evohome.markdown @zxdavb @@ -195,7 +200,7 @@ source/_integrations/flexom.markdown @imicknl @vlebourl @tetienne source/_integrations/flick_electric.markdown @ZephireNZ source/_integrations/flipr.markdown @cnico source/_integrations/flo.markdown @dmulcahey -source/_integrations/flume.markdown @ChrisMandich @bdraco +source/_integrations/flume.markdown @ChrisMandich @bdraco @jeeftor source/_integrations/flunearyou.markdown @bachya source/_integrations/flux_led.markdown @icemanch @bdraco source/_integrations/forecast_solar.markdown @klaasnicolaas @frenck @@ -210,6 +215,7 @@ source/_integrations/fritzbox_callmonitor.markdown @cdce8p source/_integrations/fronius.markdown @nielstron @farmio source/_integrations/frontend.markdown @home-assistant/frontend source/_integrations/frontier_silicon.markdown @wlcrs +source/_integrations/fully_kiosk.markdown @cgarwood source/_integrations/garages_amsterdam.markdown @klaasnicolaas source/_integrations/gaviota.markdown @starkillerOG source/_integrations/gdacs.markdown @exxamalte @@ -242,6 +248,7 @@ source/_integrations/guardian.markdown @bachya source/_integrations/habitica.markdown @ASMfreaK @leikoilja source/_integrations/harmony.markdown @ehendrix23 @bramkragten @bdraco @mkeesey @Aohzan source/_integrations/hassio.markdown @home-assistant/supervisor +source/_integrations/hdmi_cec.markdown @inytar source/_integrations/heatmiser.markdown @andylockran source/_integrations/heos.markdown @andrewsayre source/_integrations/here_travel_time.markdown @eifinger @@ -305,6 +312,7 @@ source/_integrations/izone.markdown @Swamp-Ig source/_integrations/jellyfin.markdown @j-stienstra source/_integrations/jewish_calendar.markdown @tsvi source/_integrations/juicenet.markdown @jesserockz +source/_integrations/justnimbus.markdown @kvanzuijlen source/_integrations/kaiterra.markdown @Michsior14 source/_integrations/kaleidescape.markdown @SteveEasley source/_integrations/keba.markdown @dannerph @@ -318,10 +326,13 @@ source/_integrations/konnected.markdown @heythisisnate source/_integrations/kostal_plenticore.markdown @stegm source/_integrations/kraken.markdown @eifinger source/_integrations/kulersky.markdown @emlove +source/_integrations/lacrosse_view.markdown @IceBotYT source/_integrations/lametric.markdown @robbiet480 @frenck +source/_integrations/landisgyr_heat_meter.markdown @vpathuis source/_integrations/launch_library.markdown @ludeeus @DurgNomis-drol source/_integrations/laundrify.markdown @xLarry source/_integrations/lcn.markdown @alengwenus +source/_integrations/led_ble.markdown @bdraco source/_integrations/leviton_z_wave.markdown @home-assistant/z-wave source/_integrations/lg_netcast.markdown @Drafteed source/_integrations/life360.markdown @pnbruckner @@ -329,7 +340,7 @@ source/_integrations/lifx.markdown @bdraco @Djelibeybi source/_integrations/light.markdown @home-assistant/core source/_integrations/linux_battery.markdown @fabaff source/_integrations/litejet.markdown @joncar -source/_integrations/litterrobot.markdown @natekspencer +source/_integrations/litterrobot.markdown @natekspencer @tkdrob source/_integrations/local_ip.markdown @issacg source/_integrations/lock.markdown @home-assistant/core source/_integrations/logbook.markdown @home-assistant/core @@ -340,7 +351,7 @@ source/_integrations/luci.markdown @mzdrale source/_integrations/luftdaten.markdown @fabaff @frenck source/_integrations/lupusec.markdown @majuss source/_integrations/lutron.markdown @JonGilmore -source/_integrations/lutron_caseta.markdown @swails @bdraco +source/_integrations/lutron_caseta.markdown @swails @bdraco @danaues source/_integrations/luxaflex.markdown @bdraco @kingy444 @trullock source/_integrations/lyric.markdown @timmo001 source/_integrations/marantz.markdown @ol-iver @starkillerOG @@ -354,6 +365,7 @@ source/_integrations/media_source.markdown @hunterjm source/_integrations/mediaroom.markdown @dgomes source/_integrations/melcloud.markdown @vilppuvuorinen source/_integrations/melissa.markdown @kennedyshead +source/_integrations/melnor.markdown @vanstinator source/_integrations/met.markdown @danielhiversen @thimic source/_integrations/met_eireann.markdown @DylanGore source/_integrations/meteo_france.markdown @hacf-fr @oncleben31 @Quentame @@ -414,6 +426,7 @@ source/_integrations/nuki.markdown @pschmitt @pvizeli @pree source/_integrations/numato.markdown @clssn source/_integrations/number.markdown @home-assistant/core @Shulyaka source/_integrations/nut.markdown @bdraco @ollo69 +source/_integrations/nutrichef.markdown @bdraco source/_integrations/nws.markdown @MatthewFlamm source/_integrations/nzbget.markdown @chriscla source/_integrations/obihai.markdown @dshokouhi @@ -428,6 +441,7 @@ source/_integrations/onewire.markdown @garbled1 @epenet source/_integrations/onvif.markdown @hunterjm source/_integrations/open_meteo.markdown @frenck source/_integrations/openerz.markdown @misialq +source/_integrations/openexchangerates.markdown @MartinHjelmare source/_integrations/opengarage.markdown @danielhiversen source/_integrations/openhome.markdown @bazwilliams source/_integrations/opentherm_gw.markdown @mvn23 @@ -458,12 +472,15 @@ source/_integrations/progettihwsw.markdown @ardaseremet source/_integrations/prometheus.markdown @knyar source/_integrations/prosegur.markdown @dgomes source/_integrations/proxmoxve.markdown @jhollowe @Corbeno +source/_integrations/prusalink.markdown @balloob source/_integrations/ps4.markdown @ktnrg45 source/_integrations/pure_energie.markdown @klaasnicolaas source/_integrations/push.markdown @dgomes +source/_integrations/pushover.markdown @engrbm87 source/_integrations/pvoutput.markdown @frenck source/_integrations/pvpc_hourly_pricing.markdown @azogue source/_integrations/qbittorrent.markdown @geoffreylagaisse +source/_integrations/qingping.markdown @bdraco source/_integrations/qld_bushfire.markdown @exxamalte source/_integrations/qnap_qsw.markdown @Noltari source/_integrations/quantum_gateway.markdown @cisasteelersfan @@ -507,6 +524,7 @@ source/_integrations/safe_mode.markdown @home-assistant/core source/_integrations/saj.markdown @fredericvl source/_integrations/samsungtv.markdown @chemelli74 @epenet source/_integrations/scene.markdown @home-assistant/core +source/_integrations/schedule.markdown @home-assistant/core source/_integrations/schluter.markdown @prairieapps source/_integrations/scrape.markdown @fabaff source/_integrations/screenlogic.markdown @dieselrabbit @bdraco @@ -518,6 +536,8 @@ source/_integrations/sense.markdown @kbickar source/_integrations/senseme.markdown @mikelawrence @bdraco source/_integrations/sensibo.markdown @andrey-git @gjohansson-ST source/_integrations/sensor.markdown @home-assistant/core +source/_integrations/sensorblue.markdown @bdraco +source/_integrations/sensorpro.markdown @bdraco source/_integrations/sensorpush.markdown @bdraco source/_integrations/sentry.markdown @dcramer @frenck source/_integrations/senz.markdown @milanmeu @@ -586,7 +606,7 @@ source/_integrations/swiss_hydrological_data.markdown @fabaff source/_integrations/swiss_public_transport.markdown @fabaff source/_integrations/switch.markdown @home-assistant/core source/_integrations/switch_as_x.markdown @home-assistant/core -source/_integrations/switchbot.markdown @bdraco @danielhiversen @RenierM26 @murtas +source/_integrations/switchbot.markdown @bdraco @danielhiversen @RenierM26 @murtas @Eloston source/_integrations/switcher_kis.markdown @tomerfi @thecode source/_integrations/switchmate.markdown @danielhiversen @qiz-li source/_integrations/syncthing.markdown @zhulik @@ -605,6 +625,9 @@ source/_integrations/tellduslive.markdown @fredrike source/_integrations/template.markdown @PhracturedBlue @tetienne @home-assistant/core source/_integrations/tesla_wall_connector.markdown @einarhauks source/_integrations/tfiac.markdown @fredrike @mellado +source/_integrations/thermobeacon.markdown @bdraco +source/_integrations/thermoplus.markdown @bdraco +source/_integrations/thermopro.markdown @bdraco source/_integrations/thethingsnetwork.markdown @fabaff source/_integrations/threshold.markdown @fabaff source/_integrations/tibber.markdown @danielhiversen @@ -656,7 +679,7 @@ source/_integrations/vivotek.markdown @HarlemSquirrel source/_integrations/vizio.markdown @raman325 source/_integrations/vlc_telnet.markdown @rodripf @MartinHjelmare source/_integrations/volumio.markdown @OnFreund -source/_integrations/volvooncall.markdown @molobrakos @decompil3d +source/_integrations/volvooncall.markdown @molobrakos source/_integrations/vulcan.markdown @Antoni-Czaplicki source/_integrations/wake_on_lan.markdown @ntilley905 source/_integrations/wallbox.markdown @hesselonline @@ -690,6 +713,7 @@ source/_integrations/xiaomi_miio.markdown @rytilahti @syssi @starkillerOG @bieni source/_integrations/xiaomi_tv.markdown @simse source/_integrations/xmpp.markdown @fabaff @flowolf source/_integrations/yale_smart_alarm.markdown @gjohansson-ST +source/_integrations/yalexs_ble.markdown @bdraco source/_integrations/yamaha_musiccast.markdown @vigonotion @micha91 source/_integrations/yandex_transport.markdown @rishatik92 @devbis source/_integrations/yeelight.markdown @zewelor @shenxn @starkillerOG @alexyao2015 diff --git a/_config.yml b/_config.yml index beb9a9b19a2..4fe68c6a2e4 100644 --- a/_config.yml +++ b/_config.yml @@ -106,9 +106,9 @@ social: # Home Assistant release details current_major_version: 2022 -current_minor_version: 8 -current_patch_version: 7 -date_released: 2022-08-25 +current_minor_version: 9 +current_patch_version: 0 +date_released: 2022-09-07 # 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/_docs/blueprint/selectors.markdown b/source/_docs/blueprint/selectors.markdown index 25147d1f704..7d19ceda7da 100644 --- a/source/_docs/blueprint/selectors.markdown +++ b/source/_docs/blueprint/selectors.markdown @@ -21,6 +21,7 @@ The following selectors are currently available: - [Attribute selector](#attribute-selector) - [Boolean selector](#boolean-selector) - [Color temperature selector](#color-temperature-selector) +- [Config entry selector](#config-entry-selector) - [Date selector](#date-selector) - [Date & time selector](#date--time-selector) - [Device selector](#device-selector) @@ -33,6 +34,7 @@ The following selectors are currently available: - [Object selector](#object-selector) - [RGB color selector](#rgb-color-selector) - [Select selector](#select-selector) +- [State selector](#state-selector) - [Target selector](#target-selector) - [Template selector](#template-selector) - [Text selector](#text-selector) @@ -279,6 +281,27 @@ max_mireds: The output of this selector is the number of mired selected, for example, `243`. +## Config entry selector + +The config entry selector allows the user to select an integration +configuration entry. The selector returns the entry ID of the selected +integration configuration entry. + +![Screenshot of the Configuration entry selector](/images/blueprints/selector-config-entry.png) + +```yaml +config_entry: +``` + +{% configuration config_entry %} +integration: + description: Limits the list of selectable configuration entries to a single integration domain. + type: string + required: false +{% endconfiguration %} + +The output of this selector is the entry ID of the config entry, for example, `6b68b250388cbe0d620c92dd3acc93ec`. + ## Date selector The date selector shows a date input that allows the user to specify a date. @@ -820,6 +843,25 @@ When `multiple` is `true`, the output of this selector is the list of selected option values. In this case, if `Green` was selected, in the first example it would return ["Green"] and in the last example it returns ["g"]. +## State selector + +The state selector shows a list of states for a provided entity of which +one can be selected. + +![Screenshot of an state selector](/images/blueprints/selector-state.png) + +{% configuration state %} +entity_id: + description: The entity ID of which an state can be selected from. + type: string + required: true +{% endconfiguration %} + +The output of this selector is the select state (not the translated or +prettified name shown in the frontend). + +For example: `heat_cool`. + ## Target selector The target selector is a rather special selector, allowing the user to select diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 198fc626dd8..77d92cf3504 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -857,7 +857,7 @@ With given payload: Template {% raw %}```{{ value_json.temperature | round(1) }}```{% endraw %} renders to `21.9`. -Additional the MQTT entity attributes `entity_id` and `name` can be used as variables in the template. +Additional the MQTT entity attributes `entity_id`, `name` and `this` can be used as variables in the template. The `this` attribute refers to the [entity state](/docs/configuration/state_object) of the MQTT item. @@ -877,7 +877,7 @@ With given value `21.9` template {% raw %}```{"temperature": {{ value }} }```{% } ``` -Additional the MQTT entity attributes `entity_id` and `name` can be used as variables in the template. +Additional the MQTT entity attributes `entity_id`, `name` and `this` can be used as variables in the template. The `this` attribute refers to the [entity state](/docs/configuration/state_object) of the MQTT item. diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index ec336658654..09892697175 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -308,6 +308,7 @@ Supported abbreviations for device registry configuration: 'name': 'name', 'mf': 'manufacturer', 'mdl': 'model', + 'hw': 'hw_version', 'sw': 'sw_version', 'sa': 'suggested_area', ``` diff --git a/source/_integrations/advantage_air.markdown b/source/_integrations/advantage_air.markdown index 1d9612a2c6e..fac19b526b7 100644 --- a/source/_integrations/advantage_air.markdown +++ b/source/_integrations/advantage_air.markdown @@ -3,6 +3,7 @@ title: Advantage Air description: Instructions on how to integrate Advantage Air A/C controller into Home Assistant. ha_category: - Climate + - Updates ha_release: 0.117 ha_iot_class: Local Polling ha_config_flow: true @@ -15,9 +16,11 @@ ha_platforms: - climate - cover - diagnostics + - light - select - sensor - switch + - update ha_integration_type: integration --- @@ -60,6 +63,14 @@ The `advantage_air` switch platform will create a switch entity to toggle fresh The `advantage_air` select platform allows you to change the zone used for the "MyZone" feature. +### Update + +The `advantage_air` update platform shows if the controller app requires an update. + +### Light + +The `advantage_air` light platform will create a light entity for each light in MyLights tab of the MyPlace app. + ## Services ### Service `advantage_air.set_time_to` @@ -70,11 +81,3 @@ Set the On/Off Timer using the relevant sensor entity. | ---------------------- | -------- | ----------- | | `entity_id` | yes | `sensor.[name]_time_to_on` or `sensor.[name]_time_to_off` | `minutes` | no | Number of minutes between `0` and `720`. - -### Service `advantage_air.set_myzone` - -Change the MyZone setting to the provided zone climate entity. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | yes | `climate.[zone name]` diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown index 3194873d5c5..0e635ab0c7f 100644 --- a/source/_integrations/alarm_control_panel.mqtt.markdown +++ b/source/_integrations/alarm_control_panel.mqtt.markdown @@ -135,6 +135,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: "A list of IDs that uniquely identify the device. For example a serial number." required: false diff --git a/source/_integrations/android_ip_webcam.markdown b/source/_integrations/android_ip_webcam.markdown index 2e5b2d16fcb..92c6473c18e 100644 --- a/source/_integrations/android_ip_webcam.markdown +++ b/source/_integrations/android_ip_webcam.markdown @@ -9,6 +9,7 @@ ha_category: - Switch ha_release: '0.40' ha_iot_class: Local Polling +ha_config_flow: true ha_domain: android_ip_webcam ha_platforms: - binary_sensor @@ -16,9 +17,11 @@ ha_platforms: - sensor - switch ha_integration_type: integration +ha_codeowners: + - '@engrbm87' --- -The `android_ip_webcam` integration connects with Android IP Webcam to turn any Android phone or tablet into a network camera with multiple viewing options. +The Android IP Webcam integration connects with Android IP Webcam to turn any Android phone or tablet into a network camera with multiple viewing options. The integration is setup as an MJPEG camera with all settings as switches inside Home Assistant. You can also integrate the sensors exposed by the app. If you have multiple phones, you can use all options inside a list. @@ -33,177 +36,10 @@ There is currently support for the following device types within Home Assistant: Download [Android IP Webcam app](https://play.google.com/store/apps/details?id=com.pas.webcam) and launch the app. When you press 'Start Server', it will start streaming video from your phone and the IP address of the device will be shown on screen. -## Configuration - -To set up the component, add the following information to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -android_ip_webcam: - - host: 192.168.1.10 -``` - -{% configuration %} -host: - description: The IP address of the phone on the network. - required: true - type: string -port: - description: The port the IP Webcam listens on. - required: false - default: 8080 - type: integer -name: - description: Override the name of the phone. - required: false - default: IP Webcam - type: string -username: - description: The username to access the phone. If username is specified then password must be also. - required: inclusive - type: string -password: - description: The password to access the phone. If password is specified then username must be also. - required: inclusive - type: string -scan_interval: - description: The update interval to use (in seconds). - required: false - default: 10 - type: integer -sensors: - description: List of sensor entities to be created by this component (if supported by the phone and app). - required: false - type: list - keys: - audio_connections: - description: The audio connections - battery_level: - description: The battery level - battery_temp: - description: The battery temperature - battery_voltage: - description: The battery voltage - light: - description: The light level - motion: - description: Analog (not binary) amount of motion detected - pressure: - description: The current pressure - proximity: - description: The proximity - sound: - description: The sound level - video_connections: - description: The video connections -switches: - description: List of switch entities to be created by this component. - required: false - type: list - keys: - exposure_lock: - description: Control the exposure lock - ffc: - description: Control the front-facing camera - focus: - description: Control the focus - gps_active: - description: Control the GPS - motion_detect: - description: Control the motion detector - night_vision: - description: Control the night vision - overlay: - description: Control the overlay - torch: - description: Control the torch - whitebalance_lock: - description: Control the white balance lock - video_recording: - description: Control the video recording -motion_sensor: - description: Create a binary_sensor._motion_active entity. Note that `auto_discovery` may also create this sensor. - required: false - type: boolean - default: false -{% endconfiguration %} +{% include integrations/config_flow.md %}
You need to enable logging in the Android app (`Data logging` > `Enable data logging`) if you wish to see the sensor states in Home Assistant. The sensor states stay as `unknown`, until this is enabled.
- -## Full example - -```yaml -# Example configuration.yaml entry -android_ip_webcam: - - host: 192.168.1.202 - port: 8000 - sensors: - - audio_connections - - battery_level - - battery_temp - - battery_voltage - - light - - motion - - pressure - - proximity - - sound - - video_connections - switches: - - exposure_lock - - ffc - - focus - - gps_active - - motion_detect - - night_vision - - overlay - - torch - - whitebalance_lock - - video_recording - - host: 192.168.1.203 - port: 8000 - sensors: - - light - switches: - - torch -``` - -## Alternate Configuration Method - -The configuration described above will cause the `android_ip_webcam` binary sensor platform to automatically create and configure the devices. Alternatively you can omit the `android_ip_webcam` component from your `configuration.yaml` file and add individual devices instead. - -### Binary Sensor - -You can setup the binary motion sensor with the following in your `configuration.yaml` file: - -{% raw %} - -```yaml -# Example configuration.yaml entry -binary_sensor: - - platform: rest - name: Kitchen Motion - device_class: motion - resource: http://IP_ADDRESS:PORT/sensors.json?sense=motion_active - value_template: "{{ value_json.motion_active.data[0][1][0] | round(0) }}" -``` - -{% endraw %} - -### Camera - -To enable only the camera in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -camera: - - platform: mjpeg - mjpeg_url: http://IP_ADDRESS:PORT/video -``` - -### Other Sensors - -You can setup your own sensors by examining the JSON file from the webcam server: `http://IP:8080/sensors.json` diff --git a/source/_integrations/anthemav.markdown b/source/_integrations/anthemav.markdown index e6ced8fcc86..91fdd467423 100644 --- a/source/_integrations/anthemav.markdown +++ b/source/_integrations/anthemav.markdown @@ -18,9 +18,21 @@ Both [Anthem]'s current and last generation of A/V Receivers and Processors supp ## Supported Models -* [MRX 520](https://www.anthemav.com/products-current/series=mrx-series-gen3/model=mrx-520/page=overview), [MRX 720](https://www.anthemav.com/products-current/collection=performance/model=mrx-720/page=overview), [MRX 1120](https://www.anthemav.com/products-current/collection=performance/model=mrx-1120/page=overview), and [AVM 60](https://www.anthemav.com/products-current/model=avm-60/page=overview) +### A/V Receiver + +* [MRX 540](https://www.anthemav.com/products-current/type=av-receiver/model=mrx-540/page=overview), [MRX 740](https://www.anthemav.com/products-current/type=av-receiver/model=mrx-740/page=overview), [MRX 1140](https://www.anthemav.com/products-current/type=av-receiver/model=mrx-1140/page=overview) +* [MRX 520](https://www.anthemav.com/products-current/series=mrx-series-gen3/model=mrx-520/page=overview), [MRX 720](https://www.anthemav.com/products-current/collection=performance/model=mrx-720/page=overview), [MRX 1120](https://www.anthemav.com/products-current/collection=performance/model=mrx-1120/page=overview) * [MRX 310](https://www.anthemav.com/products-archived/type=av-receiver/model=mrx-310/page=overview), [MRX 510](https://www.anthemav.com/products-archived/series=mrx-series/model=mrx-510/page=overview), [MRX 710](https://www.anthemav.com/products-archived/type=av-receiver/model=mrx-710/page=overview) +### A/V Processor + +* [AVM 60](https://www.anthemav.com/products-current/model=avm-60/page=overview) + +### Distribution Solution + +* [MDX 8](https://www.anthemav.com/products-current/type=distribution/model=mdx-8/page=overview), [MDX 16](https://www.anthemav.com/products-current/type=distribution/model=mdx-16/page=overview) +* Martin Logan [MDA 8](https://www.martinlogan.com/en/product/mda8), [MDA 16](https://www.martinlogan.com/en/product/mda16) + If your model is not on the list then give it a test, if everything works correctly then add it to the list by clicking on the **Edit this page on GitHub** link above. Support is provided through the Python [anthemav] module. Older, RS-232 serial-based units like the [D2v series](https://www.anthemav.com/products-archived/model=d2v/page=overview) use a different protocol entirely and are not currently supported. @@ -41,7 +53,6 @@ port: * The tuner is currently unsupported as are the `media_player` play, pause, prev, and next controls. * Enabling this platform will set and enforce "Standby IP Control On" in your Anthem device. You almost certainly want this. If you disable it on the device, it will just get re-enabled by Home Assistant. -* Only Zone 1 is currently supported.
diff --git a/source/_integrations/august.markdown b/source/_integrations/august.markdown index f1b55b47df1..066c182a400 100644 --- a/source/_integrations/august.markdown +++ b/source/_integrations/august.markdown @@ -103,6 +103,25 @@ If you have an August Keypad, once you have enabled the August component, you sh - Keypad Battery +## Integration with Yale Access Bluetooth + +Following Assa Abloy, Yale's parent company, purchasing August in 2017, most newer devices use the Yale Access branding. + +The [Yale Access Bluetooth](/integrations/yalexe_ble) provides local control over Bluetooth of many Yale Access locks and some August locks that use the same system. + +For locks that support the Yale Access system, the August integration can keep your offline access keys up to date to ensure you can operate your lock over Bluetooth. The following requirements must be met for the offline key updates to work: + +- The August integration must support the lock. +- The [Yale Access Bluetooth integration](/integrations/yalexe_ble) must support the lock. +- The Bluetooth integration must be active and functional. +- The lock must be discoverable by the [Yale Access Bluetooth integration](/integrations/yalexe_ble). +- The account logged in with the August integration must have the offline keys. + +### Troubleshooting offline keys updates + +- If you do not know which account has the offline keys, configure August integration with each different Owner account until you find the one that holds the keys. You may need to make a new owner account and grant the account access to your lock to force the keys to synchronize with the cloud service. +- Ensure the lock is in range and discoverable by the [Yale Access Bluetooth integration](/integrations/yalexe_ble). + ## Presence Detection with Lock Operation Using the lock operation sensors, you can detect when a user operates a lock and is physically present (not remote). The below automation example (added to `automations.yaml`) will trigger when the user named “John Doe” in August locks or unlocks the door from the keypad (if present), via Bluetooth from their phone, or by auto-unlock. The state of the sensor will be the name of the party operating the lock as returned by August. diff --git a/source/_integrations/august_ble.markdown b/source/_integrations/august_ble.markdown new file mode 100644 index 00000000000..32be8196ffc --- /dev/null +++ b/source/_integrations/august_ble.markdown @@ -0,0 +1,28 @@ +--- +title: August Bluetooth +description: Instructions on how to integrate August Bluetooth locks into Home Assistant. +ha_category: + - Binary Sensor + - Lock + - Sensor +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: august_ble +ha_config_flow: true +ha_platforms: + - binary_sensor + - lock + - sensor +ha_integration_type: integration +ha_supporting_domain: yalexs_ble +ha_supporting_integration: Yale Access Bluetooth +--- + +Integrates [August](https://august.com/) locks over Bluetooth into Home Assistant. + +Following Assa Abloy, Yale's parent company, purchasing August in 2017, most newer devices use the Yale Access branding. + +{% include integrations/supported_brand.md %} \ No newline at end of file diff --git a/source/_integrations/awair.markdown b/source/_integrations/awair.markdown index 04acc610377..15ef993f23f 100644 --- a/source/_integrations/awair.markdown +++ b/source/_integrations/awair.markdown @@ -5,7 +5,7 @@ ha_category: - Health ha_config_flow: true ha_release: 0.84 -ha_iot_class: Cloud Polling +ha_iot_class: Local Polling ha_codeowners: - '@ahayworth' - '@danielsjf' @@ -13,17 +13,29 @@ ha_domain: awair ha_platforms: - sensor ha_integration_type: integration +ha_zeroconf: true +ha_dhcp: true --- The Awair integration will fetch data from your [Awair devices](https://getawair.com). -You will need to request access to the Awair API and obtain an access token from the Awair [Developer Console](https://developer.getawair.com/). It is free, but getting a token can take up to 24 hours. +## Prerequisites + +### Connect locally (preferred) + +When connecting locally, the integration will poll the device every 30 seconds. Awair provides a [list of devices](https://support.getawair.com/hc/en-us/articles/360049221014-Awair-Element-Local-API-Feature#h_01F40FB3ETMR4TZKPVXJNE86HQ) that support the Local API. This API must be enabled via the Awair app via [these steps](https://support.getawair.com/hc/en-us/articles/360049221014-Awair-Element-Local-API-Feature#h_01F40FBBW5323GBPV7D6XMG4J8). If you add new Awair devices to your home, you must follow these steps again. + +### Connect via the cloud + +When connecting via the cloud, data is summarized over 5-minute intervals. All devices are supported. You will need to request access to the Awair API and obtain an access token from the Awair [Developer Console](https://developer.getawair.com/). It is free, but getting a token can take up to 24 hours. + +This integration refreshes once every 5 minutes, based on the [default per-device quota](https://docs.developer.getawair.com/?version=latest#tiers--quotas) of 300 API calls per day. {% include integrations/config_flow.md %} ## Available Sensors -The integration will fetch data from each device linked to your Awair developer account. The following sensors are supported: +The integration will fetch data from each device. The following sensors are supported: * Temperature * Humidity @@ -35,5 +47,3 @@ The integration will fetch data from each device linked to your Awair developer * Luminescence Not all devices support all sensors; consult Awair's documentation to find out what sensors are present on your device. For first-generation Awair devices with a "dust" sensor, the integration will create identical PM2.5 and PM10 sensors (which reflects the capabilities of the sensor - it can detect dust between PM2.5 and PM10 but cannot differentiate between them). - -This integration refreshes once every 5 minutes, based on the [default per-device quota](https://docs.developer.getawair.com/?version=latest#tiers--quotas) of 300 API calls per day. diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown index 849e69d15cb..035cabd138b 100644 --- a/source/_integrations/binary_sensor.mqtt.markdown +++ b/source/_integrations/binary_sensor.mqtt.markdown @@ -99,6 +99,10 @@ device: description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`." required: false type: [list, map] + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: A list of IDs that uniquely identify the device. For example a serial number. required: false diff --git a/source/_integrations/bluemaestro.markdown b/source/_integrations/bluemaestro.markdown new file mode 100644 index 00000000000..9727498058d --- /dev/null +++ b/source/_integrations/bluemaestro.markdown @@ -0,0 +1,27 @@ +--- +title: BlueMaestro +description: Instructions on how to integrate BlueMaestro devices into Home Assistant. +ha_category: + - Sensor +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: bluemaestro +ha_config_flow: true +ha_platforms: + - sensor +ha_integration_type: integration +--- + +Integrates [BlueMaestro](https://www.sigmawit.com/) devices into Home Assistant. + +## Supported devices + +- Tempo Disc THD +- Tempo Disc THPD + +The BlueMaestro integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. + +{% include integrations/config_flow.md %} diff --git a/source/_integrations/bluetooth.markdown b/source/_integrations/bluetooth.markdown index 22f79f33fe7..7b45c4e8aca 100644 --- a/source/_integrations/bluetooth.markdown +++ b/source/_integrations/bluetooth.markdown @@ -11,6 +11,8 @@ ha_codeowners: - '@bdraco' ha_integration_type: integration ha_config_flow: true +ha_platforms: + - diagnostics --- The Bluetooth integration will detect nearby Bluetooth devices. Discovered devices will show up in the discovered section on the integrations page in the configuration panel. @@ -59,35 +61,72 @@ If you experience an unreliable Bluetooth connection, installing a short USB ext ### Known working adapters -- ASUS USB-BT400 -- ASUS USB-BT500 -- Avantree DG45 -- Kinivo BTD-400 -- Maxuni BT-501 -- SUMEE BT501 -- UGREEN CM390 -- XDO BT802 (Long Range) -- ZEXMTE BT-505 (Long Range) -- ZEXMTE BT-DG54 +- ASUS USB-BT400 [BCM20702A1] +- ASUS USB-BT500 [RTL8761BU] +- Avantree DG45 [RTL8761BU] +- EDUP LOVE EP-B3536 [RTL8761BU] (Long Range) +- Feasycom FSC-BP119 [CSR8510A10] (Long Range) +- Kinivo BTD-400 [BCM20702A1] +- Maxuni BT-501 [RTL8761B] +- SUMEE BT501 [RTL8761B] +- UGREEN CM390 [RTL8761BU] +- XDO BT802 [RTL8761BU] (Long Range) +- ZEXMTE BT-505 [RTL8761BU] (Long Range) +- ZEXMTE BT-DG54 [RTL8761BU] ### Unsupported adapters -- tp-link UB400 - Frequent connection failures -- tp-link UB500 - Frequent connection failures +- tp-link UB400 [BCM20702A1] - Frequent connection failures with active connections +- tp-link UB500 [RTL8761BU] - Frequent connection failures with active connections + +## Multiple adapters + +Support for multiple local Bluetooth adapters is available on Linux systems only. Place adapters far enough away from each other to reduce interference. + +The following methods are known to work to add multiple adapters: + +- Long USB Extension cables +- USB-Ethernet extenders +- [USB/IP](http://usbip.sourceforge.net/) + +Integrations that have followed the [Best practices for library authors](https://developers.home-assistant.io/docs/bluetooth/?_highlight=Best+practices#best-practices-for-library-authors) will automatically connect via the adapter with the best signal and failover to an active adapter if one becomes unavailable. + +## Passive Scanning + +Passive Scanning on Linux can be enabled in the options flow per adapter if the host system runs BlueZ 4.63 or later with experimental features enabled. + +Many integrations require active scanning and may not function when scanning is passive. {% include integrations/option_flow.md %} -### Multiple adapters +## Remote adapters -Support for multiple Bluetooth adapters is available on Linux systems only. Select the adapter you wish to use via the options flow on the integrations page. The adapter selection only affects integrations that use the Bluetooth integration interfaces. +The Bluetooth integration supports receiving advertisement data from external adapters for devices and sensors that do not need an active connection. The number of remote scanners is limited only by the performance of the host system. -## Integrations that require exclusive use of the Bluetooth Adapter +The following remote adapters are supported: + +- [ESPHome](https://esphome.io) + +### ESPHome requirements + +Devices with an ESP32 chip running ESPHome must enable the `bluetooth_proxy` component and be added to Home Assistant before advertisements are forwarded. + +```yaml +esp32_ble_tracker: +bluetooth_proxy: +``` + +Many integrations require an active scan for discovery. By default, the [ESPHome tracker](https://esphome.io/components/esp32_ble_tracker.html) runs in active mode. Adding ESPHome remotes that have active scanning disabled may cause some integrations to malfunction. + +## Troubleshooting + +### Integrations that require exclusive use of the Bluetooth Adapter While newer integrations can share the Bluetooth Adapter, some legacy integrations require exclusive use of the adapter. Enabling this integration may prevent an integration that has not been updated to use newer methods from functioning. Deleting the config entry for this integration will release control of the adapter and allow another integration to gain exclusive use of the Bluetooth adapter. If you have manually added `bluetooth:` to your `configuration.yaml`, you must also remove it to prevent the configuration from being recreated. Consider adding a second Bluetooth adapter on Linux systems if you need to continue using legacy integrations, as more integrations will move to use the Bluetooth integration in the future. -## Bluetooth interference with other devices +### Bluetooth interference with other devices Devices that are using the 2.4 GHz band, like Wi-Fi, Zigbee, and USB3 devices (and their cable connections) are known to affect Bluetooth reception. Especially external SSD drives with USB3 cables are known to block the Bluetooth signal. Also, metal casings can decrease the Bluetooth performance of internal Bluetooth Adapters. diff --git a/source/_integrations/braviatv.markdown b/source/_integrations/braviatv.markdown index 3635ec89b10..a1a0955823f 100644 --- a/source/_integrations/braviatv.markdown +++ b/source/_integrations/braviatv.markdown @@ -17,23 +17,14 @@ ha_platforms: ha_integration_type: integration --- -The `braviatv` platform allows you to control a [Sony Bravia TV](https://www.sony.com/). +The Bravia TV integration allows you to control a [Sony Bravia TV](https://www.sony.com/). -Almost all [Sony Bravia TV 2013 and newer](https://info.tvsideview.sony.net/en_ww/home_device.html#bravia) are supported. A more generic method for older TVs connected to a Raspberry Pi with HDMI-CEC is explained further [below](#for-tvs-older-than-2013). +Almost all [Sony Bravia TV 2013 and newer](https://info.tvsideview.sony.net/en_ww/home_device.html#bravia) are supported. For older TVs see more generic methods to control your device [below](#for-tvs-older-than-2013). {% include integrations/config_flow.md %} ## Common Issues -### Previous Configurations - -To ensure a clean re-configuration, please perform the following steps: - -- Remove the entities you are reconfiguring from Home Assistant. -- Restart Home Assistant. -- Perform the [TV does not generate new pin](#tv-does-not-generate-new-pin) steps. -- Retry [configuration](#configuration). - ### TV does not generate new pin If you have previously set up your TV with any Home Assistant instances, you must remove Home Assistant from your TV in order for your TV to generate a new pin. To do this, you must do **one** of the following: @@ -43,173 +34,41 @@ If you have previously set up your TV with any Home Assistant instances, you mus ## Remote -When the integration is configured, two entities will be created: a `media_player` and a `remote`. The remote allows you to send key commands to your TV with the `remote.send_command` service. +The integration supports `remote` platform. The remote allows you to send key commands to your TV with the `remote.send_command` service. -Some of the known valid key values are (may depend on your TV model): +The commands that can be sent to the TV depends on the model of your TV. To display a list of supported commands for your TV, call the service `remote.send_command` with non-valid command (e.g. `Test`). A list of available commands will be displayed in [Home Assistant System Logs](https://my.home-assistant.io/redirect/logs). -- `Num1` -- `Num2` -- `Num3` -- `Num4` -- `Num5` -- `Num6` -- `Num7` -- `Num8` -- `Num9` -- `Num0` -- `Num11` -- `Num12` -- `Enter` -- `GGuide` -- `ChannelUp` -- `ChannelDown` -- `VolumeUp` -- `VolumeDown` -- `Mute` -- `TvPower` -- `Audio` -- `MediaAudioTrack` -- `Tv` -- `Input` -- `TvInput` -- `TvAntennaCable` -- `WakeUp` -- `PowerOff` -- `Sleep` -- `Right` -- `Left` -- `SleepTimer` -- `Analog2` -- `TvAnalog` -- `Display` -- `Jump` -- `PicOff` -- `PictureOff` -- `Teletext` -- `Video1` -- `Video2` -- `AnalogRgb1` -- `Home` -- `Exit` -- `PictureMode` -- `Confirm` -- `Up` -- `Down` -- `ClosedCaption` -- `Component1` -- `Component2` -- `Wide` -- `EPG` -- `PAP` -- `TenKey` -- `BSCS` -- `Ddata` -- `Stop` -- `Pause` -- `Play` -- `Rewind` -- `Forward` -- `DOT` -- `Rec` -- `Return` -- `Blue` -- `Red` -- `Green` -- `Yellow` -- `SubTitle` -- `CS` -- `BS` -- `Digital` -- `Options` -- `Media` -- `Prev` -- `Next` -- `DpadCenter` -- `CursorUp` -- `CursorDown` -- `CursorLeft` -- `CursorRight` -- `ShopRemoteControlForcedDynamic` -- `FlashPlus` -- `FlashMinus` -- `DemoMode` -- `Analog` -- `Mode3D` -- `DigitalToggle` -- `DemoSurround` -- `AD` -- `AudioMixUp` -- `AudioMixDown` -- `PhotoFrame` -- `Tv_Radio` -- `SyncMenu` -- `Hdmi1` -- `Hdmi2` -- `Hdmi3` -- `Hdmi4` -- `TopMenu` -- `PopUpMenu` -- `OneTouchTimeRec` -- `OneTouchView` -- `DUX` -- `FootballMode` -- `iManual` -- `Netflix` -- `Assists` -- `FeaturedApp` -- `FeaturedAppVOD` -- `GooglePlay` -- `ActionMenu` -- `Help` -- `TvSatellite` -- `WirelessSubwoofer` -- `AndroidMenu` +{% details "Some commonly used commands" %} -## Extra configuration for the integration +- Up +- Down +- Left +- Right +- Confirm +- Return +- Home +- Exit +- Rewind +- Forward +- ActionMenu +- SyncMenu +- Num0 +- Num1 +- Num2 +- Num3 +- Num4 +- Num5 +- Num6 +- Num7 +- Num8 +- Num9 -The integration allows you to change ignored TV sources from the front end. Enter which Sony Bravia TV integration you want to change options on and press the cog wheel. +{% enddetails %} -### For TVs older than 2013 +{% include integrations/option_flow.md %} -
+The integration allows you to customize the list of ignored sources. -This is not part of the Bravia TV integration. Extra Configuration does not apply to the steps below. +## For TVs older than 2013 -
- -Users of TVs older than 2013 have another option for controlling their TV via Home Assistant. - -### Using HDMI-CEC - -If you have a Raspberry Pi connected to your TV: - -{% raw %} - -```yaml -switch: - - platform: command_line - switches: - tv_rpi: - command_on: ssh root@[IP] "echo 'on 0' | cec-client -s" - command_off: ssh root@[IP] "echo 'standby 0' | cec-client -s" - command_state: ssh root@[IP] "echo 'pow 0' | cec-client -s |grep 'power status:'" - value_template: '{{ value == "power status: on" }}' -``` - -{% endraw %} - -Using `cec-client` is a great method to turn your TV off/on, however the trade off is if you're using Kodi, it will no longer be able to control your TV using the TV Remote. - -This is because only one process can control the CEC functionality within the Raspberry Pi at a time and running the above commands terminates the functionality inside libCEC within Kodi. Kodi must be restarted for TV remove functionality to work again. - -#### Workaround - -If your desire is only to turn on your TV, the following "workaround" may be desirable: - -Change the 'on' command to a restart for Kodi. This doesn't reboot the Kodi device. - -Restarting Kodi will trigger a HDMI-CEC event to bring the TV out of standby. The following can replace your TV 'on' command. - -```yaml -command_on: ssh root@[IP] "systemctl restart kodi" -``` +Users of TVs older than 2013 can control their devices using [HDMI-CEC](/integrations/hdmi_cec/), [Broadlink](/integrations/broadlink/) or [Kodi](/integrations/kodi/) integrations. diff --git a/source/_integrations/bthome.markdown b/source/_integrations/bthome.markdown new file mode 100644 index 00000000000..c9dbf369e90 --- /dev/null +++ b/source/_integrations/bthome.markdown @@ -0,0 +1,32 @@ +--- +title: BTHome +description: Instructions on how to integrate BThome BLE devices into Home Assistant. +ha_category: + - Sensor +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Push +ha_codeowners: + - '@Ernst79' +ha_domain: bthome +ha_config_flow: true +ha_platforms: + - sensor +ha_integration_type: integration +--- + +Integrates [BTHome](https://bthome.io/) BLE devices into Home Assistant. + +{% include integrations/config_flow.md %} + +The BTHome BLE integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. + +BTHome is an energy effective but flexible BLE format to broadcast data with Bluetooth and allows you to create your own DIY BLE sensors. More information about the BTHome BLE format and projects that use the format can be found on the [BTHome website](https://bthome.io/). + +## Supported sensor measurements + +The current release only supports sensors, no binary sensors. + +## Bindkey + +When using encryption for your BTHome sensor, you will promted to enter your 32 character hexadecimal (16 bytes) encryption key. This key is called the bindkey. More information about the bindkey can be found in the [specifications](https://bthome.io/#encryption). diff --git a/source/_integrations/button.mqtt.markdown b/source/_integrations/button.mqtt.markdown index 087080634ed..9356f3f728d 100644 --- a/source/_integrations/button.mqtt.markdown +++ b/source/_integrations/button.mqtt.markdown @@ -96,6 +96,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: A list of IDs that uniquely identify the device. For example a serial number. required: false diff --git a/source/_integrations/camera.mqtt.markdown b/source/_integrations/camera.mqtt.markdown index b1e487d5016..4aa5a56ab23 100644 --- a/source/_integrations/camera.mqtt.markdown +++ b/source/_integrations/camera.mqtt.markdown @@ -98,6 +98,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: 'A list of IDs that uniquely identify the device. For example a serial number.' required: false @@ -132,10 +136,10 @@ enabled_by_default: type: boolean default: true encoding: - description: The encoding of the image payloads received. Set to `"b64"` to enable base64 decoding of image payload. If not set, or if set to `null`, the image payload must be raw binary data. + description: The encoding of the payloads received. Set to `""` to disable decoding of incoming payload. Use `image_encoding` to enable `Base64` decoding on `topic`. required: false type: string - default: null + default: "utf-8" entity_category: description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity. required: false @@ -145,6 +149,11 @@ icon: description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity." required: false type: icon +image_encoding: + description: The encoding of the image payloads received. Set to `"b64"` to enable base64 decoding of image payload. If not set, the image payload must be raw binary data. + required: false + type: string + default: None json_attributes_template: description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`." required: false diff --git a/source/_integrations/climate.mqtt.markdown b/source/_integrations/climate.mqtt.markdown index a0408864e6c..959e7c8fe62 100644 --- a/source/_integrations/climate.mqtt.markdown +++ b/source/_integrations/climate.mqtt.markdown @@ -122,6 +122,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: 'A list of IDs that uniquely identify the device. For example a serial number.' required: false diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown index 0315165875e..c0541b4a5af 100644 --- a/source/_integrations/cover.mqtt.markdown +++ b/source/_integrations/cover.mqtt.markdown @@ -109,6 +109,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.' required: false type: list + hw_version: + description: "The hardware version of the device." + required: false + type: string identifiers: description: 'A list of IDs that uniquely identify the device. For example a serial number.' required: false diff --git a/source/_integrations/deconz.markdown b/source/_integrations/deconz.markdown index a2d64ba52ce..0b83c8d2c93 100644 --- a/source/_integrations/deconz.markdown +++ b/source/_integrations/deconz.markdown @@ -33,6 +33,7 @@ ha_platforms: - lock - number - scene + - select - sensor - siren - switch diff --git a/source/_integrations/default_config.markdown b/source/_integrations/default_config.markdown index f349af0ac50..dabe7642122 100644 --- a/source/_integrations/default_config.markdown +++ b/source/_integrations/default_config.markdown @@ -21,6 +21,7 @@ This integration is a meta-component and configures a default set of integration - [DHCP Discovery](/integrations/dhcp/) (`dhcp`) - [Energy](/integrations/energy/) (`energy`) - [Frontend](/integrations/frontend/) (`frontend`) +- [Hardware](/integrations/hardware/) (`hardware`) - [History](/integrations/history/) (`history`) - [Home Assistant Alerts](/integrations/homeassistant_alerts) (`homeassistant_alerts`) - [Home Assistant Cloud](/integrations/cloud/) (`cloud`) diff --git a/source/_integrations/deutsche_bahn.markdown b/source/_integrations/deutsche_bahn.markdown index 7d8e3c2db58..ea59b6ae082 100644 --- a/source/_integrations/deutsche_bahn.markdown +++ b/source/_integrations/deutsche_bahn.markdown @@ -11,6 +11,10 @@ ha_platforms: ha_integration_type: integration --- +
+ This integration is pending removal from Home Assistant and will be no longer available as of Home Assistant 2022.11. +
+ The `deutsche_bahn` sensor will give you the departure time of the next train for the given connection. In case of a delay, the delay is also shown. Additional details are used to inform about, e.g., the type of the train, price, and if it is on time. To enable this sensor, add the following lines to your `configuration.yaml` file: diff --git a/source/_integrations/device_tracker.mqtt.markdown b/source/_integrations/device_tracker.mqtt.markdown index fea239e606d..e79615055fb 100644 --- a/source/_integrations/device_tracker.mqtt.markdown +++ b/source/_integrations/device_tracker.mqtt.markdown @@ -133,6 +133,10 @@ device: description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`." required: false type: [list, map] + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: A list of IDs that uniquely identify the device. For example a serial number. required: false diff --git a/source/_integrations/ecovacs.markdown b/source/_integrations/ecovacs.markdown index c0c510604c7..ccf99e23d70 100644 --- a/source/_integrations/ecovacs.markdown +++ b/source/_integrations/ecovacs.markdown @@ -8,6 +8,7 @@ ha_iot_class: Cloud Push ha_release: 0.77 ha_codeowners: - '@OverloadUT' + - '@mib1185' ha_domain: ecovacs ha_platforms: - vacuum diff --git a/source/_integrations/ecowitt.markdown b/source/_integrations/ecowitt.markdown new file mode 100644 index 00000000000..917955054df --- /dev/null +++ b/source/_integrations/ecowitt.markdown @@ -0,0 +1,31 @@ +--- +title: Ecowitt +description: Instructions on how to integrate Ecowitt Weather Station within Home Assistant. +ha_category: + - Binary Sensor + - Sensor +ha_release: 2022.9 +ha_iot_class: Local Push +ha_domain: ecowitt +ha_config_flow: true +ha_codeowners: + - '@pvizeli' +ha_platforms: + - binary_sensor + - diagnostics + - sensor +ha_integration_type: integration +--- + +{% include integrations/config_flow.md %} + +## Ecowitt Weather Station configuration + +The following steps must be performed to set up this integration. For security reason, use the token path that you get from the Home Assistant config flow. + +1. Use the Ecowitt App (on your phone) or access the Ecowitt WebUI in a browser at the station IP address. +2. Pick your station -> Menu Others -> DIY Upload Servers. +3. Hit next and select 'Customized' +4. Pick the protocol Ecowitt, and put in the ip/hostname of your Home Assistant server. +5. Path have to match, you can copy with secure token /. +6. Save configuration. diff --git a/source/_integrations/escea.markdown b/source/_integrations/escea.markdown new file mode 100644 index 00000000000..84b235b5311 --- /dev/null +++ b/source/_integrations/escea.markdown @@ -0,0 +1,48 @@ +--- +title: Escea +description: Instructions on how to integrate Escea fireplaces with Home Assistant. +ha_category: + - Climate +ha_release: 2022.9 +ha_iot_class: Local Push +ha_config_flow: true +ha_codeowners: + - '@lazdavila' +ha_domain: escea +ha_homekit: true +ha_platforms: + - climate +ha_integration_type: integration +--- + +The Escea integration allows monitoring and control of local [Escea](https://escea.com/) fireplaces. These fireplaces are manufactured in New Zealand and sold throughout Australia and New Zealand. + +## Supported hardware + +Support all current Escea fireplaces with the Smart Heat feature, including the DF, DL, DS, and DX series. +Though these fireplaces are supported, they can only be integrated if they were connected via Ethernet when installed (i.e., these fireplaces do not support Wi-Fi). + +{% include integrations/config_flow.md %} + +## Network settings + +The Escea system uses UDP over the local network to find and communicate with Escea devices. For this to work properly, UDP port 3300 must be available for broadcasting and messaging fireplaces, and similarly, UDP port 3300 must be available to listen for responses. The integration currently listens on `0.0.0.0` and broadcasts to all broadcast IPv4 local addresses, which is not configurable. + +## Master controller + +Fireplace on / off, fan settings, and desired temperature settings are supported. The current room temperature, as measured by the fireplace, is also supported. + +## Debugging + +If you're trying to track down issues with the component, set up logging for it: + +```yaml +# Example configuration.yaml with logging for Escea +logger: + default: warning + logs: + homeassistant.components.escea: debug + pescea: debug +``` + +This will help you to find network connection issues etc. diff --git a/source/_integrations/fan.mqtt.markdown b/source/_integrations/fan.mqtt.markdown index 48ace2c0f97..e1eb5fd9992 100644 --- a/source/_integrations/fan.mqtt.markdown +++ b/source/_integrations/fan.mqtt.markdown @@ -104,6 +104,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: [list, map] + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: A list of IDs that uniquely identify the device. For example a serial number. required: false diff --git a/source/_integrations/file_upload.markdown b/source/_integrations/file_upload.markdown new file mode 100644 index 00000000000..1d0773de331 --- /dev/null +++ b/source/_integrations/file_upload.markdown @@ -0,0 +1,12 @@ +--- +title: File Upload +description: File upload integration supports various frontend features within Home Assistant +ha_release: 2022.9 +ha_quality_scale: internal +ha_domain: file_upload +ha_integration_type: integration +ha_codeowners: + - '@home-assistant/core' +--- + +The file upload integration allows various features in the frontend to upload files. diff --git a/source/_integrations/flume.markdown b/source/_integrations/flume.markdown index e4bc3e347c8..f0dd14937e4 100644 --- a/source/_integrations/flume.markdown +++ b/source/_integrations/flume.markdown @@ -9,6 +9,7 @@ ha_config_flow: true ha_codeowners: - '@ChrisMandich' - '@bdraco' + - '@jeeftor' ha_domain: flume ha_dhcp: true ha_platforms: diff --git a/source/_integrations/fritzbox.markdown b/source/_integrations/fritzbox.markdown index 7ef19c3413a..da69e67570a 100644 --- a/source/_integrations/fritzbox.markdown +++ b/source/_integrations/fritzbox.markdown @@ -15,6 +15,7 @@ ha_ssdp: true ha_platforms: - binary_sensor - climate + - cover - diagnostics - light - sensor @@ -31,6 +32,7 @@ There is currently support for the following device types within Home Assistant: - Binary Sensor - Climate +- Cover - Light - Sensor - Switch @@ -47,6 +49,7 @@ There is currently support for the following device types within Home Assistant: - [FRITZ!DECT 500](https://en.avm.de/products/fritzdect/fritzdect-500/) - [Eurotronic Comet DECT](https://eurotronic.org/produkte/dect-ule-heizkoerperthermostat/comet-dect/) - [Magenta SmartHome LED E27](https://www.smarthome.de/geraete/smarthome-led-lampe-e27-farbig-weiss) +- [Rademacher RolloTron DECT 1213](https://www.rademacher.de/shop/rollladen-sonnenschutz/elektrischer-gurtwickler/rollotron-dect-1213) {% include integrations/config_flow.md %} @@ -108,3 +111,7 @@ To get AVM FRITZ!DECT lightbulbs (e.g., FRITZ!DECT 500) follow the [configuratio
The FRITZ!DECT 500 lightbulb supports only 36 colors. When a color is picked in home assistant that is not supported by the device, a color that comes close will be activated.
+ +## Cover + +To get AVM FRITZ!DECT compatible covers (e.g., Rademacher RolloTron DECT 1213) follow the [configuration instructions](#configuration) above. diff --git a/source/_integrations/fully_kiosk.markdown b/source/_integrations/fully_kiosk.markdown new file mode 100644 index 00000000000..90a2f6d4aaf --- /dev/null +++ b/source/_integrations/fully_kiosk.markdown @@ -0,0 +1,69 @@ +--- +title: Fully Kiosk Browser +description: Instructions on how to integrate Fully Kiosk Browser with Home Assistant +ha_category: + - Binary Sensor + - Sensor + - Switch +ha_release: 2022.9 +ha_iot_class: Local Polling +ha_config_flow: true +ha_codeowners: + - '@cgarwood' +ha_domain: fully_kiosk +ha_platforms: + - binary_sensor + - button + - diagnostics + - media_player + - number + - sensor + - switch +ha_integration_type: integration +ha_dhcp: true +--- + +[Fully Kiosk Browser](https://www.fully-kiosk.com) is a powerful kiosk browser for Android devices. It provides a number of features for monitoring and controlling your Android device. This integration gives you access to control your device and view the status in Home Assistant. + +## Requirements + +This integration requires the Fully Remote Admin feature to be enabled in the Fully Kiosk Browser app. This feature requires the paid Fully Plus license. You can test it out for free, but Fully Kiosk Browser will display a watermark on your device. + +You will need the IP address of your device, and the Fully Remote Admin password you set in the Fully Kiosk Browser app. + +{% include integrations/config_flow.md %} + +## Capabilities + +The following is available as sensors: + +- Device plugged in +- Kiosk mode enabled/disabled +- Battery level +- Current page +- Current foreground app +- Device storage space available +- Device RAM available + +The following controls are available: + +- Bring Fully Kiosk to the foreground +- Send Fully Kiosk to the background +- Load the start URL +- Restart the Fully Kiosk Browser app +- Reboot your device (requires root) +- Maintenance mode on/off +- Lock/unlock kiosk mode +- Motion detection on/off +- Screensaver on/off +- Screensaver timer +- Screensaver brightness +- Screen on/off +- Screen off timer +- Screen brightness +- Play and stop media files +- Set device volume + +
+ The Fully Kiosk Browser app does not provide feedback on the device volume or media playback status, so we are unable to display the current volume level or playback status. +
diff --git a/source/_integrations/goodwe.markdown b/source/_integrations/goodwe.markdown index cae0f9e660f..f940e488780 100644 --- a/source/_integrations/goodwe.markdown +++ b/source/_integrations/goodwe.markdown @@ -12,6 +12,7 @@ ha_codeowners: - '@starkillerOG' ha_domain: goodwe ha_platforms: + - button - number - select - sensor diff --git a/source/_integrations/govee_ble.markdown b/source/_integrations/govee_ble.markdown index 3fd8bf328b1..2fbf1f5bd49 100644 --- a/source/_integrations/govee_ble.markdown +++ b/source/_integrations/govee_ble.markdown @@ -23,6 +23,7 @@ The Govee BLE integration will automatically discover devices once the [Bluetoot ## Supported devices +- H5071 Hygrometer Thermometer - H5072 Hygrometer Thermometer - H5074 Hygrometer Thermometer - [H5075 Bluetooth Hygrometer Thermometer](https://us.govee.com/collections/thermo-hydrometer/products/govee-bluetooth-hygrometer-thermometer-h5075) @@ -32,4 +33,5 @@ The Govee BLE integration will automatically discover devices once the [Bluetoot - H5179 Hygrometer Thermometer - 5181 Meat Thermometer - 5183 Meat Thermometer +- 5184 Meat Thermometer - 5185 Meat Thermometer diff --git a/source/_integrations/hdmi_cec.markdown b/source/_integrations/hdmi_cec.markdown index 5611ee87f66..b1749ea8db4 100644 --- a/source/_integrations/hdmi_cec.markdown +++ b/source/_integrations/hdmi_cec.markdown @@ -10,6 +10,8 @@ ha_platforms: - media_player - switch ha_integration_type: integration +ha_codeowners: + - '@inytar' --- The `hdmi_cec` integration provides services that allow selecting the active device, powering on all devices, setting all devices to standby and creates switch entities for HDMI devices. Devices are defined in the configuration file by associating HDMI port number and a device name. Connected devices that provide further HDMI ports, such as sound-bars and AVRs are also supported. Devices are listed from the perspective of the CEC-enabled Home Assistant device. Any connected device can be listed, regardless of whether it supports CEC. Ideally the HDMI port number on your device will map correctly the CEC physical address. If it does not, use `cec-client` (part of the `libcec` package) to listen to traffic on the CEC bus and discover the correct numbers. diff --git a/source/_integrations/humidifier.mqtt.markdown b/source/_integrations/humidifier.mqtt.markdown index d89e3095a79..7a6ae783f3a 100644 --- a/source/_integrations/humidifier.mqtt.markdown +++ b/source/_integrations/humidifier.mqtt.markdown @@ -106,6 +106,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: [list, map] + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: A list of IDs that uniquely identify the device. For example a serial number. required: false diff --git a/source/_integrations/hunterdouglas_powerview.markdown b/source/_integrations/hunterdouglas_powerview.markdown index 11083ccef51..4a7f8c1ddc2 100644 --- a/source/_integrations/hunterdouglas_powerview.markdown +++ b/source/_integrations/hunterdouglas_powerview.markdown @@ -51,17 +51,21 @@ Calling the update entity service (`homeassistant.update_entity`) on a shade ent If your shade is not listed please raise a feature request on the community forum.
-| Name (Type) | Capabilities | -| :------------------------------------- | :------------------------------ | -| Roman (4) | Bottom Up | -| Bottom Up (5) | Bottom Up | -| Duette (6) | Bottom Up | -| Duette, Top Down Bottom Up (8) | Top Down, Bottom Up | -| Silhouette (23) | 90° Tilt when closed | -| M25T Roller Blind (42) | Bottom Up | -| Twist (44) | 180° Tilt when closed | -| Pleated, Top Down Bottom Up (47) | Top Down, Bottom Up | -| AC Roller (49) | Bottom Up | +| Name (Type) | Capabilities | +| :---------------------------------------- | :------------------------------ | +| Roman (4) | Bottom Up | +| Bottom Up (5) | Bottom Up | +| Duette (6) | Bottom Up | +| Duette, Top Down Bottom Up (8) | Top Down, Bottom Up | +| Duette DuoLite, Top Down Bottom Up (9) | Top Down, Bottom Up | +| Silhouette (18) | 90° Tilt when closed | +| Silhouette (23) | 90° Tilt when closed | +| Duette Architella, Top Down Bottom Up (9) | Top Down, Bottom Up | +| M25T Roller Blind (42) | Bottom Up | +| Facette (43) | 90° Tilt when closed | +| Twist (44) | 180° Tilt when closed | +| Pleated, Top Down Bottom Up (47) | Top Down, Bottom Up | +| AC Roller (49) | Bottom Up | ### Devices with limited functionality @@ -69,23 +73,20 @@ If your shade is not listed please raise a feature request on the community foru These devices are currently still being tested. We ask you wait patiently while this completes. Until this is completed these may perform basic or slightly odd functionality. -| Name (Type) | Capabilities | -| :------------------------------------- | :------------------------------ | -| Top Down (7) | Top Down | -| Duette DuoLite, Top Down Bottom Up (9) | Top Down, Bottom Up | -| Silhouette (18) | 90° Tilt when closed | -| Silhouette Duolite (38) | Dual Shade Blackout + 90° Tilt | -| Facette (43) | 90° Tilt when closed | -| Venetian, Tilt Anywhere (51) | 180° Tilt Anywhere | -| Vertical Slats, Left Stack (54) | 180° Tilt when closed, Vertical | -| Vertical Slats, Right Stack (55) | 180° Tilt when closed, Vertical | -| Vertical Slats, Split Stack (56) | 180° Tilt when closed, Vertical | -| Venetian, Tilt Anywhere (62) | 180° Tilt Anywhere, Vertical | -| Vignette Duolite (65) | Dual Shade Blackout | -| Curtain, Left Stack (69) | 180° Tilt when closed, Vertical | -| Curtain, Right Stack (70) | 180° Tilt when closed, Vertical | -| Curtain, Split Stack (71) | 180° Tilt when closed, Vertical | -| Duolite Lift (79) | Dual Shade Blackout | +| Name (Type) | Capabilities | +| :---------------------------------------- | :------------------------------ | +| Top Down (7) | Top Down | +| Silhouette Duolite (38) | Dual Shade Blackout + 90° Tilt | +| Venetian, Tilt Anywhere (51) | 180° Tilt Anywhere | +| Vertical Slats, Left Stack (54) | 180° Tilt when closed, Vertical | +| Vertical Slats, Right Stack (55) | 180° Tilt when closed, Vertical | +| Vertical Slats, Split Stack (56) | 180° Tilt when closed, Vertical | +| Venetian, Tilt Anywhere (62) | 180° Tilt Anywhere, Vertical | +| Vignette Duolite (65) | Dual Shade Blackout | +| Curtain, Left Stack (69) | 180° Tilt when closed, Vertical | +| Curtain, Right Stack (70) | 180° Tilt when closed, Vertical | +| Curtain, Split Stack (71) | 180° Tilt when closed, Vertical | +| Duolite Lift (79) | Dual Shade Blackout 90° Tilt | ## Capabilities Information diff --git a/source/_integrations/inkbird.markdown b/source/_integrations/inkbird.markdown index 91583aa1be1..db439ce338a 100644 --- a/source/_integrations/inkbird.markdown +++ b/source/_integrations/inkbird.markdown @@ -19,11 +19,13 @@ Integrates [INKBIRD](https://www.inkbird.com/) devices into Home Assistant. ## Supported devices -- [Bluetooth Thermometer IBS-TH1](https://inkbird.com/products/bluetooth-thermometer-ibs-th1) -- [Temperature and humidity Hygrometer IBS-TH2](https://inkbird.com/products/hygrometer-ibs-th2) -- [Bluetooth Smart Sensor ITH-12S](https://inkbird.com/products/bluetooth-smart-sensor-ith-12s) -- [Bluetooth Grill Thermometer IBT-4XS](https://inkbird.com/products/bluetooth-grill-thermometer-ibt-4xs) -- [Bluetooth Grill Thermometer IBT-2X](https://inkbird.com/products/bluetooth-grill-thermometer-ibt-2x) +- [INKBIRD Bluetooth Thermometer IBS-TH1](https://inkbird.com/products/bluetooth-thermometer-ibs-th1) +- [INKBIRD Temperature and humidity Hygrometer IBS-TH2](https://inkbird.com/products/hygrometer-ibs-th2) +- [INKBIRD Bluetooth Smart Sensor ITH-12S](https://inkbird.com/products/bluetooth-smart-sensor-ith-12s) +- [INKBIRD Bluetooth Grill Thermometer IBT-4XS](https://inkbird.com/products/bluetooth-grill-thermometer-ibt-4xs) +- [INKBIRD Bluetooth Grill Thermometer IBT-2X](https://inkbird.com/products/bluetooth-grill-thermometer-ibt-2x) +- [Nutrichef Smart Wireless Grill Thermometer](https://nutrichefkitchen.com/products/pwirbbq40) +- [Nutrichef Smart Bluetooth BBQ Grill Thermometer](https://nutrichefkitchen.com/products/pwirbbq80-1) The INKBIRD integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. diff --git a/source/_integrations/islamic_prayer_times.markdown b/source/_integrations/islamic_prayer_times.markdown index e1959e2f826..752d845dd8d 100644 --- a/source/_integrations/islamic_prayer_times.markdown +++ b/source/_integrations/islamic_prayer_times.markdown @@ -22,6 +22,7 @@ This platform calculates prayer times using the following calculation methods: - Islamic Society of North America - Muslim World League - Umm Al-Qura University in Makkah +- Moonsighting {% include integrations/config_flow.md %} diff --git a/source/_integrations/iss.markdown b/source/_integrations/iss.markdown index 68ca56e31e9..1bcbc85086e 100644 --- a/source/_integrations/iss.markdown +++ b/source/_integrations/iss.markdown @@ -1,26 +1,24 @@ --- title: International Space Station (ISS) -description: Know if or when ISS will be above your home location +description: Show the ISS location and how many people are in space ha_category: - - Binary Sensor + - Sensor ha_iot_class: Cloud Polling ha_release: 0.36 ha_domain: iss ha_platforms: - - binary_sensor + - sensor ha_codeowners: - '@DurgNomis-drol' ha_config_flow: true ha_integration_type: integration --- -The `iss` platform uses the +The International Space Station (ISS) integration uses the [Open Notify API](http://open-notify.org/Open-Notify-API/ISS-Location-Now/) -to let you know if the station is above your home location. -This means that ISS is 10° above the horizon of your home. +to let you know where the station is. -You can check in the attributes of the sensor to see the timestamp for the next -rise of the station, its current coordinates, and the number of people in space. +It will also tell you how many people are in space. {% include integrations/config_flow.md %} diff --git a/source/_integrations/jewish_calendar.markdown b/source/_integrations/jewish_calendar.markdown index 3f1472b8d8c..b339a353c6a 100644 --- a/source/_integrations/jewish_calendar.markdown +++ b/source/_integrations/jewish_calendar.markdown @@ -76,10 +76,12 @@ Time sensor states are represented as ISO8601 formatted *UTC time*. - `first_light`: First light of dawn (Alot Hashachar - עלות השחר) - `talit`: Earliest time for tallit and tefillin (Misheyakir - משיכיר) +- `sunrise`: Earliest time for Shacharit (Hanetz Hachama - הנץ החמה) - `gra_end_shma`: Last time for reading of the Shma according to the Gr"a. - `mga_end_shma`: Last time for reading of the Shma according to the MG"A. - `gra_end_tefilla`: Last time for full shacharit according to the Gr"a. - `mga_end_tefilla`: Last time for full shacharit according to the MG"A. +- `midday`: Half way through the day (Chatzot Hayom - חצות היום) - `big_mincha`: Earliest time for Mincha (Mincha Gedola - מנחה גדולה) - `little_mincha`: Preferable earliest time for Mincha (Mincha Ketana - מנחה קטנה) - `plag_mincha`: Time of the Plag Hamincha (פלג המנחה) @@ -93,6 +95,8 @@ Time sensor states are represented as ISO8601 formatted *UTC time*. ### Binary sensors - `issur_melacha_in_effect`: A boolean sensor indicating if melacha is currently not permitted. The value is _on_ when it is currently Shabbat or Yom Tov and _off_ otherwise. +- `erev_shabbat_hag`: A boolean sensor indicating that there is an upcoming Shabbat or Hag. +- `motzei_shabbat_hag`: A boolean sensor indicating that Shabbat or Hag has ended. ### Holiday sensor diff --git a/source/_integrations/justnimbus.markdown b/source/_integrations/justnimbus.markdown new file mode 100644 index 00000000000..79ec6272bb0 --- /dev/null +++ b/source/_integrations/justnimbus.markdown @@ -0,0 +1,45 @@ +--- +title: JustNimbus +description: Instructions on how to configure the JustNimbus integration within Home Assistant +ha_category: + - Environment +ha_release: 2022.9 +ha_iot_class: Cloud Polling +ha_domain: justnimbus +ha_platforms: + - sensor +ha_config_flow: true +ha_integration_type: integration +ha_codeowners: + - '@kvanzuijlen' +--- + +The JustNimbus integration queries the JustNumbus API used by the JustNimbus web dashboard. +This integration allows you to collect and save data to get an historic overview of your water bag +usage. + +## Prerequisites + +To configure and use this integration, you need to have a +[JustNimbus water bag](https://justnimbus.com/regenwatersysteem/) (Dutch), and +you need to be subscribed for the web dashboard functionality. For this configuration, you need the +client ID from the URL. For example: `https://dashboard.justnimbus.com/api/installation//data`. + +{% include integrations/config_flow.md %} + +## Sensor Types + +When configured, the integration will create twelve sensors for each configured client ID: + +- Pump flow, in `L/min` (Liters/minute) +- Drink flow, in `L/min` (Liters/minute) +- Pump pressure, in `bar` +- Pump starts, a number counting the number of times the pump has started +- Pump hours, a number counting the number of hours the pump has been used +- Reservoir temperature, in `°C` +- Reservoir content, in `L` (Liters) +- Total saved, in `L` (Liters) +- Total replenished, in `L` (Liters) +- Error code +- Total use, in `L` (Liters) +- Max reservoir content, in `L` (Liters) diff --git a/source/_integrations/lacrosse_view.markdown b/source/_integrations/lacrosse_view.markdown new file mode 100644 index 00000000000..6eebf42513f --- /dev/null +++ b/source/_integrations/lacrosse_view.markdown @@ -0,0 +1,29 @@ +--- +title: LaCrosse View +description: Get data for LaCrosse View-connected sensors +ha_release: '2022.9' +ha_category: + - Sensor +ha_iot_class: Cloud Polling +ha_config_flow: true +ha_codeowners: + - '@IceBotYT' +ha_domain: lacrosse_view +ha_platforms: + - sensor +ha_integration_type: integration +--- + +[**LaCrosse View**](https://www.lacrossetechnology.com/pages/la-crosse-view) is the service provided by LaCrosse Technology that allows access to LaCrosse sensors. + +
+ +If you are looking for an integration for [**Jeelink LaCrosse sensors**](/integrations/lacrosse), you can find that integration [**here**](/integrations/lacrosse). + +
+ +{% include integrations/config_flow.md %} + +## Supported sensors + +All of the sensors on [**this page**](https://www.lacrossetechnology.com/collections/lacrosse-view-connected) are supported by this integration. diff --git a/source/_integrations/lametric.markdown b/source/_integrations/lametric.markdown index 38f52fdfdb8..3924e9d3847 100644 --- a/source/_integrations/lametric.markdown +++ b/source/_integrations/lametric.markdown @@ -1,150 +1,181 @@ --- title: LaMetric -description: Instructions on how to integrate LaMetric with Home Assistant. +description: Instructions on how to integrate LaMetric TIME with Home Assistant. ha_category: - - Hub + - Button - Notifications -ha_iot_class: Cloud Push + - Number +ha_iot_class: Local Polling ha_release: 0.49 ha_codeowners: - '@robbiet480' - '@frenck' ha_domain: lametric ha_platforms: + - button - notify + - number ha_integration_type: integration +ha_config_flow: true +ha_ssdp: true --- -[LaMetric Time](https://lametric.com/) is a smart clock that can be used to access applications, listen to web radio and display notifications. +[LaMetric TIME](https://lametric.com/) is a smart clock that can be used to access applications, listen to web radio and display notifications. -There is currently support for the following device types within Home Assistant: - -- [Notify](#notifications) - -The LaMetric Time can only be accessed by authorized applications. Therefore, each application that wants to access the LaMetric time needs to be registered at the LaMetric Developer web page. Sign Up and login to the developer web page. Click the Create button in the upper right corner, then select Notification App and click Create again. Enter an app name, a description and a redirect URL. Finally, click Save to create the application. For the newly created app you will obtain a client id and a client secret that is required in the following configuration. - -```yaml -# configuration.yaml example -lametric: - client_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx - client_secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -``` - -## Setup Steps - -LaMetric needs an OAuth2 `client_id` and `client_secret` from the LaMetric developer portal to use it with Home Assistant. -These are the steps to take: - -1. Log in with your LaMetric device account to [developer.lametric.com](https://developer.lametric.com). -2. Hit the Create button and choose [Notification](https://developer.lametric.com/applications/createsource). -3. Fill in the form. You can put almost anything in the fields, they just need to be populated: - * App Name: Home Assistant - * Description: Home Assistant - * Privacy Policy: `http://localhost/` - * Check all permission boxes - * Hit Save -4. You should be directed to your [Notification Apps list](https://developer.lametric.com/applications/sources), click on "Home Assistant", copy your client ID and client Secret and paste into the Home Assistant configuration block in the previous section. -5. Set up some notifications in Home Assistant by following the instructions on the [Lametric Notify](/integrations/lametric) page. -6. Save all configuration files and restart Home Assistant. +{% include integrations/config_flow.md %} ## Notifications -The `lametric` notification platform allows to send notification to a LaMetric device. It needs the LaMetric platform to be configured first. +You can send notifications to your LaMetric device using +the [Notifications](/integrations/notify) integration. -To enable LaMetric notifications in your installation, add the following to your `configuration.yaml` file: +Each LaMetric device added to your Home Assistant will have its own +`notify.` service. The service name matches the name of your device +as shown in your LaMetric account. For example, if you have a device +called "My LaMetric", the service would become `notify.my_lametric`. -```yaml -# Example configuration.yaml entry -notify: - name: NOTIFIER_NAME - platform: lametric -``` +The notification service call against an LaMetric device can take the +following, additional, optional parameters: {% configuration %} -name: - description: "The optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`." - required: false - type: string - default: notify -lifetime: - description: Defines how long the message remains in LaMetric notification queue (in seconds). - required: false - type: integer - default: 10 icon: - description: An icon or animation. List of all icons available at [https://developer.lametric.com/icons](https://developer.lametric.com/icons). Note that icons always begin with "i" while animations begin with "a". This is part of the name, you can't just use the number! + description: "An icon or animation. List of all icons available at [https://developer.lametric.com/icons](https://developer.lametric.com/icons)." required: false type: string cycles: - description: Defines how long the notification will be displayed. Set to 0 to require manual dismissal + description: "Defines how long the notification will be displayed. Set to `0` to require manual dismissal." required: false type: integer default: 1 priority: - description: Defines the priority of the notification. Allowed values are info, warning, and critical + description: "Defines the priority of the notification. Allowed values are `info`, `warning`, and `critical`." required: false type: string default: warning icon_type: - description: Defines the nature of notification. Allowed values are none, info, and alert + description: "Defines the nature of notification. Allowed values are `none`, `info`, and `alert`." required: false type: string - default: info + default: none +sound: + description: "Defines the sound of the notification. Allowed are listed [below](#list-of-notification-sounds)." + required: false + type: string + default: none {% endconfiguration %} +## Example -## Examples - -### Full configuration example - -```yaml -# Example configuration.yaml entry -notify: - name: NOTIFIER_NAME - platform: lametric - lifetime: 20 - icon: a7956 - cycles: 3 - priority: info - icon_type: none -``` - -### Changing sounds and icons - -To add a notification sound, icon, cycles, or priority override, it has to be done via service data. +To add a notification sound, icon, cycles, or priority override, ```yaml - alias: "Send notification on arrival at school" trigger: platform: state - entity_id: device_tracker.son_mobile + entity_id: device_tracker.tom_mobile from: "not_home" to: "school" action: - service: notify.lametric + service: notify.my_lametric data: - message: "Son has arrived at school!" + message: "Tom has arrived at school!" data: sound: "notification" - icon: "i51" + icon: "51" cycles: 0 priority: "critical" - icon_type: "none" + icon_type: "info" ``` -### Only notify specific device +## List of notification sounds -If you have more than one La Metric device, you can specify which will receive the message by adding `target:` to the service data: +The following notification sounds can be used with the `sound` parameter on +notify service calls: -```yaml - action: - service: notify.lametric - data: - message: "Son has arrived at school!" - target: "Office LaMetric" - data: - sound: "notification" - icon: "i51" - ``` +- `alarm1` +- `alarm10` +- `alarm11` +- `alarm12` +- `alarm13` +- `alarm2` +- `alarm3` +- `alarm4` +- `alarm5` +- `alarm6` +- `alarm7` +- `alarm8` +- `alarm9` +- `bicycle` +- `car` +- `cash` +- `cat` +- `dog` +- `dog2` +- `energy` +- `knock-knock` +- `letter_email` +- `lose1` +- `lose2` +- `negative1` +- `negative2` +- `negative3` +- `negative4` +- `negative5` +- `notification` +- `notification2` +- `notification3` +- `notification4` +- `open_door` +- `positive1` +- `positive2` +- `positive3` +- `positive4` +- `positive5` +- `positive6` +- `statistic` +- `thunder` +- `water1` +- `water2` +- `win` +- `win2` +- `wind_short` +- `wind` - If target is not specified, all LaMetric devices will be notified. +## Manual automatic import configuration + +If you prefer not to use the Home Assistant account linking service, you +can set up the LaMetric application manually. + +However, please note! At this point, it is easier to choose the "Enter manually" +option during the integration setup; this also avoids the use of the account +linking service and doesn't need all the steps below either. + +If you still want to set up your own LaMetric application for importing +your LaMetric devices, use the following steps: + +1. Log in with your LaMetric device account to [developer.lametric.com](https://developer.lametric.com). +2. Click the Create button and choose [Notification](https://developer.lametric.com/applications/createsource) app. +3. Fill in the form. You can put almost anything in the fields, they just need to be populated: + * App Name: Home Assistant + * Description: Home Assistant + * Redirect URI: `https://my.home-assistant.io/redirect/oauth` + * Privacy Policy: `http://localhost/` + * Check the "basic" and "read_devices" permission boxes + * Click Save +4. You should be directed to your [Notification Apps list](https://developer.lametric.com/applications/sources), + click on "Home Assistant", copy your client ID and Client Secret. + +You may then add the credentials to [Application Credentials](/integrations/application_credentials/) and then setup the integration. + +{% details "I have manually disabled My Home Assistant" %} + +If you don't have [My Home Assistant](/integrations/my) on your installation, +you can use `/auth/external/callback` as the redirect URI +instead. + +The `` must be the same as used during the configuration/ +authentication process. + +Internal examples: `http://192.168.0.2:8123/auth/external/callback`, `http://homeassistant.local:8123/auth/external/callback`." + +{% enddetails %} diff --git a/source/_integrations/landisgyr_heat_meter.markdown b/source/_integrations/landisgyr_heat_meter.markdown new file mode 100644 index 00000000000..5abdf37abea --- /dev/null +++ b/source/_integrations/landisgyr_heat_meter.markdown @@ -0,0 +1,87 @@ +--- +title: Landis+Gyr Heat Meter +description: Instructions on how to integrate your Landis+Gyr Heat Meter device into Home Assistant. +ha_category: + - Energy + - Sensor +ha_iot_class: Local Polling +ha_config_flow: true +ha_release: 2022.9 +ha_domain: landisgyr_heat_meter +ha_codeowners: + - '@vpathuis' +ha_platforms: + - sensor +ha_integration_type: integration +--- + +The Landis+Gyr Heat Meter integration for Home Assistant allows you to read the meter values from Ultraheat devices by Landis & Gyr. These devices are commonly used for district heating. The integration has been tested with the Landis & Gyr Ultraheat 50 (UH50), type LUGCUH50. Other models are likely to work as well. + +The device is read through the optical interface. An (USB) IR reader is needed and connected to Home Assistant. + +![USB IR reader](/images/integrations/landisgyr_heat_meter/usb_ir_reader.png) + +{% include integrations/config_flow.md %} + +## Sensors + +The integration will create the following sensors: + +- Heat usage (MWh) +- Volume usage (m3) + +To be compatible with the Home Assistant energy units of measurement, heat usage is converted to MWh, from usage in GJ, which is supplied by the device, using a conversion factor: 1 GJ = 0.277778 MWh. + +Further data that is read from the device is added as diagnostic entities: + +- Heat usage measured in GJ, as is read from the device before conversion +- Ownership number +- Volume previous year (m3) +- Heat previous year (MWh) +- Error number +- Device number +- Measurement period minutes +- Power max (kW) +- Power max previous year (kW) +- Flow rate max (m3ph) +- Flow rate max previous year (m3ph) +- Flow temperature max (°C) +- Return temperature max (°C) +- Flow temperature max previous year (°C) +- Return temperature max previous year (°C) +- Operating hours +- Fault hours +- Fault hours previous year +- Yearly set day +- Monthly set day +- Meter date time +- Measuring range (m3ph) +- Settings and firmware +- Flow hours + +## Energy Dashboard + +Either heat usage or volume usage can be used as "Gas" on the energy dashboard. If you want to supply a price per MWh, make sure to apply the conversion factor first. + +## Polling the device + +Polling is by default done only once per day (and once right after adding the integration). Every time the Heat Meter values are read, battery time of the device will (supposedly) go down by about 30 minutes. + +For detailed control on polling and time of polling, consider disabling polling in the integration panel and poll manually. For instructions, see below. + +### Polling manually (optional) + +For detailed control on when the device is polled, disable the default polling for this integration and create an automation that will update one of the entities (the other entities will be updated as well) + +If you're comfortable with YAML, this game could be used: + +```yaml +alias: "Heat Meter manual update" +trigger: + - platform: time + at: "23:30:00" +action: + - service: homeassistant.update_entity + target: + entity_id: sensor.heat_meter_heat_usage_gj +``` diff --git a/source/_integrations/led_ble.markdown b/source/_integrations/led_ble.markdown new file mode 100644 index 00000000000..e8803452fc6 --- /dev/null +++ b/source/_integrations/led_ble.markdown @@ -0,0 +1,53 @@ +--- +title: LED BLE +description: Instructions on how to integrate LED BLE devices into Home Assistant. +ha_category: + - Light +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Polling +ha_codeowners: + - '@bdraco' +ha_domain: led_ble +ha_config_flow: true +ha_platforms: + - light +ha_integration_type: integration +--- + +Integrates multiple brands of Bluetooth Low Energy LED devices into Home Assistant. + +{% include integrations/config_flow.md %} + +This integration works with devices that identify with the following names: + +- LEDnet (except LEDnetWF models) +- BLE-LED +- LEDBLE +- Triones +- LEDBlue +- Dream +- QHM +- AP + +These devices have been sold under many brands, including: + +- ALED +- AVERYSHOP +- BLE-LED +- EPBOWPT +- HaoDeng (some models) +- Happy Lighting +- hun hun +- ILC +- LEDBlue +- LED BLE +- MCWOFI +- PHOPOLLO +- RESHAKE +- REYSURPIUS +- SUPERNIGHT +- Triones +- Zengee +- YONEDA +- Zerproc diff --git a/source/_integrations/leviton_z_wave.markdown b/source/_integrations/leviton_z_wave.markdown index 3921d04c27b..4741cb7d761 100644 --- a/source/_integrations/leviton_z_wave.markdown +++ b/source/_integrations/leviton_z_wave.markdown @@ -22,6 +22,7 @@ ha_category: - Sensor - Siren - Switch + - Updates ha_domain: leviton_z_wave ha_integration_type: integration works_with: @@ -41,6 +42,7 @@ ha_platforms: - sensor - siren - switch + - update ha_zeroconf: true ha_supporting_domain: zwave_js ha_supporting_integration: Z-Wave diff --git a/source/_integrations/lifx.markdown b/source/_integrations/lifx.markdown index 5c205728a61..621365f6715 100644 --- a/source/_integrations/lifx.markdown +++ b/source/_integrations/lifx.markdown @@ -2,6 +2,7 @@ title: LIFX description: Instructions on how to integrate LIFX into Home Assistant. ha_category: + - Button - Light ha_iot_class: Local Polling ha_release: 0.81 @@ -9,6 +10,8 @@ ha_config_flow: true ha_domain: lifx ha_homekit: true ha_platforms: + - binary_sensor + - button - light ha_integration_type: integration ha_codeowners: @@ -114,6 +117,18 @@ Run an effect that does nothing, thereby stopping any other effect that might be | ---------------------- | ----------- | | `entity_id` | String or list of strings that point at `entity_id`s of lights. Use `entity_id: all` to target all. +## Buttons + +The LIFX button platform creates two buttons for each LIFX device. + +### Identify Button + +The Identify button will flash the bulb three times at maximum brightness then return the bulb to the state it was in prior. Successful identification requires the bulb to be powered on and already configured in Home Assistant. + +### Restart Button + +The Restart button triggers the bulb to restart in exactly the same way as a physical power cycle, which makes it ideal for triggering a new DHCP request from the bulb. + ## HomeKit Accessory Protocol Most LIFX devices support Apple HomeKit via the HomeKit Accessory Protocol (HAP). If a LIFX device has not already been added to HomeKit natively using an Apple iOS or macOS device, it can be paired with Home Assistant using via the [HomeKit Controller](/integrations/homekit_controller) integration which uses HAP. diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown index 885e15ce12a..82cdf58c9ec 100644 --- a/source/_integrations/light.mqtt.markdown +++ b/source/_integrations/light.mqtt.markdown @@ -167,6 +167,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: 'A list of IDs that uniquely identify the device. For example a serial number.' required: false @@ -720,13 +724,18 @@ state_topic: required: false type: string supported_color_modes: - description: A list of color modes supported by the list. This is required if `color_mode` is `True`. Possible color modes are `onoff`, `brightness`, `color_temp`, `hs`, `xy`, `rgb`, `rgbw`, `rgbww`. + description: A list of color modes supported by the list. This is required if `color_mode` is `True`. Possible color modes are `onoff`, `brightness`, `color_temp`, `hs`, `xy`, `rgb`, `rgbw`, `rgbww`, `white`. required: false type: list unique_id: description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception. required: false type: string +white_scale: + description: "Defines the maximum white level (i.e., 100%) of the MQTT device. This is used when setting the light to white mode." + required: false + type: integer + default: 255 {% endconfiguration %}
diff --git a/source/_integrations/litterrobot.markdown b/source/_integrations/litterrobot.markdown index a0c4b3433ad..adf1a2a3e1d 100644 --- a/source/_integrations/litterrobot.markdown +++ b/source/_integrations/litterrobot.markdown @@ -12,7 +12,9 @@ ha_release: 2021.3 ha_config_flow: true ha_codeowners: - '@natekspencer' + - '@tkdrob' ha_domain: litterrobot +ha_dhcp: true ha_platforms: - button - select @@ -22,30 +24,39 @@ ha_platforms: ha_integration_type: integration --- -The Litter-Robot integration allows you to control and monitor your Wi-Fi-enabled, automatic, self-cleaning litter box for cats. +The Litter-Robot integration allows you to control and monitor your Wi-Fi-enabled, automatic, self-cleaning litter box and pet feeders. -You will need a Litter-Robot account as well as a Wi-Fi-enabled Litter-Robot unit that has already been associated with your account. - -The Feeder-Robot and Litter-Robot 4 are not currently supported by this integration. +You will need a Litter-Robot account as well as a Wi-Fi-enabled Litter-Robot or Feeder-Robot unit that has already been associated with your account. {% include integrations/config_flow.md %} ## Entities -The following entities are created for this component and identified by a single device per Litter-Robot unit: +### Litter-Robot -| Entity | Domain | Description | -| ----------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| Litter Box | `vacuum` | Main entity that represents a Litter-Robot unit. | -| Night Light Mode | `switch` | When turned on, automatically turns on the night light in darker settings. | -| Panel Lockout | `switch` | When turned on, disables the buttons on the unit to prevent changes to settings. | -| Last Seen | `sensor` | Displays the time the unit was last seen / reported an update. | -| Sleep Mode Start Time | `sensor` | When sleep mode is enabled, displays the current or next sleep mode start time. | -| Sleep Mode End Time | `sensor` | When sleep mode is enabled, displays the current or last sleep mode end time. | -| Status Code | `sensor` | Displays the status code (Clean Cycle in Progress, Ready, Drawer Full, etc). | -| Waste Drawer | `sensor` | Displays the current waste drawer level. | -| Clean Cycle Wait Time Minutes | `select` | View and select the clean cycle wait time. | -| Reset Waste Drawer | `button` | Button to reset the waste drawer level to 0%. | +| Entity | Domain | Description | +| ----------------------------- | -------- | -------------------------------------------------------------------------------- | +| Litter Box | `vacuum` | Main entity that represents a Litter-Robot unit. | +| Night Light Mode | `switch` | When turned on, automatically turns on the night light in darker settings. | +| Panel Lockout | `switch` | When turned on, disables the buttons on the unit to prevent changes to settings. | +| Last Seen | `sensor` | Displays the time the unit was last seen / reported an update. | +| Pet weight | `sensor` | Displays the last measured pet weight, only for Litter-Robot 4. | +| Sleep Mode Start Time | `sensor` | When sleep mode is enabled, displays the current or next sleep mode start time. | +| Sleep Mode End Time | `sensor` | When sleep mode is enabled, displays the current or last sleep mode end time. | +| Status Code | `sensor` | Displays the status code (Clean Cycle in Progress, Ready, Drawer Full, etc). | +| Waste Drawer | `sensor` | Displays the current waste drawer level. | +| Clean Cycle Wait Time Minutes | `select` | View and select the clean cycle wait time. | +| Reset Waste Drawer | `button` | Button to reset the waste drawer level to 0%, only for Litter-Robot 3. | + +### Feeder-Robot + +| Entity | Domain | Description | +| ---------------- | -------- | -------------------------------------------------------------------------------- | +| Give snack | `button` | Button to dispense a single snack portion. | +| Meal insert size | `select` | View and select the meal insert size. | +| Food level | `sensor` | Displays the approximate food level remaining in the hopper. | +| Night light mode | `switch` | When turned on, automatically turns on the night light in darker settings. | +| Panel lockout | `switch` | When turned on, disables the buttons on the unit to prevent changes to settings. | ## Additional Attributes @@ -61,11 +72,11 @@ Some entities have attributes in addition to the default ones that are available ## Services -Services are utilized for additional functionality that is available in the Litter-Robot companion app. The following are currently available: +Services are utilized for additional functionality that is available in the Whisker (previously Litter-Robot) companion app. The following are currently available: ### set_sleep_mode -Enables (with `start_time` parameter) or disables sleep mode on the Litter-Robot. +Enables (with `start_time` parameter) or disables sleep mode on the Litter-Robot. Currently, this is limited to only the Litter-Robot 3. To make changes to the sleep schedule on your Litter-Robot 4, please continue to use the Whisker app. | Parameter | Type | Required | Description | | ---------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/source/_integrations/lock.mqtt.markdown b/source/_integrations/lock.mqtt.markdown index 405702eda53..f323e377447 100644 --- a/source/_integrations/lock.mqtt.markdown +++ b/source/_integrations/lock.mqtt.markdown @@ -102,6 +102,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: 'A list of IDs that uniquely identify the device. For example a serial number.' required: false diff --git a/source/_integrations/lutron_caseta.markdown b/source/_integrations/lutron_caseta.markdown index 7f8ce9a05f6..bbde0afcc7c 100644 --- a/source/_integrations/lutron_caseta.markdown +++ b/source/_integrations/lutron_caseta.markdown @@ -17,6 +17,7 @@ ha_config_flow: true ha_codeowners: - '@swails' - '@bdraco' + - '@danaues' ha_zeroconf: true ha_homekit: true ha_platforms: diff --git a/source/_integrations/melnor.markdown b/source/_integrations/melnor.markdown new file mode 100644 index 00000000000..81434fa489b --- /dev/null +++ b/source/_integrations/melnor.markdown @@ -0,0 +1,36 @@ +--- +title: Melnor Bluetooth +description: Instructions on setting up Melnor Bluetooth devices within Home Assistant. +ha_category: + - Switch +ha_iot_class: Local Polling +ha_bluetooth: true +ha_release: 2022.9 +ha_config_flow: true +ha_codeowners: + - '@vanstinator' +ha_domain: melnor +ha_platforms: + - switch +ha_integration_type: integration +--- + +The Melnor Bluetooth integration allows you to control your Melnor Bluetooth watering valves. +The devices are set up through Bluetooth and don't need any additional bridge or gateway. + +1-zone, 2-zone, and 4-zone valves are supported. + +These devices have been sold under at least the following brands: + +- [Melnor](https://melnor.com/) +- [Eden](https://edengarden.com/) + +{% include integrations/config_flow.md %} + +The Melnor Bluetooth integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth/) integration is enabled and functional. + +## Troubleshooting + +### No devices found on the network + +Make sure nothing else is connected to the valve. The valve will not respond to Bluetooth discovery requests from Home Assistant if another device, such as your phone, is already connected. diff --git a/source/_integrations/mjpeg.markdown b/source/_integrations/mjpeg.markdown index e0959747793..db117a61646 100644 --- a/source/_integrations/mjpeg.markdown +++ b/source/_integrations/mjpeg.markdown @@ -60,4 +60,3 @@ use is automatically detected when using a username and password. - Legacy Foscam / wanscam - MJPEG URL: `http://IP:PORT/videostream.cgi` (add ?resultion=32 for 640x480 or ?resultion=32 for 320x240) - Still Image URL: `http://IP:PORT/snapshot.cgi` - diff --git a/source/_integrations/nextdns.markdown b/source/_integrations/nextdns.markdown index 979b1ffac46..e38f2384cb0 100644 --- a/source/_integrations/nextdns.markdown +++ b/source/_integrations/nextdns.markdown @@ -10,11 +10,13 @@ ha_codeowners: - '@bieniu' ha_domain: nextdns ha_platforms: + - binary_sensor - button - diagnostics - sensor - switch ha_integration_type: integration +ha_quality_scale: platinum --- NextDNS is a DNS service that protects from all kinds of security threats, blocks ADS and trackers on websites and in apps, and provides a safe and supervised Internet for kids — on all devices and on all networks. The NextDNS integration allows you to monitor NextDNS statistics and control its configuration. diff --git a/source/_integrations/number.mqtt.markdown b/source/_integrations/number.mqtt.markdown index 9d98f91c971..56f1191afa8 100644 --- a/source/_integrations/number.mqtt.markdown +++ b/source/_integrations/number.mqtt.markdown @@ -89,6 +89,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: 'A list of IDs that uniquely identify the device. For example a serial number.' required: false @@ -159,6 +163,11 @@ max: required: false type: float default: 100 +mode: + description: Control how the number should be displayed in the UI. Can be set to `box` or `slider` to force a display mode. + required: false + type: string + default: '"auto"' name: description: The name of the Number. required: false diff --git a/source/_integrations/nutrichef.markdown b/source/_integrations/nutrichef.markdown new file mode 100644 index 00000000000..79a5f31a5f0 --- /dev/null +++ b/source/_integrations/nutrichef.markdown @@ -0,0 +1,20 @@ +--- +title: Nutrichef +description: Instructions on how to integrate Nutrichef devices into Home Assistant. +ha_category: + - Sensor +ha_bluetooth: true +ha_release: 2022.8 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: nutrichef +ha_config_flow: true +ha_platforms: + - sensor +ha_integration_type: integration +ha_supporting_domain: inkbird +ha_supporting_integration: INKBIRD +--- + +{% include integrations/supported_brand.md %} diff --git a/source/_integrations/nzbget.markdown b/source/_integrations/nzbget.markdown index 74af1465bae..9144c44bee9 100644 --- a/source/_integrations/nzbget.markdown +++ b/source/_integrations/nzbget.markdown @@ -34,6 +34,7 @@ This component will create these sensors: - `nzbget_post_processing_paused`: Whether post processing is paused. - `nzbget_uptime`: NZBGet server uptime. - `nzbget_size`: Amount of data downloaded since server start in MB. +- `nzbget_speed_limit`: Download queue speed limit in MB/s. ## Event Automation diff --git a/source/_integrations/octoprint.markdown b/source/_integrations/octoprint.markdown index 53f70c4fa5a..64634070862 100644 --- a/source/_integrations/octoprint.markdown +++ b/source/_integrations/octoprint.markdown @@ -2,6 +2,7 @@ title: OctoPrint description: Integration between OctoPrint and Home Assistant. ha_category: + - 3D Printing - Binary Sensor - Button - Sensor @@ -57,7 +58,7 @@ verify ssl: ### API Key For the integration to work, please check that in Octoprint, the plugin Discovery is enabled and in the settings -> printer notifications menu pop-ups are enabled. -The Octoprint integration will attempt to register itself via the [application keys plugin](https://docs.octoprint.org/en/master/bundledplugins/appkeys.html). After submitting the configuration UI in Home Assistant, open the Octoprint UI and click allow on the prompt. +The Octoprint integration will attempt to register itself via the [application keys plugin](https://docs.octoprint.org/en/master/bundledplugins/appkeys.html). After submitting the configuration UI in Home Assistant, open the Octoprint UI and click allow on the prompt. ## Binary Sensor diff --git a/source/_integrations/openexchangerates.markdown b/source/_integrations/openexchangerates.markdown index 7a095e28eaf..57f69503368 100644 --- a/source/_integrations/openexchangerates.markdown +++ b/source/_integrations/openexchangerates.markdown @@ -4,44 +4,18 @@ description: Instructions on how to integrate exchange rates from https://openex ha_category: - Finance ha_iot_class: Cloud Polling +ha_config_flow: true ha_release: 0.23 ha_domain: openexchangerates ha_platforms: - sensor ha_integration_type: integration +ha_codeowners: + - '@MartinHjelmare' --- -The `openexchangerates` sensor will show you the current exchange rate from [Open Exchange Rates](https://openexchangerates.org) that provides realtime exchange rates for [170 currencies](https://openexchangerates.org/currencies). The free account is limited to only USD as a base currency, allows 1000 requests per month, and updates every hour. +The Open Exchange Rates integration will show you the current exchange rate from [Open Exchange Rates](https://openexchangerates.org) that provides real-time exchange rates for [170 currencies](https://openexchangerates.org/currencies). The free account is limited to only USD as a base currency, allows 1000 requests per month, and updates every hour. Obtain your API key [here](https://openexchangerates.org/signup) -To enable this sensor, add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: openexchangerates - api_key: YOUR_API_KEY - quote: EUR -``` - -{% configuration %} -name: - description: The name of the sensor. - required: false - type: string - default: Exchange Rate Sensor -api_key: - description: "The API Key for [Open Exchange Rates](https://openexchangerates.org)." - required: true - type: string -quote: - description: The symbol of the quote or target currency. - required: true - type: string -base: - description: The symbol of the base currency. Note that, changing the API `base` currency is not part of the freemium API plan. - required: false - type: string - default: USD -{% endconfiguration %} +{% include integrations/config_flow.md %} diff --git a/source/_integrations/openuv.markdown b/source/_integrations/openuv.markdown index 48f8db12e13..b5ead6caa89 100644 --- a/source/_integrations/openuv.markdown +++ b/source/_integrations/openuv.markdown @@ -31,20 +31,6 @@ trained medical professional. To generate an API key, [simply log in to the OpenUV website](https://www.openuv.io/auth/google). -
-Beginning February 1, 2019, the "Limited" plan (which is what new users are -given by default) is limited to 50 API requests per day. Because different -API plans and locations will have different requirements, the `openuv` -component does not automatically query the API for new data after it initially -loads. To request new data, the `update_data` service may be used. -
- -
-Each use of the `update_data` service will consume 2 API calls from the daily quota -(since it performs the same tasks as back-to-back calls of the `update_uv_index_data` and -the `update_protection_data` services). -
- {% include integrations/config_flow.md %} ## Sensors @@ -56,6 +42,44 @@ the `update_protection_data` services). | Current UV Level | Sensor | UV Level (as literal) | | Max UV Index | Sensor | max UV Index for the day (at solar noon) | | Protection Window | Binary Sensor | whether sunblock protection should be used | +| Skin Type 1 Safe Exposure Time | Sensor | the amount of time [Fitzpatrick skin type 1](https://en.wikipedia.org/wiki/Fitzpatrick_scale) can be in the sun unprotected | +| Skin Type 2 Safe Exposure Time | Sensor | the amount of time [Fitzpatrick skin type 2](https://en.wikipedia.org/wiki/Fitzpatrick_scale) can be in the sun unprotected | +| Skin Type 3 Safe Exposure Time | Sensor | the amount of time [Fitzpatrick skin type 3](https://en.wikipedia.org/wiki/Fitzpatrick_scale) can be in the sun unprotected | +| Skin Type 4 Safe Exposure Time | Sensor | the amount of time [Fitzpatrick skin type 4](https://en.wikipedia.org/wiki/Fitzpatrick_scale) can be in the sun unprotected | +| Skin Type 5 Safe Exposure Time | Sensor | the amount of time [Fitzpatrick skin type 5](https://en.wikipedia.org/wiki/Fitzpatrick_scale) can be in the sun unprotected | +| Skin Type 6 Safe Exposure Time | Sensor | the amount of time [Fitzpatrick skin type 6](https://en.wikipedia.org/wiki/Fitzpatrick_scale) can be in the sun unprotected | + +## Updating Data + +
+OpenUV does _not_ automatically update data for its entities! Users must manually +update data via the `homeassistant.update_entity` service. +
+ +Beginning February 1, 2019, the "Limited" plan (which is what new users are given by +default) is limited to 50 API requests per day. Because different API plans and +locations will have different requirements, the `openuv` component does not automatically +query the API for new data after it initially loads. To request new data, the +`homeassistant.update_entity` service should be used. + +Note that in the case of UV and ozone data, selecting any one of: + +* Current Ozone Level +* Current UV Index +* Current UV Level +* Max UV Index +* Skin Type 1 Safe Exposure Time +* Skin Type 2 Safe Exposure Time +* Skin Type 3 Safe Exposure Time +* Skin Type 4 Safe Exposure Time +* Skin Type 5 Safe Exposure Time +* Skin Type 6 Safe Exposure Time + +...as the target for the `homeassistant.update_entity` service will update the data for +_all_ of these entities. + +To protect against possible API call waste, all calls to `homeassistant.update_entity` +that reference an OpenUV entity are throttled to a minimum of 15 minutes between calls. ### Protection Window @@ -64,81 +88,20 @@ The Protection Window binary sensor will be `on` when sunblock protection should By default, this occurs anytime the UV index is above 3.5. This behavior can be configured via the config entry options within the UI. Two parameters are given: -* `Starting UV index for the protection window`: the UV index that, when passed, indicates protection should be utilized -* `Ending UV index for the protection window`: the UV index that, when passed, indicates protection is no longer required - -### The Fitzpatrick Scale - -The approximate number of minutes of a particular skin type can be exposed to -the sun before burning/tanning starts is based on the -[Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale). - -OpenUV integration provide sensors for safe exposure time (in minutes) based on skin type: - -- Skin Type 1 Safe Exposure Time -- Skin Type 2 Safe Exposure Time -- Skin Type 3 Safe Exposure Time -- Skin Type 4 Safe Exposure Time -- Skin Type 5 Safe Exposure Time -- Skin Type 6 Safe Exposure Time - -## Services - -### `openuv.update_data` - -Perform an on-demand update of OpenUV data. - -### `openuv.update_uv_index_data` - -Perform an on-demand update of OpenUV sensor data including current UV index, but not the `uv_protection_window`, saving an API call over `update_data`. - -### `openuv.update_protection_data` - -Perform an on-demand update of OpenUV `uv_protection_window` data, but not the sensors, saving an API call. +* `Starting UV index for the protection window`: the UV index that, when passed, indicates + protection should be utilized +* `Ending UV index for the protection window`: the UV index that, when passed, indicates + protection is no longer required ## Examples of Updating Data -To perform an optimal amount of API calls you need to know the hours of daylight on the longest day of the year. If for example this is 17 hours, you can perform 2 calls around every 45 minutes without running into the 50 API call limit per day: +Update the UV index data every 20 minutes while the sun is at least 10 degrees above the +horizon: {% raw %} - ```yaml automation: - alias: "Update OpenUV" - trigger: - # Time pattern of /45 will not work as expected, it will trigger on the whole hour and on the whole hour + 45 minutes. - # Using more frequent time pattern and a condition to get the intended behavior. - - platform: time_pattern - minutes: "/15" - condition: - - condition: sun - after: sunrise - before: sunset - # The last call will most likely fall before the sunset, thus leaving an UV index value not at 0 for the remaining night. - # To fix this, we allow one more service call after the sun has set. - before_offset: "+00:45:00" - # We check if the last trigger has been 40 minutes or more ago so we don't run into timing issues. - # By checking for 40 minutes or greater we ensure this is only true at the 45 minute mark. - - condition: template - value_template: >- - {{ - state_attr('automation.update_openuv', 'last_triggered') == None or - (now() - state_attr('automation.update_openuv', 'last_triggered')) >= timedelta(hours = 0, minutes = 40) - }} - action: - - service: openuv.update_data - -``` - -{% endraw %} - -Update the UV index data every 20 minutes while the sun is at least 10 degrees above the horizon: - -{% raw %} - -```yaml -automation: - - alias: "Update OpenUV every 20 minutes while the sun is at least 10 degrees above the horizon" trigger: platform: time_pattern minutes: "/20" @@ -148,33 +111,66 @@ automation: value_template: "{{ state.attributes.elevation }}" above: 10 action: - service: openuv.update_uv_index_data + service: homeassistant.update_entity + target: + entity_id: sensor.LATITUDE_LONGITUDE_current_uv_index ``` - {% endraw %} -Update the protection window once a day: +Update the protection window once a day at 12:00pm: ```yaml automation: - - alias: "Update OpenUV protection window once a day" + - alias: "Update OpenUV" trigger: platform: time - at: "02:12:00" + at: "12:00:00" action: - service: openuv.update_protection_data + service: homeassistant.update_entity + target: + entity_id: binary_sensor.LATITUDE_LONGITUDE_protection_window ``` -Another method (useful when monitoring locations other than the Home Assistant latitude -and longitude, in locations where there is a large amount of sunlight per day, -etc.) might be to simply query the API less often: +To perform an optimal amount of API calls in locations where the amount of daylight +varies, you need to know the total hours of daylight on the longest day of the year. If, +for example, this is 17 hours, you can perform 2 calls around every 45 minutes without +running into the 50 API call limit per day: +{% raw %} ```yaml automation: - - alias: "Update OpenUV every hour (48 of 50 calls per day)" + - alias: "Update OpenUV" trigger: - platform: time_pattern - hours: "*" + # Time pattern of /45 will not work as expected, as it will sometimes be true + # twice per hour (on the whole hour and on the whole hour + 45 minutes); use a + # more frequent time pattern and a condition to get the intended behavior: + - platform: time_pattern + minutes: "/15" + condition: + - condition: sun + after: sunrise + before: sunset + # The last call will most likely fall before the sunset, leaving the UV index at + # something other than 0 for the remainder of the night; to fix this, we allow + # one more service call after the sun has set: + before_offset: "+00:45:00" + - condition: template + # We check if the last trigger has been 40 minutes or more ago so we don't run + # into timing issues; by checking for 40 minutes or greater, we ensure this is + # only true at the 45 minute mark: + value_template: >- + {{ + state_attr('automation.update_openuv', 'last_triggered') == None + or ( + now() - state_attr('automation.update_openuv', 'last_triggered') + ) >= timedelta(hours = 0, minutes = 40) + }} action: - service: openuv.update_data + service: homeassistant.update_entity + target: + entity_id: + # Update both UV and protection window data: + - binary_sensor.LATITUDE_LONGITUDE_protection_window + - sensor.LATITUDE_LONGITUDE_current_uv_index ``` +{% endraw %} diff --git a/source/_integrations/p1_monitor.markdown b/source/_integrations/p1_monitor.markdown index e55704db2d7..c69f33f735a 100644 --- a/source/_integrations/p1_monitor.markdown +++ b/source/_integrations/p1_monitor.markdown @@ -49,6 +49,14 @@ See per phase what your voltage, current and power consumption/production is. - Power consumed phases L1/2/3 (W) - Power Produced phases L1/2/3 (W) +### WaterMeter + +See how much water you consume per day, in total and the number of counted pulses. + +- Water Consumption - day (liters) +- Water Consumption - total (m3) +- Pulse Count + ### Settings You can use the rates set in P1 Monitor for your calculations in Home Assistant. diff --git a/source/_integrations/prusalink.markdown b/source/_integrations/prusalink.markdown new file mode 100644 index 00000000000..3e60e8eefdc --- /dev/null +++ b/source/_integrations/prusalink.markdown @@ -0,0 +1,23 @@ +--- +title: PrusaLink +description: Instructions on monitoring Prusa 3D printers using PrusaLink. +ha_category: + - 3D Printing +ha_iot_class: Local Polling +ha_release: '2022.9' +ha_config_flow: true +ha_codeowners: + - '@balloob' +ha_domain: prusalink +ha_integration_type: integration +ha_platforms: + - camera + - sensor +ha_dhcp: true +--- + +The PrusaLink integration allows you to monitor your [Prusa 3D printer](https://www.prusa3d.com) and its progress with your Home Assistant installation. + +{% include integrations/config_flow.md %} + +This integration requires PrusaLink v2. If you have the Prusa MINI, you need to run firmware 4.4.0 or later. diff --git a/source/_integrations/pure_energie.markdown b/source/_integrations/pure_energie.markdown index 5f4521e7d26..7dd273c1a35 100644 --- a/source/_integrations/pure_energie.markdown +++ b/source/_integrations/pure_energie.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@klaasnicolaas' ha_domain: pure_energie ha_platforms: + - diagnostics - sensor ha_quality_scale: platinum ha_zeroconf: true diff --git a/source/_integrations/pushover.markdown b/source/_integrations/pushover.markdown index 65c62e1ff9c..eca13ead7fe 100644 --- a/source/_integrations/pushover.markdown +++ b/source/_integrations/pushover.markdown @@ -4,11 +4,14 @@ description: Instructions on how to add Pushover notifications to Home Assistant ha_category: - Notifications ha_release: pre 0.7 +ha_config_flow: true ha_iot_class: Cloud Push ha_domain: pushover ha_platforms: - notify ha_integration_type: integration +ha_codeowners: + - '@engrbm87' --- The [Pushover service](https://pushover.net/) is a platform for the notify component. This allows integrations to send messages to the user using Pushover. @@ -17,32 +20,7 @@ The [Pushover service](https://pushover.net/) is a platform for the notify compo In order to get an API key you need to [register an application](https://pushover.net/apps/clone/home_assistant) on the Pushover website. Your Pushover user key can be found on the [Pushover dashboard](https://pushover.net/dashboard). -To use Pushover notifications, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -notify: - - name: NOTIFIER_NAME - platform: pushover - api_key: YOUR_API_KEY - user_key: YOUR_USER_KEY -``` - -{% configuration %} -name: - description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`. - required: false - default: notify - type: string -api_key: - description: Your API key. - required: true - type: string -user_key: - description: Your user key for Pushover. - required: true - type: string -{% endconfiguration %} +{% include integrations/config_flow.md %} Example Automation: diff --git a/source/_integrations/qingping.markdown b/source/_integrations/qingping.markdown new file mode 100644 index 00000000000..aaac807b064 --- /dev/null +++ b/source/_integrations/qingping.markdown @@ -0,0 +1,34 @@ +--- +title: Qingping +description: Instructions on how to integrate Qingping devices into Home Assistant. +ha_category: + - Binary Sensor + - Sensor +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: qingping +ha_config_flow: true +ha_platforms: + - binary_sensor + - sensor +ha_integration_type: integration +--- + +Integrates [Qingping](https://qingping.co/) devices into Home Assistant. + +{% include integrations/config_flow.md %} + +The Qingping integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. + +## Supported devices + +- [Air Monitor Lite](https://www.qingping.co/air-monitor-lite/overview) (CGDN1) +- [Alarm Clock](https://www.qingping.co/bluetooth-alarm-clock/overview) (CGD1) +- [BT Clock Lite](https://www.qingping.co/bluetooth-clock/overview) (CGC1) +- [Door/Window Sensor](https://www.qingping.co/door-window-sensor/overview) (CGH1) +- [LEE GUITARS Thermo-Hygrometer](https://www.qingping.co/lee-guitars-thermo-hygrometer/overview) (CGM1) +- [Motion & Ambient Light Sensor](https://www.qingping.co/motion-light-sensor/overview) (CGPR1) +- [Temp RH M](https://www.qingping.co/temp-rh-monitor/overview#mi) (CGG1) diff --git a/source/_integrations/rainmachine.markdown b/source/_integrations/rainmachine.markdown index daff3f87c7f..1c5b2b78acb 100644 --- a/source/_integrations/rainmachine.markdown +++ b/source/_integrations/rainmachine.markdown @@ -6,6 +6,8 @@ ha_category: - Irrigation - Sensor - Switch + - Update + - Updates ha_release: 0.69 ha_iot_class: Local Polling ha_config_flow: true @@ -14,9 +16,11 @@ ha_codeowners: ha_domain: rainmachine ha_platforms: - binary_sensor + - button - diagnostics - sensor - switch + - update ha_zeroconf: true ha_homekit: true ha_integration_type: integration @@ -27,6 +31,7 @@ The RainMachine integration is the main integration to integrate all platforms r There is currently support for the following device types within Home Assistant: - Binary Sensor +- Button - Sensor - [Switch](#switch) @@ -139,3 +144,8 @@ Programs and zones are linked. While a program is running, you will see both the Many RainMachine entities are enabled by default. Others, like those related to flow sensors, are disabled by default if they only apply to some controllers. You can view all entities for a controller and enable/disable them as appropriate in the Device screen for your RainMachine controller. [wnum reference]: https://github.com/sprinkler/rainmachine-developer-resources/blob/d47e1ad59dee59e34094ad41636ae289275eb973/sdk-parsers/RMDataFramework/rmWeatherData.py#L13 + +## Firmware Updates + +The integration has an [update entity](/integrations/update/) that provides information on the latest available RainMachine firmware version. The firmware update can be triggered and installed onto your RainMachine controller +directly from Home Assistant. diff --git a/source/_integrations/repairs.markdown b/source/_integrations/repairs.markdown index 7e9ae75a115..25ceb1df7a2 100644 --- a/source/_integrations/repairs.markdown +++ b/source/_integrations/repairs.markdown @@ -4,7 +4,6 @@ description: Home Assistant Repairs informs you about issues it has found in you ha_release: 2022.8 ha_category: - Other -ha_iot_class: internal ha_codeowners: - '@home-assistant/core' ha_domain: repairs diff --git a/source/_integrations/risco.markdown b/source/_integrations/risco.markdown index 904a7e1003e..6530dcf56f1 100644 --- a/source/_integrations/risco.markdown +++ b/source/_integrations/risco.markdown @@ -5,7 +5,7 @@ ha_category: - Alarm - Binary Sensor ha_release: '0.115' -ha_iot_class: Cloud Polling +ha_iot_class: Local Push ha_config_flow: true ha_codeowners: - '@OnFreund' @@ -18,14 +18,17 @@ ha_platforms: ha_integration_type: integration --- -This integration connects with Risco Alarms over [Risco Cloud](https://riscocloud.com/). +This integration connects with Risco Alarms, in one of two ways: + +## Risco Cloud (recommended) + +The integration will connect with your alarm over [Risco Cloud](https://riscocloud.com/). +This is easiest to configure, and is widely supported, but is cloud based, and requires polling.
-As from January 2021, Risco have implemented charges for use of their Cloud Features. +As of January 2021, Risco have implemented charges for use of their Cloud Features.
-{% include integrations/config_flow.md %} -
It is recommended to use a regular (non-owner) account with the Risco app/website, and use a different regular account with the integration. Risco has restrictions on concurrent uses by different users, especially if they have different permission levels.
@@ -35,6 +38,17 @@ has the event timestamp as the state, and other event information in attributes. If you have multiple sites, only the first site will be used. +## Local (advanced) + +The integration will connect locally to your system. +No dependency on the cloud, and instantaneous updates, but is harder to set up. +You will need the master code to your system, and with older models, +you might need to either disconnect your system from the cloud, or set up a proxy that will allow you to connect both locally and via the cloud. + +The local version of the integration does not support events, and the `arming` state. + +{% include integrations/config_flow.md %} + ## Options You can configure additional behavior by clicking on **Options** in the relevant box in the Integration panel: diff --git a/source/_integrations/schedule.markdown b/source/_integrations/schedule.markdown new file mode 100644 index 00000000000..b8fc078ccac --- /dev/null +++ b/source/_integrations/schedule.markdown @@ -0,0 +1,110 @@ +--- +title: Schedule +description: Instructions on how use make weekly schedule in Home Assistant. +ha_category: + - Automation + - Helper +ha_release: 2022.9 +ha_quality_scale: internal +ha_codeowners: + - '@home-assistant/core' +ha_domain: schedule +ha_integration_type: helper +--- + +The schedule integration provides a way to create a weekly schedule in +Home Assistant that can be used to trigger or make decisions in your +automations and scripts. + +The preferred way to configure a schedule is via the user interface at +**Settings** -> **Devices & Services** -> **Helpers**. Click the add button +and then choose the **Schedule** option, or click the My button below. + +{% include integrations/config_flow.md %} + +To be able to add **Helpers** via the user interface you should +have `default_config:` in your `configuration.yaml`, it should already +be there by default unless you removed it. + +If you removed `default_config:` from your configuration, +you must add it back or, alternatively, `schedule:` to your +`configuration.yaml` first, before you can create them via the UI. + +Alternatively, a schedule can also be created and configured via YAML +configuration. For example: + +```yaml +# Example configuration.yaml entry +schedule: + thermostat_schedule: + name: "Thermostat schedule" + monday: + - from: "17:00:00" + to: "21:00:00" + tuesday: + - from: "17:00:00" + to: "21:00:00" + wednesday: + - from: "17:00:00" + to: "21:00:00" + thursday: + - from: "17:00:00" + to: "21:00:00" + friday: + - from: "17:00:00" + to: "23:00:00" + saturday: + - from: "07:00:00" + to: "10:00:00" + - from: "16:00:00" + to: "23:00:00" + sunday: + - from: "07:00:00" + to: "21:00:00" +``` + +{% configuration %} +schedule: + description: Alias for the schedule. Multiple entries are allowed. + required: true + type: map + keys: + name: + description: Friendly name of the schedule. + required: true + type: string + icon: + description: Icon to display in the frontend for this schedule. + required: false + type: icon + "monday|tuesday|wednesday|thursday|friday|saturday|sunday": + description: A schedule for each day of the week. + required: false + required: true + type: list + keys: + from: + description: The start time to mark the schedule as active/on. + required: true + type: time + to: + description: The end time to mark as inactive/off again. + required: true + type: time +{% endconfiguration %} + +### Attributes + +A schedule entity's state exports attributes that can be useful in +automations and templates. + +| Attribute | Description | +| ----- | ----- | +| `next_event` | A datetime object containing the next time the schedule is going to change state. | +### Services + +Available service: `schedule.reload`. + +#### schedule.reload + +`schedule.reload` service allows one to reload the schedule's configuration without restarting Home Assistant itself. diff --git a/source/_integrations/select.mqtt.markdown b/source/_integrations/select.mqtt.markdown index 796b94e5269..69dc6bbe7b0 100644 --- a/source/_integrations/select.mqtt.markdown +++ b/source/_integrations/select.mqtt.markdown @@ -106,6 +106,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: 'A list of IDs that uniquely identify the device. For example a serial number.' required: false diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown index 8fc0e9cab7f..75418f5e1d0 100644 --- a/source/_integrations/sensor.mqtt.markdown +++ b/source/_integrations/sensor.mqtt.markdown @@ -90,6 +90,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: A list of IDs that uniquely identify the device. For example a serial number. required: false diff --git a/source/_integrations/sensorblue.markdown b/source/_integrations/sensorblue.markdown new file mode 100644 index 00000000000..0fc5455faa4 --- /dev/null +++ b/source/_integrations/sensorblue.markdown @@ -0,0 +1,20 @@ +--- +title: SensorBlue +description: Instructions on how to integrate SensorBlue devices into Home Assistant. +ha_category: + - Sensor +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: sensorblue +ha_config_flow: true +ha_platforms: + - sensor +ha_integration_type: integration +ha_supporting_domain: thermobeacon +ha_supporting_integration: ThermoBeacon +--- + +{% include integrations/supported_brand.md %} diff --git a/source/_integrations/sensorpro.markdown b/source/_integrations/sensorpro.markdown new file mode 100644 index 00000000000..46f0c00c9f7 --- /dev/null +++ b/source/_integrations/sensorpro.markdown @@ -0,0 +1,27 @@ +--- +title: SensorPro +description: Instructions on how to integrate SensorPro devices into Home Assistant. +ha_category: + - Sensor +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: sensorpro +ha_config_flow: true +ha_platforms: + - sensor +ha_integration_type: integration +--- + +Integrates [SensorPro](https://www.sigmawit.com/) devices into Home Assistant. + +## Supported devices + +- T201 +- T301 + +The SensorPro integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. + +{% include integrations/config_flow.md %} diff --git a/source/_integrations/siren.mqtt.markdown b/source/_integrations/siren.mqtt.markdown index 03d06dad796..2ed69491d47 100644 --- a/source/_integrations/siren.mqtt.markdown +++ b/source/_integrations/siren.mqtt.markdown @@ -112,6 +112,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: A list of IDs that uniquely identify the device. For example a serial number. required: false diff --git a/source/_integrations/sms.markdown b/source/_integrations/sms.markdown index 29ea4ca537b..1300ac30077 100644 --- a/source/_integrations/sms.markdown +++ b/source/_integrations/sms.markdown @@ -26,38 +26,89 @@ This integration provides the following platforms: ## Notifications -To configure the notification service, edit your `configuration.yaml` file: - -```yaml -notify: - - platform: sms - name: sms_person1 - recipient: PHONE_NUMBER - - platform: sms - name: sms_person2 - recipient: PHONE_NUMBER -``` - -You can also receive SMS messages that are sent to the SIM card number in your device. -Every time there is a message received, `event: sms.incoming_sms` is fired with date, phone number and text message. +An SMS message can be sent by calling the `notify.sms`. It will send the message to all phone numbers specified in the `target` parameter. To use notifications, please see the [getting started with automation page](/getting-started/automation/). -If the integration is used with the Home Assistant Operating System, then version [3.6](https://github.com/home-assistant/hassos/releases/tag/3.6) or higher is required. +### Send message -For installations not running on Home Assistant or Home Assistant Core using Docker, you must install `gammu-dev` package: - -```bash -sudo apt-get install libgammu-dev +```yaml +action: + service: notify.sms + data: + message: "This is a message for you!" + target: "+5068081-8181" ``` -Before running for the first time, check that the system recognizes the modem by running: +### Sending SMS using GSM alphabet -```bash -ls -l /dev/*USB* +Some devices (receiving or sending) do not support Unicode (the default encoding). For these you can disable Unicode: + +```yaml +action: + service: notify.sms + data: + message: "This is a message for you in ANSI" + target: "+5068081-8181" + data: + unicode: False ``` -Note: When running Home Assistant, you need to install the SSH add-on. +### Getting SMS messages + +You can also receive SMS messages that are sent to the SIM card number in your device. +Every time there is a message received, `event: sms.incoming_sms` is fired with date, phone number and text message. +Sample automation that forward all SMS to `user1`: + +#### Define a sensor in `configuration.yaml` to protect user phone number + +```yaml +template: + - sensor: + - name: "User1 Phone Number" + state: !secret user1_phone_number +``` + +#### Define a script in `scripts.yaml` to use the sensor + +{% raw %} + +```yaml +notify_sms_user1: + alias: "Notify via SMS to User1" + fields: + message: + description: "The message content" + example: "The light is on!" + sequence: + - service: notify.sms + data: + message: "{{ message }}" + target: "{{ states('sensor.user1_phone_number') }}" + mode: single + icon: mdi:chat-alert +``` + +{% endraw %} + +#### Putting it all together in `automations.yaml` + +{% raw %} + +```yaml +- alias: "Forward SMS" + trigger: + - platform: event + event_type: sms.incoming_sms + action: + - service: script.notify_sms_user1 + data: + message: | + From: {{trigger.event.data.phone}} + {{trigger.event.data.text}} mode: single +``` + +{% endraw %} ## Required Hardware diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown index 6b7b01af154..32d027cf0fc 100644 --- a/source/_integrations/switch.mqtt.markdown +++ b/source/_integrations/switch.mqtt.markdown @@ -100,6 +100,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: A list of IDs that uniquely identify the device. For example a serial number. required: false diff --git a/source/_integrations/switch_as_x.markdown b/source/_integrations/switch_as_x.markdown index 6ecd21459a2..ee55bb0cc0a 100644 --- a/source/_integrations/switch_as_x.markdown +++ b/source/_integrations/switch_as_x.markdown @@ -48,4 +48,4 @@ Type: Where compatible, Switch as X will appear on entity properties. A list of entities can be found in {% my entities title="Settings -> Devices & Services -> Entities" %}. -![Entity properties exampl](/images/integrations/switch_as_x/Entities_Properties.png) \ No newline at end of file +![Entity properties exampl](/images/integrations/switch_as_x/Entities_Properties.png) diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown index 9699635f70b..03bbaea7369 100644 --- a/source/_integrations/switchbot.markdown +++ b/source/_integrations/switchbot.markdown @@ -4,6 +4,7 @@ description: Instructions on how to set up SwitchBot Devices. ha_category: - Binary Sensor - Cover + - Light - Sensor - Switch ha_release: 0.78 @@ -13,11 +14,13 @@ ha_codeowners: - '@danielhiversen' - '@RenierM26' - '@murtas' + - '@Eloston' ha_domain: switchbot ha_bluetooth: true ha_platforms: - binary_sensor - cover + - light - sensor - switch ha_config_flow: true @@ -43,10 +46,13 @@ Please note, device names configured in the SwitchBot app are not transferred in ## Supported Devices +- Color Bulb (WoBulb) - Bot (WoHand) - Contact Sensor (WoContact) - Curtain (WoCurtain) +- Light Strip (WoStrip) - Meter (WoSensorTH) +- Motion Sensor (WoPresence) - Plug Mini (WoPlug), both the original (model W1901400) and HomeKit-enabled (model W1901401) ## SwitchBot Entity diff --git a/source/_integrations/system_bridge.markdown b/source/_integrations/system_bridge.markdown index cf5dd415651..069f2af9dfc 100644 --- a/source/_integrations/system_bridge.markdown +++ b/source/_integrations/system_bridge.markdown @@ -80,6 +80,10 @@ These sensors are also available, but are not enabled by default: | GPU Power Usage | GPU power usage | | GPU Temperature | The current temperature of the GPU | +## Media Source + +This integration is available as a media source to use with the media browser integration. You can browse and view media from your system to media players such as your web browser and other supported media players. + ## Services ### Service `system_bridge.open_path` diff --git a/source/_integrations/tag.mqtt.markdown b/source/_integrations/tag.mqtt.markdown index 6fe6e444fd6..fef5180e88f 100644 --- a/source/_integrations/tag.mqtt.markdown +++ b/source/_integrations/tag.mqtt.markdown @@ -37,6 +37,10 @@ device: description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`." required: false type: [list, map] + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: A list of IDs that uniquely identify the device. For example a serial number. required: false diff --git a/source/_integrations/telegram.markdown b/source/_integrations/telegram.markdown index d753f4deea8..5663552211b 100644 --- a/source/_integrations/telegram.markdown +++ b/source/_integrations/telegram.markdown @@ -387,10 +387,14 @@ action: service: notify.NOTIFIER_NAME data: title: "*Send a message*" - message: "That's an example that sends a message with message_tag and disable_notification." + message: |- + That's an example that sends a message with message_tag, disable_notification and disable_web_page_preview. + HA site data: + parse_mode: html message_tag: "example_tag" disable_notification: True + disable_web_page_preview: True ``` {% configuration %} @@ -403,6 +407,10 @@ disable_notification: required: false default: false type: boolean +disable_web_page_preview: + description: True/false to display a webpage preview. + default: false + type: boolean message_tag: description: Tag for sent message. required: false diff --git a/source/_integrations/telegram_bot.markdown b/source/_integrations/telegram_bot.markdown index ad467c0dfe7..7af68b353ec 100644 --- a/source/_integrations/telegram_bot.markdown +++ b/source/_integrations/telegram_bot.markdown @@ -253,7 +253,7 @@ Remove the bot from the chat group where it was added. ## Telegram notification platform -The [`telegram` notification platform](/integrations/telegram) requires the `telegram_bot` integration to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility. The data attributes `parse_mode`, `disable_notification` and `message_tag` are also supported. +The [`telegram` notification platform](/integrations/telegram) requires the `telegram_bot` integration to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility. The data attributes `parse_mode`, `disable_notification`, `message_tag` and `disable_web_page_preview` are also supported. The required YAML configuration now reduces to: @@ -556,3 +556,16 @@ action: data: message_tag: "example_tag" ``` + +## Example: send_message with disabled webpage preview: + +```yaml +action: +- service: notify.telegram + data: + message: >- + HA site + data: + parse_mode: html + disable_web_page_preview: true +``` diff --git a/source/_integrations/thermobeacon.markdown b/source/_integrations/thermobeacon.markdown new file mode 100644 index 00000000000..0260082ebad --- /dev/null +++ b/source/_integrations/thermobeacon.markdown @@ -0,0 +1,27 @@ +--- +title: ThermoBeacon +description: Instructions on how to integrate ThermoBeacon devices into Home Assistant. +ha_category: + - Sensor +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: thermobeacon +ha_config_flow: true +ha_platforms: + - sensor +ha_integration_type: integration +--- + +Integrates [ThermoBeacon](http://www.seven-like.com/) devices into Home Assistant. + +## Supported devices + +- SensorBlue WS07 +- SensorBlue WS08 + +The ThermoBeacon integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. + +{% include integrations/config_flow.md %} diff --git a/source/_integrations/thermoplus.markdown b/source/_integrations/thermoplus.markdown new file mode 100644 index 00000000000..555e046dae1 --- /dev/null +++ b/source/_integrations/thermoplus.markdown @@ -0,0 +1,20 @@ +--- +title: ThermoPlus +description: Instructions on how to integrate ThermoPlus devices into Home Assistant. +ha_category: + - Sensor +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: thermoplus +ha_config_flow: true +ha_platforms: + - sensor +ha_integration_type: integration +ha_supporting_domain: thermobeacon +ha_supporting_integration: ThermoBeacon +--- + +{% include integrations/supported_brand.md %} diff --git a/source/_integrations/thermopro.markdown b/source/_integrations/thermopro.markdown new file mode 100644 index 00000000000..1a0848ae3ee --- /dev/null +++ b/source/_integrations/thermopro.markdown @@ -0,0 +1,27 @@ +--- +title: ThermoPro +description: Instructions on how to integrate ThermoPro devices into Home Assistant. +ha_category: + - Sensor +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: thermopro +ha_config_flow: true +ha_platforms: + - sensor +ha_integration_type: integration +--- + +Integrates [ThermoPro](https://buythermopro.com/) devices into Home Assistant. + +## Supported devices + +- [TP359](https://buythermopro.com/product/thermopro-tp59-bluetooth-wireless-thermometer-hygrometer-humidity-monitor/) +- [TP357](https://buythermopro.com/product/thermopro-tp357-bluetooth-digital-indoor-hygrometer-thermometer/) + +The ThermoPro integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. + +{% include integrations/config_flow.md %} diff --git a/source/_integrations/tibber.markdown b/source/_integrations/tibber.markdown index 5f239bf63d3..8ba2eebf8b3 100644 --- a/source/_integrations/tibber.markdown +++ b/source/_integrations/tibber.markdown @@ -20,7 +20,7 @@ ha_integration_type: integration --- The `tibber` integration provides a sensor with the current electricity price if you are a [Tibber](https://tibber.com/) customer. -If you have a [Tibber Pulse](https://norge.tibber.com/products/pulse/) or [Watty](https://tibber.com/se/store/produkt/watty-smart-energimatare) it will also show the electricity consumption in real-time. You get a sensor for monthly consumption, monthly cost, and monthly peak hour. If you do have a real-time meter it is updated once every hour, oterwise it is updated once per day. Statistics with hourly consumption and cost data is generated that can be used in the [Energy Dashboard](/docs/energy/). (The ids are `tibber:energy_consumption_HOMEID` and `tibber:energy_totalcost_HOMEID` ) +If you have a [Tibber Pulse](https://norge.tibber.com/products/pulse/) or [Watty](https://tibber.com/se/store/produkt/watty-smart-energimatare) it will also show the electricity consumption in real-time. You get a sensor for monthly consumption, monthly cost, and monthly peak hour. If you do have a real-time meter it is updated once every hour, otherwise it is updated once per day. Statistics with hourly consumption and cost data is generated that can be used in the [Energy Dashboard](/docs/energy/) (the ids are `tibber:energy_consumption_HOMEID` and `tibber:energy_totalcost_HOMEID`). If you produce energy there are also statistics with hourly production and profit data generated which can also be used there (the ids are `tibber:energy_production_HOMEID` and `tibber:energy_profit_HOMEID`). There is currently support for the following device types within Home Assistant: diff --git a/source/_integrations/ukraine_alarm.markdown b/source/_integrations/ukraine_alarm.markdown index 51723c00dc0..2412ee85dba 100644 --- a/source/_integrations/ukraine_alarm.markdown +++ b/source/_integrations/ukraine_alarm.markdown @@ -14,10 +14,12 @@ ha_platforms: ha_integration_type: integration --- -The Ukraine Alarm integration uses the siren.pp.ua API - public wrapper for [Ukraine Alarm](https://www.ukrainealarm.com/) web service to offer air-raid siren notifications. The integration will create 4 binary sensors for your selected region in Ukraine: +The Ukraine Alarm integration uses the siren.pp.ua API - public wrapper for [Ukraine Alarm](https://www.ukrainealarm.com/) web service to offer air-raid siren notifications. The integration will create 6 binary sensors for your selected region in Ukraine: - Air - Artillery +- Chemical +- Nuclear - Urban Fights - Unknown diff --git a/source/_integrations/unifiprotect.markdown b/source/_integrations/unifiprotect.markdown index e26e57c85e4..57a879afbac 100644 --- a/source/_integrations/unifiprotect.markdown +++ b/source/_integrations/unifiprotect.markdown @@ -10,6 +10,7 @@ ha_category: - Light - Lock - Media Player + - Media Source - Number - Select - Sensor @@ -116,7 +117,7 @@ check that this is done. To check and enable the feature: {% include integrations/config_flow.md %} -## Features +## Device Support All known UniFi Protect devices should be supported. Each UniFi Protect device will get a variety of entities added for each of the different entity platforms. @@ -212,6 +213,35 @@ Your main UniFi Protect NVR device also gets a number of diagnostics sensors tha * **Disk Health**: Each disk installed in your NVR will have a disk health sensor. These are simple good/bad sensors and the order is not promised to match the order in UniFi OS. Disk model number is provided as a state attribute though to help map sensor to disk. * **Utilization and Storage Sensors**: Several other sensors are also added for uptime, hardware utilization, and distribution details of the video on disk. +## Media Source + +A media source is provided for your UniFi Protect cameras so you can fetch video clips and event thumbnails. + +### Media Browser + +The media source is split into 5 folders/levels: + +1. NVR Console Selector - only appears if you have more then one Protect NVR Console. Allows you to select your NVR Console you want to view events for. +2. Camera Selector - either lets you select all cameras or a specific camera to view events for. +3. Event Selector - either lets you select all events or a specific event type to view events for. +4. Time Selector - filters events for a given time range: + * Last 24 Hours + * Last 7 Days + * Last 30 Days + * By Month since start of recording - selecting a month lets you either view the whole month or a specific date +5. Event Selector - lets you select the specific event for playback + +Since the media browser does not have any pagination or filtering, all of the events must be loaded into memory. As a result, the number of events loaded at once is truncated to 10,000 by default. The number of events will be listed at "10000 (TRUNCATED)" if the event count was truncated. You can raise or lower the limit of the number of events that can be loaded using the Config Entry Options. + +### Media Identifiers + +Below are the accepted identifiers to resolve media. Since events do not necessarily map to any Home Assistant entity, all IDs are in reference to the UniFi Protect IDs, not Home Assistant ones. + +| Identifier Format | Description | +| -------------------------------- | ---------------------------------- | +| `{nvr_id}:event:{event_id}` | MP4 video clip for specific event. | +| `{nvr_id}:eventthumb:{event_id}` | JPEG thumbnail for specific event. | + ## Services ### Service unifiprotect.set_default_doorbell_text @@ -260,6 +290,17 @@ Use to set the paired doorbell(s) with a smart chime. | `device_id` | No | The device ID of the Chime you want to pair or unpair doorbells to. | | `doorbells` | Yes | A target selector for any number of doorbells you want to pair to the chime. No value means unpair all. | +## Views + +The integration provides two proxy views to proxy media content from your Home Assistant instance so you can access thumbnails and video clips from within the context of Home Assistant without having to expose your UniFi Protect NVR Console. As with the media identifiers, all IDs are UniFi Protect IDs as they may not map to specific Home Assistant entities depending on how you have configured your integration. + +These URLs work great when trying to send notifications. Home Assistant will automatically sign the URLs and make them safe for external consumption if used in an automation or [notify service](/integrations/notify/). + +| View URL | Description | +| ------------------------------------------------------------ | -------------------------------------------------- | +| `/api/unifiprotect/thumbnail/{nvr_id}/{event_id}` | Proxies a JPEG event thumbnail from UniFi Protect. | +| `/api/unifiprotect/video/{nvr_id}/{camera_id}/{start}/{end}` | Proxies a MP4 video clip from UniFi Protect for a specific camera. Start and end must be in [ISO 8601 format](https://www.iso.org/iso-8601-date-and-time-format.html). | + ## Troubleshooting ### Enabling Debug Logging diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown index ec40ccf4be1..b6639ecca2a 100644 --- a/source/_integrations/vacuum.mqtt.markdown +++ b/source/_integrations/vacuum.mqtt.markdown @@ -396,6 +396,10 @@ device: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false type: list + hw_version: + description: The hardware version of the device. + required: false + type: string identifiers: description: A list of IDs that uniquely identify the device. For example a serial number. required: false diff --git a/source/_integrations/vesync.markdown b/source/_integrations/vesync.markdown index 44a8f24f3bf..2df61cc8bf3 100644 --- a/source/_integrations/vesync.markdown +++ b/source/_integrations/vesync.markdown @@ -96,8 +96,8 @@ All VeSync air purifiers expose the remaining filter life, and some also expose | Sensor | Description | Example | | --------------------------------------- | ------------------------------------------------------------------ | ------- | | `filter_life` | Remaining percentage of the filter. (LV-PUR131S, Core200S/300s/400s/600s) | 142 | -| `air_quality` | The current air quality reading. (LV-PUR131S, Core400s/600s) | excellent | -| `pm2_5` | The current air quality reading. (Core400s/600s) | 8 | +| `air_quality` | The current air quality reading. (LV-PUR131S, Core300s/400s/600s) | excellent | +| `pm2_5` | The current air quality reading. (Core300s/400s/600s) | 8 | ## Fan Exposed Attributes diff --git a/source/_integrations/volvooncall.markdown b/source/_integrations/volvooncall.markdown index a0c87fab3fa..096115f8173 100644 --- a/source/_integrations/volvooncall.markdown +++ b/source/_integrations/volvooncall.markdown @@ -14,79 +14,13 @@ ha_platforms: - switch ha_codeowners: - '@molobrakos' - - '@decompil3d' ha_integration_type: integration +ha_config_flow: true --- The `volvooncall` integration offers integration with the [Volvo On Call](https://www.volvocars.com/intl/why-volvo/human-innovation/future-of-driving/connectivity/volvo-on-call) cloud service and offers presence detection as well as sensors such as odometer and fuel level. -## Configuration - -To use Volvo On Call in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -volvooncall: - username: YOUR_USERNAME - password: YOUR_PASSWORD -``` - -Users registered with Volvo in North America or China will need to specify a region: - -```yaml -# North America -volvooncall: - username: YOUR_USERNAME - password: YOUR_PASSWORD - region: na -``` - -or - -```yaml -# China -volvooncall: - username: YOUR_USERNAME - password: YOUR_PASSWORD - region: cn -``` - -{% configuration %} -username: - description: The username associated with your Volvo On Call account. - required: true - type: string -password: - description: The password for your given Volvo On Call account. - required: true - type: string -region: - description: The region where the Volvo is registered. Needs to be set for users in North America or China. - required: false - type: string -service_url: - description: The service URL to use for Volvo On Call. Normally not necessary to specify. - required: false - type: string -mutable: - description: If set to true, include components that can make changes to the vehicle (unlock, start engine, start heater etc). - required: false - default: true - type: boolean -name: - description: "Make it possible to provide a name for the vehicles. Note: Use all lower case letters when inputting your VIN number." - required: false - type: string -resources: - description: A list of resources to display (defaults to all available). - required: false - type: list -scandinavian_miles: - description: If set to true, Scandinavian miles ("mil") are used for distances and fuel range. - required: false - type: boolean - default: false -{% endconfiguration %} +{% include integrations/config_flow.md %} ### Available Resources @@ -130,20 +64,3 @@ The list of currently available resources: - `tyre_pressure_rear_right_tyre_pressure` - `any_door_open` - `any_window_open` - -## Advanced Examples - -A more advanced example for setting the vehicle name and selecting what resources to display: - -```yaml -# Example configuration.yaml entry -volvooncall: - username: YOUR_USERNAME - password: YOUR_PASSWORD - name: - YOUR_VIN_NUMBER: "NEW_NAME" - resources: - - odometer - - lock - - heater -``` diff --git a/source/_integrations/wilight.markdown b/source/_integrations/wilight.markdown index 864b203d4e8..bf5cfc7f39a 100644 --- a/source/_integrations/wilight.markdown +++ b/source/_integrations/wilight.markdown @@ -4,7 +4,9 @@ description: Instructions on how to integrate WiLight devices into Home Assistan ha_category: - Cover - Fan + - Irrigation - Light + - Switch ha_release: 0.115 ha_config_flow: true ha_iot_class: Local Polling @@ -17,6 +19,7 @@ ha_platforms: - cover - fan - light + - switch ha_integration_type: integration --- @@ -25,8 +28,9 @@ The `wilight` integration is to integrate [WiLight](http://www.wilight.com.br) d There is currently support for the following device types within Home Assistant: - Cover (WiLight model C-103). -- Fan (WiLight model V-104). -- Light (WiLight model I-100, I-102 and I-107). +- [Fan](#fan) (WiLight model V-104). +- Light (WiLight model I-100, I-102, I-107, I-110 and I-112). +- [Irrigation](#irrigation) / Switch (WiLight model R-105). {% include integrations/config_flow.md %} @@ -34,14 +38,49 @@ There is currently support for the following device types within Home Assistant: The `wilight` integration allows you to control your Fans from within Home Assistant. -### Services +### Fan Services There are several services which can be used for automations and control of the fan: | Service | Description | | --------- | ----------- | -| `set_percentage` | Calling this service sets the fan speed (entity_id and percentage are required parameters). Percentage must be in the range 0-100, percentage = 0 turns off the fan. There are three speed levels 33%, 66% and 100%. Adjusting to intermediate levels goes to the next higher level. -| `set_direction` | Calling this service will set the fan direction (entity_id and direction are required parameters, and direction must be one of the following: forward or reverse). Calling this service will turn the fan on. -| `toggle` | Calling this service will toggle the fan between on and off states (entity_id is required). -| `turn_off` | Calling this service will turn the fan off (entity_id is required). -| `turn_on` | Calling this service will turn the fan on and set the speed and direction to the last used ones (defaults to high and forward, entity_id is required). +| `set_percentage` | Calling this service sets the fan speed (`entity_id` and `percentage` are required parameters). Percentage must be in the range 0-100, percentage = 0 turns off the fan. There are three speed levels 33%, 66% and 100%. Adjusting to intermediate levels goes to the next higher level. +| `set_direction` | Calling this service will set the fan direction (`entity_id` and `direction` are required parameters, and direction must be one of the following: forward or reverse). Calling this service will turn the fan on. +| `toggle` | Calling this service will toggle the fan between on and off states (`entity_id` is required). +| `turn_off` | Calling this service will turn the fan off (`entity_id` is required). +| `turn_on` | Calling this service will turn the fan on and set the speed and direction to the last used ones (defaults to high and forward, `entity_id` is required). + +## Irrigation + +The `wilight` integration allows you to control your Irrigation from within Home Assistant. This is exposed via switches in Home Assistant. +There are two switch types for Irrigation: `watering switch` and `pause switch`. +A `watering switch` can turn on and off the irrigation valve, while the `pause switch` can disable / enable the action of a `watering switch`. +`Triggers` activate (turn on) the `watering switch` (irrigation valve) at the programmed time. The trigger can be set to run on a day of the week or only once (today). + +### Irrigation Services + +There are several services which can be used for automations and control of the Irrigation: + +- For `watering switch`: + +| Service | Description | +| --------- | ----------- | +| `turn_off` | Calling this service will turn the irrigation valve off (`entity_id` is required). +| `turn_on` | Calling this service will turn the irrigation valve on (`entity_id` is required). +| `set_watering_time` | Calling this service sets the watering time (`entity_id` and `watering_time` are required parameters), `watering_time` must be in the range 1-1800 seconds. +| `set_trigger` | Calling this service sets the trigger_1, trigger_2, trigger_3 or trigger_4 (`entity_id`, `trigger_index` and `trigger` are required parameters), `trigger_index` must be between 1 and 4 and `trigger` must be according Trigger rules (see below). + +- For `pause switch`: + +| Service | Description | +| --------- | ----------- | +| `turn_off` | Calling this service will turn the pause switch off, enabling watering switch (`entity_id` is required). +| `turn_on` | Calling this service will turn the pause switch on, disabling watering switch (`entity_id` is required). +| `set_pause_time` | Calling this service sets the pause time (`entity_id` and `pause_time` are required parameters), `pause_time` must be in the range 1-24 hours. + +Trigger rules: +- String with 8 decimal characters ("0" to "9"). +- The first three characters (String[0,3]) represent an integer from 0 to 127, which corresponds to Bitfield of: 1 - Sunday, 2 - Monday, 4 - Tuesday, 8 - Wednesday, 16 - Thursday, 32 - Friday and 64 - Saturday. Setting zero, trigger is only valid for today. +- String[3,5] represents the hour of trigger, from 0 to 23. +- String[5,7] represents the minute of trigger, from 0 to 59. +- String[7,8] represents the enable trigger, 0 - disabled, 1- enabled. diff --git a/source/_integrations/xiaomi_ble.markdown b/source/_integrations/xiaomi_ble.markdown index 94c6c7cc2f9..2cf0ecf3dbe 100644 --- a/source/_integrations/xiaomi_ble.markdown +++ b/source/_integrations/xiaomi_ble.markdown @@ -2,6 +2,7 @@ title: Xiaomi BLE description: Instructions on how to integrate Xiaomi BLE devices into Home Assistant. ha_category: + - Binary Sensor - Sensor ha_bluetooth: true ha_release: 2022.8 @@ -12,6 +13,7 @@ ha_codeowners: ha_domain: xiaomi_ble ha_config_flow: true ha_platforms: + - binary_sensor - sensor ha_integration_type: integration --- @@ -36,6 +38,12 @@ It is possible that we detect your device because it uses the MiBeacon protocol - Voltage - Battery +It also supports the following classes of binary sensors: + +- Light +- Smoke +- Moisture + ## Encryption Some devices use AES encryption to protect the sensor values they are broadcasting. diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown index d62653b8f1d..a1b03de5106 100644 --- a/source/_integrations/xiaomi_miio.markdown +++ b/source/_integrations/xiaomi_miio.markdown @@ -216,8 +216,11 @@ Supported devices: | Air Purifier 3 (2019) | zhimi.airpurifier.ma4 | | | Air Purifier 3H (2019) | zhimi.airpurifier.mb3 | | | Air Purifier 3C | zhimi.airpurifier.mb4 | | +| Air Purifier 4 | zhimi.airp.mb5 | | +| Air Purifier 4 PRO | zhimi.airp.vb4 | | | Air Fresh A1 | dmaker.airfresh.a1 | MJXFJ-150-A1 | | Air Fresh VA2 | zhimi.airfresh.va2 | | +| Air Fresh VA4 | zhimi.airfresh.va4 | | | Air Fresh T2017 | dmaker.airfresh.t2017 | MJXFJ-300-G1 | | Air Humidifier | zhimi.humidifier.v1 | | | Air Humidifier CA1 | zhimi.humidifier.ca1 | | @@ -496,6 +499,49 @@ Buzzer | Turn on/off the buzzer Child Lock | Turn on/off the child lock LED | Turn on/off the LED +### Air Purifier 4/4 PRO (zhimi.airp.mb5/zhimi.airp.vb4) + +These models use newer MiOT communication protocol. + +- Power (on, off) +- Operation modes (Auto, Silent, Favorite, Fan) +- Attributes (fan platform) +- Number entities + +Number | Description +----------------------- | ----------------------- +Fan Level | Set the fan level +Favorite Level | Set the favorite level + +- Select entities + +Select | Description +----------------------- | ----------------------- +LED Brightness | Controls the brightness of the Display (bright, dim, off) + +- Sensor entities + +Sensor | Description | Enabled by default +----------------------- | ----------------------- | ----------------------- +Filter Life Remaining | The remaining life of the filter in % | True +Filter Time Left | The remaining life of the filter in days | True +Filter Use | Filter usage time in hours | True +Humidity | The current humidity measured | True +Motor Speed | The current motor speed measured in rpm | True +PM2.5 | The current particulate matter 2.5 measured | True +PM10 | The current particulate matter 10 measured(4 PRO only) | True +Purify Volume | The volume of purified air in qubic meter | False +Temperature | The current temperature measured | True + +- Switch entities + +Switch | Description +----------------------- | ----------------------- +Buzzer | Turn on/off the buzzer +Child Lock | Turn on/off the child lock +Ionizer | Turn on/off the negative ion generator + + ### Air Fresh A1 (dmaker.airfresh.a1) - Power (on, off) @@ -567,6 +613,41 @@ Child Lock | Turn on/off `child lock` LED | Turn on/off `led` +### Air Fresh VA4 + +- Power (on, off) +- Operation modes (Auto, Silent, Interval, Low, Middle, Strong) +- Attributes (fan platform) + - `use_time` + - `extra_features` +- Sensor entities + +Sensor | Description | Enabled by default +----------------------- | ----------------------- | ----------------------- +Carbon Dioxide | The current carbon dioxide measured in ppm | True +Filter Life Remaining | The remaining life of the filter | True +Filter Use | Filter usage time in hours | True +Humidity | The current humidity measured | True +PM2.5 | The current particulate matter 2.5 measured | True +Temperature | The current temperature measured | True +Use Time | The accumulative number of seconds the device has been in use | False + +- Select entities + +Select | Description +----------------------- | ----------------------- +LED Brightness | Controls the brightness of the LEDs (bright, dim, off) + +- Switch entities + +Switch | Description +----------------------- | ----------------------- +Buzzer | Turn on/off `buzzer` +Child Lock | Turn on/off `child lock` +LED | Turn on/off `led` +Auxiliary Heat | Turn on/off `heater` + + ### Air Fresh T2017 (dmaker.airfresh.t2017) - Power (on, off) @@ -584,6 +665,13 @@ Button | Description Reset Dust Filter | Resets filter lifetime and usage of the dust filter Reset Upper Filter | Resets filter lifetime and usage of the upper filter +- Select entities + +Select | Description +----------------------- | ----------------------- +Auxiliary Heat Level | Controls the level of the heater (Low, Medium, High) +Display Orientation | Controls the orientation of the display (Forward, Left, Right) + - Sensor entities Sensor | Description diff --git a/source/_integrations/yalexs_ble.markdown b/source/_integrations/yalexs_ble.markdown new file mode 100644 index 00000000000..dbf8ba6d06b --- /dev/null +++ b/source/_integrations/yalexs_ble.markdown @@ -0,0 +1,80 @@ +--- +title: Yale Access Bluetooth +description: Instructions on how to integrate Yale Access Bluetooth devices into Home Assistant. +ha_category: + - Binary Sensor + - Lock + - Sensor +ha_bluetooth: true +ha_release: 2022.9 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: yalexs_ble +ha_config_flow: true +ha_platforms: + - binary_sensor + - lock + - sensor +ha_integration_type: integration +--- + +Integrates [Yale Access](https://www.yalehome.com/us/en/products/smart-technology/yale-access) Bluetooth devices into Home Assistant. + +{% include integrations/config_flow.md %} + +The Yale Access Bluetooth integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. + +Devices must have a Yale Access module installed to function with this integration if one is not already built-in. + +## Supported devices + +- YRD216 (Yale Assure Lock Keypad with Physical Key) +- YRL216 (Yale Assure Door Lever Lock with Push Button Keypad) +- YRD226 (Yale Assure Lock Touchscreen Deadbolt with Physical Key) +- YRL226 (Yale Assure Door Lever Lock Keypad) +- YRD256 (Yale Assure Lock Keypad) +- ASL-05 (August WiFi Smart Lock - Gen 4) +- ASL-03 (August Smart Lock Pro - Gen 3) +- ASL-02 (August Smart Lock Pro - Gen 2) + +## Limited support devices + +These devices do not send updates, but can be locked and unlocked. + +- MD-04I (Yale Conexis L1) +- YRCB-490 (Yale Smart Cabinet Lock) + +## Push updates + +Some locks only send push updates when they have an active HomeKit pairing. If your lock is not sending push updates, ensure it's paired with a HomeKit using an iOS device or the HomeKit controller integration. The lock cannot be paired via HomeKit Controller and the Yale Access Bluetooth integration on the same Home Assistant instance as they will both try to access the lock simultaneously and fail. + +Alternatively, call the `homeassistant.update_entity` service to force the integration to update the lock state. + +## Door Sensors + +The lock must be calibrated in the Yale Access App for the door sensors to function correctly. If the door sensor has an unknown state or is not updating, try recalibrating the lock in the app. + + +## Obtaining the offline key + +The offline key and slot number are required to operate the lock. These credentials can be found in multiple places depending on the lock brand and model. + +### Yale Access or August Cloud + +The [August](/integrations/august) integration will automatically provision the offline key if the configured account has the key loaded. You may need to create or use a non-primary existing account with owner-level access to the lock, as not all accounts will have the key loaded. + +Most Yale branded locks can use the August cloud to obtain the keys. Accessing the August cloud to receive the key may not work unless the lock was purchased in a market that sells under both brands. + +### iOS - Yale Access App or August App + +The iOS app will only save the offline key to your device's filesystem if Auto-Unlock has been enabled and used at least once. Auto-Unlock can be disabled once the key has been loaded. + +- Using [iMazing](https://imazing.com/) or [iPhone Backup Extractor](https://www.iphonebackupextractor.com/), find the backup files for the Yale Access app. +- Look in the `Library/Preferences` `.plist` files for the Yale Access app and find the one with the value of `key` and `slot` using `Xcode` or any binary `plist` viewer. + +### Android - Yale Access App or August App + +The Android app will only save the offline key to your device's filesystem if Auto-Unlock has been enabled and used at least once. Auto-Unlock can be disabled once the key has been loaded. + +Root access is required to read the `key` and `slot` stored in `/data/data/com.august.luna/shared_prefs/PeripheralInfoCache.xml` diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index ee0bc893fe8..11b6eb78930 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -172,6 +172,7 @@ Some devices can be auto-discovered, which can simplify the ZHA setup process. T | Device | Discovery Method | Identifier | | -------| ---------------- | ---------- | +| [ITead SONOFF Zigbee 3.0 USB Dongle Plus V2 Model "ZBDongle-E" (EFR32MG21 variant)](https://itead.cc/product/zigbee-3-0-usb-dongle/) | USB | 1A86:55D4 | | [ITead SONOFF Zigbee 3.0 USB Dongle Plus Model "ZBDongle-P" (CC2652P variant)](https://itead.cc/product/sonoff-zigbee-3-0-usb-dongle-plus/) | USB | 10C4:EA60 | | [Bitron Video/SMaBiT BV AV2010/10](https://bv.smabit.eu/index.php/smart-home-produkte/zb-funkstick/) | USB | 10C4:8B34 | | [ConBee II](https://phoscon.de/conbee2) | USB | 1CF1:0030 | diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown index d3e6743526c..62db2414ff5 100644 --- a/source/_integrations/zwave_js.markdown +++ b/source/_integrations/zwave_js.markdown @@ -17,6 +17,7 @@ ha_category: - Sensor - Siren - Switch + - Updates ha_release: '2021.2' ha_iot_class: Local Push ha_config_flow: true @@ -38,6 +39,7 @@ ha_platforms: - sensor - siren - switch + - update ha_integration_type: integration ha_zeroconf: true --- @@ -370,6 +372,7 @@ These are notification events fired by devices using the Multilevel Switch comma "command_class": 38, "command_class_name": "Multilevel Switch", "event_type": 4, + "event_type_label": "label 1", "direction": "up" }, ``` @@ -384,6 +387,7 @@ These are notification events fired by devices using the Multilevel Switch comma "command_class": 38, "command_class_name": "Multilevel Switch", "event_type": 5, + "event_type_label": "label 2", "direction": null }, ``` @@ -401,7 +405,9 @@ These are notification events fired by devices using the Entry Control command c "command_class": 111, "command_class_name": "Entry Control", "event_type": 6, + "event_type_label": "label 1", "data_type": 5, + "data_type_label": "label 2", "event_data": "555" } ``` diff --git a/source/_posts/2022-09-07-release-20229.markdown b/source/_posts/2022-09-07-release-20229.markdown new file mode 100644 index 00000000000..43a7c255697 --- /dev/null +++ b/source/_posts/2022-09-07-release-20229.markdown @@ -0,0 +1,420 @@ +--- +layout: post +title: "2022.9: Home Assistant Birthday Release!" +description: "New revamped Automation Editor, Weekly Schedule helper to help with automations, and Paul Bottein (Mushroom Cards) joins Nabu Casa" +date: 2022-09-07 02:00:00 +date_formatted: "September 7, 2022" +author: Zack Barett +author_twitter: zackbarettha +comments: true +categories: +- Release-Notes +- Core +og_image: /images/blog/2022-09/social.png +--- + + + +Home Assistant Core 2022.9! 🎂 + +If you don't know yet, this month is Home Assistant's birthday! 🎉🎉 On September 17th, 2013 [Paulus Schoutsen](https://twitter.com/balloob) made the first commit for Home Assistant that started a snowball of Home Automation enthusiasts willing to contribute to the open-source project. 9 Years later, Home Assistant is actively used by more than 500,000 people and growing every day. Nabu Casa also turns 4 this month. Turning 4 years old and gaining a new full-time employee 🍄. This month it seems everyone was in the birthday spirit as we have a jam-packed release! + +The automation engine is a big reason why Home Assistant has so many users. So in the spirit of [Streamlining Experiences](https://www.home-assistant.io/blog/2022/01/19/streamlining-experiences/), we thought a revamp was due. You will notice some huge improvements to the look and feel of the Automation Editor that we think will greatly improve its usability. I know I for sure see a huge difference! + +Now I know that everyone usually expects [@frenck] to be writing these release notes, but he took a well deserved vacation! And now you are stuck with me. Zack 😀. I hope you enjoy the release and everything that was packed into it! + +-- Zack + + + +- [Paul Bottein joins Nabu Casa](#paul-bottein-joins-nabu-casa) +- [Streamlining automations](#streamlining-automations) +- [New helper: Weekly schedule](#new-helper-weekly-schedule) +- [Bluetooth everywhere](#bluetooth-everywhere) +- [Z-Wave Firmware updates now live](#z-wave-firmware-updates-now-live) +- [Zigbee backup and restore + migration](#zigbee-backup-and-restore--migration) +- [Processor and memory usage](#processor-and-memory-usage) +- [Other noteworthy changes](#other-noteworthy-changes) +- [New Integrations](#new-integrations) +- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) +- [Need help? Join the community](#need-help-join-the-community) +- [Breaking Changes](#breaking-changes) +- [All changes](#all-changes) + +Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=UTltO1-d56s) today at 12:00 PDT / 21:00 CET! + + + +{% comment %} + + +Missed our release party live stream on YouTube? Don't worry! You can watch +the recording of it right here! + + + +{% endcomment %} + +## Paul Bottein joins Nabu Casa + +We are excited to announce the newest member of the Nabu Casa team, [Paul Bottein](https://github.com/piitaya). + +Paul is most known for his [Mushroom cards](https://github.com/piitaya/lovelace-mushroom) and a few additions to Home Assistant frontend like the Icon Picker. Paul is an incredible developer and his expertise in dashboard design will bring a lot to the Home Assistant frontend. + +Welcome aboard and excited to see what Paul will bring to Home Assistant! + +## Streamlining automations + +We felt that there were quite a few improvements we could do in order to better streamline automation creation. That's why this release, we really +took a long look at some of the main user experience issues. The new automation editor improvements focus on readability and ease of use. This +will also make editing automations on your phone much easier! + +First, you will notice the biggest change, collapsible cards for triggers, conditions, and actions. This change allows you to really focus on what you +are currently working on instead of having everything open all at once. When you first open your automation in the editor, you will see all cards collapsed with +an auto-generated explanation of what that section is doing. This allows you to easily choose which section you want to edit and focus in on it. + +Screenshot showing the new automation editor with an easier overview
+ +Next, there were a few items and options moved. You can see most of these in the top right overflow menu. For example, if you want to rename or update the description +of your automation you can do that via the overflow menu > Rename. Moving these items to the overflow ensures that the main editor page is used for the main functions of +your automation. + +Screenshot showing the new automation editor overflow menus
+ +Last, but definitely not least, Frenck added some long requested features to the automation forms. **State and Attribute value auto-completion!** Now if you are adding a +state trigger, you can choose from a list of known states for that device type. These are also all translated into your language. Now there is no need to remember or find +the states possible or format the state that needs to be entered. Just choose a state from the dropdown and let your worries wisp away! + +Screenshot showing the new automation editor state and attribute value selector
+ +## New helper: Weekly schedule + +Have you ever wanted to run a schedule-based automation for the same time each week or day? Well, you are now in luck! With the addition of the Schedule helper, you are now able +to easily create these schedules to build more consistent automations and timings. + +A gif showcasing the new schedule helper and how to use the user interface
+ +{% my config_flow_start badge domain="schedule" %} + +## Bluetooth everywhere + +Last release we introduced the Bluetooth integration. This release, it's on fire 🔥 Not only do we now support multiple Bluetooth adapters, we also support ESPHome devices acting as [Bluetooth proxies](https://esphome.io/components/bluetooth_proxy.html) for your home. Wait what?! + +Yes 😎. You can now greatly expand the Bluetooth reach of Home Assistant using ordinary ESP32 devices. No extra hardware needed. + +Picture of a home showing how Bluetooth data is proxied via ESPHome devices to Home Assistant
+ +To get a proxy up and running, head over to the [Bluetooth proxy installer website](https://esphome.github.io/bluetooth-proxies/) and install one straight from your browser. + +Bluetooth proxies are currently limited to forwarding passive data. Active connections are coming in a future release. Bluetooth integrations in Home Assistant will transparently use Bluetooth proxies without any extra coding! + +There is more! Besides 9 new supported brands, there is also support for a new open standard: [BTHome](https://bthome.io) by [@Ernst79]. It is automatically discovered by Home Assistant, devices can run over a year on a single battery and it supports data encryption. + +Thanks to [@bdraco], [@Ernst79], [@JesseRockz], [@jc2k] for all the hard, amazing and epic work 🙏. + +## Z-Wave Firmware updates now live + +Screenshot showing zwave device updates in the settings page
+ +In 2022.7, we added support for updating Z-Wave device firmware, but the catch was that you needed the firmware files from the manufacturer in order to complete the update. [@AlCalzone] wasn't satisfied with this approach and began working on a better solution. That better solution is here with the introduction of the Z-Wave JS Firmware Update Service! For supported manufacturers, Z-Wave JS can now automatically detect, download, and install a firmware update if it is available for your device. This will be done the same way you are currently updating Home Assistant. You will see a notification in your settings menu and you can update right from there. Thanks [@raman325] + +For now, only Jasco products are supported. Nabu Casa has been talking to other manufacturers to get more devices supported. To ensure our users can take advantage of this feature, we added update entities for your devices that will check once a day for new firmware updates. Nifty! + +## Zigbee backup and restore + migration + +The Zigbee Home Automation (ZHA) integration now supports network backups and migrating between Zigbee coordinators. Backups are taken automatically but can also be manually created from the configuration page. After restoring a Home Assistant backup, you can re-configure ZHA and migrate to a new Zigbee coordinator without any loss of your settings or devices that were connected. This is helpful if your current radio fails or a new radio comes out that you may want to migrate to.s + +Screenshot showing the Zigbee Home Automation configuration page and the new backup functionality
+ +## Processor and memory usage + +The Hardware page just got a lot more interesting. You can go check out live statistics on your Memory and Processor usage when you load the Hardware page in your system menu. These statistics will represent your entire Home Assistant instance, giving you insight in how your hardware is handling your day to day tasks. This will not show any history but will display 5 minutes of live data once you load the page. + +Screenshot showing the processor and memory usage on the hardware page
+ +## Other noteworthy changes + +There is much more juice in this release; here are some of the other +noteworthy changes this release: + +- Entity more info dialog merged with entity settings. Thanks [@balloob] +- You can now enable local control of your Awair Element device. Thanks [@zachberger] +- MiFlora now supports polling of the Battery sensor. Thanks [@bdraco] +- August locks are now supported under the Yale Access Bluetooth integration. Thanks [@bdraco] +- Many more Bluetooth adapters are now supported for the Bluetooth integration. Thanks [@bdraco] +- The SwitchBot integration now supports the Color Bulb and Light strips. Thanks [@bdraco] +- Automations, Scripts and Scenes tables received a new overflow menu that will allow for more actions directly from the picker. Thanks [@bramkragten] and [@piitaya] +- You can now reorder automation elements using drag and drop. Thanks [@piitaya] +- Icons have been added to more menus throughout the UI. Thanks [@frenck] +- Automation triggers can now be aliased. Thanks [@frenck] + +## New Integrations + +We welcome the following new integrations in this release: + +- [BlueMaestro], added by [@bdraco] +- [BThome], added by [@Ernst79] +- [Ecowitt], added by [@pvizeli] +- [Escea], added by [@lazdavila] +- [File Upload], added by [@balloob] +- [Fully Kiosk Browser], added by [@cgarwood] +- [JustNimbus], added by [@kvanzuijlen] +- [LaCrosse View], added by [@IceBotYT] +- [Landis+Gyr Heat Meter], added by [@vpathuis] +- [LED BLE], added by [@bdraco] +- [Melnor Bluetooth], added by [@vanstinator] +- [PrusaLink], added by [@balloob] +- [Qingping], added by [@bdraco] +- [Schedule], added by [@frenck] +- [SensorPro], added by [@bdraco] +- [ThermoBeacon], added by [@bdraco] +- [ThermoPro], added by [@bdraco] +- [Yale Access Bluetooth], added by [@bdraco] + +[@AlCalzone]: https://github.com/alcalzone +[@zachberger]: https://github.com/zachberger +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@jesserockz]: https://github.com/jesserockz +[@jc2k]: https://github.com/jc2k +[@cgarwood]: https://github.com/cgarwood +[@Ernst79]: https://github.com/Ernst79 +[@frenck]: https://github.com/frenck +[@IceBotYT]: https://github.com/IceBotYT +[@kvanzuijlen]: https://github.com/kvanzuijlen +[@lazdavila]: https://github.com/lazdavila +[@pvizeli]: https://github.com/pvizeli +[@vanstinator]: https://github.com/vanstinator +[@vpathuis]: https://github.com/vpathuis +[BlueMaestro]: /integrations/bluemaestro +[@piitaya]: https://github.com/piitaya +[@bramkragten]: https://github.com/bramkragten +[BThome]: /integrations/bthome +[Ecowitt]: /integrations/ecowitt +[Escea]: /integrations/escea +[File Upload]: /integrations/file_upload +[Fully Kiosk Browser]: /integrations/fully_kiosk +[JustNimbus]: /integrations/justnimbus +[LaCrosse View]: /integrations/lacrosse_view +[Landis+Gyr Heat Meter]: /integrations/landisgyr_heat_meter +[LED BLE]: /integrations/led_ble +[Melnor Bluetooth]: /integrations/melnor +[PrusaLink]: /integrations/prusalink +[Qingping]: /integrations/qingping +[Schedule]: /integrations/schedule +[SensorPro]: /integrations/sensorpro +[ThermoBeacon]: /integrations/thermobeacon +[ThermoPro]: /integrations/thermopro +[Yale Access Bluetooth]: /integrations/yalexs_ble + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [Android IP Webcam], done by [@engrbm87] +- [LaMetric], done by [@frenck] +- [Open Exchange Rates], done by [@MartinHjelmare] +- [Pushover], done by [@engrbm87] +- [Volvo On Call], done by [@y34hbuddy] + +[@engrbm87]: https://github.com/engrbm87 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@y34hbuddy]: https://github.com/y34hbuddy +[Android IP Webcam]: /integrations/android_ip_webcam +[LaMetric]: /integrations/lametric +[Open Exchange Rates]: /integrations/openexchangerates +[Pushover]: /integrations/pushover +[Volvo On Call]: /integrations/volvooncall + +## Need help? Join the community + +Home Assistant has a great community of users who are all more than willing +to help each other out. So, join us! + +Our very active [Discord chat server](/join-chat) is an excellent place to be +at, and don't forget to join our amazing [forums](https://community.home-assistant.io/). + +Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues), +to get it fixed! Or, check [our help page](/help) for guidance for more +places you can go. + +Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter) +to get the latest news about features, things happening in our community and +other news about building an Open Home; straight into your inbox. + +## Breaking Changes + +Below is a listing of the breaking change for this release, per subject or +integration. Click on one of those to read more about the breaking change +for that specific item. + +{% details "BMW Connected Drive" %} + +Entity `sensor._charging_time_label` (disabled by default) has +been removed as it is not provided by the upstream library/API anymore. + +([@rikroe] - [#76616]) ([documentation](/integrations/bmw_connected_drive)) + +[@rikroe]: https://github.com/rikroe +[#76616]: https://github.com/home-assistant/core/pull/76616 + +--- + +The attribute `charging_status` of `binary_sensor._charging_status` +has been removed. Please use `sensor.charging_status` instead. + +([@rikroe] - [#74921]) ([documentation](/integrations/bmw_connected_drive)) + +[#74921]: https://github.com/home-assistant/core/pull/74921 + +{% enddetails %} + +{% details "HomeKit" %} + +The Homekit PM2.5 µg/m3 mappings in the HomeKit integration now use the values +based on the [US AQI set by the EPA](https://www.epa.gov/sites/default/files/2016-04/documents/2012_aqi_factsheet.pdf). + +| HomeKit | Previous PM2.5 µg/m3 | New PM2.5 µg/m3 | +|---|---|---| +| Excellent | <= 25 | <= 12 | +| Good | <= 50 | <= 35.4 | +| Fair | <= 100 | <= 55.4 | +| Inferior | <= 300 | <= 150.4 | +| Poor | > 300 | > 150.4 | + +([@sarabveer] - [#76358]) ([documentation](/integrations/homekit)) + +[@sarabveer]: https://github.com/sarabveer +[#76358]: https://github.com/home-assistant/core/pull/76358 + +{% enddetails %} + +{% details "International Space Station (ISS)" %} + +It will no longer be possible to know if the international space station (ISS) +is above you nor the timestamp for the next rise of the station as these +features have been removed in the underlying API. + +The binary sensor will be removed and all automations relying on this will no +longer work. Unfortunately there is no substitute for this. Instead we have +introduced a new sensor, that still tells you the location of the ISS, +while showing how many people are in space, as main state. + +([@DurgNomis-drol] - [#77218]) ([documentation](/integrations/iss)) + +[@DurgNomis-drol]: https://github.com/DurgNomis-drol +[#77218]: https://github.com/home-assistant/core/pull/77218 + +{% enddetails %} + +{% details "Litter-Robot" %} + +The previously deprecated `reset_waste_drawer` and `set_wait_time` services from +the litterrobot vacuum entity, have been removed. + +([@natekspencer] - [#77052]) ([documentation](/integrations/litterrobot)) + +[@natekspencer]: https://github.com/natekspencer +[#77052]: https://github.com/home-assistant/core/pull/77052 + +{% enddetails %} + +{% details "MQTT" %} + +Support for MQTT climate `hold` and `away` modes, which was deprecated in +Home Assistant Core 2022.3.0, has been removed. The `hold` and `away` modes +are replaced by `preset_mode`. + +([@jbouwh] - [#76299]) ([documentation](/integrations/mqtt)) + +[@jbouwh]: https://github.com/jbouwh +[#76299]: https://github.com/home-assistant/core/pull/76299 + +{% enddetails %} + +{% details "Open Exchange Rates" %} + +The sensor now has a unit of measurement according to the exchange rate quote. + +([@MartinHjelmare] - [#76017]) ([documentation](/integrations/openexchangerates)) + +[#76017]: https://github.com/home-assistant/core/pull/76017 + +{% enddetails %} + +{% details "Roku" %} + +Roku media player will indicate `IDLE` instead of `HOME` when at home screen. +You can still detect home screen by looking at `app_id` attribute. + +([@elupus] - [#77385]) ([documentation](/integrations/roku)) + +[@elupus]: https://github.com/elupus +[#77385]: https://github.com/home-assistant/core/pull/77385 + +{% enddetails %} + +{% details "SMS notifications via GSM-modem" %} + +Setting up the notify platform of the SMS integration by a platform section in +YAML configuration is no longer supported. The `sms` platform section +under `notify:` can be removed from your YAML configuration files. + +A recipient can be specified by using the `target` parameter in the notify +service call instead. + +([@ocalvo] - [#76733]) ([documentation](/integrations/sms)) + +[@ocalvo]: https://github.com/ocalvo +[#76733]: https://github.com/home-assistant/core/pull/76733 + +{% enddetails %} + +{% details "Utility Meter" %} + +The previously deprecated `utility_meter` entities, used to change tariffs, +have been removed. Please use the provided `select` entity instead. + +([@dgomes] - [#76480]) ([documentation](/integrations/utility_meter)) + +[@dgomes]: https://github.com/dgomes +[#76480]: https://github.com/home-assistant/core/pull/76480 + +{% enddetails %} + +{% details "Z-Wave" %} + +You must use zwave-js-server 1.22.1 or greater (schema 22). + +With this release, you will need to update your zwave-js-server instance. + +- If you use the zwave_js addon, you need to have at least version `0.1.66`. +- If you use the zwavejs2mqtt addon, you need to have at least version `0.46.0`. +- If you use the zwavejs2mqtt Docker container, you need to have at least version `7.0.0`. +- If you run your own Docker container, or some other installation method, you will need to update your zwave-js-server instance to at least `1.22.1`. + +([@raman325] - [#75795] [#76903]) ([documentation](/integrations/zwave_js)) + +[@raman325]: https://github.com/raman325 +[#75795]: https://github.com/home-assistant/core/pull/75795 +[#76903]: https://github.com/home-assistant/core/pull/76903 + +{% enddetails %} + +If you are a custom integration developer and want to learn about breaking +changes and new features available for your integration: Be sure to follow our +[developer blog][devblog]. The following are the most notable for this release: + +[devblog]: https://developers.home-assistant.io/blog/ + +- [AutomationActionType deprecation for 2022.9](https://developers.home-assistant.io/blog/2022/08/15/automation-action-type-deprecation) +- [Bluetooth passive sensor API changes for 2022.9](https://developers.home-assistant.io/blog/2022/08/08/bluetooth-api-changes) +- [Device tracker deprecations for 2022.9](https://developers.home-assistant.io/blog/2022/07/29/device-tracker_source-type-deprecation/) +- [Globally available HomeAssistant object (hass)](https://developers.home-assistant.io/blog/2022/08/24/globally_accessible_hass) +- [LightEntity no longer supports white_value](https://developers.home-assistant.io/blog/2022/08/18/light_white_value_removed) +- [The issue registry has been moved to homeassistant.helpers](https://developers.home-assistant.io/blog/2022/08/25/issue_registry_moved_to_helpers) + +## All changes + +Of course, there is a lot more in this release. You can find a list of +all changes made here: [Full changelog for Home Assistant Core 2022.9](/changelogs/core-2022.9) diff --git a/source/changelogs/core-2022.9.markdown b/source/changelogs/core-2022.9.markdown new file mode 100644 index 00000000000..f9273bfc8c8 --- /dev/null +++ b/source/changelogs/core-2022.9.markdown @@ -0,0 +1,1842 @@ +--- +title: Full Changelog for Home Assistant Core 2022.9 +description: Detailed changelog for the Home Assistant Core 2022.9 release +--- + +These are all the changes included in the Home Assistant Core 2202.9 release. + +For a summary in a more readable format: +[Release notes blog for this release](/blog/2022/09/07/release-20229/). + +## Full Changelog + +- Bump version to 2022.9.0dev0 ([@frenck] - [#75818]) +- Add LaCrosse View integration ([@IceBotYT] - [#71896]) ([lacrosse_view docs]) (new-integration) +- Bump zwave-js-server-python to 0.40.0 ([@raman325] - [#75795]) ([zwave_js docs]) (breaking-change) (dependency) +- Set Level for MIOT purifiers as in python-miio ([@borky] - [#75814]) ([xiaomi_miio docs]) +- Add new zwave_js notification parameters ([@raman325] - [#75796]) ([zwave_js docs]) +- Update zwave_js WS API names ([@raman325] - [#75797]) ([zwave_js docs]) +- Add xiaomi air purifier 4 and 4 pro support ([@borky] - [#75745]) ([xiaomi_miio docs]) +- Add shabat sensors to jewish_calendar ([@chaimt] - [#57866]) ([jewish_calendar docs]) +- ZHA network backup and restore API ([@puddly] - [#75791]) ([zha docs]) +- Add protocol types for device_tracker `async_see` and `see` ([@cdce8p] - [#75891]) +- Refactor and improve anthemav ([@Hyralex] - [#75852]) ([anthemav docs]) +- Use climate enums in google_assistant ([@Nephiel] - [#75888]) ([google_assistant docs]) +- Add StrEnum for device_tracker `SourceType` ([@cdce8p] - [#75892]) ([device_tracker docs]) ([mobile_app docs]) (deprecation) +- Improve type hints in axis ([@epenet] - [#75910]) ([axis docs]) +- Add multi-zone support to Anthem AV receiver and distribution solution ([@Hyralex] - [#74779]) ([anthemav docs]) +- Add telegram disable_web_page_preview ([@ildar170975] - [#75898]) ([telegram docs]) +- Add typings to Certificate Expiry integration ([@timmo001] - [#75945]) ([cert_expiry docs]) +- Bump grpc requirements to 1.48.0 ([@allenporter] - [#75603]) (dependency) +- Use attributes in zerproc light ([@epenet] - [#75951]) ([zerproc docs]) +- Improve type hints in light [s-z] ([@epenet] - [#75946]) +- Improve type hints in light [i-r] ([@epenet] - [#75943]) +- Use device_tracker SourceType enum [s-z] ([@cdce8p] - [#75966]) ([volvooncall docs]) ([zha docs]) ([unifi docs]) ([traccar docs]) ([tile docs]) ([starline docs]) ([tractive docs]) +- Use device_tracker SourceType enum [n-r] ([@cdce8p] - [#75965]) +- Use device_tracker SourceType enum [h-m] ([@cdce8p] - [#75964]) +- Use device_tracker SourceType enum [a-g] ([@cdce8p] - [#75963]) +- Improve type hints in light [a-i] ([@epenet] - [#75936]) +- Added a configuration_url for the ukraine_alarm service ([@PaulAnnekov] - [#75988]) ([ukraine_alarm docs]) +- Use climate enums in alexa ([@epenet] - [#75911]) ([alexa docs]) +- Add physical controls lock to homekit_controller ([@Jc2k] - [#75993]) ([homekit_controller docs]) +- Improve Registry typing in Alexa handlers ([@epenet] - [#75921]) ([alexa docs]) +- Add missing sensors for Shelly Plus H&T ([@chemelli74] - [#76001]) ([shelly docs]) +- Remove unused logging args parameter ([@cdce8p] - [#75619]) +- Add strict typing to openexchangerates ([@MartinHjelmare] - [#76004]) ([openexchangerates docs]) +- Add function/property name to pylint message ([@epenet] - [#75913]) +- Remove aiohttp close from aladdin connect config_flow ([@mkmer] - [#76029]) ([aladdin_connect docs]) +- Enable air quality sensor for Core300s ([@jetpacktuxedo] - [#75695]) ([vesync docs]) +- Add unique id for todoist calendar entity ([@boralyl] - [#75674]) ([todoist docs]) +- Implement generic in Deconz base device ([@epenet] - [#76015]) ([deconz docs]) +- Replace object with enum for pylint sentinel ([@epenet] - [#76030]) +- Improve UI in pylint plugin ([@epenet] - [#74157]) +- Update featured integrations image ([@wrt54g] - [#76011]) +- Use attributes in limitlessled light ([@epenet] - [#76066]) ([limitlessled docs]) +- Add support for switchbot motion sensors ([@bdraco] - [#76059]) ([switchbot docs]) +- Use `SourceType.ROUTER` in Tractive integration ([@bieniu] - [#76071]) ([tractive docs]) +- Add Open Exchange Rates coordinator ([@MartinHjelmare] - [#76017]) ([openexchangerates docs]) (breaking-change) +- Improve type hints in blinksticklight lights ([@epenet] - [#75999]) ([blinksticklight docs]) +- Improve type hints in vesync lights ([@epenet] - [#75998]) ([vesync docs]) +- Improve type hints in azure devops config flow ([@epenet] - [#75909]) ([azure_devops docs]) +- Bump pyTibber to 0.24.0 ([@erijo] - [#76098]) ([tibber docs]) (dependency) +- Use attributes in decora light ([@epenet] - [#76047]) ([decora docs]) +- Move RainMachine utils to the correct location ([@bachya] - [#76051]) ([rainmachine docs]) +- Improve type hints in hive lights ([@epenet] - [#76025]) ([hive docs]) +- New binary sensors for Ukraine Alarm ([@PaulAnnekov] - [#76155]) ([ukraine_alarm docs]) +- Add homekit_controller thread node capabilties diagnostic sensor ([@Jc2k] - [#76120]) ([homekit_controller docs]) (noteworthy) +- Fix prettier on HomeKit Controller ([@Drafteed] - [#76168]) ([homekit_controller docs]) +- Modify RainMachine to store a single dataclass in `hass.data` ([@bachya] - [#75460]) ([rainmachine docs]) +- Use attributes in zengge light ([@epenet] - [#75994]) ([zengge docs]) +- Remove attribution from extra state attributes ([@frenck] - [#76172]) +- Use attributes in yeelightsunflower light ([@epenet] - [#75995]) ([yeelightsunflower docs]) +- Add a Thread network status sensor to homekit_controller ([@Jc2k] - [#76209]) ([homekit_controller docs]) (noteworthy) +- Improve type hints in zha light ([@epenet] - [#75947]) ([zha docs]) +- Update sentry-sdk to 1.9.0 ([@frenck] - [#76192]) ([sentry docs]) (dependency) +- added Hanetz Hachama ([@MosheTzvi] - [#76216]) ([jewish_calendar docs]) +- Refactor volvooncall to (mostly) use DataUpdateCoordinator ([@y34hbuddy] - [#75885]) ([volvooncall docs]) (deprecation) +- Add entity category to Wiz number entities ([@frenck] - [#76191]) ([wiz docs]) +- Add device_tracker checks to pylint plugin ([@epenet] - [#76228]) +- Remove YAML configuration from Simplepush ([@frenck] - [#76175]) ([simplepush docs]) (breaking-change) +- Add reboot button to RainMachine ([@bachya] - [#75227]) ([rainmachine docs]) +- Remove @decompil3d as maintainer on volvooncall ([@decompil3d] - [#76153]) ([volvooncall docs]) +- Update orjson to 3.7.11 ([@frenck] - [#76171]) (dependency) +- Add ability to specify user(s) when sending DMs using the Twitter integration ([@danieldietzler] - [#71310]) ([twitter docs]) +- Use attributes in unifiled light ([@epenet] - [#76019]) ([unifiled docs]) +- Use attributes in tikteck light ([@epenet] - [#76022]) ([tikteck docs]) +- Run black on twitter to fix CI ([@bdraco] - [#76254]) ([twitter docs]) +- Update pyupgrade to v2.37.3 ([@frenck] - [#76257]) (dependency) +- Support creating persistent repairs issues ([@emontnemery] - [#76211]) +- Deprecate the Deutsche Bahn ([@frenck] - [#76286]) ([deutsche_bahn docs]) (deprecation) +- Use attributes in litejet light ([@epenet] - [#76031]) ([litejet docs]) +- Allow creating fixable repairs issues without flows ([@emontnemery] - [#76224]) ([demo docs]) ([repairs docs]) +- Allow storing arbitrary data in repairs issues ([@emontnemery] - [#76288]) ([repairs docs]) +- Remove deprecated `send_if_off` option for MQTT climate ([@jbouwh] - [#76293]) ([mqtt docs]) (breaking-change) +- Add bluetooth API to allow rediscovery of address ([@elupus] - [#76005]) ([bluetooth docs]) +- Revert "Disable Spotify Media Player entity by default (#69372)" ([@frenck] - [#76250]) ([spotify docs]) +- Bump yalexs to 1.2.1 ([@bdraco] - [#76339]) ([august docs]) (dependency) +- Move HKC entity classes into entity.py ([@bdraco] - [#76333]) ([homekit_controller docs]) +- Improve mysensors config flow ([@MartinHjelmare] - [#75122]) ([mysensors docs]) +- Bump aioopenexchangerates to 0.4.0 ([@MartinHjelmare] - [#76356]) ([openexchangerates docs]) +- Update aiolifx to version 0.8.2 ([@Djelibeybi] - [#76367]) ([lifx docs]) (dependency) +- Add identify and restart button entities to the LIFX integration ([@Djelibeybi] - [#75568]) ([lifx docs]) +- Add switch to wilight ([@leofig-rj] - [#62873]) ([wilight docs]) (new-platform) +- Add zwave_js usb port selection ([@MartinHjelmare] - [#76385]) ([zwave_js docs]) +- Fix opentherm_gw startup failure handling ([@mvn23] - [#76376]) ([opentherm_gw docs]) +- Bump zeroconf to 0.39.0 ([@bdraco] - [#76328]) ([zeroconf docs]) (dependency) +- Add ecobee Smart Premium thermostat ([@rlippmann] - [#76365]) ([ecobee docs]) +- Bump plexapi to 4.12.1 ([@jjlawren] - [#76393]) ([plex docs]) (dependency) +- Remove Z-Wave JS trigger uart USB id ([@balloob] - [#76391]) ([zwave_js docs]) +- Enable the LIFX diagnostic buttons by default ([@Djelibeybi] - [#76389]) ([lifx docs]) +- Update aioairzone to v0.4.8 ([@Noltari] - [#76404]) ([airzone docs]) (dependency) +- Add more controller-related RainMachine diagnostics ([@bachya] - [#76409]) ([rainmachine docs]) +- Silence Yeelight Discovery Log Errors ([@alexyao2015] - [#76373]) ([yeelight docs]) +- Switch a few recent merges to use FlowResultType ([@bdraco] - [#76416]) ([homekit_controller docs]) ([simplisafe docs]) ([lifx docs]) ([lacrosse_view docs]) +- Fix bug potential in RainMachine switches by simplifying architecture ([@bachya] - [#76417]) ([rainmachine docs]) +- Add update entity to RainMachine ([@bachya] - [#76100]) ([rainmachine docs]) +- Add openexchangerates config flow ([@MartinHjelmare] - [#76390]) ([openexchangerates docs]) (breaking-change) (config-flow) (deprecation) +- Fix Shelly H&T sensors rounding ([@thecode] - [#76426]) ([shelly docs]) +- Bump actions/cache from 3.0.5 to 3.0.6 (@dependabot - [#76432]) (dependency) +- Add Escea fireplace integration ([@lazdavila] - [#56039]) ([escea docs]) (new-integration) +- Add tests for the HDMI-CEC integration ([@inytar] - [#75094]) ([hdmi_cec docs]) +- Improve type hints in zwave_js select entity ([@epenet] - [#76449]) ([zwave_js docs]) +- Improve select type hints ([@epenet] - [#76446]) ([xiaomi_miio docs]) ([yamaha_musiccast docs]) ([advantage_air docs]) +- Update coverage to 6.4.3 ([@frenck] - [#76443]) (dependency) +- Bump NextDNS backend library ([@bieniu] - [#76300]) ([nextdns docs]) (dependency) +- Defer preload stream start on startup ([@uvjustin] - [#75801]) ([camera docs]) +- Update sentry-sdk to 1.9.2 ([@frenck] - [#76444]) ([sentry docs]) (dependency) +- Update apprise to 1.0.0 ([@frenck] - [#76441]) ([apprise docs]) (dependency) +- Add UniFi Protect media source ([@AngellusMortis] - [#73244]) ([unifiprotect docs]) (noteworthy) +- Add ecobee CO2, VOC, and AQI sensors ([@rlippmann] - [#76366]) ([ecobee docs]) (noteworthy) +- Bump `regenmaschine` to 2022.08.0 ([@bachya] - [#76483]) ([rainmachine docs]) (dependency) +- Add JustNimbus integration ([@kvanzuijlen] - [#75718]) ([just_nimbus docs]) (new-integration) +- Update HomeKit PM2.5 mappings to US AQI ([@sarabveer] - [#76358]) ([homekit docs]) (breaking-change) +- Ensure ConfirmRepairFlow can make use of translation placeholders ([@bachya] - [#76336]) ([repairs docs]) +- Allow parsing to happen in PassiveBluetoothProcessorCoordinator ([@Jc2k] - [#76384]) ([bluetooth docs]) ([govee_ble docs]) ([sensorpush docs]) ([inkbird docs]) ([xiaomi_ble docs]) ([moat docs]) (breaking-change) +- Add config flow to `android_ip_webcam` ([@engrbm87] - [#76222]) ([android_ip_webcam docs]) (breaking-change) (config-flow) (deprecation) +- Update aioqsw to v0.2.0 ([@Noltari] - [#76509]) ([qnap_qsw docs]) (dependency) +- Update sqlalchemy to 1.4.40 ([@frenck] - [#76505]) +- Update flake8-noqa to 1.2.8 ([@frenck] - [#76506]) (dependency) +- Use stream to generate fallback image for onvif ([@uvjustin] - [#75584]) ([onvif docs]) +- Add support for Govee 5184 BBQ sensors ([@bdraco] - [#76490]) ([govee_ble docs]) +- Use constructor instead of factory method for sensors in here_travel_time ([@eifinger] - [#76471]) ([here_travel_time docs]) +- Add siren checks to pylint plugin ([@epenet] - [#76460]) +- Cleanup device_class checks in pylint plugin ([@epenet] - [#76458]) +- Add new sensors to NextDNS integration ([@bieniu] - [#76262]) ([nextdns docs]) +- Add NextDNS binary sensor platform ([@bieniu] - [#75266]) ([nextdns docs]) (new-platform) +- Improve type hints in rfxtrx siren entity ([@epenet] - [#76459]) ([rfxtrx docs]) +- Improve type hints in zha number entity ([@epenet] - [#76468]) ([zha docs]) +- Bump version of pyunifiprotect to 4.0.13 ([@AngellusMortis] - [#76523]) ([unifiprotect docs]) (dependency) +- Use Callback protocol for AutomationActionType ([@cdce8p] - [#76054]) ([automation docs]) ([calendar docs]) ([homekit docs]) ([webostv docs]) ([philips_js docs]) +- Better type hass_job method calls ([@cdce8p] - [#76053]) +- Migrate BraviaTV to new async backend ([@Drafteed] - [#75727]) ([braviatv docs]) (dependency) +- Improve MQTT warning message on illegal discovery topic ([@jbouwh] - [#76545]) ([mqtt docs]) +- Improve type hints in xiaomi_miio number entity ([@epenet] - [#76466]) ([xiaomi_miio docs]) +- Add number checks to pylint plugin ([@epenet] - [#76457]) +- Add new Bluetooth coordinator helper for polling mostly passive devices ([@Jc2k] - [#76549]) ([bluetooth docs]) +- Improve type hints in xiaomi_miio vacuum entities ([@epenet] - [#76563]) ([xiaomi_miio docs]) +- Simplify switchbot config flow ([@bdraco] - [#76272]) ([switchbot docs]) (dependency) +- Add Yale Access Bluetooth integration ([@bdraco] - [#76182]) ([yalexs_ble docs]) (new-integration) +- Improve type hints in zwave_me number entity ([@epenet] - [#76469]) ([zwave_me docs]) +- Always round down for Mazda odometer entity ([@bdr99] - [#76500]) ([mazda docs]) +- Add sensor state class for SleepIQ sensors ([@kbickar] - [#76372]) ([sleepiq docs]) +- Use generators for async_add_entities in Accuweather ([@tkdrob] - [#76574]) ([accuweather docs]) +- Use generators for async_add_entities in Abode ([@tkdrob] - [#76569]) ([abode docs]) +- Handle EmonCMS feeds that return NULL gracefully ([@deece] - [#76074]) ([emoncms docs]) +- Improve type hints in demo and mqtt number entity ([@epenet] - [#76464]) ([mqtt docs]) ([demo docs]) +- Improve type hints in freedompro lights ([@epenet] - [#76045]) ([freedompro docs]) +- Improve type hints in yamaha_musiccast number ([@epenet] - [#76467]) ([yamaha_musiccast docs]) +- Add persistent repair items for deprecated Guardian services ([@bachya] - [#76312]) ([guardian docs]) (deprecation) +- Use generators for async_add_entities in Ambient Station ([@tkdrob] - [#76586]) ([ambient_station docs]) +- Remove attribution from extra state attributes ([@frenck] - [#76580]) ([ring docs]) ([speedtestdotnet docs]) ([rmvtransport docs]) ([brottsplatskartan docs]) ([gitlab_ci docs]) ([fixer docs]) +- Add door sensors to Yale Access Bluetooth ([@bdraco] - [#76571]) ([yalexs_ble docs]) (new-platform) +- Update sentry-sdk to 1.9.3 ([@frenck] - [#76573]) ([sentry docs]) (dependency) +- Improve state attributes of CityBikes ([@frenck] - [#76578]) ([citybikes docs]) +- Update offline keys from august cloud for august branded yale locks ([@bdraco] - [#76577]) ([august docs]) +- Bump yalexs-ble to 1.1.3 ([@bdraco] - [#76595]) ([yalexs_ble docs]) +- Improve type hints in harmony ([@epenet] - [#76445]) ([harmony docs]) +- Support polling the MiFlora battery ([@Jc2k] - [#76342]) ([bluetooth docs]) ([xiaomi_ble docs]) (noteworthy) +- Add class attribute for capability attributes in entity base class ([@frenck] - [#76599]) +- Add RSSI sensors to Yale Access Bluetooth ([@bdraco] - [#76590]) ([yalexs_ble docs]) (new-platform) +- Improve type hints in yeelight lights ([@epenet] - [#76018]) ([yeelight docs]) +- Add Awair Local API support ([@zachberger] - [#75535]) ([awair docs]) (noteworthy) +- Add schedule helper ([@frenck] - [#76566]) ([schedule docs]) (new-integration) (noteworthy) +- Fix titles for discoveries and device names in xiaomi_ble ([@Jc2k] - [#76618]) ([xiaomi_ble docs]) +- Downgrade bluetooth_le_tracker timeout message to debug ([@bdraco] - [#76639]) ([bluetooth_le_tracker docs]) +- Bump yalexs-ble to 1.2.0 ([@bdraco] - [#76631]) ([yalexs_ble docs]) (dependency) +- Use async_timeout instead of asyncio.wait_for in switchbot ([@bdraco] - [#76630]) ([switchbot docs]) +- Add support for August locks to Yale Access Bluetooth ([@bdraco] - [#76625]) ([yalexs_ble docs]) (noteworthy) +- Track code coverage for ZHA sensor entities ([@dmulcahey] - [#76617]) ([zha docs]) +- Migrate Glances to new entity naming style ([@engrbm87] - [#76651]) ([glances docs]) +- Initial binary_sensor support for Xiaomi BLE ([@Jc2k] - [#76635]) ([xiaomi_ble docs]) (new-platform) +- Fix typing in `glances` config flow ([@engrbm87] - [#76654]) ([glances docs]) +- Bump yalexs_ble to 1.3.1 to fix disconnect race ([@bdraco] - [#76657]) ([yalexs_ble docs]) (dependency) +- Make sure all discovery flows are using the helper ([@bdraco] - [#76641]) +- Allow only known attrs for BMW binary sensors ([@rikroe] - [#76663]) ([bmw_connected_drive docs]) +- Migrate Abode to new entity naming style ([@tkdrob] - [#76673]) ([abode docs]) +- Bump motionblinds to 0.6.12 ([@starkillerOG] - [#76665]) ([motion_blinds docs]) +- Streamline discovery flow callback ([@balloob] - [#76666]) +- Small cleanups to Yale Access Bluetooth ([@bdraco] - [#76691]) ([yalexs_ble docs]) +- Remove `charging_time_label` sensor in BMW Connected Drive ([@rikroe] - [#76616]) ([bmw_connected_drive docs]) (breaking-change) +- Bump nettigo-air-monitor to 1.4.2 ([@bieniu] - [#76670]) ([nam docs]) (dependency) +- Bump pyoverkiz to 1.5.0 ([@iMicknl] - [#76682]) ([overkiz docs]) (dependency) +- Bump yalexs-ble to 1.4.0 ([@bdraco] - [#76685]) ([yalexs_ble docs]) +- Netgear skip devices withouth mac ([@starkillerOG] - [#76626]) ([netgear docs]) +- Log not allowed attributes only once in BMW binary sensors ([@rikroe] - [#76708]) ([bmw_connected_drive docs]) +- Fix implicit Optional [core] ([@cdce8p] - [#76719]) ([mqtt docs]) ([mobile_app docs]) ([template docs]) ([application_credentials docs]) +- Fix implicit Optional [a-n] ([@cdce8p] - [#76720]) +- Fix implicit Optional [p-s] ([@cdce8p] - [#76721]) ([switchbot docs]) ([solax docs]) ([plaato docs]) ([sia docs]) +- Fix implicit Optional [t-z] ([@cdce8p] - [#76722]) ([toon docs]) ([tuya docs]) ([yamaha_musiccast docs]) ([vizio docs]) ([tomorrowio docs]) +- Bump actions/cache from 3.0.6 to 3.0.7 (@dependabot - [#76648]) (dependency) +- Enable no_implicit_optional globally [mypy] ([@cdce8p] - [#76723]) +- Avoid creating door sensor when it does no exist on older yalexs_ble locks ([@bdraco] - [#76710]) ([yalexs_ble docs]) +- Add Qingping integration (BLE) ([@bdraco] - [#76598]) ([qingping docs]) (new-integration) +- Persist previous mic/record values for UniFi Protect privacy mode ([@AngellusMortis] - [#76472]) ([unifiprotect docs]) +- Add type hints to MediaPlayerEntity ([@epenet] - [#76743]) ([media_player docs]) ([group docs]) ([webostv docs]) ([denonavr docs]) +- Improve vacuum type hints ([@epenet] - [#76747]) ([vacuum docs]) +- Fix MQTT camera encoding ([@jbouwh] - [#76124]) ([mqtt docs]) (deprecation) +- Remove MQTT climate support for hold and away modes ([@jbouwh] - [#76299]) ([mqtt docs]) (breaking-change) +- Fix missing state classes on various Ambient PWS entities ([@bachya] - [#76683]) ([ambient_station docs]) +- Add media-player checks to pylint plugin ([@epenet] - [#76675]) ([media_player docs]) +- Fix entity category for LIFX buttons ([@frenck] - [#76788]) ([lifx docs]) +- Enable statistics for WLED WiFi RSSI/Signal sensors ([@Noltari] - [#76789]) ([wled docs]) +- Update aioqsw to v0.2.2 ([@Noltari] - [#76760]) ([qnap_qsw docs]) (dependency) +- Move `AutomationActionType` to helpers.trigger ([@cdce8p] - [#76790]) ([automation docs]) ([binary_sensor docs]) (deprecation) +- Use TriggerActionType [core, d-h] ([@cdce8p] - [#76804]) ([fan docs]) ([geo_location docs]) ([device_automation docs]) ([humidifier docs]) +- Use TriggerActionType [core, l-m] ([@cdce8p] - [#76806]) ([media_player docs]) ([mqtt docs]) ([lock docs]) ([light docs]) +- Use TriggerActionType [core, r-t] ([@cdce8p] - [#76807]) ([switch docs]) ([sun docs]) ([remote docs]) ([sensor docs]) ([tag docs]) ([select docs]) +- Use TriggerActionType [core, a-d] ([@cdce8p] - [#76803]) ([climate docs]) ([cover docs]) ([device_tracker docs]) ([calendar docs]) ([alarm_control_panel docs]) ([button docs]) +- Use TriggerActionType [core, homeassistant] ([@cdce8p] - [#76805]) ([homeassistant docs]) +- Use TriggerActionType [core, t-z] ([@cdce8p] - [#76808]) ([vacuum docs]) ([zone docs]) ([webhook docs]) ([template docs]) ([update docs]) +- Fix Hue events for relative_rotary devices (such as Hue Tap Dial) ([@marcelveldt] - [#76758]) ([hue docs]) +- Use TriggerActionType [l-t] ([@cdce8p] - [#76813]) +- Use TriggerActionType [w-z] ([@cdce8p] - [#76814]) ([wemo docs]) ([zha docs]) ([webostv docs]) ([zwave_js docs]) +- Use TriggerActionType [a-k] ([@cdce8p] - [#76812]) ([hue docs]) ([deconz docs]) ([homekit_controller docs]) ([kodi docs]) ([arcam_fmj docs]) +- Update pylint to 2.14.5 ([@cdce8p] - [#76821]) (dependency) +- Use BinarySensorDeviceClass instead of deprecated constants ([@cdce8p] - [#76830]) ([devolo_home_network docs]) ([zwave_me docs]) +- Update pylint plugin to use TriggerActionType ([@cdce8p] - [#76819]) +- Add missing entry for `SOURCE_TYPE_*` to hass-imports plugin ([@cdce8p] - [#76829]) +- Bump aiohomekit to 1.3.0 ([@Jc2k] - [#76841]) ([homekit_controller docs]) (dependency) +- Add Rollotron DECT 1213 to fritzbox ([@jonasrickert] - [#76386]) ([fritzbox docs]) (new-platform) +- Improve Awair config flow ([@balloob] - [#76838]) ([awair docs]) +- Clean awair debug print ([@MartinHjelmare] - [#76864]) ([awair docs]) +- Remove stale debug prints ([@frenck] - [#76865]) ([group docs]) ([awair docs]) ([flo docs]) ([unifiprotect docs]) +- Add System Bridge Media Source ([@timmo001] - [#72865]) ([system_bridge docs]) (noteworthy) +- Process UniFi Protect review comments ([@frenck] - [#76870]) +- Add strict typing for auth ([@cdce8p] - [#75586]) ([auth docs]) +- Update numpy to 1.23.2 ([@frenck] - [#76855]) ([opencv docs]) ([tensorflow docs]) ([trend docs]) ([iqvia docs]) ([compensation docs]) (dependency) +- Update sentry-sdk to 1.9.5 ([@frenck] - [#76857]) ([sentry docs]) (dependency) +- Type BrowseMedia children as a covariant ([@frenck] - [#76869]) ([media_player docs]) ([apple_tv docs]) ([media_source docs]) ([xbox docs]) ([jellyfin docs]) ([unifiprotect docs]) +- Remove deprecated white_value support from MQTT light ([@emontnemery] - [#76848]) ([mqtt docs]) +- Use secure in Speedtest ([@ludeeus] - [#76852]) ([speedtestdotnet docs]) +- Update google-cloud-texttospeech to 2.12.1 ([@frenck] - [#76854]) ([google_cloud docs]) (dependency) +- Update debugpy to 1.6.3 ([@frenck] - [#76849]) ([debugpy docs]) (dependency) +- Various improvement for JustNimbus ([@frenck] - [#76858]) ([justnimbus docs]) +- Add additional select for dmaker.airfresh.t2017 to xiaomi_miio ([@Kirmas] - [#67058]) ([xiaomi_miio docs]) +- Capture local Awair firmware version to DeviceInfo ([@zachberger] - [#76700]) ([awair docs]) (dependency) +- Add sensor checks to pylint plugin ([@epenet] - [#76876]) +- Add remote checks to pylint plugin ([@epenet] - [#76875]) +- Add Fully Kiosk Browser integration with initial binary sensor platform ([@cgarwood] - [#76737]) ([fullykiosk docs]) (new-integration) +- Indieauth updates ([@balloob] - [#76880]) ([auth docs]) +- Add Fully Kiosk Browser sensor platform ([@cgarwood] - [#76887]) ([fully_kiosk docs]) (new-platform) +- Bump frontend to 20220816.0 ([@balloob] - [#76895]) ([frontend docs]) (dependency) +- Reorganize bluetooth integration to prepare for remote and multi-adapter support ([@bdraco] - [#76883]) ([bluetooth docs]) +- Add DHCP updates to Fully Kiosk ([@frenck] - [#76896]) ([fully_kiosk docs]) +- Fix TypeAlias + TypeVar names ([@cdce8p] - [#76897]) ([samsungtv docs]) ([zamg docs]) +- Update hass-nabucasa to 0.55.0 ([@frenck] - [#76892]) ([cloud docs]) (dependency) +- Bump govee-ble to 0.16.0 ([@bdraco] - [#76882]) ([govee_ble docs]) +- Add Fully Kiosk Browser button platform ([@cgarwood] - [#76894]) ([fully_kiosk docs]) +- Update cryptography to 37.0.4 ([@frenck] - [#76853]) (dependency) +- Add support for color_mode white to MQTT JSON light ([@emontnemery] - [#76918]) ([mqtt docs]) +- Remove deprecated white_value support from template light ([@emontnemery] - [#76923]) ([template docs]) +- Remove some error prone code from Alexa tests ([@emontnemery] - [#76917]) ([alexa docs]) +- Remove white_value support from group light ([@emontnemery] - [#76924]) ([group docs]) +- Fix fully_kiosk button test docstring and function name ([@cgarwood] - [#76935]) ([fully_kiosk docs]) +- Remove deprecated utility_meter entity ([@dgomes] - [#76480]) ([utility_meter docs]) (breaking-change) +- Add weather checks to pylint plugin ([@epenet] - [#76915]) +- Add Fully Kiosk Browser switch platform ([@cgarwood] - [#76931]) ([fully_kiosk docs]) (new-platform) +- Improve type hints in utility_meter select entity ([@epenet] - [#76447]) ([utility_meter docs]) +- Improve type hints in water_heater ([@epenet] - [#76910]) ([water_heater docs]) +- Add RestoreNumber to number checks in pylint ([@epenet] - [#76933]) +- Add water_heater checks to pylint plugin ([@epenet] - [#76911]) +- Bump pysma to 0.6.12 ([@rklomp] - [#76937]) ([sma docs]) +- Add RestoreEntity to button checks in pylint ([@epenet] - [#76932]) +- Add RestoreSensor to sensor checks in pylint ([@epenet] - [#76916]) +- Add scene checks to pylint plugin ([@epenet] - [#76908]) +- Bump version of pyunifiprotect to 4.1.2 ([@AngellusMortis] - [#76936]) ([unifiprotect docs]) (dependency) +- Rework bluetooth to support scans from multiple sources ([@bdraco] - [#76900]) ([bluetooth docs]) +- Prevent bluetooth scanner from being shutdown by BleakClient not using BLEDevice ([@bdraco] - [#76945]) ([bluetooth docs]) +- Implement auto switching when there are multiple bluetooth scanners ([@bdraco] - [#76947]) ([bluetooth docs]) +- Refactor LaMetric integration ([@frenck] - [#76759]) ([lametric docs]) (breaking-change) (config-flow) +- Restore fixed step fan speeds for google assistant ([@elupus] - [#76871]) ([google_assistant docs]) +- Bump qingping-ble to 0.2.4 ([@bdraco] - [#76958]) ([qingping docs]) (dependency) +- Use Platform enum ([@epenet] - [#76967]) ([sonos docs]) ([webostv docs]) ([ping docs]) +- Add Fully Kiosk Browser number platform ([@cgarwood] - [#76952]) ([fully_kiosk docs]) +- Update coverage to 6.4.4 ([@frenck] - [#76907]) (dependency) +- Add parental control switches to NextDNS integration ([@bieniu] - [#76559]) ([nextdns docs]) +- Add issue_domain parameter to repairs.create_issue ([@emontnemery] - [#76972]) ([repairs docs]) +- Add update checks to pylint plugin ([@epenet] - [#76912]) +- Add screen on/off switch to Fully Kiosk Browser integration ([@cgarwood] - [#76957]) ([fully_kiosk docs]) +- Adjust version comparison in HA Cloud account linking ([@frenck] - [#76978]) ([cloud docs]) +- Include moonsighting calc for islamic_prayer_times ([@yasn77] - [#75595]) ([islamic_prayer_times docs]) +- Remove white_value support from light ([@emontnemery] - [#76926]) ([light docs]) ([group docs]) ([flux docs]) ([switch_as_x docs]) +- Add switch checks to pylint plugin ([@epenet] - [#76909]) +- Improve type hints in homeassistant scene ([@epenet] - [#76930]) ([homeassistant docs]) +- Improve entity type hints [a] ([@epenet] - [#76986]) +- Add Landis+Gyr Heat Meter integration ([@vpathuis] - [#73363]) ([landisgyr_heat_meter docs]) (new-integration) +- Minor improvement of zha test ([@emontnemery] - [#76993]) ([zha docs]) +- Simplify ZHA config entry title ([@emontnemery] - [#76991]) ([zha docs]) +- Code quality changes for LaCrosse View ([@IceBotYT] - [#76265]) ([lacrosse_view docs]) +- Add file selector and file upload integration ([@balloob] - [#76672]) ([image docs]) ([file_upload docs]) (new-integration) +- Bump pyhaversion from 22.4.1 to 22.8.0 ([@ludeeus] - [#76994]) ([version docs]) (dependency) +- Add vacuum checks to pylint plugin ([@epenet] - [#76560]) +- Add support for USB dongles to the hardware integration ([@emontnemery] - [#76795]) ([zha docs]) ([usb docs]) ([hardware docs]) ([homeassistant_sky_connect docs]) (new-integration) +- Adjust type hints in august sensor entity ([@epenet] - [#76992]) ([august docs]) +- P1 Monitor add water meter support ([@klaasnicolaas] - [#74004]) ([p1_monitor docs]) (dependency) +- Adjust type hints in aquostv media player entity ([@epenet] - [#76990]) ([aquostv docs]) +- Adjust type hints in alpha-vantage sensor entity ([@epenet] - [#76988]) ([alpha_vantage docs]) +- Adjust type hints in android_ip_webcam switch entity ([@epenet] - [#76989]) ([android_ip_webcam docs]) +- Add support for multiple Bluetooth adapters ([@bdraco] - [#76963]) ([bluetooth docs]) (noteworthy) +- Fix lutron caseta Sunnata Keypad support ([@danaues] - [#75324]) ([lutron_caseta docs]) +- Add config flow to `pushover` ([@engrbm87] - [#74500]) ([pushover docs]) (config-flow) (deprecation) +- Remove unneeded charging_status attribute in bmw_connected_drive binary sensor ([@rikroe] - [#74921]) ([bmw_connected_drive docs]) (breaking-change) +- Add timeouts to requests calls ([@cdce8p] - [#76851]) ([nest docs]) ([opencv docs]) ([abode docs]) ([withings docs]) ([uk_transport docs]) ([facebox docs]) ([llamalab_automate docs]) +- Revert rename of confirm step in zha config flow ([@emontnemery] - [#77010]) ([zha docs]) ([homeassistant_sky_connect docs]) +- Provide slight speedup to Guardian device lookup during service call ([@bachya] - [#77004]) ([guardian docs]) +- Improve entity type hints [b] ([@epenet] - [#77012]) +- Improve type hint in bsblan climate entity ([@epenet] - [#77014]) ([bsblan docs]) +- Improve type hint in brottsplatskartan sensor entity ([@epenet] - [#77015]) ([brottsplatskartan docs]) +- Adjust type hints in airtouch4 climate entity ([@epenet] - [#76987]) ([airtouch4 docs]) +- Add strict typing to mikrotik ([@engrbm87] - [#76974]) ([mikrotik docs]) +- Provide slight speedup to RainMachine device lookup during service call ([@bachya] - [#76944]) ([rainmachine docs]) +- Remove deprecated YAML configuration from Skybell ([@tkdrob] - [#76940]) ([skybell docs]) (breaking-change) +- Improve type hint in blebox light entity ([@epenet] - [#77013]) ([blebox docs]) +- Add newly-released Amazon Polly voices ([@JohJonker] - [#76934]) ([amazon_polly docs]) +- Fix acmeda battery sensor definition ([@epenet] - [#76928]) ([acmeda docs]) +- Add cv.deprecated to MQTT modern schema's too ([@jbouwh] - [#76884]) ([mqtt docs]) +- Bump pydroid-ipcam to 2.0.0 ([@engrbm87] - [#76906]) ([android_ip_webcam docs]) +- Improve type hint in brottsplatskartan sensor entity ([@epenet] - [#77019]) ([brottsplatskartan docs]) +- Re-write tests for `transmission` ([@engrbm87] - [#76607]) ([transmission docs]) +- Improve entity type hints [c] ([@epenet] - [#77023]) +- Type feedreader strictly ([@MartinHjelmare] - [#76707]) ([feedreader docs]) +- Add state selector ([@frenck] - [#77024]) (noteworthy) +- Improve entity type hints [d] ([@epenet] - [#77031]) +- Bump yalexs-ble to 1.6.0 ([@bdraco] - [#77042]) ([yalexs_ble docs]) (dependency) +- Address late review of system bridge media source ([@timmo001] - [#77032]) ([system_bridge docs]) +- Improve entity type hints [e] ([@epenet] - [#77041]) +- Remove name option from config_flow for P1 Monitor ([@klaasnicolaas] - [#77046]) ([p1_monitor docs]) +- Use data description for Pure Energie integration ([@klaasnicolaas] - [#77047]) ([pure_energie docs]) +- Bump yalexs_ble to 1.6.2 ([@bdraco] - [#77056]) ([yalexs_ble docs]) (dependency) +- Improve type hints in vacuum entities ([@epenet] - [#76561]) ([demo docs]) ([ecovacs docs]) ([template docs]) ([sharkiq docs]) +- Improve type hint in compensation sensor entity ([@epenet] - [#77027]) ([compensation docs]) +- Improve type hint in cups sensor entity ([@epenet] - [#77030]) ([cups docs]) +- Remove unused variable from directv media player ([@epenet] - [#77034]) ([directv docs]) +- Improve type hint in darksky sensor entity ([@epenet] - [#77035]) ([darksky docs]) +- Improve type hint in denon media player entity ([@epenet] - [#77036]) ([denon docs]) +- Improve type hint in daikin climate entity ([@epenet] - [#77037]) ([daikin docs]) +- Improve type hint in derivative sensor entity ([@epenet] - [#77038]) ([derivative docs]) +- Add coordinator and number platform to LaMetric ([@frenck] - [#76766]) ([lametric docs]) (config-flow) +- Improve bluetooth logging when there are multiple adapters ([@bdraco] - [#77007]) ([bluetooth docs]) +- Add attribute support to state selector ([@frenck] - [#77071]) +- Update pyotgw to 2.0.3 ([@mvn23] - [#77073]) ([opentherm_gw docs]) (dependency) +- Add support for non-serialized devices (light, switch, cover, fan in RA3 Zones) ([@danaues] - [#75323]) ([lutron_caseta docs]) +- Dont rely on config flow to monitor homekit_controller c# changes ([@Jc2k] - [#76861]) ([homekit_controller docs]) (dependency) +- Auto recover when the Bluetooth adapter stops responding ([@bdraco] - [#77043]) ([bluetooth docs]) +- Bump bluetooth-auto-recovery to 0.2.2 ([@bdraco] - [#77082]) ([bluetooth docs]) (dependency) +- Add a new constant for multiple bluetooth watchdog failure hits ([@bdraco] - [#77081]) ([bluetooth docs]) +- Bump yalexs_ble to 1.6.4 ([@bdraco] - [#77080]) ([yalexs_ble docs]) (dependency) +- Make sure we always connect to last known bluetooth device in fjäråskupan ([@elupus] - [#77088]) ([fjaraskupan docs]) +- Don't check for periodic ventilation in fan control ([@elupus] - [#77089]) ([fjaraskupan docs]) +- Bump qingping-ble to 0.3.0 ([@bdraco] - [#77094]) ([qingping docs]) +- Fix covers moving state in HomeKit ([@Drafteed] - [#77101]) ([homekit docs]) +- Add UV switch to Pet Waterer in Tuya integration ([@gyengus] - [#76718]) ([tuya docs]) +- Add long term statistics for tellduslive ([@GhostNr1] - [#75789]) ([tellduslive docs]) +- Bump NextDNS backend library ([@bieniu] - [#77105]) ([nextdns docs]) (dependency) +- Add default polling for landis gyr heat meter ([@vpathuis] - [#77078]) ([landisgyr_heat_meter docs]) +- Reduce bluetooth logging noise when an adapter is recovered ([@bdraco] - [#77109]) ([bluetooth docs]) +- Set quality scale to platinum in the NextDNS integration ([@bieniu] - [#77099]) ([nextdns docs]) (noteworthy) +- Add NZBGet speed limit sensor ([@sophof] - [#77104]) ([nzbget docs]) +- Improve type hint in cast media_player entity ([@epenet] - [#77025]) ([cast docs]) +- Hive Add ability to trigger the alarm ([@KJonline] - [#76985]) ([hive docs]) +- Support send SMS using GSM alphabet ([@ocalvo] - [#76834]) ([sms docs]) +- Improve type hints in epson media player ([@epenet] - [#77129]) ([epson docs]) +- Improve type hint in eddystone sensor entity ([@epenet] - [#77135]) ([eddystone_temperature docs]) +- Add hide attribute support to attribute selector ([@frenck] - [#77072]) +- Improve type hint in eq3btsmart climate entity ([@epenet] - [#77131]) ([eq3btsmart docs]) +- Improve type hint in ecobee climate entity ([@epenet] - [#77133]) ([ecobee docs]) +- Improve type hint in emby media-player entity ([@epenet] - [#77136]) ([emby docs]) +- Improve type hint in ephember climate entity ([@epenet] - [#77138]) ([ephember docs]) +- Improve entity type hints [f] ([@epenet] - [#77143]) +- Add a context variable holding a HomeAssistant reference ([@emontnemery] - [#76303]) +- Add support for scanners that do not provide connectable devices ([@bdraco] - [#77132]) (noteworthy) +- Load sms notify via discovery ([@ocalvo] - [#76733]) ([sms docs]) (breaking-change) +- Bump version of pyunifiprotect to 4.1.4 ([@AngellusMortis] - [#77172]) ([unifiprotect docs]) +- Improve type hint in foscam camera entity ([@epenet] - [#77166]) ([foscam docs]) +- Use _attr_should_poll in camera entities ([@epenet] - [#77173]) ([nest docs]) ([zoneminder docs]) ([amcrest docs]) ([logi_circle docs]) ([uvc docs]) ([agent_dvr docs]) +- Improve type hint in filter sensor entity ([@epenet] - [#77155]) ([filter docs]) +- Add diagnostics for Pure Energie integration ([@klaasnicolaas] - [#77151]) ([pure_energie docs]) +- Add alias support to all triggers ([@frenck] - [#77184]) ([automation docs]) +- Add better support for UniFi Protect Cameras with Removable Lens ([@AngellusMortis] - [#76942]) ([unifiprotect docs]) +- Use _attr_should_poll in zha entities ([@epenet] - [#77175]) ([zha docs]) +- Discover new bluetooth adapters when they are plugged in ([@bdraco] - [#77006]) ([usb docs]) ([bluetooth docs]) ([homeassistant_sky_connect docs]) +- Add `this` object to MQTT templates ([@jbouwh] - [#77142]) ([mqtt docs]) (noteworthy) +- Fix frontier silicon EQ Mode not present on all devices ([@wlcrs] - [#76200]) ([frontier_silicon docs]) +- Add new sensors for energy produced (via Tibbber) ([@erijo] - [#76165]) ([tibber docs]) +- Bump actions/cache from 3.0.7 to 3.0.8 (@dependabot - [#77196]) (dependency) +- Reduce discovery integration matching overhead ([@bdraco] - [#77194]) ([zeroconf docs]) ([dhcp docs]) ([usb docs]) ([bluetooth docs]) +- ESPHome BLE scanner support ([@bdraco] - [#77123]) ([esphome docs]) ([bluetooth docs]) (noteworthy) +- Update Whirlpool integration for 0.17.0 library ([@abmantis] - [#76780]) ([whirlpool docs]) (dependency) +- Fix updating of statistics metadata name ([@emontnemery] - [#77207]) ([recorder docs]) +- Refactor volvooncall to use ConfigFlow ([@y34hbuddy] - [#76680]) ([volvooncall docs]) (config-flow) (deprecation) +- Bump AIOAladdinConnect to 0.1.42 ([@mkmer] - [#77205]) ([aladdin_connect docs]) (dependency) +- Bump pymysensors to 0.24.0 ([@MartinHjelmare] - [#77201]) ([mysensors docs]) (dependency) +- Add config entry selector ([@frenck] - [#77108]) +- Update qingping matcher to support additional models ([@bdraco] - [#77225]) ([qingping docs]) +- Use _attr_should_poll in xiaomi_aqara entities ([@epenet] - [#77197]) ([xiaomi_aqara docs]) +- Add button platform to LaMetric ([@frenck] - [#76768]) ([lametric docs]) (config-flow) +- Mock MQTT setup in hassio tests ([@emontnemery] - [#77245]) ([hassio docs]) +- Add energy and gas sensors to demo integration ([@emontnemery] - [#77206]) ([demo docs]) +- Support for local push in Risco integration ([@OnFreund] - [#75874]) ([risco docs]) +- Fix unneeded inheritance in LaMetric base entity ([@frenck] - [#77260]) ([lametric docs]) +- Add Xiaomi Smartmi Fresh Air System XFXTDFR02ZM ([@McYars] - [#76637]) ([xiaomi_miio docs]) +- Fix typing of ConfigEntrySelector ([@frenck] - [#77259]) +- Adjust inheritance in homeworks ([@epenet] - [#77265]) ([homeworks docs]) +- Add support for bleak passive scanning on linux ([@bdraco] - [#75542]) ([bluetooth docs]) (noteworthy) +- Migrate Hunter Douglas Powerview to aiopvapi 2.0.0 ([@kingy444] - [#76998]) ([hunterdouglas_powerview docs]) (dependency) +- Add remote learn command to BraviaTV ([@Drafteed] - [#76655]) ([braviatv docs]) +- Songpal dependency upgrade ([@yllar] - [#77278]) ([songpal docs]) (dependency) +- Fix bluetooth discovery when advertisement format changes ([@bdraco] - [#77286]) ([bluetooth docs]) +- Bump Accuweather library ([@bieniu] - [#77285]) ([accuweather docs]) (dependency) +- Bump qingping-ble to 0.6.0 ([@bdraco] - [#77289]) ([qingping docs]) +- Remove unnecessary property from hvv_departures ([@epenet] - [#77267]) ([hvv_departures docs]) +- Remove unnecessary property from fritz ([@epenet] - [#77269]) ([fritz docs]) +- Implement websocket message coalescing ([@bdraco] - [#77238]) ([websocket_api docs]) (noteworthy) +- Bump AIOAladdinConnect to 0.1.43 ([@mkmer] - [#77263]) ([aladdin_connect docs]) (dependency) +- Add Synchronize inverter clock button ([@mletenay] - [#69220]) ([goodwe docs]) +- Use mock_restore_cache in mqtt tests ([@emontnemery] - [#77297]) ([mqtt docs]) +- Use mock_restore_cache in tests ([@emontnemery] - [#77298]) ([knx docs]) ([unifi docs]) +- Add .strict-typing to prettier ignore list ([@epenet] - [#77177]) +- Move issue_registry to homeassistant.helpers ([@emontnemery] - [#77299]) ([repairs docs]) +- Add `hw_version` to MQTT device info ([@bieniu] - [#77210]) ([mqtt docs]) +- Set cv hass in hass fixture ([@jbouwh] - [#77271]) +- Add pressure to openweathermap weather forecast ([@emontnemery] - [#77303]) ([openweathermap docs]) +- Add repair for deprecated MQTT yaml config ([@jbouwh] - [#77174]) ([mqtt docs]) +- Revert "Add remote learn command to BraviaTV" ([@Drafteed] - [#77306]) ([braviatv docs]) +- Add reauth flow to Skybell ([@tkdrob] - [#75682]) ([skybell docs]) +- Add thermopro integration (BLE) ([@bdraco] - [#77242]) ([thermopro docs]) (new-integration) +- Update integrations to import issue_registry from helpers ([@emontnemery] - [#77305]) +- Fix characteristic cache clear in homekit_controller on BLE unpair ([@Jc2k] - [#77309]) ([homekit_controller docs]) +- Improve demo test coverage ([@emontnemery] - [#77301]) ([demo docs]) +- Add Flume DataUpdateCoordinator class ([@jeeftor] - [#77114]) ([flume docs]) +- Add support for Litter-Robot 4 ([@natekspencer] - [#75790]) ([litterrobot docs]) (dependency) (noteworthy) +- Bump version of pyunifiprotect to 4.1.15 ([@AngellusMortis] - [#77320]) ([unifiprotect docs]) (dependency) +- Remove deprecated reset_waste_drawer and set_wait_time services from litterrobot ([@natekspencer] - [#77052]) ([litterrobot docs]) (breaking-change) +- Refactor Flume to use base entity class ([@jeeftor] - [#77115]) ([flume docs]) +- Bump aiohomekit to 1.5.1 ([@bdraco] - [#77323]) ([homekit_controller docs]) +- Disable some upnp entities by default ([@balloob] - [#77330]) ([upnp docs]) +- Bump govee-ble to 0.16.1 ([@bdraco] - [#77311]) ([govee_ble docs]) (dependency) +- Bump version of pyunifiprotect to 4.1.7 ([@AngellusMortis] - [#77334]) ([unifiprotect docs]) (dependency) +- Clean up double spotify persistent notification for re-auth ([@MartinHjelmare] - [#77307]) ([spotify docs]) +- Add adopt/unadopt flows for UniFi Protect devices ([@AngellusMortis] - [#76524]) ([unifiprotect docs]) +- Raise repairs issue if automation calls unknown service ([@frenck] - [#76949]) ([automation docs]) +- Fix IssueSeverity import ([@bdraco] - [#77338]) ([automation docs]) +- Handle remove packets for UniFi Protect ([@AngellusMortis] - [#77337]) ([unifiprotect docs]) +- Fix incorrect key update for Gen2 locks with yalexs_ble ([@bdraco] - [#77335]) ([yalexs_ble docs]) +- Use _attr_should_poll in components [a-g] ([@epenet] - [#77268]) +- Use _attr_should_poll in components [h-i] ([@epenet] - [#77270]) +- Use _attr_should_poll in econet ([@epenet] - [#77262]) ([econet docs]) +- Improve WLED typing ([@cdce8p] - [#77200]) ([wled docs]) +- Improve type hint in flic binary sensor entity ([@epenet] - [#77161]) ([flic docs]) +- Improve type hint in foobot sensor entity ([@epenet] - [#77164]) ([foobot docs]) +- Improve type hint in freedompro entities ([@epenet] - [#77170]) ([freedompro docs]) +- Improve type hint in acmeda base entity ([@epenet] - [#77171]) ([acmeda docs]) +- Improve type hint in everlights light entity ([@epenet] - [#77139]) ([everlights docs]) +- Improve esphome state property decorator typing ([@cdce8p] - [#77152]) ([esphome docs]) +- Improve type hint in fibaro climate entity ([@epenet] - [#77153]) ([fibaro docs]) +- Improve type hint in frontier silicon media player ([@epenet] - [#77167]) ([frontier_silicon docs]) +- Fix issue with flexit fan mode ([@epenet] - [#77157]) ([flexit docs]) +- Use UUID identifier in System Bridge ([@timmo001] - [#76921]) ([system_bridge docs]) +- Migrate BMW Connected Drive to new entity naming ([@rikroe] - [#77045]) ([bmw_connected_drive docs]) +- Fix attributes scope in Advantage Air Select platform ([@Bre77] - [#76744]) ([advantage_air docs]) +- Improve type hints in demo [2/3] ([@epenet] - [#77185]) ([demo docs]) +- Improve entity type hints [g] ([@epenet] - [#77145]) +- Improve type hint in flexit climate entity ([@epenet] - [#77159]) ([flexit docs]) +- Don't expose attribute option in state selector ([@frenck] - [#77347]) +- Refactor and unify device fetching for UniFi Protect ([@AngellusMortis] - [#77341]) ([unifiprotect docs]) +- Adjust pylint plugin for absolute/relative imports ([@epenet] - [#77219]) +- Add diagnostics to Fully Kiosk Browser integration ([@cgarwood] - [#77274]) ([fully_kiosk docs]) +- Add guard to enhanced current hue usage in ZHA ([@dmulcahey] - [#77359]) ([zha docs]) +- Remove unnecessary property from proliphix ([@epenet] - [#77363]) ([proliphix docs]) +- Fix missing entities in ZHA for IKEA STARKVIND ([@dmulcahey] - [#77360]) ([zha docs]) +- Deprecate speedtest service ([@engrbm87] - [#77261]) ([speedtestdotnet docs]) (deprecation) +- Use _attr_should_poll in components [j-n] ([@epenet] - [#77357]) +- Use _attr_should_poll in components [u-z] ([@epenet] - [#77371]) +- Adjust inheritance in ring ([@epenet] - [#77366]) ([ring docs]) +- Use _attr_should_poll in components [o-r] ([@epenet] - [#77364]) +- Bump version of pyunifiprotect to 4.1.8 ([@AngellusMortis] - [#77389]) ([unifiprotect docs]) (dependency) +- Use _attr_should_poll in components [s-t] ([@epenet] - [#77368]) +- Rework Accuweather sensors ([@tkdrob] - [#76567]) ([accuweather docs]) +- Add Thermobeacon (BLE) integration ([@bdraco] - [#77313]) ([thermobeacon docs]) (new-integration) +- Index bluetooth matchers to resolve performance concerns with many adapters/remotes ([@bdraco] - [#77372]) ([bluetooth docs]) +- Replace STATE_HOME with STATE_IDLE ([@elupus] - [#77385]) ([roku docs]) (breaking-change) +- Adjust bluetooth matcher comments ([@bdraco] - [#77409]) ([bluetooth docs]) +- Add support for BThome ([@Ernst79] - [#77224]) ([bthome_ble docs]) (new-integration) +- Fix trait processing Fan state without percentage_step ([@jbouwh] - [#77351]) ([google_assistant docs]) +- Upgarde PyRisco to 0.5.3 ([@OnFreund] - [#77407]) ([risco docs]) (dependency) +- Bump Tank Utility Version ([@krismolendyke] - [#77103]) ([tank_utility docs]) (dependency) +- Add diagnostics to bluetooth ([@bdraco] - [#77393]) ([bluetooth docs]) +- Use Platform and ValueType enum in zwave_js.discovery ([@raman325] - [#77402]) ([zwave_js docs]) +- Hide bluetooth passive option if its not available on the host system ([@bdraco] - [#77421]) ([bluetooth docs]) +- Bump zwave-js-server-python to 0.41.0 ([@raman325] - [#76903]) ([zwave_js docs]) (breaking-change) (dependency) +- Wait for config entry platforms in KNX ([@farmio] - [#77437]) ([knx docs]) +- Add new features from UniFi Protect 2.2.1-beta5 ([@AngellusMortis] - [#77391]) ([unifiprotect docs]) +- Add thermobeacon supported brands ([@bdraco] - [#77423]) ([thermobeacon docs]) +- Bump awesomeversion from 22.6.0 to 22.8.0 ([@ludeeus] - [#77436]) ([recorder docs]) ([mysensors docs]) ([homeassistant_alerts docs]) (dependency) +- Update pylint to 2.15.0 ([@cdce8p] - [#77408]) ([switchmate docs]) ([nextdns docs]) (dependency) +- Add CAQI sensors to Nettigo Air Monitor integration ([@bieniu] - [#76709]) ([nam docs]) +- Use generators for async_add_entities in Anthemav ([@tkdrob] - [#76587]) ([anthemav docs]) +- Add set default for domain for scaffold script ([@OldShaterhan] - [#76628]) +- Squeezebox play now support ([@rajlaud] - [#72626]) ([squeezebox docs]) +- Improve type hints in demo [1/3] ([@epenet] - [#77180]) ([demo docs]) +- Fix Plex to Cast media resuming ([@jjlawren] - [#76681]) ([plex docs]) +- Update tesla-wall-connector to 1.0.2 ([@cdce8p] - [#77458]) ([tesla_wall_connector docs]) (dependency) +- Add light platform to Advantage Air ([@Bre77] - [#75425]) ([advantage_air docs]) (new-platform) +- Add ability to ignore devices for UniFi Protect ([@AngellusMortis] - [#77414]) ([unifiprotect docs]) +- Add Litter Robot 4 DHCP discovery ([@tkdrob] - [#77463]) ([litterrobot docs]) +- Fix recorder being imported before deps are installed ([@bdraco] - [#77460]) ([recorder docs]) +- Add reauth flow to Litterrobot ([@tkdrob] - [#77459]) ([litterrobot docs]) +- Add update platform to Advantage Air ([@Bre77] - [#75391]) ([advantage_air docs]) +- Improve deCONZ binary sensor classes ([@Kane610] - [#77419]) ([deconz docs]) +- Refactor hardware.async_info to return list[HardwareInfo] ([@emontnemery] - [#77183]) ([hardware docs]) ([hardkernel docs]) ([raspberry_pi docs]) ([homeassistant_yellow docs]) ([homeassistant_sky_connect docs]) +- Add new rule to enforce relative imports in pylint ([@epenet] - [#77358]) +- Use _attr_temperature_unit in climate entities ([@epenet] - [#77472]) +- Handle kaiterra ClientConnectorError exception ([@AnilDaoud] - [#77428]) ([kaiterra docs]) +- Import issue_registry from helpers for speedtestdotnet ([@engrbm87] - [#77467]) ([speedtestdotnet docs]) +- Ensure LIFX connection is cleaned up on failure ([@bdraco] - [#77465]) ([lifx docs]) +- Bump pizone version ([@Swamp-Ig] - [#77257]) ([izone docs]) (dependency) +- Finish update of integrations to import issue_registry from helpers ([@emontnemery] - [#77473]) ([automation docs]) ([repairs docs]) +- Tweak comment about humidity sensors ([@emontnemery] - [#77482]) ([sensor docs]) +- Add bluetooth api to get the count of connectable and non-connectable scanners ([@bdraco] - [#77427]) ([bluetooth docs]) +- Add light platform to switchbot ([@bdraco] - [#77430]) ([switchbot docs]) (new-platform) (noteworthy) +- Allow ZHA startup to fail instead of raising `ConfigEntryNotReady` ([@puddly] - [#77417]) ([zha docs]) +- Add support for Feeder-Robot sensors ([@natekspencer] - [#77395]) ([litterrobot docs]) +- Use _attr_native_value in glances sensor ([@epenet] - [#77494]) ([glances docs]) +- Add LED BLE integration ([@bdraco] - [#77489]) ([led_ble docs]) (new-integration) +- Add basic media_player to Fully Kiosk Browser integration ([@cgarwood] - [#77266]) ([fully_kiosk docs]) (new-platform) +- Allow searching for person ([@balloob] - [#77339]) ([person docs]) ([search docs]) +- Bump version of pyunifiprotect to 4.1.9 ([@AngellusMortis] - [#77498]) ([unifiprotect docs]) (dependency) +- Bump pylitterbot to 2022.8.2 ([@natekspencer] - [#77504]) ([litterrobot docs]) (dependency) +- Fix oauth2 in Toon ([@samueldumont] - [#77480]) ([toon docs]) +- Fix Tuya mc device support ([@simonengelhardt] - [#77346]) ([tuya docs]) +- Use _attr_precision in entities ([@epenet] - [#77477]) +- Wallbox switch entity state incorrect while discharging ([@simeon-simsoft] - [#76530]) ([wallbox docs]) +- Add a callback for data flow handler removal ([@puddly] - [#77394]) +- Store redirect URI in context instead of asking each time ([@balloob] - [#77380]) ([config docs]) ([auth docs]) +- Correct device class for tasmota apparent and reactive power sensors ([@emontnemery] - [#77519]) ([tasmota docs]) +- Add PrusaLink integration ([@balloob] - [#77429]) ([prusalink docs]) (new-integration) +- Awair local use config entry name + add measurement state class ([@balloob] - [#77383]) ([awair docs]) +- Update allowlisted OAuth redirect URIs for Wear OS ([@jpelgrom] - [#77411]) ([auth docs]) +- Use DataUpdateCoordinator in ISS ([@DurgNomis-drol] - [#65178]) ([iss docs]) +- Support configuring the mode of MQTT number entities ([@emontnemery] - [#77478]) ([mqtt docs]) +- Sync supported locales from alexa official documentation into alexa smart home integration ([@trunet] - [#77536]) ([alexa docs]) +- Revert dark_ image variants for add-ons ([@ludeeus] - [#77528]) ([hassio docs]) +- Fix schedule during single weekday ([@emontnemery] - [#77543]) ([schedule docs]) +- Remove "Awair" from score entity name ([@balloob] - [#77522]) ([awair docs]) +- Bump the ZHA quirks lib ([@dmulcahey] - [#77545]) ([zha docs]) (dependency) +- Adjust callback registration in harmony ([@epenet] - [#77533]) ([harmony docs]) +- Add the USB discovery for the Sonoff ZigBee dongle plus V2 ([@guozi7788] - [#77523]) ([zha docs]) +- Add hvac_action property to Senz ([@astrandb] - [#77413]) ([senz docs]) +- Migrate Litterrobot to new entity naming style ([@tkdrob] - [#77484]) ([litterrobot docs]) +- Add prusalink test cases and fix config flow ([@balloob] - [#77544]) ([prusalink docs]) +- Bump AIOAladdinConnect 0.1.44 ([@mkmer] - [#77542]) ([aladdin_connect docs]) (dependency) +- Use generics in litterrobot ([@epenet] - [#77537]) ([litterrobot docs]) +- Bump `glances` library to 0.4.1 ([@engrbm87] - [#77540]) ([glances docs]) (dependency) +- ZHA backup/restore config flow ([@puddly] - [#77044]) ([zha docs]) +- Add support for zwave_js firmware update service ([@raman325] - [#77401]) ([zwave_js docs]) +- Fix glances config-flow flaky test ([@epenet] - [#77549]) ([glances docs]) +- Use _attr_available in denonavr ([@epenet] - [#77486]) ([denonavr docs]) +- Improve entity type hints [i] ([@epenet] - [#77529]) +- Bump bluetooth-auto-recovery to 0.3.0 ([@bdraco] - [#77555]) ([bluetooth docs]) +- Add Nutrichef as a supported brand of inkbird ([@bdraco] - [#77551]) ([inkbird docs]) +- Bump unifi-discovery to 1.1.6 ([@bdraco] - [#77557]) ([unifiprotect docs]) (dependency) +- Add support for Feeder-Robot button ([@natekspencer] - [#77501]) ([litterrobot docs]) +- Migrate smartthings light to color_mode ([@emontnemery] - [#70968]) ([smartthings docs]) +- Fix lutron_caseta handling of 'None' serials for RA3/QSX zones ([@danaues] - [#77553]) ([lutron_caseta docs]) +- Improve entity type hints [h] ([@epenet] - [#77468]) +- Improve type hints in icloud ([@epenet] - [#77531]) ([icloud docs]) +- Improve type hints in insteon ([@epenet] - [#77532]) ([insteon docs]) +- Migrate osramlightify light to color_mode ([@emontnemery] - [#70915]) ([osramlightify docs]) +- Adjust type hints in gitlab_ci ([@epenet] - [#77493]) ([gitlab_ci docs]) +- Adjust type hints in greewave ([@epenet] - [#77492]) ([greenwave docs]) +- Fix resetting of attributes in EntityRegistry.async_get_or_create ([@emontnemery] - [#77516]) +- Adjust type hints in generic_thermostat ([@epenet] - [#77490]) ([generic_thermostat docs]) +- Use attributes in mochad ([@epenet] - [#76032]) ([mochad docs]) +- Improve type hints in demo [3/3] ([@epenet] - [#77186]) ([demo docs]) +- Allow setting to-time in schedule to 24:00 ([@emontnemery] - [#77558]) ([schedule docs]) +- Add new sensors to BThome ([@Ernst79] - [#77561]) ([bthome docs]) (dependency) +- Add Melnor Bluetooth valve watering Integration ([@vanstinator] - [#70457]) ([melnor docs]) (new-integration) +- Bump flux_led to 0.28.31 to add support for Armacost devices ([@bdraco] - [#77500]) ([flux_led docs]) (dependency) +- Fix SkyConnect unit tests broken by #77044 ([@puddly] - [#77570]) ([homeassistant_sky_connect docs]) +- Add periodic system stats to hardware integration ([@emontnemery] - [#76873]) ([hardware docs]) +- Add sensorpro (BLE) integration ([@bdraco] - [#77569]) ([sensorpro docs]) (new-integration) +- Bump govee-ble to add support for H5185 firmware variant ([@bdraco] - [#77564]) ([govee_ble docs]) (dependency) +- Add pet weight sensor for Litter-Robot 4 ([@natekspencer] - [#77566]) ([litterrobot docs]) +- Simplify zwave_js update entity ([@raman325] - [#77572]) ([zwave_js docs]) +- Fix failing unifiprotect unit tests ([@puddly] - [#77575]) ([unifiprotect docs]) +- Add Aqara FP1 support to deCONZ integration ([@Kane610] - [#77568]) ([deconz docs]) +- Allow data from un-connectable sources in fjäråskupan ([@elupus] - [#77236]) ([fjaraskupan docs]) (dependency) +- Use partition name as device name in Risco alarm control panels ([@OnFreund] - [#77526]) ([risco docs]) +- Add support for Feeder-Robot switches ([@natekspencer] - [#77503]) ([litterrobot docs]) +- Implement reauth_confirm in icloud ([@epenet] - [#77530]) ([icloud docs]) +- Normalize deCONZ sensor unique IDs ([@Kane610] - [#76357]) ([deconz docs]) +- Fix sync context in icloud ([@epenet] - [#77582]) ([icloud docs]) +- Improve statistics metadata WS API ([@emontnemery] - [#77209]) ([recorder docs]) ([history docs]) ([sensor docs]) +- Fix `feedreader` component to keep the last entry timestamp up to date ([@likeablob] - [#77547]) ([feedreader docs]) +- Ecowitt integration ([@pvizeli] - [#77441]) ([ecowitt docs]) (new-integration) +- Refactor version key in `glances` ([@engrbm87] - [#77541]) ([glances docs]) +- Litterrobot - Do not load a platform if there is no device supporting it ([@tkdrob] - [#77497]) ([litterrobot docs]) +- Bump pyipma to 3.0.2 ([@dgomes] - [#76332]) ([ipma docs]) (dependency) +- Small refactoring of BMW lock entity ([@rikroe] - [#77451]) ([bmw_connected_drive docs]) +- Add support for Feeder-Robot select ([@natekspencer] - [#77512]) ([litterrobot docs]) +- Bump hatasmota to 0.6.0 ([@emontnemery] - [#77560]) ([tasmota docs]) (dependency) +- Add Chatzot Hayom to Jewish calendar ([@MosheTzvi] - [#76378]) ([jewish_calendar docs]) +- Add additional test to schedule ([@emontnemery] - [#77601]) ([schedule docs]) +- Log command list in Bravia TV Remote ([@Drafteed] - [#77329]) ([braviatv docs]) +- Fix comment in login_flow ([@emontnemery] - [#77600]) ([auth docs]) +- ZHA Yellow config flow fixes ([@puddly] - [#77603]) ([zha docs]) ([homeassistant_yellow docs]) +- Migrate Ecowitt to webhooks ([@balloob] - [#77610]) ([ecowitt docs]) +- Fix yet another Govee H5181 variant ([@bdraco] - [#77611]) ([govee_ble docs]) (dependency) +- Add ZHA config flow single instance checks for zeroconf and hardware ([@puddly] - [#77612]) ([zha docs]) +- Bump plexapi to 4.13.0 ([@jjlawren] - [#77597]) ([plex docs]) (dependency) +- Bump frontend to 20220831.0 ([@balloob] - [#77615]) ([frontend docs]) (dependency) +- Catch unknown user exception in Overkiz integration ([@iMicknl] - [#76693]) ([overkiz docs]) (beta fix) +- Suppress 404 in Bravia TV ([@Drafteed] - [#77288]) ([braviatv docs]) (beta fix) +- Bump version of pyunifiprotect to 4.2.0 ([@AngellusMortis] - [#77618]) ([unifiprotect docs]) (beta fix) (dependency) +- Update xknx to 1.0.2 ([@farmio] - [#77627]) ([knx docs]) (beta fix) (dependency) +- Bump bleak to 0.16.0 ([@bdraco] - [#77629]) ([bluetooth docs]) (beta fix) (dependency) +- Bump melnor-bluetooth to 0.0.15 ([@vanstinator] - [#77631]) ([melnor docs]) (beta fix) +- Required config_flow values for here_travel_time ([@eifinger] - [#75026]) ([here_travel_time docs]) (beta fix) +- Fix basic browse_media support in forked-daapd ([@uvjustin] - [#77595]) ([forked_daapd docs]) (beta fix) +- Code quality improvements for litterrobot integration ([@natekspencer] - [#77605]) ([litterrobot docs]) (beta fix) +- Increase sleep in Risco setup ([@OnFreund] - [#77619]) ([risco docs]) (beta fix) +- Add and remove Snapcast client/group callbacks properly ([@luar123] - [#77624]) ([snapcast docs]) (beta fix) +- Required option_flow values for here_travel_time ([@eifinger] - [#77651]) ([here_travel_time docs]) (beta fix) +- Clean up user overridden device class in entity registry ([@emontnemery] - [#77662]) (beta fix) +- Include entity registry id in entity registry WS API ([@emontnemery] - [#77668]) ([config docs]) (beta fix) +- Fix async_all_discovered_devices(False) to return connectable and unconnectable devices ([@Jc2k] - [#77670]) ([bluetooth docs]) (beta fix) +- bump pynetgear to 0.10.8 ([@starkillerOG] - [#77672]) ([netgear docs]) (beta fix) (dependency) +- Bump pySwitchbot to 0.18.22 ([@bdraco] - [#77673]) ([switchbot docs]) (beta fix) (dependency) +- Ensure unique id is set for esphome when setup via user flow ([@bdraco] - [#77677]) ([esphome docs]) (beta fix) +- Pin Pandas 1.4.3 ([@balloob] - [#77679]) (beta fix) +- Bump bluetooth-adapters to 0.3.3 ([@bdraco] - [#77683]) ([bluetooth docs]) (beta fix) (dependency) +- Bump frontend to 20220901.0 ([@balloob] - [#77689]) ([frontend docs]) (beta fix) +- Fix timezone edge cases for Unifi Protect media source ([@AngellusMortis] - [#77636]) ([unifiprotect docs]) (beta fix) +- Adjust litterrobot platform loading/unloading ([@natekspencer] - [#77682]) ([litterrobot docs]) (beta fix) +- Bump bluetooth-adapters to 3.3.4 ([@bdraco] - [#77705]) ([bluetooth docs]) (beta fix) +- Change zwave_js firmware update service API key ([@raman325] - [#77719]) ([zwave_js docs]) (beta fix) +- Bump frontend to 20220902.0 ([@balloob] - [#77734]) ([frontend docs]) (beta fix) (dependency) +- Register xiaomi_miio unload callbacks later in setup ([@starkillerOG] - [#76714]) ([xiaomi_miio docs]) (beta fix) +- Convert platform in iss integration ([@DurgNomis-drol] - [#77218]) ([iss docs]) (breaking-change) (beta fix) +- Fix setting and reading percentage for MIOT based fans ([@peteh] - [#77626]) ([xiaomi_miio docs]) (beta fix) +- Fix upgrade api disabling during setup of Synology DSM ([@mib1185] - [#77753]) ([synology_dsm docs]) (beta fix) +- Add BlueMaestro integration ([@bdraco] - [#77758]) ([bluemaestro docs]) (beta fix) (new-integration) +- Increase default august timeout ([@bdraco] - [#77762]) ([august docs]) (beta fix) +- Handle dead nodes in zwave_js update entity ([@raman325] - [#77763]) ([zwave_js docs]) (beta fix) +- Update smarttub to 0.0.33 ([@mdz] - [#77766]) ([smarttub docs]) (beta fix) (dependency) +- Replace archived sucks by py-sucks and bump to 0.9.8 for Ecovacs integration ([@mib1185] - [#77768]) ([ecovacs docs]) (beta fix) (dependency) +- Add binary sensor platform to LIFX integration ([@Djelibeybi] - [#77535]) ([lifx docs]) (new-platform) (beta fix) +- Rename the binary sensor to better reflect its purpose ([@Djelibeybi] - [#77711]) ([lifx docs]) (beta fix) +- Fix lifx service call interference ([@Djelibeybi] - [#77770]) ([lifx docs]) (beta fix) +- Tweak unique id formatting for Melnor Bluetooth switches ([@vanstinator] - [#77773]) ([melnor docs]) (beta fix) +- Bump flux_led to 0.28.32 ([@bdraco] - [#77787]) ([flux_led docs]) (beta fix) (dependency) +- Bump led-ble to 0.6.0 ([@bdraco] - [#77788]) ([led_ble docs]) (beta fix) (dependency) +- Bump pysensibo to 1.0.19 ([@gjohansson-ST] - [#77790]) ([sensibo docs]) (beta fix) (dependency) +- Make Sonos typing more complete ([@tkdrob] - [#68072]) ([sonos docs]) (beta fix) +- Bump yale_smart_alarm_client to 0.3.9 ([@gjohansson-ST] - [#77797]) ([yale_smart_alarm docs]) (beta fix) (dependency) +- Rename BThome to BTHome ([@Ernst79] - [#77807]) ([bthome docs]) (beta fix) +- Prefilter noisy apple devices from bluetooth ([@bdraco] - [#77808]) ([bluetooth docs]) (beta fix) +- Fix isy994 calling sync api in async context ([@bdraco] - [#77812]) ([isy994 docs]) (beta fix) +- Fix device info for zwave_js device entities ([@raman325] - [#77821]) ([zwave_js docs]) (beta fix) +- Bump pybravia to 0.2.1 ([@Drafteed] - [#77832]) ([braviatv docs]) (beta fix) (dependency) +- Add remoteAdminPasswordEnd to redacted keys in fully_kiosk diagnostics ([@cgarwood] - [#77837]) ([fully_kiosk docs]) (beta fix) +- Less verbose error logs for bleak connection errors in ActiveBluetoothProcessorCoordinator ([@Jc2k] - [#77839]) ([bluetooth docs]) (beta fix) +- Add the hardware integration to default_config ([@emontnemery] - [#77840]) ([default_config docs]) (beta fix) +- Bump led-ble to 0.7.0 ([@bdraco] - [#77845]) ([led_ble docs]) (beta fix) (dependency) +- Bump govee-ble to 0.17.2 ([@bdraco] - [#77849]) ([govee_ble docs]) (beta fix) (dependency) +- Update frontend to 20220905.0 ([@bramkragten] - [#77854]) ([frontend docs]) (beta fix) +- Use identifiers host and serial number to match device ([@StevenLooman] - [#75657]) ([upnp docs]) (beta fix) +- Refactor zwave_js event handling ([@MartinHjelmare] - [#77732]) ([zwave_js docs]) (beta fix) +- Allow empty db in SQL options flow ([@gjohansson-ST] - [#77777]) ([sql docs]) (beta fix) +- Handle exception on projector being unavailable ([@Vaskivskyi] - [#77802]) ([epson docs]) (beta fix) +- Adjust Renault default scan interval ([@magenbrot] - [#77823]) ([renault docs]) (beta fix) +- Fix history stats device class when type is not time ([@bdraco] - [#77855]) ([history_stats docs]) (beta fix) +- Bump zeroconf to 0.39.1 ([@bdraco] - [#77859]) ([zeroconf docs]) (beta fix) (dependency) +- Add RSSI to the bluetooth debug log ([@bdraco] - [#77860]) ([bluetooth docs]) (beta fix) +- Pin astroid to fix pylint ([@cdce8p] - [#77862]) (beta fix) +- Bump thermopro-ble to 0.4.3 ([@bdraco] - [#77863]) ([thermopro docs]) (beta fix) (dependency) +- Improve performance impact of zwave_js update entity and other tweaks ([@raman325] - [#77866]) ([zwave_js docs]) (beta fix) +- Bump pybravia to 0.2.2 ([@Drafteed] - [#77867]) ([braviatv docs]) (beta fix) +- Bump bluetooth-auto-recovery to 0.3.1 ([@bdraco] - [#77898]) ([bluetooth docs]) (beta fix) +- Update frontend to 20220906.0 ([@bramkragten] - [#77910]) ([frontend docs]) (beta fix) +- Bump btsmarthub_devicelist to 0.2.2 ([@typhoon2099] - [#77609]) ([bt_smarthub docs]) (beta fix) (dependency) +- Fix ZHA lighting initial hue/saturation attribute read ([@puddly] - [#77727]) ([zha docs]) (beta fix) +- Add additional method of retrieving UUID for LG soundbar configuration ([@chrismccurdy] - [#77856]) ([lg_soundbar docs]) (beta fix) +- Bump zwave-js-server-python to 0.41.1 ([@raman325] - [#77915]) ([zwave_js docs]) (beta fix) (dependency) +- Revert "Add ability to ignore devices for UniFi Protect" ([@frenck] - [#77916]) ([unifiprotect docs]) (beta fix) +- Bump aiohomekit to 1.5.2 ([@bdraco] - [#77927]) ([homekit_controller docs]) (beta fix) (dependency) +- Bump led-ble to 0.7.1 ([@bdraco] - [#77931]) ([led_ble docs]) (beta fix) (dependency) +- Small tweaks to improve performance of bluetooth matching ([@bdraco] - [#77934]) ([bluetooth docs]) (beta fix) +- Bump PySwitchbot to 0.18.25 ([@bdraco] - [#77935]) ([switchbot docs]) (beta fix) (dependency) +- Handle stale switchbot advertisement data while connected ([@bdraco] - [#77956]) ([switchbot docs]) (beta fix) +- Update frontend to 20220907.0 ([@bramkragten] - [#77963]) ([frontend docs]) (beta fix) + +[#56039]: https://github.com/home-assistant/core/pull/56039 +[#57866]: https://github.com/home-assistant/core/pull/57866 +[#62873]: https://github.com/home-assistant/core/pull/62873 +[#65178]: https://github.com/home-assistant/core/pull/65178 +[#67058]: https://github.com/home-assistant/core/pull/67058 +[#68072]: https://github.com/home-assistant/core/pull/68072 +[#69220]: https://github.com/home-assistant/core/pull/69220 +[#70457]: https://github.com/home-assistant/core/pull/70457 +[#70915]: https://github.com/home-assistant/core/pull/70915 +[#70968]: https://github.com/home-assistant/core/pull/70968 +[#71310]: https://github.com/home-assistant/core/pull/71310 +[#71896]: https://github.com/home-assistant/core/pull/71896 +[#72626]: https://github.com/home-assistant/core/pull/72626 +[#72865]: https://github.com/home-assistant/core/pull/72865 +[#73244]: https://github.com/home-assistant/core/pull/73244 +[#73363]: https://github.com/home-assistant/core/pull/73363 +[#74004]: https://github.com/home-assistant/core/pull/74004 +[#74157]: https://github.com/home-assistant/core/pull/74157 +[#74500]: https://github.com/home-assistant/core/pull/74500 +[#74779]: https://github.com/home-assistant/core/pull/74779 +[#74921]: https://github.com/home-assistant/core/pull/74921 +[#75026]: https://github.com/home-assistant/core/pull/75026 +[#75094]: https://github.com/home-assistant/core/pull/75094 +[#75122]: https://github.com/home-assistant/core/pull/75122 +[#75227]: https://github.com/home-assistant/core/pull/75227 +[#75266]: https://github.com/home-assistant/core/pull/75266 +[#75323]: https://github.com/home-assistant/core/pull/75323 +[#75324]: https://github.com/home-assistant/core/pull/75324 +[#75391]: https://github.com/home-assistant/core/pull/75391 +[#75425]: https://github.com/home-assistant/core/pull/75425 +[#75460]: https://github.com/home-assistant/core/pull/75460 +[#75535]: https://github.com/home-assistant/core/pull/75535 +[#75542]: https://github.com/home-assistant/core/pull/75542 +[#75568]: https://github.com/home-assistant/core/pull/75568 +[#75584]: https://github.com/home-assistant/core/pull/75584 +[#75586]: https://github.com/home-assistant/core/pull/75586 +[#75595]: https://github.com/home-assistant/core/pull/75595 +[#75603]: https://github.com/home-assistant/core/pull/75603 +[#75619]: https://github.com/home-assistant/core/pull/75619 +[#75657]: https://github.com/home-assistant/core/pull/75657 +[#75674]: https://github.com/home-assistant/core/pull/75674 +[#75682]: https://github.com/home-assistant/core/pull/75682 +[#75695]: https://github.com/home-assistant/core/pull/75695 +[#75718]: https://github.com/home-assistant/core/pull/75718 +[#75727]: https://github.com/home-assistant/core/pull/75727 +[#75745]: https://github.com/home-assistant/core/pull/75745 +[#75789]: https://github.com/home-assistant/core/pull/75789 +[#75790]: https://github.com/home-assistant/core/pull/75790 +[#75791]: https://github.com/home-assistant/core/pull/75791 +[#75795]: https://github.com/home-assistant/core/pull/75795 +[#75796]: https://github.com/home-assistant/core/pull/75796 +[#75797]: https://github.com/home-assistant/core/pull/75797 +[#75801]: https://github.com/home-assistant/core/pull/75801 +[#75814]: https://github.com/home-assistant/core/pull/75814 +[#75818]: https://github.com/home-assistant/core/pull/75818 +[#75852]: https://github.com/home-assistant/core/pull/75852 +[#75874]: https://github.com/home-assistant/core/pull/75874 +[#75885]: https://github.com/home-assistant/core/pull/75885 +[#75888]: https://github.com/home-assistant/core/pull/75888 +[#75891]: https://github.com/home-assistant/core/pull/75891 +[#75892]: https://github.com/home-assistant/core/pull/75892 +[#75898]: https://github.com/home-assistant/core/pull/75898 +[#75909]: https://github.com/home-assistant/core/pull/75909 +[#75910]: https://github.com/home-assistant/core/pull/75910 +[#75911]: https://github.com/home-assistant/core/pull/75911 +[#75913]: https://github.com/home-assistant/core/pull/75913 +[#75921]: https://github.com/home-assistant/core/pull/75921 +[#75936]: https://github.com/home-assistant/core/pull/75936 +[#75943]: https://github.com/home-assistant/core/pull/75943 +[#75945]: https://github.com/home-assistant/core/pull/75945 +[#75946]: https://github.com/home-assistant/core/pull/75946 +[#75947]: https://github.com/home-assistant/core/pull/75947 +[#75951]: https://github.com/home-assistant/core/pull/75951 +[#75963]: https://github.com/home-assistant/core/pull/75963 +[#75964]: https://github.com/home-assistant/core/pull/75964 +[#75965]: https://github.com/home-assistant/core/pull/75965 +[#75966]: https://github.com/home-assistant/core/pull/75966 +[#75988]: https://github.com/home-assistant/core/pull/75988 +[#75993]: https://github.com/home-assistant/core/pull/75993 +[#75994]: https://github.com/home-assistant/core/pull/75994 +[#75995]: https://github.com/home-assistant/core/pull/75995 +[#75998]: https://github.com/home-assistant/core/pull/75998 +[#75999]: https://github.com/home-assistant/core/pull/75999 +[#76001]: https://github.com/home-assistant/core/pull/76001 +[#76004]: https://github.com/home-assistant/core/pull/76004 +[#76005]: https://github.com/home-assistant/core/pull/76005 +[#76011]: https://github.com/home-assistant/core/pull/76011 +[#76015]: https://github.com/home-assistant/core/pull/76015 +[#76017]: https://github.com/home-assistant/core/pull/76017 +[#76018]: https://github.com/home-assistant/core/pull/76018 +[#76019]: https://github.com/home-assistant/core/pull/76019 +[#76022]: https://github.com/home-assistant/core/pull/76022 +[#76025]: https://github.com/home-assistant/core/pull/76025 +[#76029]: https://github.com/home-assistant/core/pull/76029 +[#76030]: https://github.com/home-assistant/core/pull/76030 +[#76031]: https://github.com/home-assistant/core/pull/76031 +[#76032]: https://github.com/home-assistant/core/pull/76032 +[#76045]: https://github.com/home-assistant/core/pull/76045 +[#76047]: https://github.com/home-assistant/core/pull/76047 +[#76051]: https://github.com/home-assistant/core/pull/76051 +[#76053]: https://github.com/home-assistant/core/pull/76053 +[#76054]: https://github.com/home-assistant/core/pull/76054 +[#76059]: https://github.com/home-assistant/core/pull/76059 +[#76066]: https://github.com/home-assistant/core/pull/76066 +[#76071]: https://github.com/home-assistant/core/pull/76071 +[#76074]: https://github.com/home-assistant/core/pull/76074 +[#76098]: https://github.com/home-assistant/core/pull/76098 +[#76100]: https://github.com/home-assistant/core/pull/76100 +[#76120]: https://github.com/home-assistant/core/pull/76120 +[#76124]: https://github.com/home-assistant/core/pull/76124 +[#76153]: https://github.com/home-assistant/core/pull/76153 +[#76155]: https://github.com/home-assistant/core/pull/76155 +[#76165]: https://github.com/home-assistant/core/pull/76165 +[#76168]: https://github.com/home-assistant/core/pull/76168 +[#76171]: https://github.com/home-assistant/core/pull/76171 +[#76172]: https://github.com/home-assistant/core/pull/76172 +[#76175]: https://github.com/home-assistant/core/pull/76175 +[#76182]: https://github.com/home-assistant/core/pull/76182 +[#76191]: https://github.com/home-assistant/core/pull/76191 +[#76192]: https://github.com/home-assistant/core/pull/76192 +[#76200]: https://github.com/home-assistant/core/pull/76200 +[#76209]: https://github.com/home-assistant/core/pull/76209 +[#76211]: https://github.com/home-assistant/core/pull/76211 +[#76216]: https://github.com/home-assistant/core/pull/76216 +[#76222]: https://github.com/home-assistant/core/pull/76222 +[#76224]: https://github.com/home-assistant/core/pull/76224 +[#76228]: https://github.com/home-assistant/core/pull/76228 +[#76250]: https://github.com/home-assistant/core/pull/76250 +[#76254]: https://github.com/home-assistant/core/pull/76254 +[#76257]: https://github.com/home-assistant/core/pull/76257 +[#76262]: https://github.com/home-assistant/core/pull/76262 +[#76265]: https://github.com/home-assistant/core/pull/76265 +[#76272]: https://github.com/home-assistant/core/pull/76272 +[#76286]: https://github.com/home-assistant/core/pull/76286 +[#76288]: https://github.com/home-assistant/core/pull/76288 +[#76293]: https://github.com/home-assistant/core/pull/76293 +[#76299]: https://github.com/home-assistant/core/pull/76299 +[#76300]: https://github.com/home-assistant/core/pull/76300 +[#76303]: https://github.com/home-assistant/core/pull/76303 +[#76312]: https://github.com/home-assistant/core/pull/76312 +[#76328]: https://github.com/home-assistant/core/pull/76328 +[#76332]: https://github.com/home-assistant/core/pull/76332 +[#76333]: https://github.com/home-assistant/core/pull/76333 +[#76336]: https://github.com/home-assistant/core/pull/76336 +[#76339]: https://github.com/home-assistant/core/pull/76339 +[#76342]: https://github.com/home-assistant/core/pull/76342 +[#76356]: https://github.com/home-assistant/core/pull/76356 +[#76357]: https://github.com/home-assistant/core/pull/76357 +[#76358]: https://github.com/home-assistant/core/pull/76358 +[#76365]: https://github.com/home-assistant/core/pull/76365 +[#76366]: https://github.com/home-assistant/core/pull/76366 +[#76367]: https://github.com/home-assistant/core/pull/76367 +[#76372]: https://github.com/home-assistant/core/pull/76372 +[#76373]: https://github.com/home-assistant/core/pull/76373 +[#76376]: https://github.com/home-assistant/core/pull/76376 +[#76378]: https://github.com/home-assistant/core/pull/76378 +[#76384]: https://github.com/home-assistant/core/pull/76384 +[#76385]: https://github.com/home-assistant/core/pull/76385 +[#76386]: https://github.com/home-assistant/core/pull/76386 +[#76389]: https://github.com/home-assistant/core/pull/76389 +[#76390]: https://github.com/home-assistant/core/pull/76390 +[#76391]: https://github.com/home-assistant/core/pull/76391 +[#76393]: https://github.com/home-assistant/core/pull/76393 +[#76404]: https://github.com/home-assistant/core/pull/76404 +[#76409]: https://github.com/home-assistant/core/pull/76409 +[#76416]: https://github.com/home-assistant/core/pull/76416 +[#76417]: https://github.com/home-assistant/core/pull/76417 +[#76426]: https://github.com/home-assistant/core/pull/76426 +[#76432]: https://github.com/home-assistant/core/pull/76432 +[#76441]: https://github.com/home-assistant/core/pull/76441 +[#76443]: https://github.com/home-assistant/core/pull/76443 +[#76444]: https://github.com/home-assistant/core/pull/76444 +[#76445]: https://github.com/home-assistant/core/pull/76445 +[#76446]: https://github.com/home-assistant/core/pull/76446 +[#76447]: https://github.com/home-assistant/core/pull/76447 +[#76449]: https://github.com/home-assistant/core/pull/76449 +[#76457]: https://github.com/home-assistant/core/pull/76457 +[#76458]: https://github.com/home-assistant/core/pull/76458 +[#76459]: https://github.com/home-assistant/core/pull/76459 +[#76460]: https://github.com/home-assistant/core/pull/76460 +[#76464]: https://github.com/home-assistant/core/pull/76464 +[#76466]: https://github.com/home-assistant/core/pull/76466 +[#76467]: https://github.com/home-assistant/core/pull/76467 +[#76468]: https://github.com/home-assistant/core/pull/76468 +[#76469]: https://github.com/home-assistant/core/pull/76469 +[#76471]: https://github.com/home-assistant/core/pull/76471 +[#76472]: https://github.com/home-assistant/core/pull/76472 +[#76480]: https://github.com/home-assistant/core/pull/76480 +[#76483]: https://github.com/home-assistant/core/pull/76483 +[#76490]: https://github.com/home-assistant/core/pull/76490 +[#76500]: https://github.com/home-assistant/core/pull/76500 +[#76505]: https://github.com/home-assistant/core/pull/76505 +[#76506]: https://github.com/home-assistant/core/pull/76506 +[#76509]: https://github.com/home-assistant/core/pull/76509 +[#76523]: https://github.com/home-assistant/core/pull/76523 +[#76524]: https://github.com/home-assistant/core/pull/76524 +[#76530]: https://github.com/home-assistant/core/pull/76530 +[#76545]: https://github.com/home-assistant/core/pull/76545 +[#76549]: https://github.com/home-assistant/core/pull/76549 +[#76559]: https://github.com/home-assistant/core/pull/76559 +[#76560]: https://github.com/home-assistant/core/pull/76560 +[#76561]: https://github.com/home-assistant/core/pull/76561 +[#76563]: https://github.com/home-assistant/core/pull/76563 +[#76566]: https://github.com/home-assistant/core/pull/76566 +[#76567]: https://github.com/home-assistant/core/pull/76567 +[#76569]: https://github.com/home-assistant/core/pull/76569 +[#76571]: https://github.com/home-assistant/core/pull/76571 +[#76573]: https://github.com/home-assistant/core/pull/76573 +[#76574]: https://github.com/home-assistant/core/pull/76574 +[#76577]: https://github.com/home-assistant/core/pull/76577 +[#76578]: https://github.com/home-assistant/core/pull/76578 +[#76580]: https://github.com/home-assistant/core/pull/76580 +[#76586]: https://github.com/home-assistant/core/pull/76586 +[#76587]: https://github.com/home-assistant/core/pull/76587 +[#76590]: https://github.com/home-assistant/core/pull/76590 +[#76595]: https://github.com/home-assistant/core/pull/76595 +[#76598]: https://github.com/home-assistant/core/pull/76598 +[#76599]: https://github.com/home-assistant/core/pull/76599 +[#76607]: https://github.com/home-assistant/core/pull/76607 +[#76616]: https://github.com/home-assistant/core/pull/76616 +[#76617]: https://github.com/home-assistant/core/pull/76617 +[#76618]: https://github.com/home-assistant/core/pull/76618 +[#76625]: https://github.com/home-assistant/core/pull/76625 +[#76626]: https://github.com/home-assistant/core/pull/76626 +[#76628]: https://github.com/home-assistant/core/pull/76628 +[#76630]: https://github.com/home-assistant/core/pull/76630 +[#76631]: https://github.com/home-assistant/core/pull/76631 +[#76635]: https://github.com/home-assistant/core/pull/76635 +[#76637]: https://github.com/home-assistant/core/pull/76637 +[#76639]: https://github.com/home-assistant/core/pull/76639 +[#76641]: https://github.com/home-assistant/core/pull/76641 +[#76648]: https://github.com/home-assistant/core/pull/76648 +[#76651]: https://github.com/home-assistant/core/pull/76651 +[#76654]: https://github.com/home-assistant/core/pull/76654 +[#76655]: https://github.com/home-assistant/core/pull/76655 +[#76657]: https://github.com/home-assistant/core/pull/76657 +[#76663]: https://github.com/home-assistant/core/pull/76663 +[#76665]: https://github.com/home-assistant/core/pull/76665 +[#76666]: https://github.com/home-assistant/core/pull/76666 +[#76670]: https://github.com/home-assistant/core/pull/76670 +[#76672]: https://github.com/home-assistant/core/pull/76672 +[#76673]: https://github.com/home-assistant/core/pull/76673 +[#76675]: https://github.com/home-assistant/core/pull/76675 +[#76680]: https://github.com/home-assistant/core/pull/76680 +[#76681]: https://github.com/home-assistant/core/pull/76681 +[#76682]: https://github.com/home-assistant/core/pull/76682 +[#76683]: https://github.com/home-assistant/core/pull/76683 +[#76685]: https://github.com/home-assistant/core/pull/76685 +[#76691]: https://github.com/home-assistant/core/pull/76691 +[#76693]: https://github.com/home-assistant/core/pull/76693 +[#76700]: https://github.com/home-assistant/core/pull/76700 +[#76707]: https://github.com/home-assistant/core/pull/76707 +[#76708]: https://github.com/home-assistant/core/pull/76708 +[#76709]: https://github.com/home-assistant/core/pull/76709 +[#76710]: https://github.com/home-assistant/core/pull/76710 +[#76714]: https://github.com/home-assistant/core/pull/76714 +[#76718]: https://github.com/home-assistant/core/pull/76718 +[#76719]: https://github.com/home-assistant/core/pull/76719 +[#76720]: https://github.com/home-assistant/core/pull/76720 +[#76721]: https://github.com/home-assistant/core/pull/76721 +[#76722]: https://github.com/home-assistant/core/pull/76722 +[#76723]: https://github.com/home-assistant/core/pull/76723 +[#76733]: https://github.com/home-assistant/core/pull/76733 +[#76737]: https://github.com/home-assistant/core/pull/76737 +[#76743]: https://github.com/home-assistant/core/pull/76743 +[#76744]: https://github.com/home-assistant/core/pull/76744 +[#76747]: https://github.com/home-assistant/core/pull/76747 +[#76758]: https://github.com/home-assistant/core/pull/76758 +[#76759]: https://github.com/home-assistant/core/pull/76759 +[#76760]: https://github.com/home-assistant/core/pull/76760 +[#76766]: https://github.com/home-assistant/core/pull/76766 +[#76768]: https://github.com/home-assistant/core/pull/76768 +[#76780]: https://github.com/home-assistant/core/pull/76780 +[#76788]: https://github.com/home-assistant/core/pull/76788 +[#76789]: https://github.com/home-assistant/core/pull/76789 +[#76790]: https://github.com/home-assistant/core/pull/76790 +[#76795]: https://github.com/home-assistant/core/pull/76795 +[#76803]: https://github.com/home-assistant/core/pull/76803 +[#76804]: https://github.com/home-assistant/core/pull/76804 +[#76805]: https://github.com/home-assistant/core/pull/76805 +[#76806]: https://github.com/home-assistant/core/pull/76806 +[#76807]: https://github.com/home-assistant/core/pull/76807 +[#76808]: https://github.com/home-assistant/core/pull/76808 +[#76812]: https://github.com/home-assistant/core/pull/76812 +[#76813]: https://github.com/home-assistant/core/pull/76813 +[#76814]: https://github.com/home-assistant/core/pull/76814 +[#76819]: https://github.com/home-assistant/core/pull/76819 +[#76821]: https://github.com/home-assistant/core/pull/76821 +[#76829]: https://github.com/home-assistant/core/pull/76829 +[#76830]: https://github.com/home-assistant/core/pull/76830 +[#76834]: https://github.com/home-assistant/core/pull/76834 +[#76838]: https://github.com/home-assistant/core/pull/76838 +[#76841]: https://github.com/home-assistant/core/pull/76841 +[#76848]: https://github.com/home-assistant/core/pull/76848 +[#76849]: https://github.com/home-assistant/core/pull/76849 +[#76851]: https://github.com/home-assistant/core/pull/76851 +[#76852]: https://github.com/home-assistant/core/pull/76852 +[#76853]: https://github.com/home-assistant/core/pull/76853 +[#76854]: https://github.com/home-assistant/core/pull/76854 +[#76855]: https://github.com/home-assistant/core/pull/76855 +[#76857]: https://github.com/home-assistant/core/pull/76857 +[#76858]: https://github.com/home-assistant/core/pull/76858 +[#76861]: https://github.com/home-assistant/core/pull/76861 +[#76864]: https://github.com/home-assistant/core/pull/76864 +[#76865]: https://github.com/home-assistant/core/pull/76865 +[#76869]: https://github.com/home-assistant/core/pull/76869 +[#76870]: https://github.com/home-assistant/core/pull/76870 +[#76871]: https://github.com/home-assistant/core/pull/76871 +[#76873]: https://github.com/home-assistant/core/pull/76873 +[#76875]: https://github.com/home-assistant/core/pull/76875 +[#76876]: https://github.com/home-assistant/core/pull/76876 +[#76880]: https://github.com/home-assistant/core/pull/76880 +[#76882]: https://github.com/home-assistant/core/pull/76882 +[#76883]: https://github.com/home-assistant/core/pull/76883 +[#76884]: https://github.com/home-assistant/core/pull/76884 +[#76887]: https://github.com/home-assistant/core/pull/76887 +[#76892]: https://github.com/home-assistant/core/pull/76892 +[#76894]: https://github.com/home-assistant/core/pull/76894 +[#76895]: https://github.com/home-assistant/core/pull/76895 +[#76896]: https://github.com/home-assistant/core/pull/76896 +[#76897]: https://github.com/home-assistant/core/pull/76897 +[#76900]: https://github.com/home-assistant/core/pull/76900 +[#76903]: https://github.com/home-assistant/core/pull/76903 +[#76906]: https://github.com/home-assistant/core/pull/76906 +[#76907]: https://github.com/home-assistant/core/pull/76907 +[#76908]: https://github.com/home-assistant/core/pull/76908 +[#76909]: https://github.com/home-assistant/core/pull/76909 +[#76910]: https://github.com/home-assistant/core/pull/76910 +[#76911]: https://github.com/home-assistant/core/pull/76911 +[#76912]: https://github.com/home-assistant/core/pull/76912 +[#76915]: https://github.com/home-assistant/core/pull/76915 +[#76916]: https://github.com/home-assistant/core/pull/76916 +[#76917]: https://github.com/home-assistant/core/pull/76917 +[#76918]: https://github.com/home-assistant/core/pull/76918 +[#76921]: https://github.com/home-assistant/core/pull/76921 +[#76923]: https://github.com/home-assistant/core/pull/76923 +[#76924]: https://github.com/home-assistant/core/pull/76924 +[#76926]: https://github.com/home-assistant/core/pull/76926 +[#76928]: https://github.com/home-assistant/core/pull/76928 +[#76930]: https://github.com/home-assistant/core/pull/76930 +[#76931]: https://github.com/home-assistant/core/pull/76931 +[#76932]: https://github.com/home-assistant/core/pull/76932 +[#76933]: https://github.com/home-assistant/core/pull/76933 +[#76934]: https://github.com/home-assistant/core/pull/76934 +[#76935]: https://github.com/home-assistant/core/pull/76935 +[#76936]: https://github.com/home-assistant/core/pull/76936 +[#76937]: https://github.com/home-assistant/core/pull/76937 +[#76940]: https://github.com/home-assistant/core/pull/76940 +[#76942]: https://github.com/home-assistant/core/pull/76942 +[#76944]: https://github.com/home-assistant/core/pull/76944 +[#76945]: https://github.com/home-assistant/core/pull/76945 +[#76947]: https://github.com/home-assistant/core/pull/76947 +[#76949]: https://github.com/home-assistant/core/pull/76949 +[#76952]: https://github.com/home-assistant/core/pull/76952 +[#76957]: https://github.com/home-assistant/core/pull/76957 +[#76958]: https://github.com/home-assistant/core/pull/76958 +[#76963]: https://github.com/home-assistant/core/pull/76963 +[#76967]: https://github.com/home-assistant/core/pull/76967 +[#76972]: https://github.com/home-assistant/core/pull/76972 +[#76974]: https://github.com/home-assistant/core/pull/76974 +[#76978]: https://github.com/home-assistant/core/pull/76978 +[#76985]: https://github.com/home-assistant/core/pull/76985 +[#76986]: https://github.com/home-assistant/core/pull/76986 +[#76987]: https://github.com/home-assistant/core/pull/76987 +[#76988]: https://github.com/home-assistant/core/pull/76988 +[#76989]: https://github.com/home-assistant/core/pull/76989 +[#76990]: https://github.com/home-assistant/core/pull/76990 +[#76991]: https://github.com/home-assistant/core/pull/76991 +[#76992]: https://github.com/home-assistant/core/pull/76992 +[#76993]: https://github.com/home-assistant/core/pull/76993 +[#76994]: https://github.com/home-assistant/core/pull/76994 +[#76998]: https://github.com/home-assistant/core/pull/76998 +[#77004]: https://github.com/home-assistant/core/pull/77004 +[#77006]: https://github.com/home-assistant/core/pull/77006 +[#77007]: https://github.com/home-assistant/core/pull/77007 +[#77010]: https://github.com/home-assistant/core/pull/77010 +[#77012]: https://github.com/home-assistant/core/pull/77012 +[#77013]: https://github.com/home-assistant/core/pull/77013 +[#77014]: https://github.com/home-assistant/core/pull/77014 +[#77015]: https://github.com/home-assistant/core/pull/77015 +[#77019]: https://github.com/home-assistant/core/pull/77019 +[#77023]: https://github.com/home-assistant/core/pull/77023 +[#77024]: https://github.com/home-assistant/core/pull/77024 +[#77025]: https://github.com/home-assistant/core/pull/77025 +[#77027]: https://github.com/home-assistant/core/pull/77027 +[#77030]: https://github.com/home-assistant/core/pull/77030 +[#77031]: https://github.com/home-assistant/core/pull/77031 +[#77032]: https://github.com/home-assistant/core/pull/77032 +[#77034]: https://github.com/home-assistant/core/pull/77034 +[#77035]: https://github.com/home-assistant/core/pull/77035 +[#77036]: https://github.com/home-assistant/core/pull/77036 +[#77037]: https://github.com/home-assistant/core/pull/77037 +[#77038]: https://github.com/home-assistant/core/pull/77038 +[#77041]: https://github.com/home-assistant/core/pull/77041 +[#77042]: https://github.com/home-assistant/core/pull/77042 +[#77043]: https://github.com/home-assistant/core/pull/77043 +[#77044]: https://github.com/home-assistant/core/pull/77044 +[#77045]: https://github.com/home-assistant/core/pull/77045 +[#77046]: https://github.com/home-assistant/core/pull/77046 +[#77047]: https://github.com/home-assistant/core/pull/77047 +[#77052]: https://github.com/home-assistant/core/pull/77052 +[#77056]: https://github.com/home-assistant/core/pull/77056 +[#77071]: https://github.com/home-assistant/core/pull/77071 +[#77072]: https://github.com/home-assistant/core/pull/77072 +[#77073]: https://github.com/home-assistant/core/pull/77073 +[#77078]: https://github.com/home-assistant/core/pull/77078 +[#77080]: https://github.com/home-assistant/core/pull/77080 +[#77081]: https://github.com/home-assistant/core/pull/77081 +[#77082]: https://github.com/home-assistant/core/pull/77082 +[#77088]: https://github.com/home-assistant/core/pull/77088 +[#77089]: https://github.com/home-assistant/core/pull/77089 +[#77094]: https://github.com/home-assistant/core/pull/77094 +[#77099]: https://github.com/home-assistant/core/pull/77099 +[#77101]: https://github.com/home-assistant/core/pull/77101 +[#77103]: https://github.com/home-assistant/core/pull/77103 +[#77104]: https://github.com/home-assistant/core/pull/77104 +[#77105]: https://github.com/home-assistant/core/pull/77105 +[#77108]: https://github.com/home-assistant/core/pull/77108 +[#77109]: https://github.com/home-assistant/core/pull/77109 +[#77114]: https://github.com/home-assistant/core/pull/77114 +[#77115]: https://github.com/home-assistant/core/pull/77115 +[#77123]: https://github.com/home-assistant/core/pull/77123 +[#77129]: https://github.com/home-assistant/core/pull/77129 +[#77131]: https://github.com/home-assistant/core/pull/77131 +[#77132]: https://github.com/home-assistant/core/pull/77132 +[#77133]: https://github.com/home-assistant/core/pull/77133 +[#77135]: https://github.com/home-assistant/core/pull/77135 +[#77136]: https://github.com/home-assistant/core/pull/77136 +[#77138]: https://github.com/home-assistant/core/pull/77138 +[#77139]: https://github.com/home-assistant/core/pull/77139 +[#77142]: https://github.com/home-assistant/core/pull/77142 +[#77143]: https://github.com/home-assistant/core/pull/77143 +[#77145]: https://github.com/home-assistant/core/pull/77145 +[#77151]: https://github.com/home-assistant/core/pull/77151 +[#77152]: https://github.com/home-assistant/core/pull/77152 +[#77153]: https://github.com/home-assistant/core/pull/77153 +[#77155]: https://github.com/home-assistant/core/pull/77155 +[#77157]: https://github.com/home-assistant/core/pull/77157 +[#77159]: https://github.com/home-assistant/core/pull/77159 +[#77161]: https://github.com/home-assistant/core/pull/77161 +[#77164]: https://github.com/home-assistant/core/pull/77164 +[#77166]: https://github.com/home-assistant/core/pull/77166 +[#77167]: https://github.com/home-assistant/core/pull/77167 +[#77170]: https://github.com/home-assistant/core/pull/77170 +[#77171]: https://github.com/home-assistant/core/pull/77171 +[#77172]: https://github.com/home-assistant/core/pull/77172 +[#77173]: https://github.com/home-assistant/core/pull/77173 +[#77174]: https://github.com/home-assistant/core/pull/77174 +[#77175]: https://github.com/home-assistant/core/pull/77175 +[#77177]: https://github.com/home-assistant/core/pull/77177 +[#77180]: https://github.com/home-assistant/core/pull/77180 +[#77183]: https://github.com/home-assistant/core/pull/77183 +[#77184]: https://github.com/home-assistant/core/pull/77184 +[#77185]: https://github.com/home-assistant/core/pull/77185 +[#77186]: https://github.com/home-assistant/core/pull/77186 +[#77194]: https://github.com/home-assistant/core/pull/77194 +[#77196]: https://github.com/home-assistant/core/pull/77196 +[#77197]: https://github.com/home-assistant/core/pull/77197 +[#77200]: https://github.com/home-assistant/core/pull/77200 +[#77201]: https://github.com/home-assistant/core/pull/77201 +[#77205]: https://github.com/home-assistant/core/pull/77205 +[#77206]: https://github.com/home-assistant/core/pull/77206 +[#77207]: https://github.com/home-assistant/core/pull/77207 +[#77209]: https://github.com/home-assistant/core/pull/77209 +[#77210]: https://github.com/home-assistant/core/pull/77210 +[#77218]: https://github.com/home-assistant/core/pull/77218 +[#77219]: https://github.com/home-assistant/core/pull/77219 +[#77224]: https://github.com/home-assistant/core/pull/77224 +[#77225]: https://github.com/home-assistant/core/pull/77225 +[#77236]: https://github.com/home-assistant/core/pull/77236 +[#77238]: https://github.com/home-assistant/core/pull/77238 +[#77242]: https://github.com/home-assistant/core/pull/77242 +[#77245]: https://github.com/home-assistant/core/pull/77245 +[#77257]: https://github.com/home-assistant/core/pull/77257 +[#77259]: https://github.com/home-assistant/core/pull/77259 +[#77260]: https://github.com/home-assistant/core/pull/77260 +[#77261]: https://github.com/home-assistant/core/pull/77261 +[#77262]: https://github.com/home-assistant/core/pull/77262 +[#77263]: https://github.com/home-assistant/core/pull/77263 +[#77265]: https://github.com/home-assistant/core/pull/77265 +[#77266]: https://github.com/home-assistant/core/pull/77266 +[#77267]: https://github.com/home-assistant/core/pull/77267 +[#77268]: https://github.com/home-assistant/core/pull/77268 +[#77269]: https://github.com/home-assistant/core/pull/77269 +[#77270]: https://github.com/home-assistant/core/pull/77270 +[#77271]: https://github.com/home-assistant/core/pull/77271 +[#77274]: https://github.com/home-assistant/core/pull/77274 +[#77278]: https://github.com/home-assistant/core/pull/77278 +[#77285]: https://github.com/home-assistant/core/pull/77285 +[#77286]: https://github.com/home-assistant/core/pull/77286 +[#77288]: https://github.com/home-assistant/core/pull/77288 +[#77289]: https://github.com/home-assistant/core/pull/77289 +[#77297]: https://github.com/home-assistant/core/pull/77297 +[#77298]: https://github.com/home-assistant/core/pull/77298 +[#77299]: https://github.com/home-assistant/core/pull/77299 +[#77301]: https://github.com/home-assistant/core/pull/77301 +[#77303]: https://github.com/home-assistant/core/pull/77303 +[#77305]: https://github.com/home-assistant/core/pull/77305 +[#77306]: https://github.com/home-assistant/core/pull/77306 +[#77307]: https://github.com/home-assistant/core/pull/77307 +[#77309]: https://github.com/home-assistant/core/pull/77309 +[#77311]: https://github.com/home-assistant/core/pull/77311 +[#77313]: https://github.com/home-assistant/core/pull/77313 +[#77320]: https://github.com/home-assistant/core/pull/77320 +[#77323]: https://github.com/home-assistant/core/pull/77323 +[#77329]: https://github.com/home-assistant/core/pull/77329 +[#77330]: https://github.com/home-assistant/core/pull/77330 +[#77334]: https://github.com/home-assistant/core/pull/77334 +[#77335]: https://github.com/home-assistant/core/pull/77335 +[#77337]: https://github.com/home-assistant/core/pull/77337 +[#77338]: https://github.com/home-assistant/core/pull/77338 +[#77339]: https://github.com/home-assistant/core/pull/77339 +[#77341]: https://github.com/home-assistant/core/pull/77341 +[#77346]: https://github.com/home-assistant/core/pull/77346 +[#77347]: https://github.com/home-assistant/core/pull/77347 +[#77351]: https://github.com/home-assistant/core/pull/77351 +[#77357]: https://github.com/home-assistant/core/pull/77357 +[#77358]: https://github.com/home-assistant/core/pull/77358 +[#77359]: https://github.com/home-assistant/core/pull/77359 +[#77360]: https://github.com/home-assistant/core/pull/77360 +[#77363]: https://github.com/home-assistant/core/pull/77363 +[#77364]: https://github.com/home-assistant/core/pull/77364 +[#77366]: https://github.com/home-assistant/core/pull/77366 +[#77368]: https://github.com/home-assistant/core/pull/77368 +[#77371]: https://github.com/home-assistant/core/pull/77371 +[#77372]: https://github.com/home-assistant/core/pull/77372 +[#77380]: https://github.com/home-assistant/core/pull/77380 +[#77383]: https://github.com/home-assistant/core/pull/77383 +[#77385]: https://github.com/home-assistant/core/pull/77385 +[#77389]: https://github.com/home-assistant/core/pull/77389 +[#77391]: https://github.com/home-assistant/core/pull/77391 +[#77393]: https://github.com/home-assistant/core/pull/77393 +[#77394]: https://github.com/home-assistant/core/pull/77394 +[#77395]: https://github.com/home-assistant/core/pull/77395 +[#77401]: https://github.com/home-assistant/core/pull/77401 +[#77402]: https://github.com/home-assistant/core/pull/77402 +[#77407]: https://github.com/home-assistant/core/pull/77407 +[#77408]: https://github.com/home-assistant/core/pull/77408 +[#77409]: https://github.com/home-assistant/core/pull/77409 +[#77411]: https://github.com/home-assistant/core/pull/77411 +[#77413]: https://github.com/home-assistant/core/pull/77413 +[#77414]: https://github.com/home-assistant/core/pull/77414 +[#77417]: https://github.com/home-assistant/core/pull/77417 +[#77419]: https://github.com/home-assistant/core/pull/77419 +[#77421]: https://github.com/home-assistant/core/pull/77421 +[#77423]: https://github.com/home-assistant/core/pull/77423 +[#77427]: https://github.com/home-assistant/core/pull/77427 +[#77428]: https://github.com/home-assistant/core/pull/77428 +[#77429]: https://github.com/home-assistant/core/pull/77429 +[#77430]: https://github.com/home-assistant/core/pull/77430 +[#77436]: https://github.com/home-assistant/core/pull/77436 +[#77437]: https://github.com/home-assistant/core/pull/77437 +[#77441]: https://github.com/home-assistant/core/pull/77441 +[#77451]: https://github.com/home-assistant/core/pull/77451 +[#77458]: https://github.com/home-assistant/core/pull/77458 +[#77459]: https://github.com/home-assistant/core/pull/77459 +[#77460]: https://github.com/home-assistant/core/pull/77460 +[#77463]: https://github.com/home-assistant/core/pull/77463 +[#77465]: https://github.com/home-assistant/core/pull/77465 +[#77467]: https://github.com/home-assistant/core/pull/77467 +[#77468]: https://github.com/home-assistant/core/pull/77468 +[#77472]: https://github.com/home-assistant/core/pull/77472 +[#77473]: https://github.com/home-assistant/core/pull/77473 +[#77477]: https://github.com/home-assistant/core/pull/77477 +[#77478]: https://github.com/home-assistant/core/pull/77478 +[#77480]: https://github.com/home-assistant/core/pull/77480 +[#77482]: https://github.com/home-assistant/core/pull/77482 +[#77484]: https://github.com/home-assistant/core/pull/77484 +[#77486]: https://github.com/home-assistant/core/pull/77486 +[#77489]: https://github.com/home-assistant/core/pull/77489 +[#77490]: https://github.com/home-assistant/core/pull/77490 +[#77492]: https://github.com/home-assistant/core/pull/77492 +[#77493]: https://github.com/home-assistant/core/pull/77493 +[#77494]: https://github.com/home-assistant/core/pull/77494 +[#77497]: https://github.com/home-assistant/core/pull/77497 +[#77498]: https://github.com/home-assistant/core/pull/77498 +[#77500]: https://github.com/home-assistant/core/pull/77500 +[#77501]: https://github.com/home-assistant/core/pull/77501 +[#77503]: https://github.com/home-assistant/core/pull/77503 +[#77504]: https://github.com/home-assistant/core/pull/77504 +[#77512]: https://github.com/home-assistant/core/pull/77512 +[#77516]: https://github.com/home-assistant/core/pull/77516 +[#77519]: https://github.com/home-assistant/core/pull/77519 +[#77522]: https://github.com/home-assistant/core/pull/77522 +[#77523]: https://github.com/home-assistant/core/pull/77523 +[#77526]: https://github.com/home-assistant/core/pull/77526 +[#77528]: https://github.com/home-assistant/core/pull/77528 +[#77529]: https://github.com/home-assistant/core/pull/77529 +[#77530]: https://github.com/home-assistant/core/pull/77530 +[#77531]: https://github.com/home-assistant/core/pull/77531 +[#77532]: https://github.com/home-assistant/core/pull/77532 +[#77533]: https://github.com/home-assistant/core/pull/77533 +[#77535]: https://github.com/home-assistant/core/pull/77535 +[#77536]: https://github.com/home-assistant/core/pull/77536 +[#77537]: https://github.com/home-assistant/core/pull/77537 +[#77540]: https://github.com/home-assistant/core/pull/77540 +[#77541]: https://github.com/home-assistant/core/pull/77541 +[#77542]: https://github.com/home-assistant/core/pull/77542 +[#77543]: https://github.com/home-assistant/core/pull/77543 +[#77544]: https://github.com/home-assistant/core/pull/77544 +[#77545]: https://github.com/home-assistant/core/pull/77545 +[#77547]: https://github.com/home-assistant/core/pull/77547 +[#77549]: https://github.com/home-assistant/core/pull/77549 +[#77551]: https://github.com/home-assistant/core/pull/77551 +[#77553]: https://github.com/home-assistant/core/pull/77553 +[#77555]: https://github.com/home-assistant/core/pull/77555 +[#77557]: https://github.com/home-assistant/core/pull/77557 +[#77558]: https://github.com/home-assistant/core/pull/77558 +[#77560]: https://github.com/home-assistant/core/pull/77560 +[#77561]: https://github.com/home-assistant/core/pull/77561 +[#77564]: https://github.com/home-assistant/core/pull/77564 +[#77566]: https://github.com/home-assistant/core/pull/77566 +[#77568]: https://github.com/home-assistant/core/pull/77568 +[#77569]: https://github.com/home-assistant/core/pull/77569 +[#77570]: https://github.com/home-assistant/core/pull/77570 +[#77572]: https://github.com/home-assistant/core/pull/77572 +[#77575]: https://github.com/home-assistant/core/pull/77575 +[#77582]: https://github.com/home-assistant/core/pull/77582 +[#77595]: https://github.com/home-assistant/core/pull/77595 +[#77597]: https://github.com/home-assistant/core/pull/77597 +[#77600]: https://github.com/home-assistant/core/pull/77600 +[#77601]: https://github.com/home-assistant/core/pull/77601 +[#77603]: https://github.com/home-assistant/core/pull/77603 +[#77605]: https://github.com/home-assistant/core/pull/77605 +[#77609]: https://github.com/home-assistant/core/pull/77609 +[#77610]: https://github.com/home-assistant/core/pull/77610 +[#77611]: https://github.com/home-assistant/core/pull/77611 +[#77612]: https://github.com/home-assistant/core/pull/77612 +[#77615]: https://github.com/home-assistant/core/pull/77615 +[#77618]: https://github.com/home-assistant/core/pull/77618 +[#77619]: https://github.com/home-assistant/core/pull/77619 +[#77624]: https://github.com/home-assistant/core/pull/77624 +[#77626]: https://github.com/home-assistant/core/pull/77626 +[#77627]: https://github.com/home-assistant/core/pull/77627 +[#77629]: https://github.com/home-assistant/core/pull/77629 +[#77631]: https://github.com/home-assistant/core/pull/77631 +[#77636]: https://github.com/home-assistant/core/pull/77636 +[#77651]: https://github.com/home-assistant/core/pull/77651 +[#77662]: https://github.com/home-assistant/core/pull/77662 +[#77668]: https://github.com/home-assistant/core/pull/77668 +[#77670]: https://github.com/home-assistant/core/pull/77670 +[#77672]: https://github.com/home-assistant/core/pull/77672 +[#77673]: https://github.com/home-assistant/core/pull/77673 +[#77677]: https://github.com/home-assistant/core/pull/77677 +[#77679]: https://github.com/home-assistant/core/pull/77679 +[#77682]: https://github.com/home-assistant/core/pull/77682 +[#77683]: https://github.com/home-assistant/core/pull/77683 +[#77689]: https://github.com/home-assistant/core/pull/77689 +[#77705]: https://github.com/home-assistant/core/pull/77705 +[#77711]: https://github.com/home-assistant/core/pull/77711 +[#77719]: https://github.com/home-assistant/core/pull/77719 +[#77727]: https://github.com/home-assistant/core/pull/77727 +[#77732]: https://github.com/home-assistant/core/pull/77732 +[#77734]: https://github.com/home-assistant/core/pull/77734 +[#77753]: https://github.com/home-assistant/core/pull/77753 +[#77758]: https://github.com/home-assistant/core/pull/77758 +[#77762]: https://github.com/home-assistant/core/pull/77762 +[#77763]: https://github.com/home-assistant/core/pull/77763 +[#77766]: https://github.com/home-assistant/core/pull/77766 +[#77768]: https://github.com/home-assistant/core/pull/77768 +[#77770]: https://github.com/home-assistant/core/pull/77770 +[#77773]: https://github.com/home-assistant/core/pull/77773 +[#77777]: https://github.com/home-assistant/core/pull/77777 +[#77787]: https://github.com/home-assistant/core/pull/77787 +[#77788]: https://github.com/home-assistant/core/pull/77788 +[#77790]: https://github.com/home-assistant/core/pull/77790 +[#77797]: https://github.com/home-assistant/core/pull/77797 +[#77802]: https://github.com/home-assistant/core/pull/77802 +[#77807]: https://github.com/home-assistant/core/pull/77807 +[#77808]: https://github.com/home-assistant/core/pull/77808 +[#77812]: https://github.com/home-assistant/core/pull/77812 +[#77821]: https://github.com/home-assistant/core/pull/77821 +[#77823]: https://github.com/home-assistant/core/pull/77823 +[#77832]: https://github.com/home-assistant/core/pull/77832 +[#77837]: https://github.com/home-assistant/core/pull/77837 +[#77839]: https://github.com/home-assistant/core/pull/77839 +[#77840]: https://github.com/home-assistant/core/pull/77840 +[#77845]: https://github.com/home-assistant/core/pull/77845 +[#77849]: https://github.com/home-assistant/core/pull/77849 +[#77854]: https://github.com/home-assistant/core/pull/77854 +[#77855]: https://github.com/home-assistant/core/pull/77855 +[#77856]: https://github.com/home-assistant/core/pull/77856 +[#77859]: https://github.com/home-assistant/core/pull/77859 +[#77860]: https://github.com/home-assistant/core/pull/77860 +[#77862]: https://github.com/home-assistant/core/pull/77862 +[#77863]: https://github.com/home-assistant/core/pull/77863 +[#77866]: https://github.com/home-assistant/core/pull/77866 +[#77867]: https://github.com/home-assistant/core/pull/77867 +[#77898]: https://github.com/home-assistant/core/pull/77898 +[#77910]: https://github.com/home-assistant/core/pull/77910 +[#77915]: https://github.com/home-assistant/core/pull/77915 +[#77916]: https://github.com/home-assistant/core/pull/77916 +[#77927]: https://github.com/home-assistant/core/pull/77927 +[#77931]: https://github.com/home-assistant/core/pull/77931 +[#77934]: https://github.com/home-assistant/core/pull/77934 +[#77935]: https://github.com/home-assistant/core/pull/77935 +[#77956]: https://github.com/home-assistant/core/pull/77956 +[#77963]: https://github.com/home-assistant/core/pull/77963 +[@AngellusMortis]: https://github.com/AngellusMortis +[@AnilDaoud]: https://github.com/AnilDaoud +[@Bre77]: https://github.com/Bre77 +[@Djelibeybi]: https://github.com/Djelibeybi +[@Drafteed]: https://github.com/Drafteed +[@DurgNomis-drol]: https://github.com/DurgNomis-drol +[@Ernst79]: https://github.com/Ernst79 +[@GhostNr1]: https://github.com/GhostNr1 +[@Hyralex]: https://github.com/Hyralex +[@IceBotYT]: https://github.com/IceBotYT +[@Jc2k]: https://github.com/Jc2k +[@JohJonker]: https://github.com/JohJonker +[@KJonline]: https://github.com/KJonline +[@Kane610]: https://github.com/Kane610 +[@Kirmas]: https://github.com/Kirmas +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@McYars]: https://github.com/McYars +[@MosheTzvi]: https://github.com/MosheTzvi +[@Nephiel]: https://github.com/Nephiel +[@Noltari]: https://github.com/Noltari +[@OldShaterhan]: https://github.com/OldShaterhan +[@OnFreund]: https://github.com/OnFreund +[@PaulAnnekov]: https://github.com/PaulAnnekov +[@StevenLooman]: https://github.com/StevenLooman +[@Swamp-Ig]: https://github.com/Swamp-Ig +[@Vaskivskyi]: https://github.com/Vaskivskyi +[@abmantis]: https://github.com/abmantis +[@alexyao2015]: https://github.com/alexyao2015 +[@allenporter]: https://github.com/allenporter +[@astrandb]: https://github.com/astrandb +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bdr99]: https://github.com/bdr99 +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@boralyl]: https://github.com/boralyl +[@borky]: https://github.com/borky +[@bramkragten]: https://github.com/bramkragten +[@cdce8p]: https://github.com/cdce8p +[@cgarwood]: https://github.com/cgarwood +[@chaimt]: https://github.com/chaimt +[@chemelli74]: https://github.com/chemelli74 +[@chrismccurdy]: https://github.com/chrismccurdy +[@danaues]: https://github.com/danaues +[@danieldietzler]: https://github.com/danieldietzler +[@decompil3d]: https://github.com/decompil3d +[@deece]: https://github.com/deece +[@dgomes]: https://github.com/dgomes +[@dmulcahey]: https://github.com/dmulcahey +[@eifinger]: https://github.com/eifinger +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@engrbm87]: https://github.com/engrbm87 +[@epenet]: https://github.com/epenet +[@erijo]: https://github.com/erijo +[@farmio]: https://github.com/farmio +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@guozi7788]: https://github.com/guozi7788 +[@gyengus]: https://github.com/gyengus +[@iMicknl]: https://github.com/iMicknl +[@ildar170975]: https://github.com/ildar170975 +[@inytar]: https://github.com/inytar +[@jbouwh]: https://github.com/jbouwh +[@jeeftor]: https://github.com/jeeftor +[@jetpacktuxedo]: https://github.com/jetpacktuxedo +[@jjlawren]: https://github.com/jjlawren +[@jonasrickert]: https://github.com/jonasrickert +[@jpelgrom]: https://github.com/jpelgrom +[@kbickar]: https://github.com/kbickar +[@kingy444]: https://github.com/kingy444 +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@krismolendyke]: https://github.com/krismolendyke +[@kvanzuijlen]: https://github.com/kvanzuijlen +[@lazdavila]: https://github.com/lazdavila +[@leofig-rj]: https://github.com/leofig-rj +[@likeablob]: https://github.com/likeablob +[@luar123]: https://github.com/luar123 +[@ludeeus]: https://github.com/ludeeus +[@magenbrot]: https://github.com/magenbrot +[@marcelveldt]: https://github.com/marcelveldt +[@mdz]: https://github.com/mdz +[@mib1185]: https://github.com/mib1185 +[@mkmer]: https://github.com/mkmer +[@mletenay]: https://github.com/mletenay +[@mvn23]: https://github.com/mvn23 +[@natekspencer]: https://github.com/natekspencer +[@ocalvo]: https://github.com/ocalvo +[@peteh]: https://github.com/peteh +[@puddly]: https://github.com/puddly +[@pvizeli]: https://github.com/pvizeli +[@rajlaud]: https://github.com/rajlaud +[@raman325]: https://github.com/raman325 +[@rikroe]: https://github.com/rikroe +[@rklomp]: https://github.com/rklomp +[@rlippmann]: https://github.com/rlippmann +[@samueldumont]: https://github.com/samueldumont +[@sarabveer]: https://github.com/sarabveer +[@simeon-simsoft]: https://github.com/simeon-simsoft +[@simonengelhardt]: https://github.com/simonengelhardt +[@sophof]: https://github.com/sophof +[@starkillerOG]: https://github.com/starkillerOG +[@thecode]: https://github.com/thecode +[@timmo001]: https://github.com/timmo001 +[@tkdrob]: https://github.com/tkdrob +[@trunet]: https://github.com/trunet +[@typhoon2099]: https://github.com/typhoon2099 +[@uvjustin]: https://github.com/uvjustin +[@vanstinator]: https://github.com/vanstinator +[@vpathuis]: https://github.com/vpathuis +[@wlcrs]: https://github.com/wlcrs +[@wrt54g]: https://github.com/wrt54g +[@y34hbuddy]: https://github.com/y34hbuddy +[@yasn77]: https://github.com/yasn77 +[@yllar]: https://github.com/yllar +[@zachberger]: https://github.com/zachberger +[abode docs]: /integrations/abode/ +[accuweather docs]: /integrations/accuweather/ +[acmeda docs]: /integrations/acmeda/ +[advantage_air docs]: /integrations/advantage_air/ +[agent_dvr docs]: /integrations/agent_dvr/ +[airtouch4 docs]: /integrations/airtouch4/ +[airzone docs]: /integrations/airzone/ +[aladdin_connect docs]: /integrations/aladdin_connect/ +[alarm_control_panel docs]: /integrations/alarm_control_panel/ +[alexa docs]: /integrations/alexa/ +[alpha_vantage docs]: /integrations/alpha_vantage/ +[amazon_polly docs]: /integrations/amazon_polly/ +[ambient_station docs]: /integrations/ambient_station/ +[amcrest docs]: /integrations/amcrest/ +[android_ip_webcam docs]: /integrations/android_ip_webcam/ +[anthemav docs]: /integrations/anthemav/ +[apple_tv docs]: /integrations/apple_tv/ +[application_credentials docs]: /integrations/application_credentials/ +[apprise docs]: /integrations/apprise/ +[aquostv docs]: /integrations/aquostv/ +[arcam_fmj docs]: /integrations/arcam_fmj/ +[august docs]: /integrations/august/ +[auth docs]: /integrations/auth/ +[automation docs]: /integrations/automation/ +[awair docs]: /integrations/awair/ +[axis docs]: /integrations/axis/ +[azure_devops docs]: /integrations/azure_devops/ +[binary_sensor docs]: /integrations/binary_sensor/ +[blebox docs]: /integrations/blebox/ +[blinksticklight docs]: /integrations/blinksticklight/ +[bluemaestro docs]: /integrations/bluemaestro/ +[bluetooth docs]: /integrations/bluetooth/ +[bluetooth_le_tracker docs]: /integrations/bluetooth_le_tracker/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[braviatv docs]: /integrations/braviatv/ +[brottsplatskartan docs]: /integrations/brottsplatskartan/ +[bsblan docs]: /integrations/bsblan/ +[bt_smarthub docs]: /integrations/bt_smarthub/ +[bthome docs]: /integrations/bthome/ +[bthome_ble docs]: /integrations/bthome_ble/ +[button docs]: /integrations/button/ +[calendar docs]: /integrations/calendar/ +[camera docs]: /integrations/camera/ +[cast docs]: /integrations/cast/ +[cert_expiry docs]: /integrations/cert_expiry/ +[citybikes docs]: /integrations/citybikes/ +[climate docs]: /integrations/climate/ +[cloud docs]: /integrations/cloud/ +[compensation docs]: /integrations/compensation/ +[config docs]: /integrations/config/ +[cover docs]: /integrations/cover/ +[cups docs]: /integrations/cups/ +[daikin docs]: /integrations/daikin/ +[darksky docs]: /integrations/darksky/ +[debugpy docs]: /integrations/debugpy/ +[deconz docs]: /integrations/deconz/ +[decora docs]: /integrations/decora/ +[default_config docs]: /integrations/default_config/ +[demo docs]: /integrations/demo/ +[denon docs]: /integrations/denon/ +[denonavr docs]: /integrations/denonavr/ +[derivative docs]: /integrations/derivative/ +[deutsche_bahn docs]: /integrations/deutsche_bahn/ +[device_automation docs]: /integrations/device_automation/ +[device_tracker docs]: /integrations/device_tracker/ +[devolo_home_network docs]: /integrations/devolo_home_network/ +[dhcp docs]: /integrations/dhcp/ +[directv docs]: /integrations/directv/ +[ecobee docs]: /integrations/ecobee/ +[econet docs]: /integrations/econet/ +[ecovacs docs]: /integrations/ecovacs/ +[ecowitt docs]: /integrations/ecowitt/ +[eddystone_temperature docs]: /integrations/eddystone_temperature/ +[emby docs]: /integrations/emby/ +[emoncms docs]: /integrations/emoncms/ +[ephember docs]: /integrations/ephember/ +[epson docs]: /integrations/epson/ +[eq3btsmart docs]: /integrations/eq3btsmart/ +[escea docs]: /integrations/escea/ +[esphome docs]: /integrations/esphome/ +[everlights docs]: /integrations/everlights/ +[facebox docs]: /integrations/facebox/ +[fan docs]: /integrations/fan/ +[feedreader docs]: /integrations/feedreader/ +[fibaro docs]: /integrations/fibaro/ +[file_upload docs]: /integrations/file_upload/ +[filter docs]: /integrations/filter/ +[fixer docs]: /integrations/fixer/ +[fjaraskupan docs]: /integrations/fjaraskupan/ +[flexit docs]: /integrations/flexit/ +[flic docs]: /integrations/flic/ +[flo docs]: /integrations/flo/ +[flume docs]: /integrations/flume/ +[flux docs]: /integrations/flux/ +[flux_led docs]: /integrations/flux_led/ +[foobot docs]: /integrations/foobot/ +[forked_daapd docs]: /integrations/forked_daapd/ +[foscam docs]: /integrations/foscam/ +[freedompro docs]: /integrations/freedompro/ +[fritz docs]: /integrations/fritz/ +[fritzbox docs]: /integrations/fritzbox/ +[frontend docs]: /integrations/frontend/ +[frontier_silicon docs]: /integrations/frontier_silicon/ +[fully_kiosk docs]: /integrations/fully_kiosk/ +[fullykiosk docs]: /integrations/fullykiosk/ +[generic_thermostat docs]: /integrations/generic_thermostat/ +[geo_location docs]: /integrations/geo_location/ +[gitlab_ci docs]: /integrations/gitlab_ci/ +[glances docs]: /integrations/glances/ +[goodwe docs]: /integrations/goodwe/ +[google_assistant docs]: /integrations/google_assistant/ +[google_cloud docs]: /integrations/google_cloud/ +[govee_ble docs]: /integrations/govee_ble/ +[greenwave docs]: /integrations/greenwave/ +[group docs]: /integrations/group/ +[guardian docs]: /integrations/guardian/ +[hardkernel docs]: /integrations/hardkernel/ +[hardware docs]: /integrations/hardware/ +[harmony docs]: /integrations/harmony/ +[hassio docs]: /integrations/hassio/ +[hdmi_cec docs]: /integrations/hdmi_cec/ +[here_travel_time docs]: /integrations/here_travel_time/ +[history docs]: /integrations/history/ +[history_stats docs]: /integrations/history_stats/ +[hive docs]: /integrations/hive/ +[homeassistant docs]: /integrations/homeassistant/ +[homeassistant_alerts docs]: /integrations/homeassistant_alerts/ +[homeassistant_sky_connect docs]: /integrations/homeassistant_sky_connect/ +[homeassistant_yellow docs]: /integrations/homeassistant_yellow/ +[homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homeworks docs]: /integrations/homeworks/ +[hue docs]: /integrations/hue/ +[humidifier docs]: /integrations/humidifier/ +[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/ +[hvv_departures docs]: /integrations/hvv_departures/ +[icloud docs]: /integrations/icloud/ +[image docs]: /integrations/image/ +[inkbird docs]: /integrations/inkbird/ +[insteon docs]: /integrations/insteon/ +[ipma docs]: /integrations/ipma/ +[iqvia docs]: /integrations/iqvia/ +[islamic_prayer_times docs]: /integrations/islamic_prayer_times/ +[iss docs]: /integrations/iss/ +[isy994 docs]: /integrations/isy994/ +[izone docs]: /integrations/izone/ +[jellyfin docs]: /integrations/jellyfin/ +[jewish_calendar docs]: /integrations/jewish_calendar/ +[just_nimbus docs]: /integrations/just_nimbus/ +[justnimbus docs]: /integrations/justnimbus/ +[kaiterra docs]: /integrations/kaiterra/ +[knx docs]: /integrations/knx/ +[kodi docs]: /integrations/kodi/ +[lacrosse_view docs]: /integrations/lacrosse_view/ +[lametric docs]: /integrations/lametric/ +[landisgyr_heat_meter docs]: /integrations/landisgyr_heat_meter/ +[led_ble docs]: /integrations/led_ble/ +[lg_soundbar docs]: /integrations/lg_soundbar/ +[lifx docs]: /integrations/lifx/ +[light docs]: /integrations/light/ +[limitlessled docs]: /integrations/limitlessled/ +[litejet docs]: /integrations/litejet/ +[litterrobot docs]: /integrations/litterrobot/ +[llamalab_automate docs]: /integrations/llamalab_automate/ +[lock docs]: /integrations/lock/ +[logi_circle docs]: /integrations/logi_circle/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[mazda docs]: /integrations/mazda/ +[media_player docs]: /integrations/media_player/ +[media_source docs]: /integrations/media_source/ +[melnor docs]: /integrations/melnor/ +[mikrotik docs]: /integrations/mikrotik/ +[moat docs]: /integrations/moat/ +[mobile_app docs]: /integrations/mobile_app/ +[mochad docs]: /integrations/mochad/ +[motion_blinds docs]: /integrations/motion_blinds/ +[mqtt docs]: /integrations/mqtt/ +[mysensors docs]: /integrations/mysensors/ +[nam docs]: /integrations/nam/ +[nest docs]: /integrations/nest/ +[netgear docs]: /integrations/netgear/ +[nextdns docs]: /integrations/nextdns/ +[nzbget docs]: /integrations/nzbget/ +[onvif docs]: /integrations/onvif/ +[opencv docs]: /integrations/opencv/ +[openexchangerates docs]: /integrations/openexchangerates/ +[opentherm_gw docs]: /integrations/opentherm_gw/ +[openweathermap docs]: /integrations/openweathermap/ +[osramlightify docs]: /integrations/osramlightify/ +[overkiz docs]: /integrations/overkiz/ +[p1_monitor docs]: /integrations/p1_monitor/ +[person docs]: /integrations/person/ +[philips_js docs]: /integrations/philips_js/ +[ping docs]: /integrations/ping/ +[plaato docs]: /integrations/plaato/ +[plex docs]: /integrations/plex/ +[proliphix docs]: /integrations/proliphix/ +[prusalink docs]: /integrations/prusalink/ +[pure_energie docs]: /integrations/pure_energie/ +[pushover docs]: /integrations/pushover/ +[qingping docs]: /integrations/qingping/ +[qnap_qsw docs]: /integrations/qnap_qsw/ +[rainmachine docs]: /integrations/rainmachine/ +[raspberry_pi docs]: /integrations/raspberry_pi/ +[recorder docs]: /integrations/recorder/ +[remote docs]: /integrations/remote/ +[renault docs]: /integrations/renault/ +[repairs docs]: /integrations/repairs/ +[rfxtrx docs]: /integrations/rfxtrx/ +[ring docs]: /integrations/ring/ +[risco docs]: /integrations/risco/ +[rmvtransport docs]: /integrations/rmvtransport/ +[roku docs]: /integrations/roku/ +[samsungtv docs]: /integrations/samsungtv/ +[schedule docs]: /integrations/schedule/ +[search docs]: /integrations/search/ +[select docs]: /integrations/select/ +[sensibo docs]: /integrations/sensibo/ +[sensor docs]: /integrations/sensor/ +[sensorpro docs]: /integrations/sensorpro/ +[sensorpush docs]: /integrations/sensorpush/ +[sentry docs]: /integrations/sentry/ +[senz docs]: /integrations/senz/ +[sharkiq docs]: /integrations/sharkiq/ +[shelly docs]: /integrations/shelly/ +[sia docs]: /integrations/sia/ +[simplepush docs]: /integrations/simplepush/ +[simplisafe docs]: /integrations/simplisafe/ +[skybell docs]: /integrations/skybell/ +[sleepiq docs]: /integrations/sleepiq/ +[sma docs]: /integrations/sma/ +[smartthings docs]: /integrations/smartthings/ +[smarttub docs]: /integrations/smarttub/ +[sms docs]: /integrations/sms/ +[snapcast docs]: /integrations/snapcast/ +[solax docs]: /integrations/solax/ +[songpal docs]: /integrations/songpal/ +[sonos docs]: /integrations/sonos/ +[speedtestdotnet docs]: /integrations/speedtestdotnet/ +[spotify docs]: /integrations/spotify/ +[sql docs]: /integrations/sql/ +[squeezebox docs]: /integrations/squeezebox/ +[starline docs]: /integrations/starline/ +[sun docs]: /integrations/sun/ +[switch docs]: /integrations/switch/ +[switch_as_x docs]: /integrations/switch_as_x/ +[switchbot docs]: /integrations/switchbot/ +[switchmate docs]: /integrations/switchmate/ +[synology_dsm docs]: /integrations/synology_dsm/ +[system_bridge docs]: /integrations/system_bridge/ +[tag docs]: /integrations/tag/ +[tank_utility docs]: /integrations/tank_utility/ +[tasmota docs]: /integrations/tasmota/ +[telegram docs]: /integrations/telegram/ +[tellduslive docs]: /integrations/tellduslive/ +[template docs]: /integrations/template/ +[tensorflow docs]: /integrations/tensorflow/ +[tesla_wall_connector docs]: /integrations/tesla_wall_connector/ +[thermobeacon docs]: /integrations/thermobeacon/ +[thermopro docs]: /integrations/thermopro/ +[tibber docs]: /integrations/tibber/ +[tikteck docs]: /integrations/tikteck/ +[tile docs]: /integrations/tile/ +[todoist docs]: /integrations/todoist/ +[tomorrowio docs]: /integrations/tomorrowio/ +[toon docs]: /integrations/toon/ +[traccar docs]: /integrations/traccar/ +[tractive docs]: /integrations/tractive/ +[transmission docs]: /integrations/transmission/ +[trend docs]: /integrations/trend/ +[tuya docs]: /integrations/tuya/ +[twitter docs]: /integrations/twitter/ +[uk_transport docs]: /integrations/uk_transport/ +[ukraine_alarm docs]: /integrations/ukraine_alarm/ +[unifi docs]: /integrations/unifi/ +[unifiled docs]: /integrations/unifiled/ +[unifiprotect docs]: /integrations/unifiprotect/ +[update docs]: /integrations/update/ +[upnp docs]: /integrations/upnp/ +[usb docs]: /integrations/usb/ +[utility_meter docs]: /integrations/utility_meter/ +[uvc docs]: /integrations/uvc/ +[vacuum docs]: /integrations/vacuum/ +[version docs]: /integrations/version/ +[vesync docs]: /integrations/vesync/ +[vizio docs]: /integrations/vizio/ +[volvooncall docs]: /integrations/volvooncall/ +[wallbox docs]: /integrations/wallbox/ +[water_heater docs]: /integrations/water_heater/ +[webhook docs]: /integrations/webhook/ +[webostv docs]: /integrations/webostv/ +[websocket_api docs]: /integrations/websocket_api/ +[wemo docs]: /integrations/wemo/ +[whirlpool docs]: /integrations/whirlpool/ +[wilight docs]: /integrations/wilight/ +[withings docs]: /integrations/withings/ +[wiz docs]: /integrations/wiz/ +[wled docs]: /integrations/wled/ +[xbox docs]: /integrations/xbox/ +[xiaomi_aqara docs]: /integrations/xiaomi_aqara/ +[xiaomi_ble docs]: /integrations/xiaomi_ble/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yale_smart_alarm docs]: /integrations/yale_smart_alarm/ +[yalexs_ble docs]: /integrations/yalexs_ble/ +[yamaha_musiccast docs]: /integrations/yamaha_musiccast/ +[yeelight docs]: /integrations/yeelight/ +[yeelightsunflower docs]: /integrations/yeelightsunflower/ +[zamg docs]: /integrations/zamg/ +[zengge docs]: /integrations/zengge/ +[zeroconf docs]: /integrations/zeroconf/ +[zerproc docs]: /integrations/zerproc/ +[zha docs]: /integrations/zha/ +[zone docs]: /integrations/zone/ +[zoneminder docs]: /integrations/zoneminder/ +[zwave_js docs]: /integrations/zwave_js/ +[zwave_me docs]: /integrations/zwave_me/ + diff --git a/source/images/blog/2022-09/automation_editor_new.png b/source/images/blog/2022-09/automation_editor_new.png new file mode 100644 index 00000000000..cd47909c6a1 Binary files /dev/null and b/source/images/blog/2022-09/automation_editor_new.png differ diff --git a/source/images/blog/2022-09/automation_overflow.png b/source/images/blog/2022-09/automation_overflow.png new file mode 100644 index 00000000000..f0eac337358 Binary files /dev/null and b/source/images/blog/2022-09/automation_overflow.png differ diff --git a/source/images/blog/2022-09/automation_state_selector.gif b/source/images/blog/2022-09/automation_state_selector.gif new file mode 100644 index 00000000000..91def47d2a6 Binary files /dev/null and b/source/images/blog/2022-09/automation_state_selector.gif differ diff --git a/source/images/blog/2022-09/bluetooth-proxy-overview.png b/source/images/blog/2022-09/bluetooth-proxy-overview.png new file mode 100644 index 00000000000..5cfa0c796c9 Binary files /dev/null and b/source/images/blog/2022-09/bluetooth-proxy-overview.png differ diff --git a/source/images/blog/2022-09/create_schedule.gif b/source/images/blog/2022-09/create_schedule.gif new file mode 100644 index 00000000000..9d254b8ca76 Binary files /dev/null and b/source/images/blog/2022-09/create_schedule.gif differ diff --git a/source/images/blog/2022-09/hardware_page.png b/source/images/blog/2022-09/hardware_page.png new file mode 100644 index 00000000000..fe3ae9eac18 Binary files /dev/null and b/source/images/blog/2022-09/hardware_page.png differ diff --git a/source/images/blog/2022-09/social.png b/source/images/blog/2022-09/social.png new file mode 100644 index 00000000000..b1b1949b33f Binary files /dev/null and b/source/images/blog/2022-09/social.png differ diff --git a/source/images/blog/2022-09/zigbee.png b/source/images/blog/2022-09/zigbee.png new file mode 100644 index 00000000000..ef87c0deb1a Binary files /dev/null and b/source/images/blog/2022-09/zigbee.png differ diff --git a/source/images/blog/2022-09/zwave_updates.png b/source/images/blog/2022-09/zwave_updates.png new file mode 100644 index 00000000000..47548702f58 Binary files /dev/null and b/source/images/blog/2022-09/zwave_updates.png differ diff --git a/source/images/blueprints/selector-config-entry.png b/source/images/blueprints/selector-config-entry.png new file mode 100644 index 00000000000..95840e0774e Binary files /dev/null and b/source/images/blueprints/selector-config-entry.png differ diff --git a/source/images/blueprints/selector-state.png b/source/images/blueprints/selector-state.png new file mode 100644 index 00000000000..e88e413ee5e Binary files /dev/null and b/source/images/blueprints/selector-state.png differ diff --git a/source/images/integrations/landisgyr_heat_meter/usb_ir_reader.png b/source/images/integrations/landisgyr_heat_meter/usb_ir_reader.png new file mode 100644 index 00000000000..62999a7d915 Binary files /dev/null and b/source/images/integrations/landisgyr_heat_meter/usb_ir_reader.png differ diff --git a/source/integrations/index.html b/source/integrations/index.html index adfd32c4170..72946cbd431 100644 --- a/source/integrations/index.html +++ b/source/integrations/index.html @@ -68,13 +68,13 @@ regenerate: false src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha256-4+XzXVhsDmqanXGHaHvgh1gMQKX40OUvDEBTu8JcmNs=" crossorigin="anonymous"> - - {% raw %}