Skip to content

Conversation

@mverteuil
Copy link
Owner

Summary

Fixes incorrect Home Assistant integration documentation and reorganizes user guide structure for better clarity.

Documentation Fixes

  • Home Assistant MQTT Integration: Corrected false claims about automatic discovery (not implemented)

    • Updated MQTT topic names: birdnet/* instead of birdnetpi/*
    • Fixed configuration examples to use birdnetpi.yaml format
    • Updated sensor and automation examples with correct topic structure
    • Added note that manual configuration is required
  • File Organization:

    • Removed duplicate BOOT_CONFIG.md (kept docs/en/boot-config.md)
    • Renamed README.md to index.md for standard documentation structure
    • Updated cross-references throughout documentation
  • Docker Installation: Improved clarity and reduced redundancy

E-Paper Display Enhancement

While fixing the documentation, discovered and fixed issues with e-paper display implementation:

  • Added 3-color display support (2in13b_V3, 2in13b_V4)
  • Enhanced animation with zigzag effect (12 cycles)
  • Added composite image generation for development
  • Optimized for SBC disk wear prevention

Test Coverage

  • All 1846 tests passing
  • 79% overall coverage
  • All pre-commit checks passing

- Improved installer reliability and user experience for SBC deployments
- Added system setup CLI for pre-service configuration
- Fixed update page UI and functionality issues
- Enhanced boot config pre-configuration for SD card flashing

- **Fix uv installation**: Use official installer instead of pip, with proper PATH handling
- **Parallel execution**: Restructure installer for optimized parallel package installation
- **Terminal output**: Fix mangled output, ANSI escape codes, and stdout/stderr flushing
- **User management**: Prevent birdnetpi user deletion, set proper home directory
- **Error handling**: Capture and display installation errors properly

- **Pre-service configuration**: New CLI tool to configure settings before services start
- **GPS support**: Configure GPS settings during setup
- **Timezone configuration**: Set timezone before services launch
- **Language selection**: Configure interface language at setup time
- **Boot config**: Integration tests for configuration workflow

- **Git branch loading**: Fix branch detection and display
- **Banner priority**: Correct warning banner hierarchy
- **Tag filtering**: Remove assets- prefixed tags from update page
- **Typography**: Improve spacing and layout consistency
- **Release notes**: Hide empty release notes section

- **Status rows**: Ensure consistent heights with min-height
- **Reboot feedback**: Add loading overlay and timeout handling
- **Badge cleanup**: Remove orphaned badges

- **Pre-configuration**: Add BirdNET-Pi setup prompts to SD card flasher
- **Configuration prompts**: Dict-driven loop for cleaner prompt handling
- **Documentation**: Add boot config pre-configuration guide

- **DNS stability**: Add delay after apt operations for DNS to settle
- **Non-git deployments**: Handle installations without git repository
- **PulseAudio**: Remove from service monitoring (not used)
- **UpdateManager contract**: Align check_for_updates() with API response schema

- Boot config integration tests
- Installation error handling tests
- Update page functionality tests
…r docs

- Remove duplicate BOOT_CONFIG.md (kept docs/en/boot-config.md)
- Rename README.md to index.md for standard documentation structure
- Correct Home Assistant MQTT integration documentation to match implementation
  - Remove false claims about automatic discovery (not implemented)
  - Update MQTT topic names (birdnet/* instead of birdnetpi/*)
  - Fix configuration examples to use birdnetpi.yaml format
  - Update sensor and automation examples with correct topic structure
  - Add note that manual configuration is required
- Update documentation cross-references from README.md to index.md
Adds support for 3-color Waveshare e-paper displays and improves the
display simulator for better development experience.

Enhancements:
- 3-color display support (2in13b_V3, 2in13b_V4) with separate red layer
- Extended animation: 12 cycles with zigzag effect for new detections
- Faster refresh during animation (2s) vs normal operation (30s)
- Composite image generation showing final display appearance with proper colors
- Docker-only simulation to prevent excessive disk writes on SBCs

Display output improvements:
- Black layer: System stats, health status, detection info
- Red layer: Animated border for new detections (3-color only)
- Composite PNG: RGB preview (black=#000000, red=#FF0000, white=#FFFFFF)

Technical changes:
- Move color display detection before hardware import for simulation mode
- Return tuple (black_image, red_image) from _draw_status_screen()
- Add animation_frame parameter for zigzag effect calculation
- SystemUtils.is_docker_environment() check for file write prevention
- Remove pyleak dependency (daemon issue identified and resolved)

Test updates:
- Update tests to handle tuple return values from _draw_status_screen()
- Add animation_frame parameter to test calls
- Mock Docker environment check for simulation tests
- Verify all three output files (black, red, composite)
Prevents exposing all data files via the /display-simulator/ web endpoint
by creating a dedicated display-simulator subdirectory.

Security improvements:
- Add get_display_simulator_dir() to PathResolver
- Display simulator files now saved to data/display-simulator/
- Caddyfile serves only display-simulator/ subdirectory
- Test fixture properly overrides new path method

This ensures only the three PNG files are accessible via the web endpoint,
not the entire /var/lib/birdnetpi directory which contains sensitive data
like databases, config files, and recordings.
@mverteuil mverteuil merged commit 8b29776 into main Oct 24, 2025
3 checks passed
@mverteuil mverteuil deleted the features/userdocs branch October 24, 2025 00:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants