Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add event platform to homematicip_cloud integration doc #36468

Closed
wants to merge 29 commits into from

Conversation

hahn-th
Copy link
Contributor

@hahn-th hahn-th commented Dec 21, 2024

Proposed change

Add event platform to homematicip_cloud integration docs

Type of change

  • Spelling, grammar or other readability improvements (current branch).
  • Adjusted missing or incorrect information in the current documentation (current branch).
  • Added documentation for a new integration I'm adding to Home Assistant (next branch).
  • Added documentation for a new feature I'm adding to Home Assistant (next branch).
  • Removed stale or deprecated documentation.

Additional information

Checklist

  • This PR uses the correct branch, based on one of the following:
    • I made a change to the existing documentation and used the current branch.
    • I made a change that is related to an upcoming version of Home Assistant and used the next branch.
  • The documentation follows the Home Assistant documentation standards.

Summary by CodeRabbit

  • New Features

    • Introduced a dual-mode scene editor for improved scene adjustments.
    • Enhanced voice assistant functionality for faster response times.
    • Added new integrations, including support for Acaia coffee scales and Music Assistant.
    • New timer command for voice control: "set a timer for 1 hour and 3 minutes."
  • Documentation

    • Updated documentation for various integrations, enhancing clarity and usability.
    • Added a guide for contributing to the Home Assistant Voice initiative.
    • Announced the launch of the annual community survey to gather user insights.
  • Bug Fixes

    • Corrected navigation steps in SmartThings integration troubleshooting.
    • Fixed typographical errors in the Russound RIO documentation.
  • Chores

    • Incremented patch version and updated release date in configuration files.

astrandb and others added 29 commits December 16, 2024 12:00
…e-assistant#36396)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updated Troubleshooting section to rename Automations to Routines
* contributing to voice initiative page creation

* contributing to voice initiative page creation

* Update source/voice_control/contribute-voice.markdown

Co-authored-by: Paulus Schoutsen <[email protected]>

* Update source/voice_control/contribute-voice.markdown

* Update source/voice_control/contribute-voice.markdown

* Update source/voice_control/contribute-voice.markdown

Co-authored-by: Franck Nijhof <[email protected]>

* Update source/voice_control/contribute-voice.markdown

Co-authored-by: Franck Nijhof <[email protected]>

* linking to sidebar and tweaks in Contribute to voice initiative

---------

Co-authored-by: Paulus Schoutsen <[email protected]>
Co-authored-by: Franck Nijhof <[email protected]>
* Remove current stream thumbnail

* Added new thumbnail

* Updated livestream copy

* Remove image

* Add new thumbnail

* Remove image

* Updated image

* Update news.html
…e-assistant#36429)

