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

Migrate Valetudo Vacuum Camera to MQTT Vacuum Camera #189

Merged
merged 13 commits into from
Jun 19, 2024
Merged

Conversation

sca075
Copy link
Owner

@sca075 sca075 commented Jun 14, 2024

As consequence of the repo / branding issue we are migrating the valetudo_vacuum_camera to mqtt_vacuum_camera. This project is basically the same, changes only the scope of our work. The aim is to give to the end users (as usual) a solid solution to do this, without lousing the data in the configuration of Home Assistant.
From the tests done till now we are almost ready.
[x] MQTT Vacuum Camera Setup Steps.
init.py test setup mqtt_vacuum_camera
migration.py added.
[x] Implement Repairs to request reboot -> start the MQTT Vacuum Camera Setup.
[x] Implement logic to avoid start the Repairs without user confirmation.
[x] Add delete old valetudo_vacuum_camera folder.
[x] Tests on HAOS PI4 and Proxmox.
[x] Test on Production Doker instance.
[x] Release beta for confirmation.

Summary by CodeRabbit

  • New Features

    • Introduced migration functionality to help transition from Valetudo Vacuum Camera to MQTT Vacuum Camera.
  • Bug Fixes

    • Updated installation instructions and links for better clarity and accuracy.
  • Documentation

    • Improved project description and installation instructions in the README.md and install.md files.
  • Chores

    • Enhanced handling of Home Assistant stop events for better system performance.

migration.py added.

Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
@sca075 sca075 self-assigned this Jun 14, 2024
Copy link

coderabbitai bot commented Jun 14, 2024

Walkthrough

The changes focus on enabling the migration from the Valetudo Vacuum Camera integration to the MQTT Vacuum Camera integration in Home Assistant. The migration scripts facilitate the transfer of configurations, registry entries, and files to ensure a seamless transition, minimizing disruption and preserving user settings.

Changes

Files Change Summary
custom_components/valetudo_vacuum_camera/__init__.py Imported async_migrate_entries, updated stop event handling logic to conditionally call the migration based on migrate_me list.
custom_components/valetudo_vacuum_camera/tmp_migrate/migration.py Introduced migration script for domain and platform config entries, entity registry entries, file operations, and updates.
README.md Revised project description, corrected links and references, and updated installation instructions.
docs/install.md Updated installation instructions to refer to mqtt_vacuum_camera.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant HomeAssistant as Home Assistant
    participant Valetudo as Valetudo Vacuum Camera
    participant MQTT as MQTT Vacuum Camera

    User->>HomeAssistant: Install/Update Valetudo Vacuum Camera
	
    HomeAssistant-->>Valetudo: Initiate Setup
    Valetudo->>Valetudo: Check migrate_me List
    activate Valetudo
	
    alt Migrate Required
        Valetudo->>MQTT: Call async_migrate_entries
        MQTT-->>MQTT: Migrate Configuration
        MQTT-->>HomeAssistant: Completed Migration
    	HomeAssistant->>User: Setup Complete with Migration
    else 
        Valetudo-->>HomeAssistant: Regular Setup
        HomeAssistant->>User: Setup Complete
    end
    deactivate Valetudo
Loading

Possibly related issues

  • sca075/mqtt_vacuum_camera#190: This issue discusses the migration from Valetudo to MQTT Vacuum Camera, which aligns with the introduced migration functionality.

Poem

In the realms of Home Assistant's glisten,
Vacuum cameras transition, voices listen.
From Valetudo's loyal flight,
To MQTT’s new light.
With code and care, we steer,
Smooth transitions year by year.
🐰✨🚀 Let's upgrade without fear!


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>.
    • 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 generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @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 as 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 resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration 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

@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: 5

Outside diff range and nitpick comments (1)
custom_components/valetudo_vacuum_camera/__init__.py (1)

305-318: This commented-out block of code appears to be for debugging or development purposes. It's a good practice to remove such code in production or clarify its purpose with comments if it needs to be retained.

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between d525a6e and f45fc38.

Files selected for processing (2)
  • custom_components/valetudo_vacuum_camera/init.py (2 hunks)
  • custom_components/valetudo_vacuum_camera/tmp_migrate/migration.py (1 hunks)
Additional context used
Ruff
custom_components/valetudo_vacuum_camera/tmp_migrate/migration.py

