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

Create new actions section and clarify CLI commands for NUT #38268

Open
wants to merge 5 commits into
base: current
Choose a base branch
from

Conversation

tdfountain
Copy link
Contributor

@tdfountain tdfountain commented Mar 30, 2025

Proposed change

The NUT integration's "Device Actions" section could be confusing for some users. It instructs users to use the upscmd command. It is not clear, however, that the command must be run on the NUT server (and is therefore not easily accessible for those using the HACS NUT add-on).

This PR create a new section for "Actions" (rather than device actions) that moves the information about the action into this section. This section will be expanded in the future to better document the actions. This new section also includes the important note about the user/password configuration (the language matches the similar note for buttons/switches that is committed to the next branch).

The remainder of the existing information with the example upscmd command is moved into the start of a new "Troubleshooting" section. Additional instructions have been written to clarify where this command is executed.

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

  • Link to parent pull request in the codebase:
  • Link to parent pull request in the Brands repository:
  • This PR fixes or closes issue: fixes #

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

  • Documentation
    • Introduced a new "Actions" section that explains the required user credentials to enable device commands.
    • Renamed "Device Actions" to "Troubleshooting" and updated the guidance to help users list available commands on the NUT server.

@tdfountain tdfountain requested a review from bdraco as a code owner March 30, 2025 05:14
@home-assistant home-assistant bot added the current This PR goes into the current branch label Mar 30, 2025
Copy link

netlify bot commented Mar 30, 2025

Deploy Preview for home-assistant-docs ready!

Name Link
🔨 Latest commit 371a23b
🔍 Latest deploy log https://app.netlify.com/sites/home-assistant-docs/deploys/67f36a0a761fb100086f5f55
😎 Deploy Preview https://deploy-preview-38268--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 Mar 30, 2025

📝 Walkthrough

Walkthrough

The documentation for the NUT integration has been updated. A new section called Actions has been introduced, outlining that executing device actions requires credentials with instcmds permissions on the NUT server. Additionally, the former Device Actions section has been renamed to Troubleshooting and its content revised to emphasize listing available commands via the upscmd -l command, including an updated example for a device called my_ups.

Changes

File Change Summary
source/_integrations/nut.markdown • Added Actions section specifying that username and password must have instcmds permissions to execute device actions.
• Renamed Device Actions to Troubleshooting; updated content to focus on command listing using upscmd -l with an example for my_ups.

Sequence Diagram(s)

sequenceDiagram
    participant User as User
    participant NI as Nut Integration
    participant NS as NUT Server

    User->>NI: Request device action (with credentials)
    NI->>NI: Validate credentials (requires instcmds permission)
    alt Credentials valid
        NI->>NS: Execute parameterless command
        NS-->>NI: Return command response
        NI-->>User: Provide action feedback
    else Credentials invalid
        NI-->>User: Deny action, instruct troubleshooting
    end
Loading

🪧 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.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @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: 0

🧹 Nitpick comments (2)
source/_integrations/nut.markdown (2)

67-80: Clarify Credential Requirements in the New "Actions" Section
The new Actions section neatly explains that the configured username and password must possess instcmds permissions on the NUT server for buttons and switches to function. This clarification should help users avoid misconfiguration issues.

Additionally, please consider adding blank lines before and after the "## Actions" heading to satisfy markdownlint MD022 (headings should be surrounded by blank lines). For example, if the current context does not include a blank line before line 67 or after the heading, insert one accordingly.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

67-67: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


131-140: Refined "Troubleshooting" Section for Command Listing
Renaming the former "Device Actions" section to Troubleshooting and focusing on using the upscmd -l command clarifies that users should query the NUT server directly for available commands. This adjustment better guides users—especially those using the HACS add-on—to execute commands in the correct context.

It might add further clarity to explicitly remind users that the upscmd command must be executed on the NUT server (or on a system with command line access to it). If space permits, a brief note could reinforce this requirement.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 89074d0 and a05f463.

📒 Files selected for processing (1)
  • source/_integrations/nut.markdown (2 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
source/_integrations/nut.markdown

67-67: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

@bdraco
Copy link
Member

bdraco commented Mar 30, 2025

Let's hold off on changes to current until after Wed when next merges to current so we don't create conflicts

@bdraco bdraco marked this pull request as draft March 30, 2025 05:52
@tdfountain
Copy link
Contributor Author

Sounds good, I'll resume these NUT doc PRs after the release/merge.

@tdfountain tdfountain marked this pull request as ready for review April 2, 2025 23:41
c0ffeeca7
c0ffeeca7 previously approved these changes Apr 7, 2025
Copy link
Contributor

@c0ffeeca7 c0ffeeca7 left a comment

Choose a reason for hiding this comment

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

Thank you, @tdfountain 👍

@github-project-automation github-project-automation bot moved this from Todo to Approved in Documentation PRs Apr 7, 2025
@c0ffeeca7 c0ffeeca7 enabled auto-merge (squash) April 7, 2025 06:01
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: 0

🧹 Nitpick comments (3)
source/_integrations/nut.markdown (3)

278-292: Clarify “Actions” Section with Permissions Notice

The new Actions section clearly outlines that device actions require user credentials with instcmds permissions, which directly addresses the documentation gaps noted in the PR objectives. This addition helps clarify that actions (i.e., parameterless NUT commands) will not be available without proper permissions. For even greater clarity, consider adding a brief note or a link explaining what is meant by “parameterless NUT commands.”


337-341: Enhance “UPS Status - human-readable version” Section

This section neatly explains that the virtual sensor ups.status.display translates the raw UPS status into a human-readable format. To further aid users, you might consider including a practical example or visual aid that demonstrates this translation in action.


343-380: Refine Troubleshooting Section and Credential Details

Renaming Device Actions to Troubleshooting and refocusing the content on listing available commands with upscmd -l greatly improves readability and better reflects the intended usage. The detailed example for the device my_ups is very helpful. One suggestion: since the new Actions section already emphasizes the need for credentials with instcmds permissions, it could be beneficial to clarify in the “User Credentials and permissions” subsection whether the credentials discussed here serve a different purpose (e.g., for executing commands via the CLI versus through Home Assistant). This additional clarification would prevent potential confusion.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between ca78e61 and 371a23b.

📒 Files selected for processing (1)
  • source/_integrations/nut.markdown (3 hunks)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
current This PR goes into the current branch
Projects
Status: Approved
Development

Successfully merging this pull request may close these issues.

3 participants