diff --git a/_config.yml b/_config.yml index deb6e67b8f79..142356df6388 100644 --- a/_config.yml +++ b/_config.yml @@ -108,8 +108,8 @@ social: # Home Assistant release details current_major_version: 2024 current_minor_version: 7 -current_patch_version: 0 -date_released: 2024-07-03 +current_patch_version: 1 +date_released: 2024-07-05 # 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/sass/homeassistant/pages/_component_page.scss b/sass/homeassistant/pages/_component_page.scss index a72c316feb44..073e559ff427 100644 --- a/sass/homeassistant/pages/_component_page.scss +++ b/sass/homeassistant/pages/_component_page.scss @@ -61,7 +61,6 @@ align-content: center; transition: box-shadow .33s; - .img-container { height: 64px; margin: 12px 16px; @@ -128,11 +127,13 @@ a.option-card:hover { @for $i from 1 through 40 { .option-card:nth-child(#{$i}) { - animation-delay: #{$i * 0.04}s !important; + animation-delay: #{$i * 0.025}s !important; + @media only screen and (max-width: $palm-end) { + animation-delay: #{$i * 0.05}s !important; + } } } - @media only screen and (max-width: $palm-end) { .hass-option-cards { .option-card { diff --git a/source/_docs/automation/using_blueprints.markdown b/source/_docs/automation/using_blueprints.markdown index 3dd95e1ed795..5b8452bcece5 100644 --- a/source/_docs/automation/using_blueprints.markdown +++ b/source/_docs/automation/using_blueprints.markdown @@ -49,13 +49,14 @@ To edit an imported blueprint, follow these steps: 1. Go to **{% my blueprints title="Settings > Automations & Scenes > Blueprints" %}**. 2. Select the blueprint from the list. -3. Select the three dots menu and select **Take control**. +3. Select the {% icon "mdi:dots-vertical" %} and select **Take control**. +4. A preview of the automation is shown. + - **Info**: By taking control, the blueprint is converted into an automation. You won't be able to convert this back into a blueprint. + - To convert it into an automation and take control, select **Yes**. + - If you change your mind and want to keep the blueprint, select **No**.  -4. Under **Take control of automation?**, select **OK** - - **Info**: By taking control, the blueprint is converted into an automation. You won't be able to convert this back into a blueprint. - ## Re-importing a blueprint Blueprints created by the community may go through multiple revisions. Sometimes a user creates a blueprint, diff --git a/source/_integrations/forecast_solar.markdown b/source/_integrations/forecast_solar.markdown index cd02101c586d..e1b3ad222faf 100644 --- a/source/_integrations/forecast_solar.markdown +++ b/source/_integrations/forecast_solar.markdown @@ -118,7 +118,8 @@ the results a bit. The **damping** factor allows you to adjust and "damp" the results of your solar predictions in the morning and evening a bit and is a great method to make -results less optimistic and more tuned to your reality. +results less optimistic and more tuned to your reality. More details on damping can +be found [here](https://doc.forecast.solar/damping). The **inverter** size can be used in a situation where the maximum power of your inverter is lower than the total power of all your solar panels (as entered under diff --git a/source/_integrations/generic_hygrostat.markdown b/source/_integrations/generic_hygrostat.markdown index eb8193e6a94b..33fcf5956df9 100644 --- a/source/_integrations/generic_hygrostat.markdown +++ b/source/_integrations/generic_hygrostat.markdown @@ -21,11 +21,14 @@ ha_config_flow: true The `generic_hygrostat` humidifier {% term integration %} is a virtual hygrostat implemented in Home Assistant. It uses a sensor and a switch connected to a humidifier or dehumidifier under the hood. When in humidifier mode, if the measured humidity is less than the target humidity, the humidifier will be turned on and turned off when the required humidity is reached. When in dehumidifier mode, if the measured humidity is greater than the target humidity, the dehumidifier will be turned on and turned off when required humidity is reached. One Generic Hygrostat entity can only control one switch. If you need to activate two switches, one for a humidifier and one for a dehumidifier, you will need two Generic Hygrostat entities. -To enable the {% term integration %}, you need to add it to your {% term "`configuration.yaml`" %} file. -{% include integrations/restart_ha_after_config_inclusion.md %} - {% include integrations/config_flow.md %} +{% note %} +Configuration using our user interface provides a more limited subset of options, making this integration more accessible while covering most use cases. + +If you need more specific features for your use case, the manual [YAML-configuration section](#yaml-configuration) of this integration might provide them. +{% endnote %} + ## YAML configuration Alternatively, this integration can be configured and set up manually via YAML diff --git a/source/_integrations/generic_thermostat.markdown b/source/_integrations/generic_thermostat.markdown index a07859191b19..baa61e231856 100644 --- a/source/_integrations/generic_thermostat.markdown +++ b/source/_integrations/generic_thermostat.markdown @@ -20,6 +20,12 @@ The `generic_thermostat` climate {% term integration %} is a thermostat implemen {% include integrations/config_flow.md %} +{% note %} +Configuration using our user interface provides a more limited subset of options, making this integration more accessible while covering most use cases. + +If you need more specific features for your use case, the manual [YAML-configuration section](#yaml-configuration) of this integration might provide them. +{% endnote %} + ## YAML configuration Alternatively, this integration can be configured and set up manually via YAML diff --git a/source/_integrations/heos.markdown b/source/_integrations/heos.markdown index 8a028de010d4..3272570aead0 100644 --- a/source/_integrations/heos.markdown +++ b/source/_integrations/heos.markdown @@ -37,8 +37,10 @@ A connection to a single device enables control for all devices on the network. Use the sign-in service (go to Developer Tools -> Services and then run the `heos.sign_in` with your username and password. Use the "Fill example data" first, then change it with your data. Check the logs right after, there you should see if the sign-in was successful or not) to sign the connected controller into a HEOS account so that it can retrieve and play HEOS favorites and playlists. An error message is logged if sign-in is unsuccessful. Example service data payload: ```yaml -username: "example@example.com" -password: "password" +service: heos.sign_in +data: + username: "example@example.com" + password: "password" ``` | Service data attribute | Optional | Description | @@ -57,9 +59,11 @@ Use the sign-out service to sign the connected controller out of a HEOS account. You can play a HEOS favorite by number or name with the `media_player.play_media` service. Example service data payload: ```yaml -entity_id: media_player.office -media_content_type: "favorite" -media_content_id: "1" +service: media_player.play_media +data: + entity_id: media_player.office + media_content_type: "favorite" + media_content_id: "1" ``` | Service data attribute | Optional | Description | @@ -73,9 +77,11 @@ media_content_id: "1" You can play a HEOS playlist with the `media_player.play_media` service. Example service data payload: ```yaml -entity_id: media_player.office -media_content_type: "playlist" -media_content_id: "Awesome Music" +service: media_player.play_media +data: + entity_id: media_player.office + media_content_type: "playlist" + media_content_id: "Awesome Music" ``` | Service data attribute | Optional | Description | @@ -89,9 +95,11 @@ media_content_id: "Awesome Music" You can play a HEOS Quick Select by number or name with the `media_player.play_media` service. Example service data payload: ```yaml -entity_id: media_player.office -media_content_type: "quick_select" -media_content_id": "1" +service: media_player.play_media +data: + entity_id: media_player.office + media_content_type: "quick_select" + media_content_id": "1" ``` | Service data attribute | Optional | Description | @@ -105,9 +113,11 @@ media_content_id": "1" You can play a URL through a HEOS media player using the `media_player.play_media` service. The HEOS player must be able to reach the URL. Example service data payload: ```yaml -entity_id: media_player.office -media_content_type: "url" -media_content_id: "http://path.to/stream.mp3" +service: media_player.play_media +data: + entity_id: media_player.office + media_content_type: "url" + media_content_id: "http://path.to/stream.mp3" ``` | Service data attribute | Optional | Description | @@ -121,10 +131,12 @@ media_content_id: "http://path.to/stream.mp3" For grouping HEOS media players together for synchronous playback you can use the `media_player.join` service. With the example service data payload down below you'll expand playback of `media_player.office` to the `media_player.kitchen` and `media_player.bathroom` players. Please note that all of the media players need to be HEOS players. ```yaml -entity_id: media_player.office -group_members: - - media_player.kitchen - - media_player.bathroom +service: media_player.join +data: + entity_id: media_player.office + group_members: + - media_player.kitchen + - media_player.bathroom ``` | Service data attribute | Optional | Description | @@ -137,6 +149,12 @@ group_members: For removing a HEOS player from a group you can use the `media_player.unjoin` service. +```yaml +service: media_player.unjoin +data: + entity_id: media_player.office +``` + | Service data attribute | Optional | Description | | ---------------------- | -------- | ------------------------------------------------ | | `entity_id` | yes | Unjoin this media player from any player groups. | @@ -146,7 +164,7 @@ For removing a HEOS player from a group you can use the `media_player.unjoin` se - Receivers with multiple zones are represented as a single media player. They will be turned on when playback is started, but cannot be turned off by the integration at this time. - [Denon AVR](/integrations/denonar/) and HEOS media players can be combined into a [Universal Media Player](/integrations/universal/#denon-avr--heos) -## Troubleshooing +## Troubleshooting ### Debugging diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown index 56b3ff74dda2..4edd69b5b1f9 100644 --- a/source/_integrations/modbus.markdown +++ b/source/_integrations/modbus.markdown @@ -1621,19 +1621,6 @@ Description: | value | (write_register) A single value or an array of 16-bit values. Single value will call modbus function code 0x06. Array will call modbus function code 0x10. Values might need reverse ordering. E.g., to set 0x0004 you might need to set `[4,0]`, this depend on the byte order of your CPU | | state | (write_coil) A single boolean or an array of booleans. Single boolean will call modbus function code 0x05. Array will call modbus function code 0x0F | -The modbus integration also provides communication stop/restart services. These services will not do any reconfiguring, but simply stop/start the modbus communication layer. - -| Service | Description | -| -------------- | --------------------------------------------- | -| modbus.stop | Stop communication | -| modbus.restart | Restart communication (Stop first if running) | - -Description: - -| Attribute | Description | -| --------- | ------------------------------------------------ | -| hub | Hub name (defaults to 'modbus_hub' when omitted) | - ## Example: writing a float32 type register To write a float32 datatype register use network format like `10.0` == `0x41200000` (network order float hexadecimal). diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown index 51d75b3678ac..c7a2f006983c 100644 --- a/source/_integrations/template.markdown +++ b/source/_integrations/template.markdown @@ -57,9 +57,19 @@ _For old sensor/binary sensor configuration format, [see below](#legacy-binary-s ## UI configuration -Sensor template and binary sensor template can be configured using the user interface at **{% my helpers title="Settings > Devices & Services > Helpers" %}**. Select the **+ Add helper** button and then select the **{% my config_flow_start domain=page.ha_domain title=page.title %}** helper. +Sensor template and binary sensor template can be configured using the user interface at **{% my helpers title="Settings > Devices & Services > Helpers" %}**. +{% include integrations/config_flow.md %} + +{% important %} To be able to add **{% my helpers title="Helpers" %}** via the user interface, you should have `default_config:` in your {% term "`configuration.yaml`" %}. It should already be there by default unless you removed it. +{% endimportant %} + +{% note %} +Configuration using our user interface provides a more limited subset of options, making this integration more accessible while covering most use cases. + +If you need more specific features for your use case, the manual [YAML-configuration section](#yaml-configuration) of this integration might provide them. +{% endnote %} ## YAML configuration diff --git a/source/_integrations/unifi.markdown b/source/_integrations/unifi.markdown index fd7752e55a94..a4d28694b900 100644 --- a/source/_integrations/unifi.markdown +++ b/source/_integrations/unifi.markdown @@ -53,7 +53,7 @@ The UniFi Network application allows you to create multiple users on it besides ### UniFi OS -For UniFi OS a local-only user needs to be created. A user who uses the Ubiquiti cloud will not work. You can do this in the manage users section on the UniFi OS dashboard. Make sure to give it the right permissions for the functions you want to use. Note the Dream Machine Pro and Cloud Key Gen2 plus updated to UniFi OS needs the port to be 443. +For UniFi OS a local-only user needs to be created. A user who uses the Ubiquiti cloud will not work. You can do this in the manage users section on the UniFi OS dashboard. Make sure to give it the right permissions for the functions you want to use. Note the Dream Machine Pro and Cloud Key Gen2 plus updated to UniFi OS needs the port to be 443. For some self hosted servers the port will be 8443. ### Conflicts with MQTT diff --git a/source/_integrations/webmin.markdown b/source/_integrations/webmin.markdown index 46fc3c8ed7bd..4a0e32ca59fd 100644 --- a/source/_integrations/webmin.markdown +++ b/source/_integrations/webmin.markdown @@ -19,6 +19,14 @@ ha_platforms: This {% term integration %} provides sensors for monitoring the CPU and memory usage of your server. +## Prerequisites + +For best security, create a specific Webmin user for Home Assistant with a strong password and only "Can accept RPC calls" permission (under "Permissions for all modules") and remove the "Can accept RPC calls" permission for all other users. + +{% note %} +Be aware that the Webmin API ignores any 2FA set up via the frontend, e.g. it is even with enabled 2FA possible to use the API with only username and password. +{% endnote %} + {% include integrations/config_flow.md %} ## Sensors diff --git a/source/_layouts/default.html b/source/_layouts/default.html index 7e898126d0c6..ed5540184a46 100644 --- a/source/_layouts/default.html +++ b/source/_layouts/default.html @@ -1,45 +1,45 @@ {% include site/head.html %}
-