Bumps [sorbet-runtime](https://github.com/sorbet/sorbet) from 0.5.11699 to 0.5.11704.
- [Release notes](https://github.com/sorbet/sorbet/releases)
- [Commits](https://github.com/sorbet/sorbet/commits)

---
updated-dependencies:
- dependency-name: sorbet-runtime
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [logger](https://github.com/ruby/logger) from 1.6.3 to 1.6.4.
- [Release notes](https://github.com/ruby/logger/releases)
- [Commits](ruby/logger@v1.6.3...v1.6.4)

---
updated-dependencies:
- dependency-name: logger
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [json](https://github.com/ruby/json) from 2.9.0 to 2.9.1.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](ruby/json@v2.9.0...v2.9.1)

---
updated-dependencies:
- dependency-name: json
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…istant#36428)

Bumps [google-protobuf](https://github.com/protocolbuffers/protobuf) from 4.29.1 to 4.29.2.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/commits)

---
updated-dependencies:
- dependency-name: google-protobuf
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Update mealie.markdown

* Fix nitpick self-hosted

Co-authored-by: Joost Lekkerkerker <[email protected]>
* Uploading blogs for Voice PE launch

* Remove old link

* Apply suggestions from code review

Co-authored-by: Franck Nijhof <[email protected]>

---------

Co-authored-by: Darren Griffin <[email protected]>
Co-authored-by: Franck Nijhof <[email protected]>
* Initial upload of new page

* Updated Gemfile

* Accessibility and performance improvements

* Performance optimisations

* Improve link description

* Better align video

* Updated Gemfile

* Added OG image, updated frontpage image reference

* Bumped up gradient preload

* Updated image

* Updated FAQ

* Hide AU distributors

* Video lazy load fix

* Updated distributors

* Update distributors

* Remove teaser stream card

* Add frontpage image

* Adds rootMargin to prevent lazy load flashing
* Fix display issues when :target is active

* Content update

* Change :target to display block
…e-assistant#36452)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…assistant#36455)

```diff
- Pick the LLM provider of your choice, either local or cloud, as long as it las a conversational agent.
+ Pick the LLM provider of your choice, either local or cloud, as long as it has a conversational agent.
```
@hahn-th hahn-th requested a review from jpbede as a code owner December 21, 2024 19:59
@home-assistant home-assistant bot added in-progress This PR/Issue is currently being worked on needs-rebase The PR has been branched of the wrong base branch or targets an incorrect target branch next This PR goes into the next branch labels Dec 21, 2024
@home-assistant
Copy link

It seems that this PR is targeted against an incorrect branch. Documentation updates which apply to our current stable release should target the current branch. Please change the target branch of this PR to current and rebase if needed. If this is documentation for a new feature, please add a link to that PR in your description.

@hahn-th hahn-th changed the title Patch 4 Add event platform to homematicip_cloud integration doc Dec 21, 2024
Copy link

netlify bot commented Dec 21, 2024

Deploy Preview for home-assistant-docs ready!

Name Link
🔨 Latest commit 14895c6
🔍 Latest deploy log https://app.netlify.com/sites/home-assistant-docs/deploys/67671e14ad51c10008d6723c
😎 Deploy Preview https://deploy-preview-36468--home-assistant-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link
Contributor

coderabbitai bot commented Dec 21, 2024

📝 Walkthrough

Walkthrough

This pull request encompasses a comprehensive update to the Home Assistant documentation and configuration, focusing on voice assistant features, integration improvements, and community engagement. The changes span multiple files across various directories, introducing new documentation, updating existing content, and refining the user experience. Key highlights include the launch of the Home Assistant Voice Preview Edition, updates to integration documentation, and the preparation of community survey and initiative announcements.

Changes

File Change Summary
_config.yml Updated patch version from 3 to 5 and release date to 2024-12-20
sass/homeassistant/pages/_landingpage.scss Modified mobile view styling, adjusted hero height, and added cursor interactions
source/_data/people.yml Added Annika Schulz and ensured newline for Missy Quarry
source/_includes/asides/* Added "Contribute to Voice initiative" links in documentation navigation
source/_posts/ Added multiple new blog posts about voice assistants, community survey, and release notes
source/_integrations/ Updated documentation for various integrations like Google Tasks, Mealie, MyUplink, and HomematicIP Cloud
source/voice-pe/ Added new landing page, JavaScript, and CSS files for Voice Preview Edition
source/voice_control/ Added new documentation for voice contribution and Assist features

Sequence Diagram

sequenceDiagram
    participant User
    participant HomeAssistant as Home Assistant
    participant VoiceAssist as Voice Assist
    participant Community as Community Platform

    User->>HomeAssistant: Interact with Voice Assist
    HomeAssistant->>VoiceAssist: Process Voice Command
    VoiceAssist->>VoiceAssist: Analyze Intent
    alt Local Processing
        VoiceAssist-->>HomeAssistant: Execute Command
    else Cloud Fallback
        VoiceAssist->>Community: Request Advanced Processing
        Community-->>VoiceAssist: Provide Contextual Response
    end
    VoiceAssist-->>User: Respond to Command
Loading

Tip

CodeRabbit's docstrings feature is now available as part of our Early Access Program! Simply use the command @coderabbitai generate docstrings to have CodeRabbit automatically generate docstrings for your pull request. We would love to hear your feedback on Discord.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🧹 Nitpick comments (17)
source/voice-pe/nice-select2.js (1)

1-1: Consider removing the "use strict" directive if this file is treated as an ECMAScript module.
Modern JavaScript modules are already in strict mode, making the explicit directive redundant.

🧰 Tools
🪛 Biome (1.9.4)

[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)

source/voice-pe/script.js (3)

47-69: Potential duplication in handling lazy loading of videos.
Both in “registerUserInteractionEvents” and “userInteract,” we see nearly identical steps for setting the “src” on lazy videos. Consider factoring out the logic into a shared helper function for clarity and maintainability.


71-83: Minor optimization: unify the logic for lazy video loading.
You can invoke a single function once user interaction is detected, removing the repeated code in lines 59–68.


608-664: Interval-based feature cycling might need user-friendly controls.
Currently, the cycling logic runs automatically. It may be beneficial to add UI controls for pausing/resuming, or to display which feature is currently active.

source/_data/people.yml (1)

93-95: Add a newline at the end of the file.
Many YAML linters prefer or require a newline at end of file to avoid potential parsing issues.

Apply this suggestion to fix the lint error:

  github: anakinsbrna
+ 
🧰 Tools
🪛 yamllint (1.35.1)

[error] 95-95: no new line character at the end of file

(new-line-at-end-of-file)

source/voice_control/contribute-voice.markdown (2)

22-22: Fix sentence structure and formatting.

The sentence about Piper voice creation needs better formatting and punctuation.

-To create a Piper voice, you don't need an army of volunteers. You need a native speaker of a language to create a dataset, which is then trained into a Piper model and verified again by the native speaker.[Check the Training guide](https://github.com/rhasspy/piper/blob/master/TRAINING.md).
+To create a Piper voice, you don't need an army of volunteers - just a native speaker of a language to create a dataset. This dataset is then trained into a Piper model and verified by the native speaker. [Check the Training guide](https://github.com/rhasspy/piper/blob/master/TRAINING.md).

35-38: Add blank lines around list for better readability.

The markdown list should be surrounded by blank lines for better formatting.

There are also a couple ways to actively contribute to the development of the voice initiative:
+
- [Contribute sentence intents in your language](https://developers.home-assistant.io/docs/voice/intent-recognition/contributing/)
- [Become a language leader](https://developers.home-assistant.io/docs/voice/language-leaders)
- [Contribute code to Assist](https://github.com/home-assistant/core/tree/dev/homeassistant/components/assist_pipeline)
+
🧰 Tools
🪛 LanguageTool

[grammar] ~35-~35: Using ‘couple’ without ‘of’ is considered to be informal.
Context: ...an active contributor There are also a couple ways to actively contribute to the developme...

(PLENTY_OF_NOUNS)

🪛 Markdownlint (0.37.0)

36-36: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


38-38: null
Files should end with a single newline character

(MD047, single-trailing-newline)

source/_posts/2024-12-16-community-survey-2024.markdown (1)

15-15: Consider revising the punctuation.

Replace the em dash followed by "and" with a period or semicolon for better readability:

-we're launching an annual survey&mdash;and we hope you'll participate!
+we're launching an annual survey! We hope you'll participate!
🧰 Tools
🪛 LanguageTool

[typographical] ~15-~15: Conjunctions like ‘and’ should not follow semicolons. Consider using a comma, or removing the conjunction.
Context: ..., we're launching an annual survey—and we hope you'll participate! A big part of...

(CONJUNCTION_AFTER_SEMICOLON)

source/_integrations/myuplink.markdown (2)

82-82: Add missing comma for better readability.

-In this example a temperature below 42°C
+In this example, a temperature below 42°C
🧰 Tools
🪛 LanguageTool

[typographical] ~82-~82: It appears that a comma is missing.
Context: ...t water reserve is getting low. In this example a temperature below 42°C in the middle ...

(DURING_THAT_TIME_COMMA)


86-96: Consider improving YAML formatting consistency.

While the automation example is functional, consider these formatting improvements:

  1. Add comments explaining the trigger conditions
  2. Use consistent indentation (2 spaces)
  3. Group related fields together
automation:
  - alias: "Notify on low hot water reserve"
    # Trigger when middle tank temperature drops below 42°C
    triggers:
      - trigger: numeric_state
        entity_id: sensor.your_pump_hot_water_charging_bt6
        below: 42
    
    actions:
      - action: notify.mobile_app_your_device
        data:
          title: "Water heater"
          message: "Hot water reserve is getting low."
source/_integrations/google_tasks.markdown (1)

75-75: Remove extra blank lines.

Multiple consecutive blank lines should be reduced to a single blank line for consistency.

Also applies to: 94-94, 147-147

🧰 Tools
🪛 Markdownlint (0.37.0)

75-75: Expected: 1; Actual: 2
Multiple consecutive blank lines

(MD012, no-multiple-blanks)

source/voice_control/builtin_sentences.markdown (1)

113-113: Fix trailing space.

There's a trailing space at the end of line 113.

-  - Break it up into hours, minutes, and seconds instead of using a technical term like *set a timer for 63 minutes*. 
+  - Break it up into hours, minutes, and seconds instead of using a technical term like *set a timer for 63 minutes*.
🧰 Tools
🪛 Markdownlint (0.37.0)

113-113: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)

source/_integrations/homematicip_cloud.markdown (1)

154-156: Fix formatting issues in the event platform documentation.

The lines have inconsistent spacing. Please remove trailing spaces and ensure consistent indentation.

Apply this diff to fix the formatting:

+- Doorbell Event for devices *HmIP-DSD-PCB* and others where ChannelRole equals DOOR_BELL_INPUT
🧰 Tools
🪛 Markdownlint (0.37.0)

154-154: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)


156-156: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)

source/_posts/2024-12-19-voice-preview-edition-the-era-of-open-voice.markdown (1)

49-49: Consider these writing improvements for better readability.

Several minor grammar and style issues could be improved:

  1. Line 49: Add commas: "...on Voice Preview Edition, the first thing..." and "...heart's content, from full gamer RGB..."
  2. Line 55: Consider rephrasing "It's hard to convey" to something more direct.
  3. Line 89: Add hyphen: "auto-gain control"
  4. Line 117: Add comma before "so": "We made this device, so the community..."
  5. Line 121: Consider rephrasing "really big leap" to something more impactful.

Also applies to: 55-55, 73-73, 89-89, 117-117, 121-121

🧰 Tools
🪛 LanguageTool

[uncategorized] ~49-~49: Possible missing comma found.
Context: ...hen you get your hands on Voice Preview Edition the first thing you'll notice is its pr...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~49-~49: Possible missing comma found.
Context: ...nd you can customize it to your heart's content from full gamer RGB to subtle glow. <d...

(AI_HYDRA_LEO_MISSING_COMMA)

source/_posts/2024-12-19-voice-chapter-8-assist-in-the-home.markdown (1)

39-115: Consider refining some language choices for a more professional tone.

While the content is informative and well-structured, consider the following refinements:

  • Line 49: Replace "pretty much" with "virtually" or "essentially"
  • Line 110: Replace "new innovations" with "innovations" (redundant)
🧰 Tools
🪛 LanguageTool

[style] ~49-~49: The phrase ‘pretty much’ can be informal. To strengthen your writing, consider removing it or replacing it with an adverb.
Context: ...ll them intents, allow you to control pretty much every aspect of your smart home, includ...

(PRETTY_MUCH)


[style] ~49-~49: Consider using a different verb to strengthen your wording.
Context: ...se, and more. We also have intents that give you helpful information like what's the...

(GIVE_INFORMATION)


[style] ~96-~96: Consider a different adverb to strengthen your wording.
Context: ...t](/voice-pe/#language-support). We're always looking for new solutions for low-power...

(ALWAYS_CONSTANTLY)


[style] ~96-~96: Consider using an alternative to strengthen your wording.
Context: ...her the needed translations, but if you want to learn more visit [Rhasspy Speech](ht...

(WANT_KEEN)


[style] ~110-~110: ‘new innovations’ might be wordy. Consider a shorter alternative.
Context: ...ave the choice. ## Conclusion So many new innovations and improvements for Assist have happen...

(EN_WORDINESS_PREMIUM_NEW_INNOVATIONS)


[typographical] ~112-~112: If the phrase ‘what about’ starts a question, add a question mark (“?”) at the end of the sentence. If ‘what about’ is not a question, then in some cases ‘about’ is not necessary and in some cases, use ‘about what’.
Context: ...ce, what about improving (this or that)". The good news is that improving Assist ...

(WHAT_ABOUT_QUESTION_MARK)

source/voice-pe/index.html (2)

10-13: Consider adding async/defer attributes to optimize page load.

The resource loading can be optimized by:

  1. Adding async to the script tag for non-blocking loading
  2. Using preload for critical CSS files
-<link rel="stylesheet" href="/voice-pe/styles.css" />
-<link rel="stylesheet" href="/voice-pe/nice-select2.css" />
-<script src="/voice-pe/nice-select2.js" defer></script>
+<link rel="stylesheet" href="/voice-pe/styles.css" fetchpriority="high" />
+<link rel="stylesheet" href="/voice-pe/nice-select2.css" media="print" onload="this.media='all'" />
+<script src="/voice-pe/nice-select2.js" async></script>

1377-1379: Ensure video accessibility with appropriate ARIA labels.

The video element should have ARIA labels for better accessibility.

-<video controls data-src="/images/voice-pe/vision.mp4" class="video-preview" playsinline>
+<video controls data-src="/images/voice-pe/vision.mp4" class="video-preview" playsinline
+       aria-label="Vision video preview" role="application">
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2422aa8 and 14895c6.

⛔ Files ignored due to path filters (60)
  • Gemfile.lock is excluded by !**/*.lock
  • source/images/blog/2024-12-survey/art.jpg is excluded by !**/*.jpg
  • source/images/blog/2024-12-voice-chapter-8/art.png is excluded by !**/*.png
  • source/images/blog/2024-12-voice-chapter-8/assist.png is excluded by !**/*.png
  • source/images/blog/2024-12-voice-chapter-8/buy-now.png is excluded by !**/*.png
  • source/images/blog/2024-12-voice-chapter-8/language-support.png is excluded by !**/*.png
  • source/images/blog/2024-12-voice-chapter-8/timer.webm is excluded by !**/*.webm
  • source/images/blog/2024-12-voice-chapter-8/voice-pipeline.png is excluded by !**/*.png
  • source/images/blog/2024-12-voice-chapter-8/vpe-packaging.png is excluded by !**/*.png
  • source/images/blog/2024-12-vpe/3d-prints.jpg is excluded by !**/*.jpg
  • source/images/blog/2024-12-vpe/art.jpg is excluded by !**/*.jpg
  • source/images/blog/2024-12-vpe/buy-now.png is excluded by !**/*.png
  • source/images/blog/2024-12-vpe/grove.jpg is excluded by !**/*.jpg
  • source/images/blog/2024-12-vpe/local-cloud.png is excluded by !**/*.png
  • source/images/blog/2024-12-vpe/voice-preview-edition.png is excluded by !**/*.png
  • source/images/blog/2024-12-vpe/vpe-finish.png is excluded by !**/*.png
  • source/images/blog/2024-12-vpe/vpe-packaging.png is excluded by !**/*.png
  • source/images/blog/2024-12-vpe/vpe-price.png is excluded by !**/*.png
  • source/images/frontpage/feature-voice-c8.jpg is excluded by !**/*.jpg
  • source/images/frontpage/voice-pe-frontpage.jpg is excluded by !**/*.jpg
  • source/images/voice-pe/controls/fan-active.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/fan.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/light-active.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/light.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/list-active.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/list.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/thermostat-active.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/thermostat.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/timer-active.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/timer.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/tv-active.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/tv.svg is excluded by !**/*.svg
  • source/images/voice-pe/controls/vpe.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/cloud-icon.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/datacenter-graphic.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/green-graphic.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/house-icon.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/house.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/left-lines.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/nas-graphic.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/right-lines.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/servers-graphic.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/tail-lines.svg is excluded by !**/*.svg
  • source/images/voice-pe/local-cloud/vpe-graphic.svg is excluded by !**/*.svg
  • source/images/voice-pe/logos/anthropic.svg is excluded by !**/*.svg
  • source/images/voice-pe/logos/google.svg is excluded by !**/*.svg
  • source/images/voice-pe/logos/llama.svg is excluded by !**/*.svg
  • source/images/voice-pe/logos/openai.svg is excluded by !**/*.svg
  • source/images/voice-pe/og.jpg is excluded by !**/*.jpg
  • source/images/voice-pe/specs/case.svg is excluded by !**/*.svg
  • source/images/voice-pe/specs/controls.svg is excluded by !**/*.svg
  • source/images/voice-pe/specs/feet.svg is excluded by !**/*.svg
  • source/images/voice-pe/specs/pcb.svg is excluded by !**/*.svg
  • source/images/voice-pe/specs/speaker.svg is excluded by !**/*.svg
  • source/images/voice-pe/specs/top.svg is excluded by !**/*.svg
  • source/images/voice-pe/vision.mp4 is excluded by !**/*.mp4
  • source/images/voice-pe/voice-logo-dark.svg is excluded by !**/*.svg
  • source/images/voice-pe/voice-logo.svg is excluded by !**/*.svg
  • source/images/voice-pe/vpe-sound.mp3 is excluded by !**/*.mp3
  • source/images/voice-pe/vpe.svg is excluded by !**/*.svg
📒 Files selected for processing (31)
  • _config.yml (1 hunks)
  • sass/homeassistant/pages/_landingpage.scss (1 hunks)
  • source/_data/people.yml (1 hunks)
  • source/_includes/asides/docs_sitemap.html (1 hunks)
  • source/_includes/asides/voice_navigation.html (1 hunks)
  • source/_includes/custom/news.html (0 hunks)
  • source/_integrations/apcupsd.markdown (2 hunks)
  • source/_integrations/google_tasks.markdown (1 hunks)
  • source/_integrations/homematicip_cloud.markdown (4 hunks)
  • source/_integrations/mealie.markdown (1 hunks)
  • source/_integrations/myuplink.markdown (1 hunks)
  • source/_integrations/russound_rio.markdown (1 hunks)
  • source/_integrations/sabnzbd.markdown (2 hunks)
  • source/_integrations/sensor.rest.markdown (1 hunks)
  • source/_integrations/smartthings.markdown (1 hunks)
  • source/_posts/2024-12-01-the-month-of-what-the-heck.markdown (1 hunks)
  • source/_posts/2024-12-04-release-202412.markdown (2 hunks)
  • source/_posts/2024-12-16-community-survey-2024.markdown (1 hunks)
  • source/_posts/2024-12-19-voice-chapter-8-assist-in-the-home.markdown (1 hunks)
  • source/_posts/2024-12-19-voice-preview-edition-the-era-of-open-voice.markdown (1 hunks)
  • source/changelogs/core-2024.12.markdown (1 hunks)
  • source/images/voice-pe/vision.vtt (1 hunks)
  • source/voice-pe/index.html (1 hunks)
  • source/voice-pe/nice-select2.css (1 hunks)
  • source/voice-pe/nice-select2.js (1 hunks)
  • source/voice-pe/script.js (1 hunks)
  • source/voice_control/assist_create_open_ai_personality.markdown (1 hunks)
  • source/voice_control/builtin_sentences.markdown (1 hunks)
  • source/voice_control/contribute-voice.markdown (1 hunks)
  • source/voice_control/expanding_assist.markdown (1 hunks)
  • source/voice_control/index.markdown (2 hunks)
💤 Files with no reviewable changes (1)
  • source/_includes/custom/news.html
✅ Files skipped from review due to trivial changes (4)
  • source/_integrations/apcupsd.markdown
  • source/_integrations/russound_rio.markdown
  • source/voice_control/assist_create_open_ai_personality.markdown
  • source/voice_control/index.markdown
🧰 Additional context used
🪛 LanguageTool
source/voice_control/contribute-voice.markdown

[style] ~14-~14: As a shorter alternative for ‘able to’, consider using “can”.
Context: ...ta and that it can take time before you are able to see the impact of your contributions. ...

(BE_ABLE_TO)


[grammar] ~35-~35: Using ‘couple’ without ‘of’ is considered to be informal.
Context: ...an active contributor There are also a couple ways to actively contribute to the developme...

(PLENTY_OF_NOUNS)

source/_posts/2024-12-16-community-survey-2024.markdown

[typographical] ~15-~15: Conjunctions like ‘and’ should not follow semicolons. Consider using a comma, or removing the conjunction.
Context: ..., we're launching an annual survey—and we hope you'll participate! A big part of...

(CONJUNCTION_AFTER_SEMICOLON)


[style] ~31-~31: Consider using an alternative to strengthen your wording.
Context: ...hold interacts with your smart home. We want to learn who is using Home Assistant, n...

(WANT_KEEN)


[inconsistency] ~47-~47: Did you mean to refer to the current year? January 20, 2024 is not a Monday, but a Saturday.
Context: ...on Monday, December 16, and closes on Monday, January 20. Once we've analyzed the data, we'll ...

(EN_DATE_WEEKDAY_CURRENTYEAR)

source/_posts/2024-12-19-voice-preview-edition-the-era-of-open-voice.markdown

[uncategorized] ~49-~49: Possible missing comma found.
Context: ...hen you get your hands on Voice Preview Edition the first thing you'll notice is its pr...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~49-~49: Possible missing comma found.
Context: ...nd you can customize it to your heart's content from full gamer RGB to subtle glow. <d...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~55-~55: To elevate your writing, try using a synonym here.
Context: ...of Voice Preview Edition"> It's hard to convey how nice the rotary dial is t...

(HARD_TO)


[misspelling] ~55-~55: Did you mean “in front of” or “the front of”?
Context: ...roval%20Factor,-We%20have%20a) was very front of mind when designing it. We also worked...

(FRONT_OF)


[style] ~73-~73: Consider using a shorter alternative to avoid wordiness.
Context: ...people as possible to join us early and make it better. ### Built for Home Assistant Many ot...

(MADE_IT_JJR)


[uncategorized] ~89-~89: It appears that a hyphen is missing (if ‘auto’ is not used in the context of ‘cars’).
Context: ...ellation, stationary noise removal, and auto gain control, which all adds up to clearer a...

(AUTO_HYPHEN)


[style] ~117-~117: Consider using a different verb for a more formal wording.
Context: ...SPHome is that you are never alone when fixing an issue or adding a feature. We made t...

(FIX_RESOLVE)


[uncategorized] ~117-~117: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...or adding a feature. We made this device so the community could start working more ...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~121-~121: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...# Conclusion Home Assistant values champions choice. Today, we're providing one of t...

(AI_HYDRA_LEO_APOSTROPHE_S_XS)


[style] ~121-~121: As an alternative to the over-used intensifier ‘really’, consider replacing this phrase.
Context: ...and feeling piece of hardware - this is a really big leap for voice hardware. I expect it to...

(EN_WEAK_ADJECTIVE)

source/_integrations/myuplink.markdown

[typographical] ~82-~82: It appears that a comma is missing.
Context: ...t water reserve is getting low. In this example a temperature below 42°C in the middle ...

(DURING_THAT_TIME_COMMA)

source/_integrations/google_tasks.markdown

[grammar] ~32-~32: It appears that a hyphen is missing in the noun “to-do” (= task) or did you mean the verb “to do”?
Context: ...he integration adds a to-do list entity for each task list, allowing you to cr...

(TO_DO_HYPHEN)


[grammar] ~60-~60: It appears that a hyphen is missing in the noun “to-do” (= task) or did you mean the verb “to do”?
Context: ...gration will create a to-do list entity for every task list. For example, a Go...

(TO_DO_HYPHEN)


[grammar] ~80-~80: It appears that a hyphen is missing in the noun “to-do” (= task) or did you mean the verb “to do”?
Context: ...ibed above. See the To-do list: Actions documentation for more details...

(TO_DO_HYPHEN)


[uncategorized] ~88-~88: The preposition “to” seems more likely in this position.
Context: ...e this blueprint to send a notification with devices that have low low battery level...

(AI_EN_LECTOR_REPLACEMENT_PREPOSITION)


[duplication] ~88-~88: Possible typo: you repeated a word
Context: ...d a notification with devices that have low low battery level. The notification include...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~98-~98: Possible typo: you repeated a word
Context: ...ach task list. Data for each to-do list refreshed refreshed by {% term polling %} every 30 minutes....

(ENGLISH_WORD_REPEAT_RULE)


[grammar] ~114-~114: The word “setup” is a noun. The verb is spelled with a space.
Context: ...pported. ## Troubleshooting ### Can’t setup the integration #### Symptom: “The OAu...

(NOUN_VERB_CONFUSION)


[uncategorized] ~133-~133: You might be missing the article “a” here.
Context: ...gle API: Tasks API has not been used in project before or it is disabled" Home Assista...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


[uncategorized] ~133-~133: Use a comma before ‘or’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... API has not been used in project before or it is disabled" Home Assistant fails t...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~136-~136: Use a comma before ‘or’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... API has not been used in project before or it is disabled*. ##### Description Th...

(COMMA_COMPOUND_SENTENCE)

source/_posts/2024-12-04-release-202412.markdown

[uncategorized] ~73-~73: Commas set off the year in a month-day-year date.
Context: ...2024123---december-13) - 2024.12.4 - December 17 - [2024.12.5...

(MISSING_COMMA_BETWEEN_DAY_AND_YEAR)


[uncategorized] ~658-~658: This expression is usually spelled with a hyphen.
Context: ...T] - [#133186]) - Bugfix: also schedule time based integration when source is 0 ([@ronweik...

(BASED_HYPHEN)

source/_posts/2024-12-19-voice-chapter-8-assist-in-the-home.markdown

[duplication] ~17-~17: Possible typo: you repeated a word
Context: ...duction run of Voice Preview Edition (a preview preview 😉), and we tried to get them in the ha...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~49-~49: The phrase ‘pretty much’ can be informal. To strengthen your writing, consider removing it or replacing it with an adverb.
Context: ...ll them intents, allow you to control pretty much every aspect of your smart home, includ...

(PRETTY_MUCH)


[style] ~49-~49: Consider using a different verb to strengthen your wording.
Context: ...se, and more. We also have intents that give you helpful information like what's the...

(GIVE_INFORMATION)


[style] ~96-~96: Consider a different adverb to strengthen your wording.
Context: ...t](/voice-pe/#language-support). We're always looking for new solutions for low-power...

(ALWAYS_CONSTANTLY)


[style] ~96-~96: Consider using an alternative to strengthen your wording.
Context: ...her the needed translations, but if you want to learn more visit [Rhasspy Speech](ht...

(WANT_KEEN)


[style] ~110-~110: ‘new innovations’ might be wordy. Consider a shorter alternative.
Context: ...ave the choice. ## Conclusion So many new innovations and improvements for Assist have happen...

(EN_WORDINESS_PREMIUM_NEW_INNOVATIONS)


[typographical] ~112-~112: If the phrase ‘what about’ starts a question, add a question mark (“?”) at the end of the sentence. If ‘what about’ is not a question, then in some cases ‘about’ is not necessary and in some cases, use ‘about what’.
Context: ...ce, what about improving (this or that)". The good news is that improving Assist ...

(WHAT_ABOUT_QUESTION_MARK)

🪛 Markdownlint (0.37.0)
source/voice_control/contribute-voice.markdown

36-36: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


38-38: null
Files should end with a single newline character

(MD047, single-trailing-newline)

source/voice_control/builtin_sentences.markdown

113-113: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)

source/_integrations/sabnzbd.markdown

75-75: null
Files should end with a single newline character

(MD047, single-trailing-newline)

source/_integrations/homematicip_cloud.markdown

154-154: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)


156-156: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)

source/_integrations/google_tasks.markdown

75-75: Expected: 1; Actual: 2
Multiple consecutive blank lines

(MD012, no-multiple-blanks)


94-94: Expected: 1; Actual: 2
Multiple consecutive blank lines

(MD012, no-multiple-blanks)


147-147: Expected: 1; Actual: 2
Multiple consecutive blank lines

(MD012, no-multiple-blanks)


131-131: null
Link fragments should be valid

(MD051, link-fragments)

source/_posts/2024-12-04-release-202412.markdown

622-622: Duplicate link or image reference definition: "#132195"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


624-624: Duplicate link or image reference definition: "#132509"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


625-625: Duplicate link or image reference definition: "#132846"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


626-626: Unused link or image reference definition: "#133123"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


643-643: Duplicate link or image reference definition: "@bdraco"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


646-646: Duplicate link or image reference definition: "@frenck"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


647-647: Duplicate link or image reference definition: "@gjohansson-ST"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


649-649: Duplicate link or image reference definition: "@joostlek"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


672-672: Duplicate link or image reference definition: "#132195"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


673-673: Duplicate link or image reference definition: "#132509"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


674-674: Duplicate link or image reference definition: "#132846"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


675-675: Duplicate link or image reference definition: "#133123"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


678-678: Unused link or image reference definition: "#133422"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


695-695: Duplicate link or image reference definition: "@bdraco"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


697-697: Duplicate link or image reference definition: "@frenck"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


699-699: Duplicate link or image reference definition: "@joostlek"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)

source/changelogs/core-2024.12.markdown

1031-1031: Duplicate link or image reference definition: "#132195"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1033-1033: Duplicate link or image reference definition: "#132509"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1034-1034: Duplicate link or image reference definition: "#132846"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1035-1035: Unused link or image reference definition: "#133123"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1052-1052: Duplicate link or image reference definition: "@bdraco"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1055-1055: Duplicate link or image reference definition: "@frenck"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1056-1056: Duplicate link or image reference definition: "@gjohansson-ST"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1058-1058: Duplicate link or image reference definition: "@joostlek"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1081-1081: Duplicate link or image reference definition: "#132195"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1082-1082: Duplicate link or image reference definition: "#132509"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1083-1083: Duplicate link or image reference definition: "#132846"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1084-1084: Duplicate link or image reference definition: "#133123"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1087-1087: Unused link or image reference definition: "#133422"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1104-1104: Duplicate link or image reference definition: "@bdraco"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1106-1106: Duplicate link or image reference definition: "@frenck"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1108-1108: Duplicate link or image reference definition: "@joostlek"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)

source/voice_control/expanding_assist.markdown

22-22: null
Spaces inside link text

(MD039, no-space-in-links)

🪛 yamllint (1.35.1)
source/_data/people.yml

[error] 95-95: no new line character at the end of file

(new-line-at-end-of-file)

🪛 Biome (1.9.4)
source/voice-pe/nice-select2.js

[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)

🔇 Additional comments (26)
source/changelogs/core-2024.12.markdown (1)

Line range hint 1-1111: LGTM! The changelog is well-structured and follows standard practices.

The changelog effectively documents all changes in the Home Assistant Core 2024.12 release series, with proper:

  • Version numbering following semantic versioning
  • Clear PR references and contributor attributions
  • Chronological organization of changes
🧰 Tools
🪛 Markdownlint (0.37.0)

1031-1031: Duplicate link or image reference definition: "#132195"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1033-1033: Duplicate link or image reference definition: "#132509"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1034-1034: Duplicate link or image reference definition: "#132846"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1035-1035: Unused link or image reference definition: "#133123"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1052-1052: Duplicate link or image reference definition: "@bdraco"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1055-1055: Duplicate link or image reference definition: "@frenck"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1056-1056: Duplicate link or image reference definition: "@gjohansson-ST"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1058-1058: Duplicate link or image reference definition: "@joostlek"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1081-1081: Duplicate link or image reference definition: "#132195"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1082-1082: Duplicate link or image reference definition: "#132509"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1083-1083: Duplicate link or image reference definition: "#132846"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1084-1084: Duplicate link or image reference definition: "#133123"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1087-1087: Unused link or image reference definition: "#133422"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1104-1104: Duplicate link or image reference definition: "@bdraco"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1106-1106: Duplicate link or image reference definition: "@frenck"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


1108-1108: Duplicate link or image reference definition: "@joostlek"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)

source/voice-pe/nice-select2.js (2)

1-1: Ignore repeated linter complaints regarding "assignments in expressions."
The UMD wrapper here is a standard library pattern and is likely a false positive from static analysis. No changes required unless the project style guidelines object to UMD patterns.

🧰 Tools
🪛 Biome (1.9.4)

[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


Line range hint 1-2000: Library usage looks solid.
This file appears to be an external library for styling select elements. No security or correctness concerns are evident for a typical usage scenario, but monitor for future updates to avoid code drift.

🧰 Tools
🪛 Biome (1.9.4)

[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)


[error] 1-1: The assignment should not be in an expression.

The use of assignments in expressions is confusing.
Expressions are often considered as side-effect free.

(lint/suspicious/noAssignInExpressions)

source/voice-pe/script.js (1)

Line range hint 1-2000: Overall, the script is well-structured and consistent.
The use of intersection observers, lazy loading, and event delegation is nicely done.

source/images/voice-pe/vision.vtt (1)

1-73: Subtitles file looks good and timestamps appear valid.
No issues found.

source/voice_control/contribute-voice.markdown (1)

1-10: LGTM! Front matter is well-structured.

The front matter includes appropriate metadata and related links that help with navigation and discoverability.

source/_integrations/sabnzbd.markdown (2)

33-38: LGTM! Clear and well-structured configuration section.

The configuration parameters are well-documented with clear examples and descriptions.


71-75: LGTM! Clear removal instructions.

The removal section provides clear instructions and follows documentation standards.

🧰 Tools
🪛 Markdownlint (0.37.0)

75-75: null
Files should end with a single newline character

(MD047, single-trailing-newline)

source/_includes/asides/voice_navigation.html (1)

39-39: LGTM! Navigation link properly integrated.

The new navigation link for voice contribution is well-placed and follows the existing structure.

_config.yml (1)

111-112: Verify version bump from 3 to 5

The patch version has been incremented by 2 versions (3 to 5) and the release date has been updated. Please ensure this aligns with the changelog and release schedule.

✅ Verification successful

Version bump from 3 to 5 is verified by patch releases

Based on the release notes, the version bump from 3 to 5 is correct as it corresponds to the documented patch releases 2024.12.4 and 2024.12.5 released on December 17 and December 20 respectively. The release date (December 20) aligns with the latest patch release.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if there are corresponding changelog entries for versions 4 and 5
rg -A 5 "## \[2024\.12\.[45]\]" "CHANGELOG.md"

Length of output: 99


Script:

#!/bin/bash
# Let's first check if there's a changelog file with a different name pattern
fd -g "*change*" -i

# Also check for version history in other common locations
fd -g "*release*" -i
fd -g "*version*" -i

# Let's also check the git history for version-related commits
git log --oneline -n 10

Length of output: 10061


Script:

#!/bin/bash
# Let's check the latest release post for version information
cat "source/_posts/2024-12-04-release-202412.markdown"

# Also check the git history specifically around the version change
git log -p _config.yml | grep -A 5 "current_patch_version"

Length of output: 44510

source/_integrations/mealie.markdown (1)

22-22: LGTM! Clear and well-formatted description.

The description effectively introduces Mealie and properly uses the term template.

source/_integrations/google_tasks.markdown (2)

26-28: LGTM! Well-structured variable definitions.

The addition of clear variable definitions improves maintainability.


130-131: ⚠️ Potential issue

Fix invalid link fragment.

The link to Configuration section appears to be invalid. Please verify the section anchor exists.

✅ Verification successful

The link fragment is valid and correctly references an existing section.

The file content shows that there is a "Configuration" section that is included via the template {% include integrations/config_flow.md %}. This is a valid way to include section content in markdown, and the #configuration anchor will be correctly generated in the final HTML. The link in the troubleshooting steps is properly referencing this section.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the Configuration section exists with the correct heading level
rg "^#+\s+Configuration\s*$" "source/_integrations/google_tasks.markdown"

Length of output: 73


Script:

#!/bin/bash
# Let's check the content of the file to understand its structure and headings
cat source/_integrations/google_tasks.markdown

Length of output: 6335

🧰 Tools
🪛 Markdownlint (0.37.0)

131-131: null
Link fragments should be valid

(MD051, link-fragments)

source/voice_control/builtin_sentences.markdown (1)

112-113: LGTM! Clear and helpful addition.

The new example and clarification help users understand how to properly phrase complex timer durations.

🧰 Tools
🪛 Markdownlint (0.37.0)

113-113: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)

source/_posts/2024-12-01-the-month-of-what-the-heck.markdown (1)

Line range hint 1-277: LGTM! Well-structured blog post.

The content is well-organized, with clear sections, proper link formatting, and good use of markdown elements.

🧰 Tools
🪛 LanguageTool

[formatting] ~55-~55: These punctuation marks differ from each other. Use only one if you are ending a sentence.
Context: ...### Lowering the barrier for sharing WTH?! moments We realize reporting bugs on o...

(DOUBLE_PUNCTUATION_PREMIUM)

source/_includes/asides/docs_sitemap.html (1)

147-147: LGTM! Properly structured navigation item.

The new link follows the existing structure and uses correct liquid template syntax.

source/_integrations/homematicip_cloud.markdown (1)

10-10: LGTM: Event platform addition is well documented.

The addition of the Event platform to both ha_category and ha_platforms is consistent and properly documented.

Also applies to: 26-26, 46-46

source/_integrations/sensor.rest.markdown (1)

182-183: LGTM: Improved example with more reliable service.

The changes improve the example by:

  1. Using a more reliable service (ipify.org)
  2. Adding quotes around string values for consistency
source/_posts/2024-12-19-voice-preview-edition-the-era-of-open-voice.markdown (1)

1-125: LGTM: Well-structured and comprehensive announcement post.

The blog post effectively communicates the product launch with clear sections and engaging content.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~49-~49: Possible missing comma found.
Context: ...hen you get your hands on Voice Preview Edition the first thing you'll notice is its pr...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~49-~49: Possible missing comma found.
Context: ...nd you can customize it to your heart's content from full gamer RGB to subtle glow. <d...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~55-~55: To elevate your writing, try using a synonym here.
Context: ...of Voice Preview Edition"> It's hard to convey how nice the rotary dial is t...

(HARD_TO)


[misspelling] ~55-~55: Did you mean “in front of” or “the front of”?
Context: ...roval%20Factor,-We%20have%20a) was very front of mind when designing it. We also worked...

