diff --git a/Gemfile b/Gemfile index e375ae53b78..70a32ca4d09 100644 --- a/Gemfile +++ b/Gemfile @@ -10,8 +10,8 @@ group :development do gem 'stringex', '2.8.6' # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' - gem 'rubocop', '1.64.0' - gem 'ruby-lsp', '0.16.7' + gem 'rubocop', '1.64.1' + gem 'ruby-lsp', '0.17.1' gem 'rackup', '2.1.0' end diff --git a/Gemfile.lock b/Gemfile.lock index b7c22b79108..2bf0f4113ed 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -21,12 +21,12 @@ GEM sass (>= 3.3.0, < 3.5) compass-import-once (1.0.5) sass (>= 3.2, < 3.5) - concurrent-ruby (1.2.3) + concurrent-ruby (1.3.1) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.16.3) + ffi (1.17.0-x86_64-linux-gnu) forwardable-extended (2.6.0) google-protobuf (4.27.0-x86_64-linux) bigdecimal @@ -79,7 +79,7 @@ GEM nokogiri (1.16.5-x86_64-linux) racc (~> 1.4) parallel (1.24.0) - parser (3.3.1.0) + parser (3.3.2.0) ast (~> 2.4.1) racc pathutil (0.16.2) @@ -105,7 +105,7 @@ GEM rexml (3.2.8) strscan (>= 3.0.9) rouge (4.2.1) - rubocop (1.64.0) + rubocop (1.64.1) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) @@ -118,7 +118,7 @@ GEM unicode-display_width (>= 2.4.0, < 3.0) rubocop-ast (1.31.3) parser (>= 3.3.1.0) - ruby-lsp (0.16.7) + ruby-lsp (0.17.1) language_server-protocol (~> 3.17.0) prism (>= 0.29.0, < 0.30) sorbet-runtime (>= 0.5.10782) @@ -126,7 +126,7 @@ GEM ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.77.2-x86_64-linux-gnu) + sass-embedded (1.77.4-x86_64-linux-gnu) google-protobuf (>= 3.25, < 5.0) sass-globbing (1.1.5) sass (>= 3.1) @@ -138,7 +138,7 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11394) + sorbet-runtime (0.5.11414) stringex (2.8.6) strscan (3.1.0) terminal-table (3.0.2) @@ -164,8 +164,8 @@ DEPENDENCIES nokogiri (= 1.16.5) rackup (= 2.1.0) rake (= 13.2.1) - rubocop (= 1.64.0) - ruby-lsp (= 0.16.7) + rubocop (= 1.64.1) + ruby-lsp (= 0.17.1) sass-globbing (= 1.1.5) sassc (= 2.1.0) sinatra (= 4.0.0) diff --git a/package-lock.json b/package-lock.json index 26e42344a5b..bc0699d8d9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "textlint": "^14.0.4", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", - "textlint-rule-terminology": "^5.0.9" + "textlint-rule-terminology": "^5.0.10" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -6113,9 +6113,9 @@ } }, "node_modules/textlint-rule-terminology": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/textlint-rule-terminology/-/textlint-rule-terminology-5.0.9.tgz", - "integrity": "sha512-+6z9J8plZEtJdnaWyj0qpPtQBKEW9dq+a9mfJzOA6ZseHycnvlQzD66toyLBgm4XoGUe8ZNabS0h/eVYvY7Yyw==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/textlint-rule-terminology/-/textlint-rule-terminology-5.0.10.tgz", + "integrity": "sha512-+dWPNfS5F6iriG62mtfZk2zjJ85fWRemDZa8O/NM6CtdO72xpWhTYEzPCJKUVsTPE7HK57HxczmFxSRmtBkMeg==", "dev": true, "dependencies": { "lodash": "^4.17.15", diff --git a/package.json b/package.json index bdb002fdbfe..87656ee1415 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "textlint": "^14.0.4", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", - "textlint-rule-terminology": "^5.0.9" + "textlint-rule-terminology": "^5.0.10" }, "resolutions": { "minimist": ">=1.2.5" diff --git a/source/_integrations/google_generative_ai_conversation.markdown b/source/_integrations/google_generative_ai_conversation.markdown index 6b7fefe8215..17065d28620 100644 --- a/source/_integrations/google_generative_ai_conversation.markdown +++ b/source/_integrations/google_generative_ai_conversation.markdown @@ -22,7 +22,7 @@ Controlling Home Assistant is done by providing the AI access to the Assist API This integration does not integrate with [sentence triggers](/docs/automation/trigger/#sentence-trigger). -This integration requires an API key to use, [which you can generate here](https://makersuite.google.com/app/apikey). +This integration requires an API key to use, [which you can generate here](https://aistudio.google.com/app/apikey), and to be in one of the [available regions](https://ai.google.dev/gemini-api/docs/available-regions). {% include integrations/config_flow.md %} @@ -30,10 +30,10 @@ This integration requires an API key to use, [which you can generate here](https The Google Generative AI API key is used to authenticate requests to the Google Generative AI API. To generate an API key take the following steps: -- Visit the [API Keys page](https://makersuite.google.com/app/apikey) to retrieve the API key you'll use to configure the integration. +- Visit the [API Keys page](https://aistudio.google.com/app/apikey) to retrieve the API key you'll use to configure the integration. On the same page, you can see your plan: *free of charge* if the associated Google Cloud project doesn't have billing, or *pay-as-you-go* if the associated Google Cloud project has billing enabled. -Comparison of the plans is available [here](https://ai.google.dev/pricing). The big differences are: free of charge is rate limited and free prompts/responses are used for product improvement. +Comparison of the plans is available [at this pricing page](https://ai.google.dev/pricing). The major differences include: the free of charge plan is rate limited, free prompts/responses are used for product improvement, and the free plan is not available in all [regions](https://ai.google.dev/gemini-api/docs/available-regions). {% include integrations/option_flow.md %} {% configuration_basic %} diff --git a/source/_integrations/homeassistant.markdown b/source/_integrations/homeassistant.markdown index c15bb6d6c33..f0eb5030007 100644 --- a/source/_integrations/homeassistant.markdown +++ b/source/_integrations/homeassistant.markdown @@ -191,7 +191,7 @@ initial_state: ### Device class -A device class represents a group of device types. The way a specific device class is shown in the user interface depends on the platform that is using it. For example, binary sensor and cover both support the device class "window". While for the binary sensor the window can only be open or closed, for cover, a window can also be tilted. For a given platform, the device class controls how the device is shown in the user interface. For example: humidifier has two device classes, humidifier and dehumidifier. If the device class is set to `humidifier`, the UI shows **Humidifying**. If it is set to `dehumidifier`, it shows **Drying**. +Devices classes categorize certain entities and influence how these are shown in the dashboard. Some device classes categorize by measurement type, such as sensors or binary sensors. Other device classes categorize into more specific types. For example, a cover can be a blind or a curtain. For a given platform, the device class influences what is shown in the user interface. For example: humidifier has two device classes, humidifier and dehumidifier. If the device class is set to `humidifier`, the UI shows **Humidifying**. If it is set to `dehumidifier`, it shows **Drying**. Device class is currently supported by the following platforms: diff --git a/source/_integrations/intent_script.markdown b/source/_integrations/intent_script.markdown index b12edae380a..2b91854a0e8 100644 --- a/source/_integrations/intent_script.markdown +++ b/source/_integrations/intent_script.markdown @@ -101,6 +101,7 @@ available in the `action_response` variable. ```yaml conversation: + intents: EventCountToday: - "How many meetings do I have today?" diff --git a/source/_integrations/panasonic_viera.markdown b/source/_integrations/panasonic_viera.markdown index bdd0be741f8..80a1dc2479e 100644 --- a/source/_integrations/panasonic_viera.markdown +++ b/source/_integrations/panasonic_viera.markdown @@ -166,5 +166,6 @@ The list with all known valid keys can be found [here](https://github.com/floria - TX-P50GT30Y - TX-P50GT60E - TX-65HZ1000W +- TX-65HZ1500 If your model is not on the list, give it a test. If everything works correctly, then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io/blob/current/source/_integrations/panasonic_viera.markdown). diff --git a/source/_integrations/roborock.markdown b/source/_integrations/roborock.markdown index 4cb8db3abc4..20983271ff5 100644 --- a/source/_integrations/roborock.markdown +++ b/source/_integrations/roborock.markdown @@ -156,7 +156,7 @@ We are working on adding a lot of features to the core integration. We have reve ### How can I clean a specific room? We plan to make the process simpler in the future, but for now, it is a multi-step process. 1. Make sure to first name the rooms in the Roborock app; otherwise, they won't appear in the debug log. -2. Go to {% my developer_call_service service="vacuum.send_command" title="**Developer Tools** > **Services** > **Roborock: Get maps**" %}. Select your vacuum as the entity. Note that room IDs and names are only updated on the currently selected map. If you don't see the rooms you expect, you should select the other map through your app or through the `load_multi_map` service. +2. Go to {% my developer_call_service service="roborock.get_maps" title="**Developer Tools** > **Services** > **Roborock: Get maps**" %}. Select your vacuum as the entity. Note that room IDs and names are only updated on the currently selected map. If you don't see the rooms you expect, you should select the other map through your app or through the `load_multi_map` service. You will get a response like this: ```json vacuum.s7_roborock: diff --git a/source/_integrations/samsungtv.markdown b/source/_integrations/samsungtv.markdown index a344ed2c84d..bb8bed2e9c2 100644 --- a/source/_integrations/samsungtv.markdown +++ b/source/_integrations/samsungtv.markdown @@ -333,6 +333,7 @@ KEY_MIC| KEY_NINE_SEPERATE| KEY_AUTO_FORMAT|AutoFormat KEY_DNET|DNET +KEY_MINUS|Minus _______________ **Auto Arc Keys** diff --git a/source/_integrations/sonos.markdown b/source/_integrations/sonos.markdown index ae676ba3cd8..53e329f020e 100644 --- a/source/_integrations/sonos.markdown +++ b/source/_integrations/sonos.markdown @@ -248,6 +248,30 @@ data: enqueue: play ``` +Play all albums by a genre. + +```yaml +service: media_player.play_media +target: + entity_id: media_player.porch +data: + media_content_type: genre + media_content_id: "A:GENRE/Classic%20Rock/" + enqueue: play +``` + +Play an imported playlist by using its title. + +```yaml +service: media_player.play_media +target: + entity_id: media_player.porch +data: + media_content_type: playlist + media_content_id: S:/MyPlaylist + enqueue: play +``` + ## Services The Sonos integration makes various custom services available in addition to the [standard media player services](/integrations/media_player/#services). diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown index 4308417ac8b..e26c78592b1 100644 --- a/source/_integrations/switchbot.markdown +++ b/source/_integrations/switchbot.markdown @@ -56,9 +56,9 @@ Some SwitchBot devices need to be configured within the app before being control - [Contact Sensor (WoContact)](https://switch-bot.com/pages/switchbot-contact-sensor) - [Curtain (WoCurtain)](https://switch-bot.com/pages/switchbot-curtain) (version 1 & 2) - [Curtain 3 (WoCtn3)](https://switch-bot.com/pages/switchbot-curtain-3) -- [Humidifier (WoHumi)](https://eu.switch-bot.com/products/switchbot-smart-humidifier) +- Humidifier (WoHumi) - Light Strip (WoStrip) -- [Meter](https://switch-bot.com/pages/switchbot-meter)/[Meter Plus 70BB](https://switch-bot.com/pages/switchbot-meter-plus) (WoSensorTH) +- [Meter](https://switch-bot.com/pages/switchbot-meter) / [Meter Plus](https://switch-bot.com/pages/switchbot-meter-plus) (WoSensorTH) - [Indoor/Outdoor Meter](https://switch-bot.com/pages/switchbot-indoor-outdoor-thermo-hygrometer) (WoIOSensorTH) - [Motion Sensor (WoPresence)](https://switch-bot.com/pages/switchbot-motion-sensor) - Plug Mini (WoPlug), both the original (model W1901400) and HomeKit-enabled (model W1901401) diff --git a/source/installation/raspberrypi.markdown b/source/installation/raspberrypi.markdown index a6be8339bfb..e469ff8d22e 100644 --- a/source/installation/raspberrypi.markdown +++ b/source/installation/raspberrypi.markdown @@ -99,7 +99,7 @@ Use this procedure if Raspberry Pi Imager is not supported by your platform. 2. Download and start Balena Etcher. You may need to run it with administrator privileges on Windows. 3. Download the image to your computer. - - Copy the correct URL for the Raspberry Pi 3 or 4 (Note: there are 2 different links below!): + - Copy the correct URL for the Raspberry Pi 3, 4 or 5 (Note: there are 3 different links below!): {% tabbed_block %} {% for variant in site.installation.types[page.installation_type].variants %} @@ -136,4 +136,4 @@ _Select and copy the URL or use the "copy" button that appear when you hover it. We get commissions for purchases made through links in this post.

-{% include common-tasks/enable_i2c.md %} \ No newline at end of file +{% include common-tasks/enable_i2c.md %}