diff --git a/.github/workflows/add_prs_to_project.yml b/.github/workflows/add_prs_to_project.yml index 37bba0c1545..39df8a67801 100644 --- a/.github/workflows/add_prs_to_project.yml +++ b/.github/workflows/add_prs_to_project.yml @@ -18,7 +18,7 @@ jobs: app_id: ${{ secrets.PROJECTS_APP_ID }} private_key: ${{ secrets.PROJECTS_APP_PEM }} - name: Add to Project - uses: actions/add-to-project@v0.3.0 + uses: actions/add-to-project@v0.4.0 with: project-url: https://github.com/orgs/home-assistant/projects/10 github-token: ${{ steps.token.outputs.token }} diff --git a/_config.yml b/_config.yml index 285aea32596..4d296e33886 100644 --- a/_config.yml +++ b/_config.yml @@ -110,8 +110,8 @@ social: # Home Assistant release details current_major_version: 2022 current_minor_version: 11 -current_patch_version: 3 -date_released: 2022-11-16 +current_patch_version: 4 +date_released: 2022-11-20 # 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/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 895f474972d..91d3236313e 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -515,7 +515,7 @@ If for your use case this is undesired, you could consider using the automation Fires when the sun is setting or rising, i.e., when the sun elevation reaches 0°. -An optional time offset can be given to have it fire a set time before or after the sun event (e.g., 45 minutes before sunset). +An optional time offset can be given to have it fire a set time before or after the sun event (e.g., 45 minutes before sunset). A negative value makes it fire before sunrise or sunset, a positive value afterwards. The offset needs to be specified in a hh:mm:ss format.
diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index 2c20b2a2ad9..a51e0d891c2 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -306,8 +306,8 @@ The condition will pass if the attribute matches the given state. condition: condition: state entity_id: climate.living_room_thermostat - attribute: hvac_modes - state: "heat" + attribute: fan_mode + state: "auto" ``` Finally, the `state` option accepts helper entities (also known as `input_*` diff --git a/source/_integrations/airvisual.markdown b/source/_integrations/airvisual.markdown index b392719dbf6..4be019e3aae 100644 --- a/source/_integrations/airvisual.markdown +++ b/source/_integrations/airvisual.markdown @@ -19,7 +19,7 @@ The `airvisual` sensor platform queries the [AirVisual](https://www.iqair.com) c ## Using the AirVisual Cloud API -AirVisual API keys can be obtained [here](https://www.iqair.com/air-pollution-data-api). Note that the platform was designed using the "Community" package; the "Startup" and "Enterprise" package keys should continue to function, but actual results may vary (or not work at all). +AirVisual API keys can be obtained [here](https://www.iqair.com/dashboard/api). Note that the platform was designed using the "Community" package; the "Startup" and "Enterprise" package keys should continue to function, but actual results may vary (or not work at all). The Community API key is valid for 12 months after which it will expire. You must then go back to the AirVisual website, delete your old key, create a new one following the same steps and update your configuration with the new key. diff --git a/source/_integrations/amcrest.markdown b/source/_integrations/amcrest.markdown index 3e2e7e4131d..eb4913d7be4 100644 --- a/source/_integrations/amcrest.markdown +++ b/source/_integrations/amcrest.markdown @@ -424,4 +424,25 @@ amcrest: - ptz_preset ``` +## Example Automation to Detect Button Presses on AD110 and AD410 Doorbells + +Using this trigger in an automation will allow you to detect the press of the doorbell call button and create automations based upon it. + +```yaml +# Example automations.yaml entry +alias: Doorbell Pressed +description: "Trigger when Amcrest Button Press Event Fires" +trigger: + - platform: event + event_type: amcrest + event_data: + event: "CallNoAnswered" + payload: + action: "Start" +action: + - type: flash + entity_id: light.living_room + domain: light +``` + To check if your Amcrest camera is supported/tested, visit the [supportability matrix](https://github.com/tchellomello/python-amcrest#supportability-matrix) link from the `python-amcrest` project. diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown index 348d2d8e7b3..1d75309d1bf 100644 --- a/source/_integrations/binary_sensor.mqtt.markdown +++ b/source/_integrations/binary_sensor.mqtt.markdown @@ -218,7 +218,7 @@ unique_id: required: false type: string value_template: - description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that returns a string to be compared to `payload_on`/`payload_off` or an empty string, in which case the MQTT message will be removed. Available variables: `entity_id`. Remove this option when 'payload_on' and 'payload_off' are sufficient to match your payloads (i.e no pre-processing of original message is required)." + description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that returns a string to be compared to `payload_on`/`payload_off` or an empty string, in which case the MQTT message will be removed. Remove this option when `payload_on` and `payload_off` are sufficient to match your payloads (i.e no pre-processing of original message is required)." required: false type: string {% endconfiguration %} diff --git a/source/_integrations/bluetooth.markdown b/source/_integrations/bluetooth.markdown index 37cbe112b23..87b4883662b 100644 --- a/source/_integrations/bluetooth.markdown +++ b/source/_integrations/bluetooth.markdown @@ -79,11 +79,30 @@ If you experience an unreliable Bluetooth connection, installing a short USB ext ### Known working high performance adapters -- ASUS USB-BT400 (BCM20702A1) +- ASUS USB-BT400 (BCM20702A0) +- Cable Matters 604002-BLK (BCM20702A0) +- Enbiawit BT403 (CSR8510A10) - Feasycom FSC-BP119 (CSR8510A10) 📶 -- Kinivo BTD-400 (BCM20702A1) +- GMYLE 3340 (BCM20702A0) +- HIDEEZ BT0015-01 (CSR8510A10) +- IOGEAR GBU521W6 (BCM20702A0) +- Kinivo BTD-400 (BCM20702A0) +- LM Technologies LM1010 (BCM20702A0) 📶 +- Nuu You BT40 (CSR8510A10) +- Panda Wireless PBU40 (CSR8510A10) +- Pluggable USB-BT4LE (BCM20702A0) +- QGOO BT-06A (CSR8510A10) - Raspberry Pi 3B+ (CYW43455) - Raspberry Pi 4B (CYW43455) +- SABRENT BT-UB40 (CSR8510A10) +- SoundBot SB342 (BCM20702A0) +- StarTech USBBT1EDR4 (CSR8510A10) +- StarTech USBBT2EDR4 (BCM20702A0) +- Targus ACB10US1 (BCM20702A0) +- Techkey PBT06H (CSR8510A10) +- TRENDnet TBW-107UB (CSR8510A10) +- UGREEN CM109 (CSR8510A10) +- Warmstor WBT-AD01 (CSR8510A10) 📶 Denotes external antenna @@ -95,6 +114,7 @@ The following requirements must be met for an adapter to be labeled as High Perf - Process at least one advertisement per second from a device without dropping data - 95% of connection attempts are successful within two tries - Meets the above requirements with Home Assistant Core 2022.11.1 or later and Home Assistant Operating System 9.3 or later +- Must be able to hold five (5) connections at the same time Performance testing used the following hardware: @@ -102,11 +122,25 @@ Performance testing used the following hardware: - Advertisements from an Oral-B iO Series 8 - External Adapters only: Home Assistant Blue running Home Assistant Operating System 9.3 with a USB extension cable. +#### Broadcom adapters (BCM20702A0) + +Most of these adapters can hold seven (7) connections at the same time. + +These adapters may take an additional 120 seconds to initialize after boot with Home Assistant Operating System 9.3 when using an ODROID N2+; eventually, they come online. + +#### Cambridge Silicon Radio adapters (CSR8510A10) + +Most of these adapters can hold five (5) connections at the same time. + +These adapters generally offer the fastest connect times. + ### Known working adapters - ASUS USB-BT500 (RTL8761BU) - Avantree DG45 (RTL8761BU) +- COMCAST CF-B05 (RTL8761BU) 📶 - EDUP LOVE EP-B3536 (RTL8761BU) 📶 +- ISEKIE KW-B3519 (RTL8761BU) - Maxuni BT-501 (RTL8761BU) - MPOW BH45A (RTL8761BU) - StarTech USBA-BLUETOOTH-V5-C2 (RTL8761BU) @@ -119,11 +153,22 @@ Performance testing used the following hardware: 📶 Denotes external antenna +#### Realtek RTL8761BU adapters + +These adapters do not have a reset pin. If they stop responding, there is currently no way for the kernel to reset them automatically. A generic USB reset for these adapters has been introduced in Linux kernel 6.1 and later. + ### Unsupported adapters +- Alfa AWUS036EACS (RTL8821CU) - Frequent connection failures and drop outs - Belkin F8T003 ver 2. - Fails to setup and add successfully -- tp-link UB400 (BCM20702A1) - Frequent connection failures with active connections +- EDIMAX EW-7611ULB (RTL8723BU) - Frequent connection failures and drop outs +- EDUP EP-AC1661 (RTL8821CU) - Frequent connection failures and drop outs +- eppfun AK3040G (ATS2851) - No driver available yet for USB id 10d7:b012 +- QUMOX Bluetooth 5.0 (Barrot 8041A02) - No working driver +- UGREEEN CM591 (ATS2851) - No driver available yet for USB id 10d7:b012 +- tp-link UB400 (CSR4) - Frequent connection failures with active connections - tp-link UB500 (RTL8761BU) - Frequent connection failures with active connections +- Unbranded CSR 4.0 clones with USB id 0a12:0001 - Unrecoverable driver failure ## Multiple adapters diff --git a/source/_integrations/calendar.markdown b/source/_integrations/calendar.markdown index dff15ca5397..8c9e56f2c71 100644 --- a/source/_integrations/calendar.markdown +++ b/source/_integrations/calendar.markdown @@ -37,7 +37,7 @@ automation: ``` Calendar triggers should should generally not use automation mode `single` to ensure the trigger -can fire when multiple events start at the same time (e.g. use `queued` or `parallel` instead) +can fire when multiple events start at the same time (e.g., use `queued` or `parallel` instead). Note that calendars are read once every 15 minutes. When testing, make sure you do not plan events less than 15 minutes away from the current time, or your trigger might not fire. See [Automation Trigger Variables: Calendar](/docs/automation/templating/#calendar) for additional trigger data available for conditions or actions. diff --git a/source/_integrations/dsmr.markdown b/source/_integrations/dsmr.markdown index 57a3a250f9f..c323a6627b2 100644 --- a/source/_integrations/dsmr.markdown +++ b/source/_integrations/dsmr.markdown @@ -84,6 +84,7 @@ $ docker run --device /dev/ttyUSB0:/dev/ttyUSB0 -d --name="home-assistant" -v /h #### Serial to network proxies: - [ser2net](https://ser2net.sourceforge.net) +- [Smart Meter bridge](https://github.com/legolasbo/smartmeterBridge) - [WIZnet WIZ110SR](https://www.wiznet.io/product-item/wiz110sr/) DIY solutions (ESP8266 based): @@ -122,6 +123,14 @@ connection: &con0096 115200n81,local ``` +Optional configuration example for Smart Meter Bridge: +```yml +serial_port: "/dev/ttyUSB0" +dsmr_version: "4" +server: + port: 9988 +``` + ### Technical overview DSMR is a standard to which Dutch smartmeters must comply. It specifies that the smartmeter must send out a 'telegram' every 10 seconds (every second for DSMR 5.0 devices) over a serial port. diff --git a/source/_integrations/forecast_solar.markdown b/source/_integrations/forecast_solar.markdown index fa7194f4426..7ed1ae0581d 100644 --- a/source/_integrations/forecast_solar.markdown +++ b/source/_integrations/forecast_solar.markdown @@ -89,7 +89,7 @@ default. Enable those entities in the user interface if you like to use these: - Estimated Power Production - Next 12 Hours (in Watt) - Estimated Power Production - Next 24 Hours (in Watt) -## Using your Solar.Forecast account +## Using your Forecast.Solar account The [Forecast.Solar](https://forecast.solar/) public plan can be used for free, but the resolution of the data used is more limited and thus, there are less @@ -127,7 +127,7 @@ a more realistic forecast graph. [Read more about the damping factor in the Forecast.Solar documentation](https://doc.forecast.solar/doku.php?id=damping&s[]=damping). -To adjust the configuration settings for your Solar.Forecast integration +To adjust the configuration settings for your Forecast.Solar integration instance: - Browse to your Home Assistant instance. diff --git a/source/_integrations/google_assistant.markdown b/source/_integrations/google_assistant.markdown index 449e53ef786..5e8eeda847b 100644 --- a/source/_integrations/google_assistant.markdown +++ b/source/_integrations/google_assistant.markdown @@ -147,7 +147,7 @@ For secure remote access, use a reverse proxy such as the {% my supervisor_addon 8. Restart Home Assistant Core. 9. With a Google Assistant device, try saying "OK Google, sync my devices." This can be helpful to avoid issues, especially if you are enabling local fulfillment sometime after adding cloud Google Assistant support. -You can debug the setup by following [these instructions](https://developers.google.com/assistant/smarthome/develop/local#debugging_from_chrome). +You can debug the setup by following [these instructions](https://developers.home.google.com/local-home/test#debugging_from_chrome). ### YAML Configuration diff --git a/source/_integrations/google_sheets.markdown b/source/_integrations/google_sheets.markdown index 07ec9a03648..2cf07b653ad 100644 --- a/source/_integrations/google_sheets.markdown +++ b/source/_integrations/google_sheets.markdown @@ -83,4 +83,20 @@ You can use the service `google_sheets.append_sheet` to add a row of data to the | `worksheet` | yes | Name of the worksheet. Defaults to the first one in the document. | Sheet1 | `data` | no | Data to be appended to the worksheet. This puts the data on a new row, one value per column. | {"hello": world, "cool": True, "count": 5} +{% raw %} + +```yaml +# Example service call +service: google_sheets.append_sheet +data: + config_entry: 1b4a46c6cba0677bbfb5a8c53e8618b0 + worksheet: "Car Charging" + data: + Date: "{{ now().strftime('%-d-%b-%y') }}" + KWh: "{{ states('input_number.car_charging_kwh')|float(0) }}" + Cost: "{{ states('input_number.car_charging_cost')|float(0) }}" +``` + +{% endraw %} + {% enddetails %} diff --git a/source/_integrations/history_stats.markdown b/source/_integrations/history_stats.markdown index daf1f0ddd30..ed398a281c5 100644 --- a/source/_integrations/history_stats.markdown +++ b/source/_integrations/history_stats.markdown @@ -138,7 +138,7 @@ Here are some examples of periods you could work with, and what to write in your {% raw %} ```yaml - start: "{{ now().replace(hour=0, minute=0, second=0) }}" + start: "{{ now().replace(hour=0, minute=0, second=0, microsecond=0) }}" end: "{{ now() }}" ``` @@ -149,7 +149,7 @@ Here are some examples of periods you could work with, and what to write in your {% raw %} ```yaml - end: "{{ now().replace(hour=0, minute=0, second=0) }}" + end: "{{ now().replace(hour=0, minute=0, second=0, microsecond=0) }}" duration: hours: 24 ``` @@ -161,7 +161,7 @@ Here are some examples of periods you could work with, and what to write in your {% raw %} ```yaml - start: "{{ now().replace(hour=6, minute=0, second=0) }}" + start: "{{ now().replace(hour=6, minute=0, second=0, microsecond=0) }}" duration: hours: 5 ``` @@ -175,7 +175,7 @@ Here, last Monday is _today_ as a timestamp, minus 86400 times the current weekd {% raw %} ```yaml - start: "{{ as_timestamp( now().replace(hour=0, minute=0, second=0) ) - now().weekday() * 86400 }}" + start: "{{ as_timestamp( now().replace(hour=0, minute=0, second=0, microsecond=0) ) - now().weekday() * 86400 }}" end: "{{ now() }}" ``` @@ -192,12 +192,23 @@ Here, last Monday is _today_ as a timestamp, minus 86400 times the current weekd {% endraw %} +**Previous month**: starts the first day of the previous month at 00:00, ends the first day of the current month. + +{% raw %} + +```yaml + start: "{{ now().replace(day=1, month=now().month-1, hour=0, minute=0, second=0, microsecond=0) }}" + end: "{{ now().replace(day=1, hour=0, minute=0, second=0, microsecond=0) }}" +``` + +{% endraw %} + **Next 4 pm**: 24 hours, from the last 4 pm till the next 4 pm. If it hasn't been 4 pm today, that would be 4 pm yesterday until 4 pm today. If it is already past 4 pm today, it will be 4 pm today until 4 pm tomorrow. When changing the start time, then add or subtract to the 8-hour buffer to match the next midnight. {% raw %} ```yaml - end: "{{ (now().replace(minute=0,second=0) + timedelta(hours=8)).replace(hour=16) }}" + end: "{{ (now().replace(minute=0, second=0, microsecond=0) + timedelta(hours=8)).replace(hour=16) }}" duration: hours: 24 ``` @@ -209,7 +220,7 @@ Here, last Monday is _today_ as a timestamp, minus 86400 times the current weekd {% raw %} ```yaml - end: "{{ now().replace(hour=0, minute=0, second=0) }}" + end: "{{ now().replace(hour=0, minute=0, second=0, microsecond=0) }}" duration: days: 30 ``` diff --git a/source/_integrations/homekit_controller.markdown b/source/_integrations/homekit_controller.markdown index dcf62044bde..8dffa6a9af4 100644 --- a/source/_integrations/homekit_controller.markdown +++ b/source/_integrations/homekit_controller.markdown @@ -113,7 +113,7 @@ Clicking on one will drop you in to the automation editor with a trigger pre-fil

