-
-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Update switchbot docs #38587
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
Update switchbot docs #38587
Conversation
✅ Deploy Preview for home-assistant-docs ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Caution Review failedThe pull request is closed. 📝 Walkthrough""" WalkthroughThe documentation for the SwitchBot integration was thoroughly rewritten and expanded. The update reorganized and detailed the list of supported devices, categorized them, and described their specific functionalities. New sections were added to explain usage scenarios, encryption setup, integration options, data update frequency, local connection details, known limitations, troubleshooting, and example automations. The documentation now provides comprehensive guidance on device support, features, encryption, and practical usage, replacing the previous brief and minimally detailed content. No changes to code or exported entities were made; all modifications are limited to documentation. Changes
Sequence Diagram(s)No sequence diagram generated as the changes are limited to documentation updates. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this 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
🧹 Nitpick comments (7)
source/_integrations/switchbot.markdown (7)
33-33
: Remove redundant "and" before "etc."The phrase "hubs and etc." is redundant. Replace it with "hubs, etc." to adhere to standard usage.
- ... plugs, robot vacuums, hubs and etc. + ... plugs, robot vacuums, hubs, etc.🧰 Tools
🪛 LanguageTool
[style] ~33-~33: Write the name of the item after ‘and’ or use only “etc”.
Context: ...des, lights, plugs, robot vacuums, hubs and etc. ## How you can use this integration ...(AND_ETC)
35-37
: Simplify heading and introduce bullet pointsThe heading "How you can use this integration" could be shortened to "Usage" or "Features" for consistency with other docs. Consider turning the long sentence into a bulleted list for readability.
- ## How you can use this integration + ## Usage - Switch devices on and off - Change device modes - Monitor sensor data and energy usage in dashboards - Control device configurations manually or via automations
41-41
: Streamline the prerequisites sentenceThe sentence is wordy. Consider rephrasing to:
"This integration requires a working Bluetooth connection on the device running Home Assistant."
56-63
: Clarify encrypted devices section title and introFor consistency, capitalize key terms and refine the title. E.g., change to "### Adding Encrypted SwitchBot Devices" and start with a concise summary:
- ### Adding encrypted SwitchBot devices + ### Adding Encrypted SwitchBot Devices - Some types of the SwitchBot devices are encrypted... + Some SwitchBot devices use encryption for improved security.
75-76
: Fix grammar in SSO support noteAdd a comma after the parenthesis and pluralize "accounts" for clarity:
- This integration doesn't support SSO accounts (Login with Google, etc.) only username and password accounts. + This integration doesn't support SSO accounts (Login with Google, etc.), only username‑and‑password accounts are supported.
80-81
: Rephrase awkward phrasingThe clause "and/or want to know exactly where and how are their account credentials used" is awkward. Consider:
- ... and/or want to know exactly where and how are their account credentials used. + ... or want to understand exactly where and how their account credentials are used.
421-421
: Fix number agreement in "all sorts of automations"Change "all sort of automations" to "all sorts of automations":
- You can create all sort of automations... + You can create all sorts of automations...
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
source/_integrations/switchbot.markdown
(7 hunks)
🧰 Additional context used
🪛 LanguageTool
source/_integrations/switchbot.markdown
[style] ~33-~33: Write the name of the item after ‘and’ or use only “etc”.
Context: ...des, lights, plugs, robot vacuums, hubs and etc. ## How you can use this integration ...
(AND_ETC)
[duplication] ~123-~123: Possible typo: you repeated a word.
Context: ...chbot-smart-humidifier) ### Sensors - Meter - [Meter Plus (WoSensorTH)](https://switch-bot.c...
(ENGLISH_WORD_REPEAT_RULE)
[grammar] ~126-~126: This phrase is duplicated. You should probably use “Meter Pro” only once.
Context: ...t-indoor-outdoor-thermo-hygrometer) - Meter Pro - [Meter Pro CO2 Monitor](https://www.switch-bot.com...
(PHRASE_REPETITION)
[uncategorized] ~150-~150: This verb may not be in the correct form. Consider using a different form for this context.
Context: ... SwitchBot app to prevent people nearby take control of your device. When a password...
(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[style] ~150-~150: Consider a shorter alternative to avoid wordiness.
Context: ... you need to enter the correct password in order to add it to the integrations. Features: ...
(IN_ORDER_TO_PREMIUM)
[uncategorized] ~158-~158: A comma might be missing here.
Context: ...vice is in Pull/Retract mode for toggle switches otherwise the device is in momentary sw...
(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[duplication] ~180-~180: Possible typo: you repeated a word.
Context: ... power - get voltage - get current ### Cover Cover entities are added for Curtain, Curtain...
(ENGLISH_WORD_REPEAT_RULE)
[grammar] ~185-~185: This phrase is duplicated. You should probably use “position get” only once.
Context: ...tain Features: - open/close/pause - set position - get position - get light level - get battery level - get c...
(PHRASE_REPETITION)
[grammar] ~194-~194: This phrase is duplicated. You should probably use “position get” only once.
Context: ...in 3 Features: - open/close/pause - set position - get position - get light level - get battery level - get c...
(PHRASE_REPETITION)
[grammar] ~203-~203: This phrase is duplicated. You should probably use “position get” only once.
Context: ...ures: - close up/close down/pause - set position - get position - get light level - get battery level - get c...
(PHRASE_REPETITION)
[grammar] ~267-~267: This phrase is duplicated. You should probably use “position get” only once.
Context: ... | Features: - open/close/pause - set position - get position - get battery level ### Sensors Sensor enti...
(PHRASE_REPETITION)
[grammar] ~324-~324: You’ve repeated a verb. Did you mean to only write one of them?
Context: ...mote Features: - get battery level ### Lights Light entities are added for Color Bulb and L...
(REPEATED_VERBS)
🪛 markdownlint-cli2 (0.17.2)
source/_integrations/switchbot.markdown
91-91: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
92-92: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
95-95: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
96-96: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
97-97: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
98-98: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
98-98: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
99-99: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
105-105: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
106-106: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
111-111: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
112-112: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
115-115: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
116-116: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
119-119: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
120-120: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
122-122: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
123-123: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
125-125: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
133-133: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
134-134: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
137-137: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
138-138: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
140-140: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
141-141: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
143-143: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
144-144: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
146-146: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
149-149: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
153-153: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
158-158: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
160-160: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
162-162: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
165-165: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
169-169: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
171-171: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
175-175: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
180-180: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
182-182: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
182-182: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
184-184: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
191-191: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
193-193: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
200-200: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
202-202: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
257-257: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
266-266: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
275-275: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
277-277: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
279-279: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
280-280: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
280-280: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
282-282: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
284-284: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
285-285: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
285-285: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
287-287: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
289-289: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
290-290: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
290-290: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
292-292: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
294-294: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
295-295: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
295-295: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
297-297: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
300-300: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
301-301: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
307-307: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
308-308: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
313-313: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
314-314: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
314-314: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
318-318: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
319-319: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
320-320: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
320-320: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
322-322: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
324-324: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
327-327: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
329-329: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
334-334: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
336-336: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
349-349: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
353-353: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
354-354: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
364-364: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
365-365: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
416-416: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
🪛 GitHub Actions: home-assistant.io Test
source/_integrations/switchbot.markdown
[error] 367-367: textlint: Incorrect usage of the term: “bluetooth”, use “Bluetooth” instead (terminology)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - home-assistant-docs
- GitHub Check: Header rules - home-assistant-docs
- GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (1)
source/_integrations/switchbot.markdown (1)
123-123
:⚠️ Potential issueCorrect typo in "entities"
There's a typo in "entiteis". It should read:
- Sensor entiteis are added... + Sensor entities are added...Likely an incorrect or invalid review comment.
🧰 Tools
🪛 LanguageTool
[duplication] ~123-~123: Possible typo: you repeated a word.
Context: ...chbot-smart-humidifier) ### Sensors - Meter - [Meter Plus (WoSensorTH)](https://switch-bot.c...(ENGLISH_WORD_REPEAT_RULE)
🪛 markdownlint-cli2 (0.17.2)
123-123: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
There was a problem hiding this 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
🧹 Nitpick comments (12)
source/_integrations/switchbot.markdown (12)
33-33
: Remove redundant “and” before “etc.”
The phrase “hubs and etc.” should be “hubs, etc.” per style guidelines to avoid “and etc.”.🧰 Tools
🪛 LanguageTool
[style] ~33-~33: Write the name of the item after ‘and’ or use only “etc”.
Context: ...des, lights, plugs, robot vacuums, hubs and etc. ## How you can use this integration ...(AND_ETC)
35-37
: Clarify “How you can use this integration” section
Consider simplifying the heading to “Usage” or “Usage examples” and refining the opening sentence (“lets you do many things”) to more concise, actionable language for better readability.
56-63
: Ensure blank lines around “Adding encrypted SwitchBot devices”
Surround the “### Adding encrypted SwitchBot devices” heading and its introductory paragraph with single blank lines to satisfy Markdown style rules (MD022, MD032).
78-87
: Consistent spacing for manual encryption key section
Ensure the “#### Enter the lock encryption key manually” heading and the configuration block ({% configuration_basic %}
…{% endconfiguration_basic %}
) each have one blank line above and below for proper Markdown formatting.
89-90
: Use “the README” for clarity
Update to “see the README in the PySwitchbot project” for grammatical correctness and clarity.
98-136
: Add blank lines around device category headings and lists
Each “### ” heading and its following list should be preceded and followed by a single blank line to comply with Markdown lint rules (MD022, MD032).🧰 Tools
🪛 LanguageTool
[uncategorized] ~111-~111: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...m/products/switchbot-roller-shade) ### Lights - [Color Bulb (WoBulb)](https://switch-...(AI_HYDRA_LEO_APOSTROPHE_S_XS)
[duplication] ~123-~123: Possible typo: you repeated a word.
Context: ...chbot-smart-humidifier) ### Sensors - Meter - [Meter Plus (WoSensorTH)](https://switch-bot.c...(ENGLISH_WORD_REPEAT_RULE)
[grammar] ~126-~126: This phrase is duplicated. You should probably use “Meter Pro” only once.
Context: ...t-indoor-outdoor-thermo-hygrometer) - Meter Pro - [Meter Pro CO2 Monitor](https://www.switch-bot.com...(PHRASE_REPETITION)
🪛 markdownlint-cli2 (0.17.2)
98-98: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above(MD022, blanks-around-headings)
98-98: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
99-99: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
105-105: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
106-106: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
111-111: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
112-112: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
115-115: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
116-116: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
119-119: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
120-120: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
122-122: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
123-123: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
125-125: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
133-133: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
134-134: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
126-126
: Remove trailing space
There is an extra trailing space at the end of this URL line. Please remove it to satisfy MD009.🧰 Tools
🪛 LanguageTool
[grammar] ~126-~126: This phrase is duplicated. You should probably use “Meter Pro” only once.
Context: ...t-indoor-outdoor-thermo-hygrometer) - Meter Pro - [Meter Pro CO2 Monitor](https://www.switch-bot.com...(PHRASE_REPETITION)
137-146
: Format “Supported Functionality” headings
Surround the “## Supported Functionality”, “### Common”, “#### Options”, and “#### Attributes” headings with blank lines for consistency (MD022).🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
137-137: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
138-138: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above(MD022, blanks-around-headings)
140-140: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
141-141: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
143-143: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
144-144: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
146-146: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
219-219
: Space around “Simple cover template entity” subheading
Ensure the “##### Simple cover template entity” heading has a blank line above and below in the Markdown.
257-270
: Format Roller Shade table and feature list
Surround the “#### Roller Shade” heading, its table, and its feature list with blank lines, and consider aligning the pipe delimiters for improved readability.🧰 Tools
🪛 LanguageTool
[grammar] ~267-~267: This phrase is duplicated. You should probably use “position get” only once.
Context: ... | Features: - open/close/pause - set position - get position - get battery level ### Sensors Sensor enti...(PHRASE_REPETITION)
🪛 markdownlint-cli2 (0.17.2)
257-257: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
266-266: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
386-388
: Punctuation in Data updates section
Add a comma after “e.g.” in the parenthetical, and verify consistent capitalization of “SwitchBot Cloud” in line 388.🧰 Tools
🪛 LanguageTool
[uncategorized] ~386-~386: Possible missing comma found.
Context: ...vice on), the device's state is updated immediately rather than waiting for the next poll. ...(AI_HYDRA_LEO_MISSING_COMMA)
419-427
: Correct noun phrase in Examples
Change “all sort of automations” to “all sorts of automations” for grammatical correctness.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
source/_integrations/switchbot.markdown
(7 hunks)
🧰 Additional context used
🪛 LanguageTool
source/_integrations/switchbot.markdown
[style] ~33-~33: Write the name of the item after ‘and’ or use only “etc”.
Context: ...des, lights, plugs, robot vacuums, hubs and etc. ## How you can use this integration ...
(AND_ETC)
[uncategorized] ~111-~111: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...m/products/switchbot-roller-shade) ### Lights - [Color Bulb (WoBulb)](https://switch-...
(AI_HYDRA_LEO_APOSTROPHE_S_XS)
[duplication] ~123-~123: Possible typo: you repeated a word.
Context: ...chbot-smart-humidifier) ### Sensors - Meter - [Meter Plus (WoSensorTH)](https://switch-bot.c...
(ENGLISH_WORD_REPEAT_RULE)
[grammar] ~126-~126: This phrase is duplicated. You should probably use “Meter Pro” only once.
Context: ...t-indoor-outdoor-thermo-hygrometer) - Meter Pro - [Meter Pro CO2 Monitor](https://www.switch-bot.com...
(PHRASE_REPETITION)
[uncategorized] ~150-~150: Possible missing preposition found.
Context: ... SwitchBot app to prevent people nearby take control of your device. When a password...
(AI_HYDRA_LEO_MISSING_TO)
[style] ~150-~150: Consider a shorter alternative to avoid wordiness.
Context: ... you need to enter the correct password in order to add it to the integrations. Features: ...
(IN_ORDER_TO_PREMIUM)
[uncategorized] ~158-~158: Possible missing comma found.
Context: ...vice is in Pull/Retract mode for toggle switches otherwise the device is in momentary sw...
(AI_HYDRA_LEO_MISSING_COMMA)
[duplication] ~180-~180: Possible typo: you repeated a word.
Context: ... power - get voltage - get current ### Cover Cover entities are added for Curtain, Curtain...
(ENGLISH_WORD_REPEAT_RULE)
[grammar] ~185-~185: This phrase is duplicated. You should probably use “position get” only once.
Context: ...tain Features: - open/close/pause - set position - get position - get light level - get battery level - get c...
(PHRASE_REPETITION)
[grammar] ~194-~194: This phrase is duplicated. You should probably use “position get” only once.
Context: ...in 3 Features: - open/close/pause - set position - get position - get light level - get battery level - get c...
(PHRASE_REPETITION)
[grammar] ~203-~203: This phrase is duplicated. You should probably use “position get” only once.
Context: ...ures: - close up/close down/pause - set position - get position - get light level - get battery level - get c...
(PHRASE_REPETITION)
[grammar] ~267-~267: This phrase is duplicated. You should probably use “position get” only once.
Context: ... | Features: - open/close/pause - set position - get position - get battery level ### Sensors Sensor enti...
(PHRASE_REPETITION)
[grammar] ~324-~324: You’ve repeated a verb. Did you mean to only write one of them?
Context: ...mote Features: - get battery level ### Lights Light entities are added for Color Bulb and L...
(REPEATED_VERBS)
[uncategorized] ~367-~367: Possible missing comma found.
Context: ...bs Some of the hubs can be served as a bridge while the sensor data can be retrieved ...
(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~386-~386: Possible missing comma found.
Context: ...vice on), the device's state is updated immediately rather than waiting for the next poll. ...
(AI_HYDRA_LEO_MISSING_COMMA)
🪛 markdownlint-cli2 (0.17.2)
source/_integrations/switchbot.markdown
91-91: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
92-92: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
95-95: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
96-96: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
97-97: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
98-98: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
98-98: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
99-99: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
105-105: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
106-106: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
111-111: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
112-112: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
115-115: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
116-116: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
119-119: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
120-120: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
122-122: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
123-123: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
125-125: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
133-133: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
134-134: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
137-137: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
138-138: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
140-140: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
141-141: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
143-143: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
144-144: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
146-146: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
149-149: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
153-153: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
158-158: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
160-160: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
162-162: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
165-165: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
169-169: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
171-171: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
175-175: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
180-180: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
182-182: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
182-182: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
184-184: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
191-191: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
193-193: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
200-200: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
202-202: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
257-257: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
266-266: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
275-275: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
277-277: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
279-279: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
280-280: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
280-280: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
282-282: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
284-284: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
285-285: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
285-285: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
287-287: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
289-289: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
290-290: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
290-290: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
292-292: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
294-294: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
295-295: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
295-295: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
297-297: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
300-300: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
301-301: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
307-307: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
308-308: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
313-313: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
314-314: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
314-314: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
318-318: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
319-319: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
320-320: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
320-320: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
322-322: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
324-324: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
327-327: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
329-329: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
334-334: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
336-336: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
349-349: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
353-353: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
354-354: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
364-364: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
365-365: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
416-416: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - home-assistant-docs
- GitHub Check: Header rules - home-assistant-docs
- GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (1)
source/_integrations/switchbot.markdown (1)
93-93
: Configuration flow include is correct
The{% include integrations/config_flow.md %}
directive is correctly placed to pull in the standard config flow documentation.
There was a problem hiding this 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
🧹 Nitpick comments (7)
source/_integrations/switchbot.markdown (7)
33-33
: Remove redundant 'and' before 'etc.'The phrase “and etc.” is redundant. Consider removing “and” so it reads:
-The SwitchBot integration allows you to control SwitchBot devices such as sensors, locks, shades, lights, plugs, robot vacuums, hubs and etc. +The SwitchBot integration allows you to control SwitchBot devices such as sensors, locks, shades, lights, plugs, robot vacuums, hubs, etc.🧰 Tools
🪛 LanguageTool
[style] ~33-~33: Write the name of the item after ‘and’ or use only “etc”.
Context: ...des, lights, plugs, robot vacuums, hubs and etc. ## How you can use this integration ...(AND_ETC)
37-37
: Break long sentence for clarityThe sentence is quite long. Consider splitting into shorter sentences or a bulleted list to improve readability. For example:
The SwitchBot integration lets you: - Switch devices on and off - Change device modes - Monitor sensor data and energy usage in the Home Assistant dashboard - Control device configurations manually or via automations
58-58
: Combine and shorten sentences for concisenessConsider merging the two sentences into one for a smoother read:
-Some types of the SwitchBot devices are encrypted for improved security. More types and models will be added as encrypted devices in the future. +Some SwitchBot devices are encrypted for improved security, and more models will be added over time.
60-60
: Remove redundant word “different”In “two different ways”, “different” is implied by “two ways.” You can simplify to:
-An encrypted SwitchBot device can be set up in Home Assistant in two different ways. +An encrypted SwitchBot device can be set up in Home Assistant in two ways.
61-61
: Use parallel structure in instructionTo improve readability, use parallel verbs:
-You can enter the key ID and encryption key yourself, or Home Assistant can import them from your SwitchBot account. +Enter the key ID and encryption key manually, or import them from your SwitchBot account.
78-78
: Clarify manual key entry headingInstead of “Enter the lock encryption key manually,” consider a more general heading that matches the context of encrypted devices:
-#### Enter the lock encryption key manually +#### Manual encryption key entry
89-89
: Add definite article before “README”For grammatical correctness, include “the”:
-For instructions on how to obtain the encryption key, see README in PySwitchbot project. +For instructions on how to obtain the encryption key, see the README in the PySwitchbot project.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
source/_integrations/switchbot.markdown
(7 hunks)
🧰 Additional context used
🪛 LanguageTool
source/_integrations/switchbot.markdown
[style] ~33-~33: Write the name of the item after ‘and’ or use only “etc”.
Context: ...des, lights, plugs, robot vacuums, hubs and etc. ## How you can use this integration ...
(AND_ETC)
[duplication] ~126-~126: Possible typo: you repeated a word.
Context: ...hbot-smart-humidifier) ### Sensors - Meter - [Meter Plus (WoSensorTH)](https://switch-bot.c...
(ENGLISH_WORD_REPEAT_RULE)
[grammar] ~129-~129: This phrase is duplicated. You should probably use “Meter Pro” only once.
Context: ...t-indoor-outdoor-thermo-hygrometer) - Meter Pro - [Meter Pro CO2 Monitor](https://www.switch-bot.com...
(PHRASE_REPETITION)
[uncategorized] ~157-~157: This verb may not be in the correct form. Consider using a different form for this context.
Context: ... SwitchBot app to prevent people nearby take control of your device. When a password...
(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[style] ~157-~157: Consider a shorter alternative to avoid wordiness.
Context: ... you need to enter the correct password in order to add it to the integrations. Features: ...
(IN_ORDER_TO_PREMIUM)
[uncategorized] ~165-~165: A comma might be missing here.
Context: ...vice is in Pull/Retract mode for toggle switches otherwise the device is in momentary sw...
(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~198-~198: This phrase is duplicated. You should probably use “position get” only once.
Context: ...ain Features: - open/close/pause - set position - get position - get light level - get battery level - get c...
(PHRASE_REPETITION)
[grammar] ~208-~208: This phrase is duplicated. You should probably use “position get” only once.
Context: ...n 3 Features: - open/close/pause - set position - get position - get light level - get battery level - get c...
(PHRASE_REPETITION)
[grammar] ~218-~218: This phrase is duplicated. You should probably use “position get” only once.
Context: ...ures: - close up/close down/pause - set position - get position - get light level - get battery level - get c...
(PHRASE_REPETITION)
[grammar] ~282-~282: This phrase is duplicated. You should probably use “position get” only once.
Context: ... | Features: - open/close/pause - set position - get position - get battery level ### Sensors Sensor enti...
(PHRASE_REPETITION)
🪛 markdownlint-cli2 (0.17.2)
source/_integrations/switchbot.markdown
128-128: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
145-145: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
146-146: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
148-148: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
149-149: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
160-160: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
165-165: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
170-170: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
178-178: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
185-185: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
197-197: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
207-207: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
217-217: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
272-272: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
281-281: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
293-293: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
300-300: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
307-307: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
314-314: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
321-321: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
339-339: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
340-340: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
340-340: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
344-344: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
350-350: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
359-359: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
367-367: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
380-380: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
449-449: Multiple consecutive blank lines
Expected: 1; Actual: 3
(MD012, no-multiple-blanks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - home-assistant-docs
- GitHub Check: Header rules - home-assistant-docs
- GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (2)
source/_integrations/switchbot.markdown (2)
35-35
: Section headings are clear and follow markdown hierarchy.
The added headings (e.g., “How you can use this integration”, “Adding encrypted SwitchBot devices”, “SwitchBot account (recommended)”, “Enter the lock encryption key manually”, “Simple cover template entity”, “Roller Shade”, “Data updates”, “Known limitations”, “Slow connection times”, “Device names not synced”, “Lock state”, “Troubleshooting”, “Examples”, “Automation ideas”, “Removing the integration”) maintain consistent levels and improve document structure.Also applies to: 56-56, 63-63, 78-78, 234-234, 272-272, 417-417, 422-422, 424-424, 428-428, 432-432, 436-436, 449-449, 452-452, 462-462
91-91
: Config flow include is correctly addedThe
{% include integrations/config_flow.md %}
directive is in place to pull in the standard config flow instructions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice additions to the docs! Thank you, @zerzhang 👍
* update switchbot docs * fix bluetooth to Bluetooth * fix markdown * Apply suggestions from code review --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
Proposed change
Type of change
current
branch).current
branch).next
branch).next
branch).Additional information
Checklist
current
branch.next
branch.Summary by CodeRabbit