(FRONT_OF)


[style] ~73-~73: Consider using a shorter alternative to avoid wordiness.
Context: ...people as possible to join us early and make it better. ### Built for Home Assistant Many ot...

(MADE_IT_JJR)


[uncategorized] ~89-~89: It appears that a hyphen is missing (if ‘auto’ is not used in the context of ‘cars’).
Context: ...ellation, stationary noise removal, and auto gain control, which all adds up to clearer a...

(AUTO_HYPHEN)


[style] ~117-~117: Consider using a different verb for a more formal wording.
Context: ...SPHome is that you are never alone when fixing an issue or adding a feature. We made t...

(FIX_RESOLVE)


[uncategorized] ~117-~117: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...or adding a feature. We made this device so the community could start working more ...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~121-~121: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...# Conclusion Home Assistant values champions choice. Today, we're providing one of t...

(AI_HYDRA_LEO_APOSTROPHE_S_XS)


[style] ~121-~121: As an alternative to the over-used intensifier ‘really’, consider replacing this phrase.
Context: ...and feeling piece of hardware - this is a really big leap for voice hardware. I expect it to...

(EN_WEAK_ADJECTIVE)

source/_posts/2024-12-19-voice-chapter-8-assist-in-the-home.markdown (3)

1-20: LGTM! Well-structured blog post introduction.