217-217: Redefinition of unused async_migrate_config_entries from line 133 (F811)

custom_components/valetudo_vacuum_camera/__init__.py

38-38: .utils.users_data.async_get_translations_vacuum_id imported but unused; consider removing, adding to __all__, or using a redundant alias (F401)


39-39: .utils.users_data.async_rename_room_description imported but unused; consider removing, adding to __all__, or using a redundant alias (F401)

migration.py added.

Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
@sca075 sca075 linked an issue Jun 14, 2024 that may be closed by this pull request
2 tasks
camera.py raise issue for restart
repairs.py repair = restart HA

Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
const.py temporary list migrate_me.
__init__.py migrate_me len == 1 migrate.
repairs.py added flag to start migration.
strings.json added issues

Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
const.py temporary list migrate_me.
__init__.py migrate_me len == 1 migrate.
repairs.py added flag to start migration.
strings.json added issues

Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
@sca075 sca075 marked this pull request as ready for review June 15, 2024 13:09
Copy link

@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

Outside diff range and nitpick comments (1)
custom_components/valetudo_vacuum_camera/translations/en.json (1)

Line range hint 145-188: Translation keys for room colors and alpha values should be consistent.

The translation keys for room colors and alpha values are inconsistent. Some keys describe the room with a detailed description, while others just mention the room number. It would be better to maintain a consistent level of detail across all keys to avoid confusion and improve maintainability.

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between f45fc38 and 3b847ec.