-When you have filled in the rest of the form to create your migration it will show up against that device in the device registry. +When you have filled in the rest of the form to create your automation it will show up against that device in the device registry.

diff --git a/source/_integrations/huawei_lte.markdown b/source/_integrations/huawei_lte.markdown index ae7972b3e42..70332c549a0 100644 --- a/source/_integrations/huawei_lte.markdown +++ b/source/_integrations/huawei_lte.markdown @@ -25,7 +25,7 @@ ha_platforms: ha_integration_type: integration --- -The Huawei LTE router and modem integration for Home Assistant allows you to observe and control [Huawei LTE devices](https://consumer.huawei.com/en/smart-home/). +The Huawei LTE router and modem integration for Home Assistant allows you to observe and control [Huawei LTE devices](https://consumer.huawei.com/en/routers/). There is currently support for the following platforms within Home Assistant: diff --git a/source/_integrations/iotawatt.markdown b/source/_integrations/iotawatt.markdown index acca166b707..f77f27ae19b 100644 --- a/source/_integrations/iotawatt.markdown +++ b/source/_integrations/iotawatt.markdown @@ -25,7 +25,7 @@ and create them as sensors in Home Assistant. You can use the accumulated energy sensors directly with the Home Assistant energy dashboard. -If you have an energy production system such as solar panels, following these instructions: +If you have an energy production system such as solar panels, follow these instructions: ### Configure IoTaWatt diff --git a/source/_integrations/light.markdown b/source/_integrations/light.markdown index c3b8c33141b..2b836618c14 100644 --- a/source/_integrations/light.markdown +++ b/source/_integrations/light.markdown @@ -15,7 +15,7 @@ This integration allows you to track and control various light bulbs. Read the i ### Default turn-on values -To set the default color, brightness and transition values when the light is turned on, create a custom `light_profiles.csv`, normally located in the default configuration folder where you find `configuration.yaml`. +To set the default color, brightness and transition values when the light is turned on, create a custom `light_profiles.csv`, normally located in the default configuration folder where you find `configuration.yaml`. The `light_profiles.csv` has to have a header. The format of the header is: @@ -49,8 +49,8 @@ Most lights do not support all attributes. You can check the integration documen | `rgb_color` | yes | A list containing three integers between 0 and 255 representing the RGB color you want the light to be. Three comma-separated integers that represent the color in RGB, within square brackets. | `rgbw_color` | yes | A list containing four integers between 0 and 255 representing the RGBW color you want the light to be. Four comma-separated integers that represent the color in RGBW (red, green, blue, white), within square brackets. This attribute will be ignored by lights which do not support RGBW colors. | `rgbww_color` | yes | A list containing five integers between 0 and 255 representing the RGBWW color you want the light to be. Five comma-separated integers that represent the color in RGBWW (red, green, blue, cold white, warm white), within square brackets. This attribute will be ignored by lights which do not support RGBWW colors. -| `color_temp` | yes | An integer in mireds representing the color temperature you want the light to be. -| `kelvin` | yes | Alternatively, you can specify the color temperature in Kelvin. +| `color_temp_kelvin` | yes | An integer in Kelvin representing the color temperature you want the light to be. +| `color_temp` | yes | Alternatively, you can specify the color temperature in Mireds. | `color_name` | yes | A human-readable string of a color name, such as `blue` or `goldenrod`. All [CSS3 color names](https://www.w3.org/TR/css-color-3/#svg-color) are supported. | `brightness` | yes | Integer between 0 and 255 for how bright the light should be, where 0 means the light is off, 1 is the minimum brightness and 255 is the maximum brightness supported by the light. | `brightness_pct`| yes | Alternatively, you can specify brightness in percent (a number between 0 and 100), where 0 means the light is off, 1 is the minimum brightness and 100 is the maximum brightness supported by the light. diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown index 672817a2126..035b961017e 100644 --- a/source/_integrations/mqtt.markdown +++ b/source/_integrations/mqtt.markdown @@ -113,8 +113,8 @@ To change the settings, click on "Configure" in the integration page in the UI, ### Discovery options -MQTT discovery is enabled by default. Discovery can be turned off. The prefix for the discovery topic (default `homeassistant`) can be changed. -See the [MQTT Discovery section](#mqtt-discovery) +MQTT discovery is enabled by default. Discovery can be turned off. The prefix for the discovery topic (default `homeassistant`) can be changed here as well. +See also [MQTT Discovery section](#mqtt-discovery) ### Birth and last will messages diff --git a/source/_integrations/neato.markdown b/source/_integrations/neato.markdown index 461fbc63683..399a2e89998 100644 --- a/source/_integrations/neato.markdown +++ b/source/_integrations/neato.markdown @@ -36,12 +36,15 @@ Visit [the Neato Developer Network](https://developers.neatorobotics.com/applica

-You will have to enter a name, a description and your redirect URL. +You will have to enter a name, a description, and the redirect URI: -Use `https://my.home-assistant.io/redirect/oauth` as the redirect URL. +- **Name**: can be anything you like, for example, "Home Assistant". +- **Description**: can be anything you like, for example, "Home Assistant integration for Neato" +- **Redirect URI**: `https://my.home-assistant.io/redirect/oauth` +- **Terms Of Service URL**: leave blank +- **Privacy Policy URL**: leave blank You have to select all three scopes (`public_profile`, `control_robots` and `maps`). -
{% details "I have manually disabled My Home Assistant" %} diff --git a/source/_integrations/netatmo.markdown b/source/_integrations/netatmo.markdown index 29a13b07cca..6913c5869ed 100644 --- a/source/_integrations/netatmo.markdown +++ b/source/_integrations/netatmo.markdown @@ -55,7 +55,9 @@ To edit an existing area, enter its name and follow the dialog. ## Camera -The `netatmo` camera platform is consuming the information provided by a [Netatmo Smart Indoor](https://www.netatmo.com/en-gb/security/cam-indoor), [Outdoor](https://www.netatmo.com/en-gb/security/cam-outdoor) and [Netatmo Smart Video Doorbell](https://www.netatmo.com/en-gb/security/doorbell) camera. This integration allows you to view the current live stream created by the camera (exception: video doorbell). The doorbell is currently not supported with Home Assistant Cloud link, please use a [Netatmo dev account](#development--testing-with-your-own-client-id). +The `netatmo` camera platform is consuming the information provided by a [Netatmo Smart Indoor](https://www.netatmo.com/en-gb/security/cam-indoor), [Outdoor](https://www.netatmo.com/en-gb/security/cam-outdoor) and [Netatmo Smart Video Doorbell](https://www.netatmo.com/en-gb/security/doorbell) camera. This integration allows you to view the current live stream created by the camera (exception: video doorbell). + +The doorbell is currently not supported with the Home Assistant Cloud link mode (configured in the integration). Please use a [Netatmo dev account](#development--testing-with-your-own-client-id). Note that: if you have already created the Netatmo integration, you must remove it and configure it with the Netatmo dev account as explained in the previous link. Then you will see a Smart Doorbell device with a camera sensor. ## Climate diff --git a/source/_integrations/raincloud.markdown b/source/_integrations/raincloud.markdown index c42b0fbb7a3..3e811b06b02 100644 --- a/source/_integrations/raincloud.markdown +++ b/source/_integrations/raincloud.markdown @@ -50,7 +50,7 @@ password: ## Binary Sensor -Once you have enabled the [Raincloud component](#configuration), add the following to your `configuration.yaml` file: +Once you have enabled the [Raincloud integration](#configuration), add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry diff --git a/source/_integrations/rest.markdown b/source/_integrations/rest.markdown index ff29cdb4bf0..d2002050fc3 100644 --- a/source/_integrations/rest.markdown +++ b/source/_integrations/rest.markdown @@ -171,3 +171,9 @@ binary_sensor: required: false type: list {% endconfiguration %} + +
+ +Use either `resource` or `resource_template`. + +
diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown index ed0fffb2d60..a43c8a969fa 100644 --- a/source/_integrations/sensor.mqtt.markdown +++ b/source/_integrations/sensor.mqtt.markdown @@ -210,7 +210,7 @@ unit_of_measurement: required: false type: string value_template: - description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the value. Available variables: `entity_id`. The `entity_id` can be used to reference the entity's attributes. If the template throws an error, the current state will be used instead." + description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the value. If the template throws an error, the current state will be used instead." required: false type: template {% endconfiguration %} diff --git a/source/_integrations/shopping_list.markdown b/source/_integrations/shopping_list.markdown index d1585f94319..2dfbe8a8b5a 100644 --- a/source/_integrations/shopping_list.markdown +++ b/source/_integrations/shopping_list.markdown @@ -59,18 +59,33 @@ Clear completed items from the shopping list. ## Using in Automations -The simplest way to use the shopping list with automations (e.g., when entering a zone with shops) is to create a notification that can be clicked to open the shopping list. +A `shopping_list_updated` event is triggered when items in the list are modified, with the following data payload attached to it. This can be used to trigger automations such as sending a push notification when someone adds an item to the shopping list, which when clicked, will open the list. + +| Data payload attribute | Description | +|------------------------|--------------------------------------------------------------------------------------------------------------------| +| `action` | What action was taken on the item. Either `add` for a new item being added, or `update` for an item being updated. | +| `item` | A dictionary containing details of the item that was updated. | +| `item.id` | A unique ID for this item | +| `item.name` | The text attached to the item, for example `Milk` | +| `item.complete` | A boolean indicated whether the item has been marked as complete. | {% raw %} ```yaml -- service: notify.notify - data: - title: "Time to shop?" - message: "Click to open the shopping list" +alias: "Notify on new shopping list item" +trigger: + - platform: event + event_type: shopping_list_updated + event_data: + action: "add" +action: + - service: notify.notify data: - clickAction: "/shopping-list" - url: "/shopping-list" + message: "{{ trigger.event.data.item.name }} has been added to the shopping list" + data: + clickAction: "/shopping-list" + url: "/shopping-list" ``` {% endraw %} + diff --git a/source/_integrations/smartthings.markdown b/source/_integrations/smartthings.markdown index 5d26886aec6..87cf2f40eb6 100644 --- a/source/_integrations/smartthings.markdown +++ b/source/_integrations/smartthings.markdown @@ -301,7 +301,16 @@ This error message occurs when you do not have an active Home Assistant Cloud (N The personal access token does not match the expected format. Make sure you are copying the entire token and that there are no extraneous characters (such as trailing whitespace) and try again. -#### Error: The token is invalid or no longer authorized +#### Error: `pysmartthings.errors.APIInvalidGrant: Invalid refresh token:` (after a restore) + +You can fix this by using the SmartThings App to re-grant authorization to the API token you created before. +1. Open SmartThings app on your mobile device (not HA) +2. Select `Automations` from bottom +3. Select your Home Assistant automation from the list +4. Click "Done", then click "Allow" +5. Reload your SmartThings integration from Home Assistant Devices panel + +#### Error: The token is invalid or no longer authorized (not solved by above) The personal access token entered is not valid or has been deleted. Create a new token per the instructions in the prerequisites and try again. diff --git a/source/_integrations/unifi.markdown b/source/_integrations/unifi.markdown index b8eba69e80d..6dedac69f17 100644 --- a/source/_integrations/unifi.markdown +++ b/source/_integrations/unifi.markdown @@ -24,7 +24,7 @@ ha_platforms: ha_integration_type: hub --- -[UniFi Network](https://www.ui.com/software/) by [Ubiquiti Networks, inc.](https://www.ui.com/) is a software that binds gateways, switches and wireless access points together with one graphical front end. +[UniFi Network](https://www.ui.com/download-software/) by [Ubiquiti Networks, inc.](https://www.ui.com/) is a software that binds gateways, switches and wireless access points together with one graphical front end. There is currently support for the following device types within Home Assistant: @@ -57,7 +57,7 @@ It is recommended that you run the UniFi Network application in a dedicated virt ## Presence detection -This platform allows you to detect presence by looking at devices connected to a [Ubiquiti](https://ui.com/) [UniFi Network](https://unifi-network.ui.com/) application. By default devices are marked as away 300 seconds after they were last seen. +This platform allows you to detect presence by looking at devices connected to a [Ubiquiti](https://ui.com/) [UniFi Network](https://ui.com/consoles) application. By default devices are marked as away 300 seconds after they were last seen. ### Troubleshooting and Time Synchronization diff --git a/source/_integrations/update.mqtt.markdown b/source/_integrations/update.mqtt.markdown index 3b9afeab4cc..7c3b37bb56b 100644 --- a/source/_integrations/update.mqtt.markdown +++ b/source/_integrations/update.mqtt.markdown @@ -17,7 +17,7 @@ To enable MQTT Update in your installation, add the following to your `configura ```yaml # Example configuration.yaml entry mqtt: - select: + update: - state_topic: topic-installed latest_version_topic: topic-latest ``` diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown index 30e82e7d36d..40b6c8c27d4 100644 --- a/source/_integrations/vicare.markdown +++ b/source/_integrations/vicare.markdown @@ -54,7 +54,7 @@ The Viessmann API is rate-limited. If you exceed one of the limits below you wil - Limit 1: 120 calls for a time window of 10 minutes - Limit 2: 1450 calls for a time window of 24 hours -The default `scan_interval` of 60 seconds will work within these limits. Note however that any additional requests to the API, e.g., by setting the temperature via the integration but also by interacting with the ViCare app also counts into those limits. It is therefore advised to adjust the scan_interval to your usage scenario. +The integration polls the Viessmann API every 60 seconds and will work within these limits. Note however that any additional requests to the API, e.g., by setting the temperature via the integration but also by interacting with the ViCare app also counts into those limits. ## Climate diff --git a/source/_integrations/wemo.markdown b/source/_integrations/wemo.markdown index adff0642314..0324093b5e2 100644 --- a/source/_integrations/wemo.markdown +++ b/source/_integrations/wemo.markdown @@ -28,7 +28,7 @@ The `wemo` integration is the main integration to integrate various [Belkin WeMo There is currently support for the following device types within Home Assistant: -- Binary Sensor +- Binary Sensor (Belkin WeMo Motion Sensor) - Fan (Belkin WeMo (Holmes) Smart Humidifier) - Light (Belkin WeMo LED lights and Smart Dimmer Switch) - Switch ([Belkin WeMo Switches](https://www.belkin.com/us/smart-home/c/wemo/) and includes support for WeMo enabled [Mr. Coffee](https://www.mrcoffee.com/) smart coffee makers.) diff --git a/source/_integrations/yeelight.markdown b/source/_integrations/yeelight.markdown index 6760a85b1ca..b4f87e2c4f2 100644 --- a/source/_integrations/yeelight.markdown +++ b/source/_integrations/yeelight.markdown @@ -22,7 +22,7 @@ ha_zeroconf: true ha_integration_type: integration --- -The `yeelight` integration allows you to control your Yeelight Wi-Fi bulbs with Home Assistant. +The Yeelight integration allows you to control your Yeelight Wi-Fi bulbs with Home Assistant. There is support for the following device types within Home Assistant: @@ -193,6 +193,7 @@ This integration is tested to work with the following models. If you have a diff | `RGBW` | MJDP02YL | Mi LED smart Lamp - white and color Wi-Fi Version| | `lamp` | MJTD02YL | Xiaomi Mijia Desk Lamp Pro | | `lamp1` | MJTD01YL | Xiaomi Mijia Smart LED Desk Lamp (autodiscovery isn't possible because the device doesn't support mDNS due to the small amount of RAM) | +| `lamp9` | YLCT03YL | Yeelight Staria Bedside Lamp Pro | | `lamp15` | YLTD003 | Yeelight LED Screen Light Bar Pro | | `ceiling1` | YLXD01YL | Yeelight Ceiling Light | | `ceiling2` | YLXD03YL | Yeelight Ceiling Light - Youth Version | diff --git a/source/_integrations/zamg.markdown b/source/_integrations/zamg.markdown index 46f23227abc..7e0564adedd 100644 --- a/source/_integrations/zamg.markdown +++ b/source/_integrations/zamg.markdown @@ -18,7 +18,7 @@ ha_codeowners: The `zamg` platform uses meteorological details published by the Austrian weather service [Zentralanstalt für Meteorologie und Geodynamik (ZAMG)](https://www.zamg.ac.at). -Only observations for capital cities are publicly available. You can check the list of stations in [CSV format](https://www.zamg.ac.at/ogd). +With this integration, it is possible to get weather station data from up to 228 different ZAMG stations across Austria. The integration uses the [datahub-api](https://dataset.api.hub.zamg.ac.at/v1/docs/index.html). {% include integrations/config_flow.md %} @@ -34,18 +34,20 @@ This integration provides the following sensors: |Name|Description| |----|-----------| |Temperature|Temperature in °C| +|Temperature Average|Average Temperature in °C| |Humidity|Humidity in %| |Dew Point|Dew point in °C| +|Dew Point Average|Average Dew point in °C| |Pressure|Station pressure in hPa| |Pressure at Sea Level|Sea level pressure in hPa| |Wind Speed|Wind speed in km/h| |Top Wind Speed|Max wind speed in km/h| |Wind Bearing|Wind bearing in °| |Top Wind Bearing|Wind bearing at max speed in °| -|Sun Last Hour|Sunshine in the last hour in %| -|Precipitation|Precipitation in 1/m²| -|Station Name|Station name| -|Station Elevation|The station elevation in m| -|Update Date|Update date of last read data| -|Update Time|Update time of last read data| -|Station id|The station id| +|Sun Last 10 Minutes|Sunshine in the last 10 minutes in sec| +|Precipitation|Precipitation in mm| +|Snow|Snow in cm| + +
+Not every station supports every sensor. +
diff --git a/source/_posts/2022-11-02-release-202211.markdown b/source/_posts/2022-11-02-release-202211.markdown index bf99374c895..b9fb4439e81 100644 --- a/source/_posts/2022-11-02-release-202211.markdown +++ b/source/_posts/2022-11-02-release-202211.markdown @@ -55,6 +55,7 @@ Sunday, November 13, 2022 (11:00 AM PST / 20:00 CET). - [Release 2022.11.1 - November 3](#release-2022111---november-3) - [Release 2022.11.2 - November 8](#release-2022112---november-8) - [Release 2022.11.3 - November 16](#release-2022113---november-16) +- [Release 2022.11.4 - November 20](#release-2022114---november-20) - [Need help? Join the community!](#need-help-join-the-community) - [Breaking Changes](#breaking-changes) - [All changes](#all-changes) @@ -663,6 +664,65 @@ The following integrations are now available via the Home Assistant UI: [zha docs]: /integrations/zha/ [zwave_js docs]: /integrations/zwave_js/ +## Release 2022.11.4 - November 20 + +- Fix moving average for 0 values ([@daanbeverdam] - [#80476]) ([filter docs]) +- Solve Modbus reload issue ([@janiversen] - [#82253]) ([modbus docs]) +- Add kilo watts unit mapping for nibe_heatpump ([@elupus] - [#82284]) ([nibe_heatpump docs]) +- Bump `regenmaschine` to 2022.11.0 ([@bachya] - [#82337]) ([rainmachine docs]) +- Bump pysma to version 0.7.3 ([@rklomp] - [#82343]) ([sma docs]) +- Bump flux_led to 0.28.34 ([@bdraco] - [#82347]) ([flux_led docs]) +- Fix invalid configuration_url in Netatmo ([@mib1185] - [#82372]) ([netatmo docs]) +- Bump PyViCare to 2.19.0 ([@TheJulianJES] - [#82381]) ([vicare docs]) +- Bump bleak-retry-connector to 2.8.5 ([@bdraco] - [#82387]) ([bluetooth docs]) +- Update xknx to 1.2.1 ([@marvin-w] - [#82404]) ([knx docs]) +- Attempt to fix occasional Flo timeouts ([@dmulcahey] - [#82408]) ([flo docs]) +- Prevent powerwall from switching addresses if its online ([@bdraco] - [#82410]) ([powerwall docs]) + +[#80476]: https://github.com/home-assistant/core/pull/80476 +[#81423]: https://github.com/home-assistant/core/pull/81423 +[#81488]: https://github.com/home-assistant/core/pull/81488 +[#81780]: https://github.com/home-assistant/core/pull/81780 +[#82197]: https://github.com/home-assistant/core/pull/82197 +[#82253]: https://github.com/home-assistant/core/pull/82253 +[#82284]: https://github.com/home-assistant/core/pull/82284 +[#82337]: https://github.com/home-assistant/core/pull/82337 +[#82343]: https://github.com/home-assistant/core/pull/82343 +[#82347]: https://github.com/home-assistant/core/pull/82347 +[#82372]: https://github.com/home-assistant/core/pull/82372 +[#82381]: https://github.com/home-assistant/core/pull/82381 +[#82387]: https://github.com/home-assistant/core/pull/82387 +[#82404]: https://github.com/home-assistant/core/pull/82404 +[#82408]: https://github.com/home-assistant/core/pull/82408 +[#82410]: https://github.com/home-assistant/core/pull/82410 +[3_day_blinds docs]: /integrations/3_day_blinds/ +[@TheJulianJES]: https://github.com/TheJulianJES +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@daanbeverdam]: https://github.com/daanbeverdam +[@dmulcahey]: https://github.com/dmulcahey +[@elupus]: https://github.com/elupus +[@frenck]: https://github.com/frenck +[@janiversen]: https://github.com/janiversen +[@marvin-w]: https://github.com/marvin-w +[@mib1185]: https://github.com/mib1185 +[@rklomp]: https://github.com/rklomp +[abode docs]: /integrations/abode/ +[accuweather docs]: /integrations/accuweather/ +[bluetooth docs]: /integrations/bluetooth/ +[filter docs]: /integrations/filter/ +[flo docs]: /integrations/flo/ +[flux_led docs]: /integrations/flux_led/ +[knx docs]: /integrations/knx/ +[modbus docs]: /integrations/modbus/ +[netatmo docs]: /integrations/netatmo/ +[nibe_heatpump docs]: /integrations/nibe_heatpump/ +[powerwall docs]: /integrations/powerwall/ +[rainmachine docs]: /integrations/rainmachine/ +[sma docs]: /integrations/sma/ +[vicare docs]: /integrations/vicare/ + ## Need help? Join the community! Home Assistant has a great community of users who are all more than willing diff --git a/source/dashboards/views.markdown b/source/dashboards/views.markdown index b53cb439336..21285be28b5 100644 --- a/source/dashboards/views.markdown +++ b/source/dashboards/views.markdown @@ -127,7 +127,9 @@ frontend: ## Subview -View can be marked as "Subview". Subviews won’t show up in the navigation bar. When on the subview, the navigation bar only show the name of the subview and a back button. +A "View" can be marked as "Subview". Subviews won’t show up in the navigation bar on top of the sidebar. Subviews can, for instance, be used to show detailed information; you could link to this subview from a page with a clean look with only basic information (by using [cards that support the `navigate` action](/dashboards/actions)). Think of a view with a few thermostats and a subview with status information on the heating/cooling device. + +When on the subview, the navigation bar only shows the name of the subview and a back button (no icon is shown). By default, clicking on back button will navigate to the previous view but a custom back path (`back_path`) can be set. You can access subviews from other parts of your dashboard by using [cards that support the `navigate` action](/dashboards/actions). @@ -174,20 +176,20 @@ views: type: list path: required: false - description: Paths are used in the URL, more info below. + description: Paths are used in the URL. type: string default: view index icon: required: false - description: Icon-name from Material Design Icons. You can use any icon from [MaterialDesignIcons.com](https://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`. + description: Icon-name from Material Design Icons. You can use any icon from [MaterialDesignIcons.com](https://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`. Only for "View", not for "Subview". type: string background: required: false - description: Style the background using CSS, more info below. + description: Style the background using CSS. type: string theme: required: false - description: Themes view and cards, more info below. + description: Themes view and cards. type: string visible: required: false @@ -196,12 +198,12 @@ views: default: true subview: required: false - description: Mark the view as "Subview", more info below. + description: Mark the view as "Subview". type: boolean default: false back_path: required: false - description: Only for subview. Path to navigate when clicking on back button, more info below. + description: Only for "Subview". Path to navigate when clicking on back button. type: string {% endconfiguration %} @@ -219,3 +221,17 @@ View configuration: - entity: switch.decorative_lights image: /local/lights.png ``` + +Subview configuration: + +```yaml +- title: "Energieprijzen" + path: "energieprijzen" + subview: true + back_path: "/ui-data/climate" + + cards: + - type: entities + entities: + - sensor.today_avg_price +``` diff --git a/source/images/integrations/nmap/nmap_customization_example.png b/source/images/integrations/nmap/nmap_customization_example.png index f6e59f68a77..4518ae2b4da 100644 Binary files a/source/images/integrations/nmap/nmap_customization_example.png and b/source/images/integrations/nmap/nmap_customization_example.png differ diff --git a/source/integrations/index.html b/source/integrations/index.html index 72946cbd431..1e319bbb292 100644 --- a/source/integrations/index.html +++ b/source/integrations/index.html @@ -161,9 +161,9 @@ allComponents.pop(); // remove placeholder element at the end components: [], image: function () { if (this.logo === '') { - return ''; + return ''; } else { - return ''; + return ''; } } };