The metadata is properly formatted and the introduction effectively sets up the context for the Voice Preview Edition launch.

🧰 Tools
🪛 LanguageTool

[duplication] ~17-~17: Possible typo: you repeated a word
Context: ...duction run of Voice Preview Edition (a preview preview 😉), and we tried to get them in the ha...

(ENGLISH_WORD_REPEAT_RULE)


21-38: LGTM! Well-organized content structure.

The table of contents and content organization follow documentation best practices.


116-129: LGTM! Effective conclusion and call-to-action.

The conclusion wraps up the content well, and the call-to-action is properly formatted with appropriate images and links.

sass/homeassistant/pages/_landingpage.scss (1)

847-847: LGTM! Improved user interaction feedback.

Adding cursor: pointer to the region summary enhances the user experience by providing visual feedback for interactive elements.

source/_integrations/smartthings.markdown (1)

305-305: LGTM! Updated SmartThings app navigation instructions.

The documentation now correctly reflects the current SmartThings app UI by using "Routines" instead of "Automations".

source/_posts/2024-12-04-release-202412.markdown (1)

73-74: LGTM! The patch release entries are well documented.

The new patch releases 2024.12.4 and 2024.12.5 are properly documented with clear lists of changes and contributor attributions, following the established format.

Also applies to: 602-702

