-
-
Notifications
You must be signed in to change notification settings - Fork 7.5k
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 new integration refoss_rpc #36820
base: next
Are you sure you want to change the base?
Conversation
It seems that this PR is targeted against an incorrect branch. Documentation updates which apply to our current stable release should target the |
✅ Deploy Preview for home-assistant-docs ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
📝 WalkthroughWalkthroughThe pull request introduces a new Home Assistant integration for Refoss devices using the RPC protocol. The integration supports the Refoss Smart Wi-Fi Switch, R11, and provides comprehensive functionality across multiple platforms including binary sensors, switches, sensors, events, updates, and buttons. It offers automatic device discovery through Zeroconf and a configuration flow, with detailed support for various device interactions such as button clicks and input sensor modes. Changes
Sequence DiagramsequenceDiagram
participant User
participant HomeAssistant
participant RefossDevice
User->>HomeAssistant: Configure Refoss Integration
HomeAssistant->>RefossDevice: Discover via Zeroconf
RefossDevice-->>HomeAssistant: Device Details
HomeAssistant->>HomeAssistant: Create Entities
HomeAssistant->>User: Integration Ready
User->>RefossDevice: Interact with Device
RefossDevice->>HomeAssistant: Trigger Events/State Changes
HomeAssistant->>User: Update UI/Trigger Automations
Finishing Touches
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? 🪧 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: 0
🧹 Nitpick comments (6)
source/_integrations/refoss_rpc.markdown (6)
28-28
: Enhance the introduction with more detailsConsider expanding the introduction to include:
- Brief explanation of what RPC protocol is
- Key benefits of using this integration
- Common use cases
34-36
: Fix table formatting and clarify version support
- Remove trailing spaces in the table header line
- Consider specifying the actual firmware versions supported instead of using
all
-| Model | Version | -|----------------------------------|--------------------| -| `Refoss Smart Wi-Fi Switch, R11` | `all` | +| Model | Version | +|----------------------------------|------------| +| `Refoss Smart Wi-Fi Switch, R11` | `>=1.0.0` |🧰 Tools
🪛 Markdownlint (0.37.0)
34-34: Expected: 0 or 2; Actual: 13
Trailing spaces(MD009, no-trailing-spaces)
42-44
: Add configuration examplesConsider adding YAML examples showing how the entity names appear in the actual configuration:
# Example when Channel Name is set to "Kitchen" switch.kitchen_switch # Example with default Channel Name switch.r11_switch_1
47-47
: Improve clarity and fix grammar
- Add missing article: "if the device's input"
- Consider adding details about how to configure input modes
-It's possible to select if a device's input is connected to a button or a switch. Binary sensors are created only if the input mode is set to `switch`. When the input mode is set to `button` you can use events for your automations. +It's possible to select if the device's input is connected to a button or a switch. Binary sensors are created only if the input mode is set to `switch`. When the input mode is set to `button`, you can use events for your automations. You can configure the input mode through the device's configuration page in the Home Assistant UI.
51-61
: Add YAML automation exampleConsider adding a YAML automation example for users who prefer manual configuration:
automation: trigger: platform: event event_type: refoss.click event_data: device_id: YOUR_DEVICE_ID click_type: double_push button: Button1 action: - service: light.toggle target: entity_id: light.example🧰 Tools
🪛 LanguageTool
[uncategorized] ~51-~51: Possible missing article found.
Context: ...ts for your automations. ## Events If device's input mode is set tobutton
, integr...(AI_HYDRA_LEO_MISSING_THE)
70-80
: Enhance device actions documentationConsider adding more details for each action:
- Firmware update: Expected duration, network requirements, and potential risks
- Check latest firmware: Where to find the results
- Reboot: Expected downtime and impact on automations
Also, consider adding a troubleshooting section for common issues.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
source/_integrations/refoss_rpc.markdown
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
source/_integrations/refoss_rpc.markdown
[uncategorized] ~51-~51: Possible missing article found.
Context: ...ts for your automations. ## Events If device's input mode is set to button
, integr...
(AI_HYDRA_LEO_MISSING_THE)
🪛 Markdownlint (0.37.0)
source/_integrations/refoss_rpc.markdown
34-34: Expected: 0 or 2; Actual: 13
Trailing spaces
(MD009, no-trailing-spaces)
⏰ 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/refoss_rpc.markdown (1)
11-11
: Verify the release versionThe release version is set to
2025.2
. Please ensure this aligns with the planned release schedule. If this is intended for an earlier release, adjust accordingly.
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 (5)
source/_integrations/refoss_rpc.markdown (5)
34-34
: Remove trailing spaces in the table header.There are trailing spaces after the "Version" column header.
-| Model | Version | +| Model | Version |🧰 Tools
🪛 Markdownlint (0.37.0)
34-34: Expected: 0 or 2; Actual: 13
Trailing spaces(MD009, no-trailing-spaces)
28-28
: Enhance the introduction with protocol details.Consider providing more context about what the RPC protocol is and its benefits. This helps users understand the technical aspects of the integration.
-Integrate Refoss devices that support `RPC` protocol into Home Assistant. +Integrate Refoss devices that support the `RPC` (Remote Procedure Call) protocol into Home Assistant. This protocol enables real-time, bidirectional communication between Home Assistant and Refoss devices over the local network.
34-37
: Clarify version compatibility.The version column states "all" which might be ambiguous. Consider specifying the minimum firmware version required for compatibility.
| Model | Version | |----------------------------------|--------------------| -| `Refoss Smart Wi-Fi Switch, R11` | `all` | +| `Refoss Smart Wi-Fi Switch, R11` | `>= 1.0.0` |🧰 Tools
🪛 Markdownlint (0.37.0)
34-34: Expected: 0 or 2; Actual: 13
Trailing spaces(MD009, no-trailing-spaces)
76-76
: Fix grammar in firmware check description.Add the missing article "the" for better readability.
-Trigger check latest firmware of device. +Trigger check for the latest firmware of device.🧰 Tools
🪛 LanguageTool
[uncategorized] ~76-~76: You might be missing the article “the” here.
Context: ...## Check latest firmware Trigger check latest firmware of device. ### Reboot Trigge...(AI_EN_LECTOR_MISSING_DETERMINER_THE)
66-81
: Add YAML examples for device actions.Consider adding YAML examples for each device action to help users implement them in their automations.
Add examples like:
# Example automation for firmware update automation: - alias: "Update R11 Firmware" trigger: - platform: time at: "03:00:00" action: - device_id: your_device_id domain: refoss_rpc type: check_firmware - device_id: your_device_id domain: refoss_rpc type: update_firmware🧰 Tools
🪛 LanguageTool
[uncategorized] ~76-~76: You might be missing the article “the” here.
Context: ...## Check latest firmware Trigger check latest firmware of device. ### Reboot Trigge...(AI_EN_LECTOR_MISSING_DETERMINER_THE)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
source/_integrations/refoss_rpc.markdown
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
source/_integrations/refoss_rpc.markdown
[uncategorized] ~76-~76: You might be missing the article “the” here.
Context: ...## Check latest firmware Trigger check latest firmware of device. ### Reboot Trigge...
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
🪛 Markdownlint (0.37.0)
source/_integrations/refoss_rpc.markdown
34-34: Expected: 0 or 2; Actual: 13
Trailing spaces
(MD009, no-trailing-spaces)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (2)
source/_integrations/refoss_rpc.markdown (2)
40-44
: LGTM! Clear naming strategy documentation.The entity naming strategy is well documented with helpful examples.
25-25
: Verify integration type classification.The integration is classified as a
device
integration. Let's verify this matches the implementation.
Proposed change
Type of change
current
branch).current
branch).next
branch).next
branch).Additional information
Checklist
current
branch.next
branch.Summary by CodeRabbit
Summary by CodeRabbit
New Features
Documentation