Files ignored due to path filters (1)
  • custom_components/valetudo_vacuum_camera/tmp_migrate/mqtt_vacuum_camera.zip is excluded by !**/*.zip
Files selected for processing (7)
  • custom_components/valetudo_vacuum_camera/init.py (2 hunks)
  • custom_components/valetudo_vacuum_camera/camera.py (10 hunks)
  • custom_components/valetudo_vacuum_camera/const.py (1 hunks)
  • custom_components/valetudo_vacuum_camera/repairs.py (1 hunks)
  • custom_components/valetudo_vacuum_camera/strings.json (1 hunks)
  • custom_components/valetudo_vacuum_camera/tmp_migrate/migration.py (1 hunks)
  • custom_components/valetudo_vacuum_camera/translations/en.json (3 hunks)
Files not reviewed due to errors (1)
  • custom_components/valetudo_vacuum_camera/camera.py (no review received)
Files skipped from review as they are similar to previous changes (1)
  • custom_components/valetudo_vacuum_camera/init.py
Additional context used
Ruff
custom_components/valetudo_vacuum_camera/camera.py

243-243: Use X | Y for type annotations (UP007)

Convert to X | Y


243-243: Use X | Y for type annotations (UP007)

Convert to X | Y


244-244: Use X | Y for type annotations (UP007)

Convert to X | Y


453-454: Use a single if statement instead of nested if statements (SIM102)

Combine if statements using and


498-498: Use X | Y for type annotations (UP007)

Convert to X | Y


553-556: Use ternary operator result = images[0] if isinstance(images, list) and len(images) > 0 else None instead of if-else-block (SIM108)

Replace if-else-block with result = images[0] if isinstance(images, list) and len(images) > 0 else None

Additional comments not posted (4)
custom_components/valetudo_vacuum_camera/repairs.py (1)

44-54: Ensure that the issue_id used in async_create_fix_flow is validated.

This script checks for the usage of issue_id across Python files to ensure it's being validated or sanitized before use, which is crucial for preventing issues related to unvalidated inputs.

custom_components/valetudo_vacuum_camera/const.py (1)

5-5: Initialization of migrate_me as an empty list.

This change is straightforward and seems to be part of the migration process setup. Just ensure that this list is used properly throughout the code to avoid any issues with unused or incorrectly managed state.

custom_components/valetudo_vacuum_camera/strings.json (2)

45-50: Review the necessity of all image options to ensure they are required for the functionality.


94-102: Ensure that the alpha transparency settings align with the user interface requirements.

Also applies to: 119-127

Comment on lines +6 to +10
"vacuum_entity": "Vacuum Entity ID",
"vacuum_config_entry": "Vacuum Config Data",
"vacuum_map": "Vacuum Topic",
"vacuum_identifiers": "Vacuum MQTT id",
"unique_id": ""
Copy link

Choose a reason for hiding this comment

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

Ensure that the unique_id field is never left as an empty string.

To ensure that each configuration entry is uniquely identifiable, please provide a default value or mechanism to generate a unique identifier if one is not provided.

"vacuum_entity": "Vacuum Entity ID"
},
"description": "Camera Setup.",
"title": "Valetudo Camera Setup"
Copy link

Choose a reason for hiding this comment

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

Consider updating the title to reflect the new branding.

- "title": "Valetudo Camera Setup"
+ "title": "MQTT Vacuum Camera Setup"

This change will help maintain consistency with the project's rebranding.

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
"title": "Valetudo Camera Setup"
"title": "MQTT Vacuum Camera Setup"

const.py temporary list migrate_me.
__init__.py migrate_me len == 1 migrate.
repairs.py added flag to start migration.
strings.json added issues

Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
Copy link

@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: 5

Outside diff range and nitpick comments (2)
custom_components/valetudo_vacuum_camera/camera.py (2)

Line range hint 452-453: Combine if statements using and to simplify logic.

- if self._shared.vacuum_state == "disconnected":
-     self._shared.vacuum_state = await self._mqtt.get_vacuum_status()
- else:
-     self._shared.vacuum_state = await self._mqtt.get_vacuum_status()
+ self._shared.vacuum_state = await self._mqtt.get_vacuum_status() if self._shared.vacuum_state == "disconnected" else self._shared.vacuum_state

Line range hint 552-555: Use a ternary operator to simplify the assignment of result.

- if isinstance(images, list) and len(images) > 0:
-     result = images[0]
- else:
-     result = None
+ result = images[0] if isinstance(images, list) and len(images) > 0 else None
Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 3b847ec and 8944127.

Files selected for processing (2)
  • custom_components/valetudo_vacuum_camera/camera.py (3 hunks)
  • custom_components/valetudo_vacuum_camera/tmp_migrate/migration.py (1 hunks)
Additional context used
Ruff
custom_components/valetudo_vacuum_camera/tmp_migrate/migration.py

107-107: f-string without any placeholders (F541)

Remove extraneous f prefix

custom_components/valetudo_vacuum_camera/camera.py

242-242: Use X | Y for type annotations (UP007)

Convert to X | Y


242-242: Use X | Y for type annotations (UP007)

Convert to X | Y


243-243: Use X | Y for type annotations (UP007)

Convert to X | Y


452-453: Use a single if statement instead of nested if statements (SIM102)

Combine if statements using and


497-497: Use X | Y for type annotations (UP007)

Convert to X | Y


552-555: Use ternary operator result = images[0] if isinstance(images, list) and len(images) > 0 else None instead of if-else-block (SIM108)

Replace if-else-block with result = images[0] if isinstance(images, list) and len(images) > 0 else None

Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
Copy link

@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: 1

Outside diff range and nitpick comments (5)
docs/install.md (5)

Line range hint 17-17: Correct grammatical error: change "will setup" to "will set up".

- [HACS](https://hacs.xyz/) will setup the integration for you.
+ [HACS](https://hacs.xyz/) will set up the integration for you.
Tools
Markdownlint

8-8: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified


Line range hint 17-17: Correct grammatical error: change "be notify" to "be notified".

- You can selct here if you want to be notify for beta releases
+ You can select here if you want to be notified for beta releases
Tools
Markdownlint

8-8: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified


Line range hint 26-26: Correct grammatical error: change "will is connect" to "will be connected".

- The camera will is connect automatically to the HA MQTT
+ The camera will be connected automatically to the HA MQTT
Tools
Markdownlint

8-8: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified


Line range hint 31-31: Add a comma after "For example".

- For example vacuum.robot1 = camera.robot1_camera.
+ For example, vacuum.robot1 = camera.robot1_camera.
Tools
Markdownlint

8-8: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified


Line range hint 62-62: Improve word order for clarity.

- Your topic can be obtained also from the camera attributes vacuum_topic.
+ Your topic can also be obtained from the camera attributes vacuum_topic.
Tools
Markdownlint

8-8: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 8944127 and 3400b47.

Files selected for processing (4)
  • README.md (3 hunks)
  • custom_components/valetudo_vacuum_camera/init.py (2 hunks)
  • custom_components/valetudo_vacuum_camera/tmp_migrate/migration.py (1 hunks)
  • docs/install.md (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • custom_components/valetudo_vacuum_camera/init.py
Additional context used
LanguageTool
docs/install.md

[grammar] ~17-~17: The word “setup” is a noun. The verb is spelled with a space. (NOUN_VERB_CONFUSION)
Context: ...gration, HACS will setup the integration for you. (Note: You can...


[grammar] ~17-~17: The past participle is required after “to be”. (BE_VBP_IN)
Context: ...e: You can selct here if you want to be notify for beta releases that some time are co...


[grammar] ~26-~26: Consider using either the past participle “connected” or the present participle “connecting” here. (BEEN_PART_AGREEMENT)
Context: ...be done via Options. The camera will is connect automatically to the HA MQTT (whatever ...


[typographical] ~31-~31: After the expression ‘for example’ a comma is usually used. (COMMA_FOR_EXAMPLE)
Context: ... your vacuum + "camera" at the end. For example vacuum.robot1 = camera.robot1_camera. ...


[uncategorized] ~62-~62: A different word order might sound more natural. (AI_HYDRA_LEO_WORD_ORDER)
Context: ... in the card the topic. *Your topic can be obtained also from the camera attributes vacuum_topic...


[grammar] ~74-~74: Make sure that the noun ‘setup’ is correct. Did you mean the past participle “set up”? (BE_VB_OR_NN)
Context: ...nternal_variables will be automatically setup in the card as soon the vacuum and came...


[grammar] ~74-~74: Make sure that the noun ‘setup’ is correct. Did you mean the past participle “set up”? (BE_VB_OR_NN)
Context: ...d as soon the vacuum and camera will be setup in the card. ### Camera Configuration:...


[uncategorized] ~79-~79: “form” (shape/structure, to make) seems less likely than “from” (“originating from”). (AI_HYDRA_LEO_CP_FORM_FROM)
Context: ...t possible to change the Images options form the vacuum UI. This project runs in par...

README.md

[uncategorized] ~41-~41: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... 4GB: The camera is working on PI3 4GB, anyhow no chance there to run two vacuums came...


[grammar] ~42-~42: Did you mean “are”? (SUBJECTVERBAGREEMENT_2)
Context: ...un two vacuums cameras at the same time isn't advised even if possible.

...


[misspelling] ~69-~69: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun. (INFORMATIONS)
Context: ...setup guide also includes important informations on how to setup the [lovelace-xiaomi-va...


[grammar] ~69-~69: The word “setup” is a noun. The verb is spelled with a white space. (NOUN_VERB_CONFUSION)
Context: ...es important informations on how to setup the [lovelace-xiaomi-vacuum-map-card (r...


[uncategorized] ~76-~76: This expression is usually spelled with a hyphen. (BASED_HYPHEN)
Context: ...endly card. 3) **Automatically Generate rooms based configuration when vacuum support this ...


[grammar] ~77-~77: The verb form ‘take’ does not appear to fit in this context. (SINGULAR_NOUN_VERB_AGREEMENT)
Context: ...elace-xiaomi-vacuum-map-card). 4) **The camera take automatically [snapshots](./docs/snapsh...


[style] ~88-~88: In American English, abbreviations like “etc.” require a period. (ETC_PERIOD)
Context: ...obot, charger, walls, background, zones etc**. - Rooms colors, Room 1 is act...


[style] ~90-~90: To make your writing flow more naturally, try moving ‘also’ before the verb. (ALSO_PLACEMENT)
Context: ...d) for all elements and rooms** colours can be also customize. - It is possible to **dis...


[grammar] ~91-~91: “Option” is a singular noun. It appears that the verb form is incorrect. (PCT_SINGULAR_NOUN_PLURAL_VERB_AGREEMENT)
Context: ... image the vacuum status**, this option add a vacuum status text at the top left of...


[grammar] ~91-~91: Do not use the modal verb ‘will’ after the verb ‘be’. (BE_MD)
Context: ...image. Status and room where the vacuum is will be display on the text filed. 6) This i...


[grammar] ~92-~92: The verb form ‘make’ does not appear to fit in this context. (SINGULAR_NOUN_VERB_AGREEMENT)
Context: ...l be display on the text filed. 6) This integration make possible to render multiple vacuums...


[typographical] ~92-~92: Two consecutive dots (DOUBLE_PUNCTUATION)
Context: ...le: vacuum.robot1 = camera.robot1_camera.. vacuum.robotx = camera.robotx_camera) 7...


[grammar] ~95-~95: It’s possible that the countable noun ‘draw’ after the verb ‘are’ is an error. You may have meant to use the plural form, or an article may be missing. (BE_VB_OR_NN)
Context: ...lean, Active Segments and Obstacles are draw on the map when available. 10) [Auto Zo...


[uncategorized] ~96-~96: It appears that a hyphen is missing (if ‘auto’ is not used in the context of ‘cars’). (AUTO_HYPHEN)
Context: ...re draw on the map when available. 10) [Auto Zooming the room (segment)](./docs/auto_zoom.md...


[style] ~106-~106: As an alternative to the over-used intensifier ‘really’, consider replacing this phrase. (EN_WEAK_ADJECTIVE)
Context: ...apoorcom) autor of the v1.4.0 that make really easy to set up this integration. - [@gunjamb...


[style] ~108-~108: Consider using a more formal and expressive alternative to ‘amazing’. (AWESOME)
Context: ...toy](https://github.com/T0ytoy) for the amazing cooperation in testing our Camera that ...

Markdownlint
docs/install.md

30-30: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


35-35: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


1-1: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


35-35: Punctuation: '.' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


50-50: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


76-76: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


55-55: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines


68-68: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines


91-91: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines


90-90: null (MD034, no-bare-urls)
Bare URL used


8-8: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified


40-40: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified


55-55: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified


68-68: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified


14-14: Expected: asterisk; Actual: underscore (MD049, emphasis-style)
Emphasis style


14-14: Expected: asterisk; Actual: underscore (MD049, emphasis-style)
Emphasis style

README.md

9-9: Expected: h2; Actual: h3 (MD001, heading-increment)
Heading levels should only increment by one level at a time


43-43: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


13-13: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


45-45: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


63-63: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


99-99: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


111-111: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


4-4: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


27-27: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


46-46: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


71-71: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


100-100: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


102-102: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


102-102: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines


14-14: Punctuation: '.' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


27-27: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


46-46: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


64-64: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


71-71: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


100-100: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


102-102: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading


78-78: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines


84-84: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines


42-42: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines


96-96: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines


101-101: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines


101-101: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines


103-103: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines


78-78: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified


93-93: Expected: underscore; Actual: asterisk (MD049, emphasis-style)
Emphasis style


93-93: Expected: underscore; Actual: asterisk (MD049, emphasis-style)
Emphasis style

Ruff
custom_components/valetudo_vacuum_camera/tmp_migrate/migration.py

108-108: f-string without any placeholders (F541)

Remove extraneous f prefix

Additional comments not posted (3)
docs/install.md (1)

9-9: Update the repository link to reflect the new MQTT Vacuum Camera.

README.md (2)

17-17: Ensure clarity and correctness in the description of the project.


66-66: Ensure the link is functional and provides the correct redirection.

Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
Copy link

@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: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 3400b47 and 19aae59.

Files selected for processing (1)
  • custom_components/valetudo_vacuum_camera/tmp_migrate/migration.py (1 hunks)
Files not reviewed due to errors (1)
  • custom_components/valetudo_vacuum_camera/tmp_migrate/migration.py (no review received)

Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
Copy link

@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: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 19aae59 and 4d5d9a5.

Files selected for processing (1)
  • custom_components/valetudo_vacuum_camera/init.py (3 hunks)
Files skipped from review as they are similar to previous changes (1)
  • custom_components/valetudo_vacuum_camera/init.py

__init__.py minor changes.

Signed-off-by: 82227818+sca075@users.noreply.github.com <82227818+sca075@users.noreply.github.com>
Copy link

@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: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 4d5d9a5 and 437b5a2.

Files ignored due to path filters (1)
  • custom_components/valetudo_vacuum_camera/tmp_migrate/mqtt_vacuum_camera.zip is excluded by !**/*.zip
Files selected for processing (1)
  • custom_components/valetudo_vacuum_camera/init.py (3 hunks)
Files skipped from review as they are similar to previous changes (1)
  • custom_components/valetudo_vacuum_camera/init.py

@sca075 sca075 merged commit 330c13a into main Jun 19, 2024
5 checks passed
@sca075 sca075 deleted the 2024.06_dev branch July 21, 2024 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

🚨⚠️ Attention: Migrating from Valetudo to MQTT Vacuum Camera ⚠️🚨
1 participant