🧰 Tools
🪛 LanguageTool

[uncategorized] ~73-~73: Commas set off the year in a month-day-year date.
Context: ...2024123---december-13) - 2024.12.4 - December 17 - [2024.12.5...

(MISSING_COMMA_BETWEEN_DAY_AND_YEAR)

source/voice-pe/index.html (1)

1-9: LGTM! The frontmatter is well structured.

The metadata includes all necessary fields for SEO and site organization.

Comment on lines +492 to +607
"nl-BE": [0, 3],
"nl-NL": [0, 3],
"id-ID": [0, 1],
"zh-HK": [0, 2],
"zh-CN": [0, 1],
"ms-MY": [0, 1],
"sv-SE": [0, 2],
"uk-UA": [0, 2],
"th-TH": [0, 1],
"vi-VN": [0, 1],
"fi-FI": [0, 3],
"no-NO": [0, 0],
"gl-ES": [0, 2],
"ar-JO": [0, 2],
"ur-IN": [0, 0],
"el-GR": [0, 1],
"ro-RO": [0, 3],
"da-DK": [0, 2],
"ta-IN": [0, 0],
"hr-HR": [0, 3],
"mk-MK": [0, 0],
"sk-SK": [0, 1],
"he-IL": [0, 2],
"sr-RS": [0, 1],
"hu-HU": [0, 3],
"bg-BG": [0, 2],
"cs-CZ": [0, 1],
"bs-BA": [0, 0],
"sl-SI": [0, 2],
"az-AZ": [0, 0],
"et-EE": [0, 1],
"lv-LV": [0, 1],
"af-ZA": [0, 0],
"cy-GB": [0, 0],
"fa-IR": [0, 1],
"lt-LT": [0, 1],
"jv-ID": [0, 0],
"sw-KE": [0, 0],
"sw-TZ": [0, 0],
"is-IS": [0, 1],
"mt-MT": [0, 0],
"ps-AF": [0, 0],
"mr-IN": [0, 0],
"bn-IN": [0, 0],
"lb-LU": [0, 0],
"hi-IN": [0, 0],
"gu-IN": [0, 0],
"km-KH": [0, 0],
"ne-NP": [0, 0],
"lo-LA": [0, 0],
"te-IN": [0, 1],
"kn-IN": [0, 0],
"ml-IN": [0, 1],
"kk-KZ": [0, 0],
"so-SO": [0, 0],
"uz-UZ": [0, 0],
"ka-GE": [0, 1],
"my-MM": [0, 0],
"mn-MN": [0, 0],
"hy-AM": [0, 0],
"am-ET": [0, 0],
"nb-NO": [0, 3],
"eu-ES": [0, 1],
"fil-PH": [0, 0],
"ga-IE": [0, 0],
"si-LK": [0, 0],
"sq-AL": [0, 0],
"su-ID": [0, 0],
"wuu-CN": [0, 0],
"yue-CN": [0, 0],
"zu-ZA": [0, 0]
};

let elems = document.querySelectorAll('.supported-cards .supported-card');
if (!elems) return;

let supports = data[locale];
let foundLocale = locale;
if (!supports) {
Object.keys(data).forEach(key => {
if (key.split('-')[0] === locale.split('-')[0]) {
supports = data[key];
foundLocale = key;
}
});
}
if (!supports) return;

document.querySelector('#language-select').value = foundLocale;
languageSelect.update();

elems.forEach(elem => elem.setAttribute('data-state', '-1'));

elems.forEach((elem, index) => {
// set data-state to the value of the value
elem.setAttribute('data-state', supports[index]);
});

}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Consider externalizing the extensive locale dictionary.
Storing large static data (e.g., line 493–579) in a JSON file or a separate configuration object can simplify maintenance and reduce script size.

@@ -0,0 +1 @@
.nice-select{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fff;border-radius:5px;border:solid 1px #e8e8e8;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:14px;font-weight:normal;height:38px;line-height:36px;outline:none;padding-left:18px;padding-right:30px;position:relative;text-align:left !important;transition:all .2s ease-in-out;user-select:none;white-space:nowrap;width:auto}.nice-select:hover{border-color:#dbdbdb}.nice-select:active,.nice-select.open,.nice-select:focus{border-color:#999}.nice-select:after{border-bottom:2px solid #999;border-right:2px solid #999;content:"";display:block;height:5px;margin-top:-4px;pointer-events:none;position:absolute;right:12px;top:50%;transform-origin:66% 66%;transform:rotate(45deg);transition:all .15s ease-in-out;width:5px}.nice-select.open:after{transform:rotate(-135deg)}.nice-select.open .nice-select-dropdown{opacity:1;pointer-events:auto;transform:scale(1) translateY(0)}.nice-select.disabled{border-color:#ededed;color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .nice-select-dropdown{left:0 !important;right:0 !important}.nice-select.right{float:right}.nice-select.right .nice-select-dropdown{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .nice-select-dropdown{margin-top:4px;background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(68,68,68,.11);pointer-events:none;position:absolute;top:100%;left:0;transform-origin:50% 0;transform:scale(0.75) translateY(19px);transition:all .2s cubic-bezier(0.5, 0, 0, 1.25),opacity .15s ease-out;z-index:9;opacity:0}.nice-select .list{border-radius:5px;box-sizing:border-box;overflow:hidden;padding:0;max-height:210px;overflow-y:auto}.nice-select .list:hover .option:not(:hover){background-color:rgba(0,0,0,0) !important}.nice-select .option{cursor:pointer;font-weight:400;line-height:40px;list-style:none;outline:none;padding-left:18px;padding-right:29px;text-align:left;transition:all .2s}.nice-select .option:hover,.nice-select .option.focus,.nice-select .option.selected.focus{background-color:#f6f6f6}.nice-select .option.selected{font-weight:bold}.nice-select .option.disabled{background-color:rgba(0,0,0,0);color:#999;cursor:default}.nice-select .optgroup{font-weight:bold}.no-csspointerevents .nice-select .nice-select-dropdown{display:none}.no-csspointerevents .nice-select.open .nice-select-dropdown{display:block}.nice-select .list::-webkit-scrollbar{width:0}.nice-select .has-multiple{white-space:inherit;height:auto;padding:7px 12px;min-height:36px;line-height:22px}.nice-select .has-multiple span.current{border:1px solid #ccc;background:#eee;padding:0 10px;border-radius:3px;display:inline-block;line-height:24px;font-size:14px;margin-bottom:3px;margin-right:3px}.nice-select .has-multiple .multiple-options{display:block;line-height:24px;padding:0}.nice-select .nice-select-search-box{box-sizing:border-box;width:100%;padding:5px;pointer-events:none;border-radius:5px 5px 0 0}.nice-select .nice-select-search{box-sizing:border-box;background-color:#fff;border:1px solid #e8e8e8;border-radius:3px;color:#444;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:100%;min-height:36px;line-height:22px;height:auto;outline:0 !important;font-size:14px}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Consider using unminified CSS with source maps in source control.

The minified CSS makes it difficult to review and maintain. Consider:

  1. Keeping the unminified version in source control
  2. Adding source maps
  3. Using a build step to generate the minified version

This would improve:

  • Code readability
  • Maintainability
  • Debugging capabilities


### Fill out the Survey [here](https://home-assistant.typeform.com/communitysurvey#source=blog)

The survey opens on Monday, December 16, and **closes on Monday, January 20**. Once we've analyzed the data, we'll share the results and insights with the community. By participating, you're helping us build a better Home Assistant - one that grows with its users and stays true to its values. Thanks for your support!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Verify the survey closing date.

The text states "closes on Monday, January 20", but January 20, 2024, falls on a Saturday. Please verify and correct the closing date.

🧰 Tools
🪛 LanguageTool

[inconsistency] ~47-~47: Did you mean to refer to the current year? January 20, 2024 is not a Monday, but a Saturday.
Context: ...on Monday, December 16, and closes on Monday, January 20. Once we've analyzed the data, we'll ...

(EN_DATE_WEEKDAY_CURRENTYEAR)


## Troubleshooting

If you have an error with your credentials, you can delete them in the [Application Credentials](/integrations/application_credentials/) user interface.
### Can’t setup the integration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix grammar in troubleshooting section title.

"setup" should be "set up" when used as a verb.

-### Can't setup the integration
+### Can't set up the integration
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Can’t setup the integration
### Can't set up the integration
🧰 Tools
🪛 LanguageTool

[grammar] ~114-~114: The word “setup” is a noun. The verb is spelled with a space.
Context: ...pported. ## Troubleshooting ### Can’t setup the integration #### Symptom: “The OAu...

(NOUN_VERB_CONFUSION)

Comment on lines +88 to +89
you can use this blueprint to send a notification with devices that have low
low battery level. The notification includes a button that can add an item to your
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix duplicate word and grammar in notification description.

There's a duplicate "low" word and awkward phrasing.

-you can use this blueprint to send a notification with devices that have low
-low battery level.
+you can use this blueprint to send a notification about devices that have a
+low battery level.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
you can use this blueprint to send a notification with devices that have low
low battery level. The notification includes a button that can add an item to your
you can use this blueprint to send a notification about devices that have a
low battery level. The notification includes a button that can add an item to your
🧰 Tools
🪛 LanguageTool

[uncategorized] ~88-~88: The preposition “to” seems more likely in this position.
Context: ...e this blueprint to send a notification with devices that have low low battery level...

(AI_EN_LECTOR_REPLACEMENT_PREPOSITION)


[duplication] ~88-~88: Possible typo: you repeated a word
Context: ...d a notification with devices that have low low battery level. The notification include...

(ENGLISH_WORD_REPEAT_RULE)

Comment on lines +98 to +99
to-do list for each task list. Data for each to-do list refreshed refreshed by
{% term polling %} every 30 minutes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix duplicate word in polling description.

There's a duplicate "refreshed" word.

-to-do list for each task list. Data for each to-do list refreshed refreshed by
+to-do list for each task list. Data for each to-do list is refreshed by
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
to-do list for each task list. Data for each to-do list refreshed refreshed by
{% term polling %} every 30 minutes.
to-do list for each task list. Data for each to-do list is refreshed by
{% term polling %} every 30 minutes.
🧰 Tools
🪛 LanguageTool

[duplication] ~98-~98: Possible typo: you repeated a word
Context: ...ach task list. Data for each to-do list refreshed refreshed by {% term polling %} every 30 minutes....

(ENGLISH_WORD_REPEAT_RULE)

<ul>
<li>2.4 GHz Wi-Fi</li>
<li>Bluetooth 5.0</li>
</uPl>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix the malformed HTML closing tag.

There's a typo in the closing </ul> tag.

-</uPl>
+</ul>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
</uPl>
</ul>

Comment on lines 21 to 23
2. [Create a personality](/voice_control/assist_create_open_ai_personality/) for Assist using AI
3. Customize your [own wake words ](/voice_control/create_wake_word/) for Assist - only available if you have your own hardware setup like [ESP32-S3 BOX](/voice_control/s3_box_voice_assistant/) or [ATOM Echo](/voice_control/thirteen-usd-voice-remote/).
4. If you want to build something really customized, you can [make your own Assist device](/voice_control/make_your_own/). No newline at end of file
4. If you want to build something really customized, you can [make your own Assist device](/voice_control/make_your_own/).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Fix link formatting and spacing issues.

There are two issues to address:

  1. Remove extra space in the wake words link
  2. Ensure consistent link formatting
-2. [Create a personality](/voice_control/assist_create_open_ai_personality/) for Assist using AI
-3. Customize your [own wake words ](/voice_control/create_wake_word/) for Assist - only available if you have your own hardware setup like [ESP32-S3 BOX](/voice_control/s3_box_voice_assistant/) or [ATOM Echo](/voice_control/thirteen-usd-voice-remote/).
-4. If you want to build something really customized, you can [make your own Assist device](/voice_control/make_your_own/).
+2. [Create a personality](/voice_control/assist_create_open_ai_personality/) for Assist using AI
+3. Customize your [own wake words](/voice_control/create_wake_word/) for Assist - only available if you have your own hardware setup like [ESP32-S3 BOX](/voice_control/s3_box_voice_assistant/) or [ATOM Echo](/voice_control/thirteen-usd-voice-remote/).
+4. If you want to build something really customized, you can [make your own Assist device](/voice_control/make_your_own/).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
2. [Create a personality](/voice_control/assist_create_open_ai_personality/) for Assist using AI
3. Customize your [own wake words ](/voice_control/create_wake_word/) for Assist - only available if you have your own hardware setup like [ESP32-S3 BOX](/voice_control/s3_box_voice_assistant/) or [ATOM Echo](/voice_control/thirteen-usd-voice-remote/).
4. If you want to build something really customized, you can [make your own Assist device](/voice_control/make_your_own/).
\ No newline at end of file
4. If you want to build something really customized, you can [make your own Assist device](/voice_control/make_your_own/).
2. [Create a personality](/voice_control/assist_create_open_ai_personality/) for Assist using AI
3. Customize your [own wake words](/voice_control/create_wake_word/) for Assist - only available if you have your own hardware setup like [ESP32-S3 BOX](/voice_control/s3_box_voice_assistant/) or [ATOM Echo](/voice_control/thirteen-usd-voice-remote/).
4. If you want to build something really customized, you can [make your own Assist device](/voice_control/make_your_own/).
🧰 Tools
🪛 Markdownlint (0.37.0)

22-22: null
Spaces inside link text

(MD039, no-space-in-links)

@home-assistant home-assistant bot added the has-parent This PR has a parent PR in a other repo label Dec 21, 2024
@home-assistant home-assistant bot added parent-merged The parent PR has been merged already and removed needs-rebase The PR has been branched of the wrong base branch or targets an incorrect target branch labels Jan 17, 2025
Copy link
Member

@joostlek joostlek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please recraete this PR from next to next

@home-assistant home-assistant bot marked this pull request as draft January 17, 2025 16:55
@home-assistant
Copy link

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@joostlek joostlek closed this Jan 17, 2025
@home-assistant home-assistant bot removed parent-merged The parent PR has been merged already in-progress This PR/Issue is currently being worked on labels Jan 17, 2025
@github-actions github-actions bot locked and limited conversation to collaborators Jan 18, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
has-parent This PR has a parent PR in a other repo next This PR goes into the next branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.