Skip to content

Build Camper Van Control System Architecture#1

Merged
StuartF303 merged 5 commits intomainfrom
claude/camper-van-control-setup-011CUpsFKnx2JFyoEDjhfgbz
Nov 5, 2025
Merged

Build Camper Van Control System Architecture#1
StuartF303 merged 5 commits intomainfrom
claude/camper-van-control-setup-011CUpsFKnx2JFyoEDjhfgbz

Conversation

@StuartF303
Copy link
Copy Markdown
Owner

This commit establishes the complete foundation for the VanDaemon camper van control system with the following components:

Backend:

  • .NET 8 solution structure with clean architecture
  • Core domain models (Tank, Control, Alert, SystemConfiguration)
  • Application services for tank monitoring and management
  • RESTful API with Swagger documentation
  • Modular plugin system for hardware integration
  • Simulated plugin for testing without hardware
  • Support for Modbus, I2C, and Victron Cerbo plugins (stubs)

Frontend:

  • Blazor WebAssembly application
  • MudBlazor UI components
  • Responsive dashboard with tank monitoring
  • Settings page structure
  • Real-time data display

Infrastructure:

  • Docker containerization for API and Web
  • Docker Compose orchestration
  • Nginx reverse proxy configuration
  • Build scripts for Linux/Mac and Windows
  • GitHub Actions CI/CD pipeline

Testing:

  • Unit test projects with xUnit
  • Moq and FluentAssertions for test helpers
  • Tests for TankService and SimulatedSensorPlugin
  • Code coverage support

Documentation:

  • Comprehensive PROJECT_PLAN.md
  • Updated README with quick start guide
  • Raspberry Pi deployment guide
  • Plugin development guide
  • API reference documentation
  • Environment configuration template

The system is ready for:

  1. Testing with simulated hardware
  2. Deployment to Raspberry Pi via Docker
  3. Hardware integration via plugin system
  4. Further frontend development
  5. Real-time SignalR implementation

This provides a solid foundation for monitoring and controlling water tanks, LPG, lighting, heating, and other van systems.

This commit establishes the complete foundation for the VanDaemon
camper van control system with the following components:

Backend:
- .NET 8 solution structure with clean architecture
- Core domain models (Tank, Control, Alert, SystemConfiguration)
- Application services for tank monitoring and management
- RESTful API with Swagger documentation
- Modular plugin system for hardware integration
- Simulated plugin for testing without hardware
- Support for Modbus, I2C, and Victron Cerbo plugins (stubs)

Frontend:
- Blazor WebAssembly application
- MudBlazor UI components
- Responsive dashboard with tank monitoring
- Settings page structure
- Real-time data display

Infrastructure:
- Docker containerization for API and Web
- Docker Compose orchestration
- Nginx reverse proxy configuration
- Build scripts for Linux/Mac and Windows
- GitHub Actions CI/CD pipeline

Testing:
- Unit test projects with xUnit
- Moq and FluentAssertions for test helpers
- Tests for TankService and SimulatedSensorPlugin
- Code coverage support

Documentation:
- Comprehensive PROJECT_PLAN.md
- Updated README with quick start guide
- Raspberry Pi deployment guide
- Plugin development guide
- API reference documentation
- Environment configuration template

The system is ready for:
1. Testing with simulated hardware
2. Deployment to Raspberry Pi via Docker
3. Hardware integration via plugin system
4. Further frontend development
5. Real-time SignalR implementation

This provides a solid foundation for monitoring and controlling
water tanks, LPG, lighting, heating, and other van systems.
- Added VanDaemon.Plugins.Simulated project reference to test project
- Resolves CS0234 and CS0246 compilation errors in SimulatedSensorPluginTests
- Tests now have access to the Simulated plugin namespace
- Changed mock plugin name from 'Test Plugin' to 'Simulated Sensor Plugin'
- This matches the plugin name used in TankService's default tanks
- Fixes RefreshAllTankLevelsAsync_ShouldUpdateAllTankLevels test failure
- Plugin lookup in TankService uses Name property, so they must match
- Changed 'docker-compose' to 'docker compose' in GitHub Actions workflow
- Updated README.md to use Docker Compose V2 syntax
- Removed separate docker-compose installation (included with Docker)
- Updated systemd service files to use new syntax
- Updated build scripts (build.sh and build.bat)
- Fixes 'docker-compose: command not found' error in CI/CD

Docker Compose V2 is now integrated into Docker as a plugin and uses
'docker compose' instead of the standalone 'docker-compose' command.
- Replaced all 'docker-compose' with 'docker compose' in Raspberry Pi guide
- Updated installation section to note Docker Compose V2 is included
- Removed separate docker-compose installation step
- Changed --version to version (correct Docker Compose V2 syntax)
@StuartF303 StuartF303 merged commit 6136610 into main Nov 5, 2025
4 checks passed
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