Skip to content

New command for making CCU firmware backup with CLI#47

Merged
darthsharp merged 7 commits intomainfrom
feature/ccubackup
Apr 26, 2026
Merged

New command for making CCU firmware backup with CLI#47
darthsharp merged 7 commits intomainfrom
feature/ccubackup

Conversation

@darthsharp
Copy link
Copy Markdown
Contributor

No description provided.

- Added `CcuSessionClient` for CCU JSON-RPC session management.
- Implemented `FirmwareBackupClient` and `FirmwareBackupDownloader` for handling firmware backup downloads.
- Introduced `FirmwareBackupClientFactory` to simplify client creation.
- Created options and results classes: `FirmwareBackupOptions` and `FirmwareBackupResult`.
- Provided extension methods via `FirmwareBackupServiceCollectionExtensions` for DI registration.
- Added detailed unit and integration tests to ensure functionality.
- Implemented `BackupCcuCommand` to support creating firmware backups from configured CCUs.
- Added `BackupCcuOptions` for specifying connection name and output directory.
- Integrated with `ICcuConnectionsStore` and `IFirmwareBackupClientFactory` for connection management and backup handling.
- Updated `.gitignore` to exclude CCU backup directories.
- Refactored `FirmwareBackupClient` to enhance resource management and file handling.
- Updated `BackupCcuCommand` to validate output file paths and handle target directory creation.
- Replaced `OutputDirectory` with `OutputFile` in `BackupCcuOptions` for precise path control.
- Integrated `FileSystem` into services for consistent file operations.
- Simplified and streamlined backup file path resolution logic.
…are backup workflow

- Replaced `System.IO` usage with `IFileSystem` abstraction across `FirmwareBackupClient`, `BackupCcuCommand`, and related components.
- Updated `FirmwareBackupClientFactory` and tests to support `IFileSystem` injection.
- Ensured consistent and testable file handling logic throughout the firmware backup pipeline.
- Replaced `Encoding.UTF8.GetBytes` with `u8.ToArray` for concise byte array creation in tests.
- Updated `BackupCcuOptions` annotation from `[UsedImplicitly]` to `[PublicAPI]` for better tooling support.
- Simplified `SingleHandlerHttpClientFactory` by converting to a C# primary constructor.
- Refactored conditional logic in `QueueingHttpMessageHandler` for cleaner exception handling.
…n firmware backup

- Introduced `HttpClient` with `AcceptAnyCertificate` option for self-signed certificates in `FirmwareBackupClientFactory`.
- Updated DI registration in `AddHomeMaticFirmwareBackup` to configure both secure and bypass `HttpClient` instances.
- Added unit tests to validate proper client creation based on `AcceptAnyServerCertificate` flag.
- Updated `CreativeCoders.*` packages to version `6.7.3`.
- Upgraded `Microsoft.Extensions.*` packages to version `10.0.7`.
@darthsharp darthsharp merged commit 1983497 into main Apr 26, 2026
7 checks passed
@darthsharp darthsharp deleted the feature/ccubackup branch April 26, 2026 13:29
@darthsharp darthsharp restored the feature/ccubackup branch April 26, 2026 13:30
@darthsharp darthsharp deleted the feature/ccubackup branch April 26, 2026 13:31
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.

1 participant