-
-
Notifications
You must be signed in to change notification settings - Fork 20
feat: Add docs site #287
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
feat: Add docs site #287
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,68 @@ | ||
| name: Documentation | ||
|
|
||
| on: | ||
| push: | ||
| branches: [main] | ||
| paths: | ||
| - "site_docs/**" | ||
| - "zensical.toml" | ||
| - ".github/workflows/docs.yml" | ||
| - "README.md" | ||
| - "CHANGELOG.md" | ||
| - "LICENSE" | ||
| pull_request: | ||
| branches: [main] | ||
| paths: | ||
| - "site_docs/**" | ||
| - "zensical.toml" | ||
| - ".github/workflows/docs.yml" | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
| pages: write | ||
| id-token: write | ||
|
|
||
| concurrency: | ||
| group: "pages" | ||
| cancel-in-progress: false | ||
|
|
||
| jobs: | ||
| build: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| fetch-depth: 0 | ||
|
|
||
| - name: Set up Python | ||
| uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: 3.x | ||
|
|
||
| - name: Set up uv | ||
| uses: astral-sh/setup-uv@v5 | ||
|
|
||
| - name: Install dependencies | ||
| run: uv pip install --system zensical | ||
|
|
||
| - name: Build documentation | ||
| run: zensical build --clean | ||
|
||
|
|
||
| - name: Upload artifact | ||
| uses: actions/upload-pages-artifact@v4 | ||
| with: | ||
| path: ./site | ||
|
|
||
| deploy: | ||
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | ||
| needs: build | ||
| runs-on: ubuntu-latest | ||
| environment: | ||
| name: github-pages | ||
| url: ${{ steps.deployment.outputs.page_url }} | ||
| steps: | ||
| - name: Deploy to GitHub Pages | ||
| id: deployment | ||
| uses: actions/deploy-pages@v4 | ||
|
Comment on lines
+35
to
+68
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -29,3 +29,6 @@ __pycache__/ | |
| .vscode/ | ||
| *.swp | ||
| *.swo | ||
|
|
||
| # Zensical build output | ||
| site/ | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,32 +1,37 @@ | ||
| { | ||
| "description": "RoboVac Feature List - Test cases organized by functional area", | ||
| "version": "1.0.0", | ||
| "updated": "2025-12-16", | ||
| "areas": [ | ||
| { | ||
| "name": "vacuum_models", | ||
| "file": "features/vacuum_models.json", | ||
| "count": 12 | ||
| }, | ||
| { | ||
| "name": "core_functionality", | ||
| "file": "features/core_functionality.json", | ||
| "count": 5 | ||
| }, | ||
| { | ||
| "name": "testing", | ||
| "file": "features/testing.json", | ||
| "count": 5 | ||
| "description": "RoboVac Feature List - Test cases organized by functional area", | ||
| "version": "1.0.0", | ||
| "updated": "2026-01-06", | ||
| "areas": [ | ||
| { | ||
| "name": "vacuum_models", | ||
| "file": "features/vacuum_models.json", | ||
| "count": 12 | ||
| }, | ||
| { | ||
| "name": "core_functionality", | ||
| "file": "features/core_functionality.json", | ||
| "count": 5 | ||
| }, | ||
| { | ||
| "name": "testing", | ||
| "file": "features/testing.json", | ||
| "count": 5 | ||
| }, | ||
| { | ||
| "name": "documentation", | ||
| "file": "features/documentation.json", | ||
| "count": 5 | ||
| } | ||
| ], | ||
| "summary": { | ||
| "total_features": 27, | ||
| "passing": 20, | ||
| "failing": 7, | ||
| "pass_rate": "74%", | ||
| "categories": { | ||
| "functional": 17, | ||
| "quality": 10 | ||
| } | ||
| } | ||
| ], | ||
| "summary": { | ||
| "total_features": 22, | ||
| "passing": 16, | ||
| "failing": 6, | ||
| "pass_rate": "73%", | ||
| "categories": { | ||
| "functional": 17, | ||
| "quality": 5 | ||
| } | ||
| } | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,62 @@ | ||||||
| [ | ||||||
| { | ||||||
| "id": "DOC-001", | ||||||
| "category": "quality", | ||||||
| "area": "documentation", | ||||||
| "description": "Zensical documentation site is configured", | ||||||
| "steps": [ | ||||||
| "Create zensical.toml configuration file", | ||||||
| "Configure site_name, docs_dir, and site_dir", | ||||||
| "Verify configuration is valid" | ||||||
| ], | ||||||
| "passes": true | ||||||
| }, | ||||||
| { | ||||||
| "id": "DOC-002", | ||||||
| "category": "quality", | ||||||
| "area": "documentation", | ||||||
| "description": "Documentation index page exists", | ||||||
| "steps": [ | ||||||
| "Create docs/index.md with project overview", | ||||||
|
||||||
| "Create docs/index.md with project overview", | |
| "Create site_docs/index.md with project overview", |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| # Configuration | ||
|
|
||
| ## Adding the Integration | ||
|
|
||
| 1. Go to **Settings** → **Devices & Services** | ||
| 2. Click **Add Integration** | ||
| 3. Search for "RoboVac" | ||
| 4. Follow the configuration wizard | ||
|
|
||
| ## Required Information | ||
|
|
||
| You'll need the following information to configure your vacuum: | ||
|
|
||
| - **Device ID**: Your vacuum's unique identifier | ||
| - **Local Key**: The encryption key for local communication | ||
| - **IP Address**: Your vacuum's local IP address | ||
|
|
||
| ## Finding Your Local Key | ||
|
|
||
| The local key can be obtained using various methods: | ||
|
|
||
| 1. **Tuya IoT Platform**: Register as a developer and link your device | ||
| 2. **Third-party tools**: Use tools like `tuya-cli` to extract the key | ||
|
|
||
| ## Protocol Version | ||
|
|
||
| Some vacuums require a specific protocol version: | ||
|
|
||
| - **Protocol 3.3**: Most older models | ||
| - **Protocol 3.4**: Newer models with enhanced security | ||
| - **Protocol 3.5**: Latest models | ||
|
|
||
| If you're unsure, start with 3.3 and adjust if needed. | ||
|
|
||
| ## Troubleshooting | ||
|
|
||
| If you encounter issues, see the [Troubleshooting](troubleshooting.md) guide. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| # RoboVac | ||
|
|
||
| Welcome to the RoboVac documentation! RoboVac is a Home Assistant custom | ||
| integration for Eufy RoboVac vacuum cleaners. | ||
|
|
||
| ## Features | ||
|
|
||
| - **Local Control**: Control your vacuum without cloud dependency | ||
| - **Multiple Models**: Support for 30+ Eufy RoboVac models | ||
| - **Full Integration**: Start, stop, pause, return to base, and locate | ||
| - **Status Monitoring**: Battery level, cleaning status, and error reporting | ||
|
|
||
| ## Quick Start | ||
|
|
||
| 1. Install via HACS or manually | ||
| 2. Add the integration in Home Assistant | ||
| 3. Configure your vacuum's local key and device ID | ||
| 4. Start cleaning! | ||
|
|
||
| ## Supported Models | ||
|
|
||
| RoboVac supports a wide range of Eufy vacuum models including: | ||
|
|
||
| - RoboVac G30 Series (T2250, T2251, T2252, T2253) | ||
| - RoboVac L35 Hybrid (T2194) | ||
| - RoboVac X8 Series (T2261, T2262) | ||
| - And many more... | ||
|
|
||
| See the full list in the [Configuration](configuration.md) section. | ||
|
|
||
| ## Getting Help | ||
|
|
||
| - [Installation Guide](installation.md) | ||
| - [Configuration](configuration.md) | ||
| - [Troubleshooting](troubleshooting.md) | ||
| - [GitHub Issues](https://github.com/damacus/robovac/issues) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| # Installation | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| - Home Assistant 2024.1.0 or later | ||
| - A Eufy RoboVac with local network access | ||
| - Your vacuum's local key and device ID | ||
|
|
||
| ## Installation via HACS (Recommended) | ||
|
|
||
| 1. Open HACS in Home Assistant | ||
| 2. Click on "Integrations" | ||
| 3. Click the three dots in the top right corner | ||
| 4. Select "Custom repositories" | ||
| 5. Add `https://github.com/damacus/robovac` as a custom repository | ||
| 6. Select "Integration" as the category | ||
| 7. Click "Add" | ||
| 8. Search for "RoboVac" and install | ||
|
|
||
| ## Manual Installation | ||
|
|
||
| 1. Download the latest release from GitHub | ||
| 2. Extract the `custom_components/robovac` folder | ||
| 3. Copy it to your Home Assistant `custom_components` directory | ||
| 4. Restart Home Assistant | ||
|
|
||
| ## Next Steps | ||
|
|
||
| After installation, proceed to [Configuration](configuration.md) to set up | ||
| your vacuum. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| # Troubleshooting | ||
|
|
||
| ## Common Issues | ||
|
|
||
| ### Vacuum Not Responding | ||
|
|
||
| **Symptoms**: Commands are sent but the vacuum doesn't respond. | ||
|
|
||
| **Solutions**: | ||
|
|
||
| 1. Verify the IP address is correct and reachable | ||
| 2. Check that the local key is correct | ||
| 3. Ensure the vacuum is on the same network as Home Assistant | ||
| 4. Try a different protocol version | ||
|
|
||
| ### Invalid Local Key | ||
|
|
||
| **Symptoms**: Authentication errors in the logs. | ||
|
|
||
| **Solutions**: | ||
|
|
||
| 1. Re-extract the local key from the Tuya platform | ||
| 2. Ensure no extra spaces or characters in the key | ||
| 3. Verify the device ID matches | ||
|
|
||
| ### Connection Timeout | ||
|
|
||
| **Symptoms**: Timeout errors when trying to connect. | ||
|
|
||
| **Solutions**: | ||
|
|
||
| 1. Check your network connectivity | ||
| 2. Verify the vacuum is powered on | ||
| 3. Ensure no firewall is blocking the connection | ||
| 4. Try restarting the vacuum | ||
|
|
||
| ### Wrong Protocol Version | ||
|
|
||
| **Symptoms**: Decryption errors or garbled responses. | ||
|
|
||
| **Solutions**: | ||
|
|
||
| 1. Try protocol version 3.4 instead of 3.3 | ||
| 2. For newer models, try protocol 3.5 | ||
| 3. Check the logs for specific error messages | ||
|
|
||
| ## Getting Help | ||
|
|
||
| If you're still having issues: | ||
|
|
||
| 1. Check the [GitHub Issues](https://github.com/damacus/robovac/issues) | ||
| 2. Enable debug logging and review the logs | ||
| 3. Open a new issue with your logs and configuration |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| [project] | ||
| site_name = "RoboVac Documentation" | ||
| docs_dir = "site_docs" | ||
| site_dir = "site" | ||
|
|
||
| nav = [ | ||
| "index.md", | ||
| "installation.md", | ||
| "configuration.md", | ||
| "troubleshooting.md" | ||
| ] |
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.
The path filters for pull_request events don't include README.md, CHANGELOG.md, and LICENSE, which are included in the push event filters. This inconsistency means that pull requests modifying these files won't trigger the documentation workflow for validation, but pushes will. Consider adding these paths to the pull_request paths filter as well for consistency, or remove them from the push paths if they shouldn't trigger documentation builds.