Commit Graph

88 Commits

Author SHA1 Message Date
Kai Börnert
e0b8acd55c Add firmware build timestamp support for sensors; update detection workflows and UI accordingly. 2026-04-27 16:46:24 +02:00
Kai Börnert
c04109a76c Rename /version endpoint to /firmware_info; add heap memory statistics to firmware data and UI. 2026-04-27 15:46:29 +02:00
Kai Börnert
f0c9ed4e7f Add live log buffering support and endpoint; enhance log display functionality. 2026-04-27 15:04:05 +02:00
Kai Börnert
3fa8077b81 Update button labels to clarify sensor identification actions in plant.html 2026-04-27 13:56:32 +02:00
Kai Börnert
7f0714914f Add averaging over multiple windows for frequency measurement; optimize task yielding for USB stability. 2026-04-27 13:42:30 +02:00
61806a5fa2 Add mcutie MQTT client implementation and improve library structure
- Integrated `mcutie` library as a core MQTT client for device communication.
- Added support for Home Assistant entities (binary sensor, button) via MQTT.
- Implemented buffer management, async operations, and packet encoding/decoding.
- Introduced structured error handling and device registration features.
- Updated `Cargo.toml` with new dependencies and enabled feature flags for `serde` and `log`.
- Enhanced logging macros with configurable options (`defmt` or `log`).
- Organized codebase into modules (buffer, components, IO, publish, etc.) for better maintainability.
2026-04-27 09:39:29 +02:00
016047ab23 Update Water HAL: enhance GPIO config with drive mode and input settings
- Added `DriveMode` configuration and input enablement for `one_wire_pin`.
- Improved GPIO initialization with `InputConfig` and default pull settings.
2026-04-26 21:24:51 +02:00
eb276cfa68 Refactor HAL modules: update async support in Water module and reorganize detect_sensors logic
- Replaced `Blocking` with `Async` for ADC operations in `Water` module.
- Improved `detect_sensors` implementation with better structure for sensor messages and autodetection.
- Updated tank ADC sampling to yield between readings, improving efficiency.
2026-04-26 21:01:27 +02:00
f1c85d1d74 Migrate serialization from Bincode to Postcard
- Replaced Bincode with Postcard for serialization/deserialization across configs and save operations.
- Simplified struct derives by removing `bincode`-specific traits.
- Updated `Cargo.toml` and `Cargo.lock` to include `postcard` and dependencies.
- Added padding stripping for deserialization and improved error handling.
- Adjusted serialization logic in `savegame_manager.rs` and related modules.
2026-04-26 20:46:52 +02:00
097aff5360 Switch savegame serialization format from Bincode to custom parsing
- Replaced Bincode-based serialization/deserialization with a custom save format for better control.
- Introduced save header with magic bytes, timestamp handling, and UTF-8 validation.
- Enhanced error handling for save parsing and increased format flexibility.
- Removed
2026-04-26 20:31:56 +02:00
fc0e18da56 Integrate mcutie library for MQTT functionality
- Added `mcutie` as a dependency in `Cargo.toml` and updated `Cargo.lock`.
- Replaced commented-out MQTT logic with fully implemented functionality in `esp.rs`.
- Enhanced MQTT publish and subscription handling with configurable topics and error handling.
- Updated MQTT connection logic to improve reliability and logging.
2026-04-26 19:56:16 +02:00
cc92c82ac9 Fix incorrect spawn function call and update dependencies
- Corrected usage of `spawner.spawn` by fixing misplaced error propagation.
- Updated `Cargo.lock` with new and upgraded dependencies, including `base64`, `darling`, and `smoltcp` upgrades.
2026-04-26 19:46:46 +02:00
b8f01f0de9 Remove unused dependencies and imports, cleanup Cargo.lock
- Removed `smoltcp`, `defmt`, and associated dependencies as they are no longer used.
- Updated `Cargo.toml` to exclude unused features from `esp-radio`.
- Cleaned up imports in `esp.rs` for better clarity and consistency.
2026-04-26 19:08:18 +02:00
79daecf97d add lock for now, as otherwise it wont build 2026-04-26 16:06:13 +02:00
6b4fd3f701 Add DeepSleep log message and improve formatting consistency
- Introduced `DeepSleep` log message for tracking system sleep events.
- Updated MQTT topic to use `/state` instead of `/firmware/state`.
- Improved code formatting for enhanced readability and maintainability.
2026-04-17 00:31:21 +02:00
3157ba7e76 Merge branch 'test_new_storage' of ssh://git.mannheim.ccc.de:1337/C3MA/PlantCtrl into test_new_storage 2026-04-16 23:58:38 +02:00
2493507304 Refactor plant state handling and moisture interpretation
- Replaced `read_hardware_state` with `interpret_raw_values` for better abstraction and clarity.
- Enhanced error handling by introducing `NoMessage` and `NotExpectedMessage` states.
- Updated moisture sensor logic to differentiate expected and unexpected messages.
- Renamed and refactored enum fields for consistency (`raw_hz` to `hz`).
- Minor imports and formatting optimizations.
2026-04-16 23:58:23 +02:00
0f6cb5243c feat: add pump corrosion protection feature, extend error handling for pump operations, and enhance configuration options 2026-04-16 21:56:46 +02:00
b740574c68 refactor: add timezone support to wait_infinity, improve MQTT updates in config mode, and minor cleanup 2026-04-16 20:42:08 +02:00
6a71ac4234 Improve flash operation logging and serialization padding
- Added detailed logging for flash write and erase operations.
- Ensured serialized save data is aligned to 4-byte boundaries.
2026-04-14 00:19:18 +02:00
Kai Börnert
8ce00c9d95 Refactor async logging to synchronous; improve error handling consistency across modules. 2026-04-13 17:03:47 +02:00
964bdb0454 fix: handle non-200 responses in config update, ensure progress removal runs only on success 2026-04-13 12:38:00 +02:00
12405d1bef cleanup 2026-04-12 22:15:52 +02:00
0e3786a588 Add InterceptorLogger for async log capturing and enhanced debugging
- Implemented `InterceptorLogger` to enable async and sync log capture.
- Integrated log interception for easier diagnostics and debugging.
- Allowed log redirection to serial output via `esp_println`.
2026-04-12 20:45:36 +02:00
b26206eb96 Introduce watchdog and serialization improvements
- Added watchdog timer for improved system stability and responsiveness.
- Switched save data serialization to Bincode for better efficiency.
- Enhanced compatibility by supporting fallback to older JSON format.
- Improved logging during flash operations for easier debugging.
- Simplified SavegameManager by managing storage directly.
2026-04-12 20:38:52 +02:00
95f7488fa3 Add save timestamp support and log interceptor for enhanced debugging
- Introduced `created_at` metadata for saves, enabling timestamp tracking.
- Added `InterceptorLogger` to capture logs, aiding in error diagnostics.
- Updated web UI to display save creation timestamps.
- Improved save/load functionality to maintain compatibility with older formats.
2026-04-11 22:40:25 +02:00
0d7074bd89 save tests 2026-04-11 21:34:48 +02:00
bc25fef5ec refactor: consolidate logging and time handling, remove TIME_ACCESS and LOG_ACCESS 2026-04-10 18:53:30 +02:00
301298522b remove: eliminate file management and LittleFS-based filesystem, implement savegame management for JSON config slots with wear-leveling 2026-04-08 22:12:55 +02:00
1da6d54d7a new backup adjustments 2026-04-06 19:51:46 +02:00
0ad7a58219 Improve error handling, ensure robust defaults, and eliminate unsafe unwraps/expectations across modules. 2026-04-06 15:26:52 +02:00
4d4fcbe33b store backup now in binary, and let backend serialize/deserialize 2026-04-05 13:30:11 +02:00
1fa765a5d8 adjust can to hopefull work better 2026-04-01 21:43:16 +02:00
eaa65637f1 Enhance error handling and robustness in TWAI-based sensor detection and moisture measurement. 2026-04-01 01:24:04 +02:00
f1dadd7e6e massivly reduce canbus speed 2026-03-31 18:24:23 +02:00
7121dd0fae Add silent mode for sensor detection and moisture measurement
- Introduced the `silent` parameter to prevent UI progress updates during automatic operations.
- Enhanced CAN robustness with improved bus-off management, retransmission settings, and jitter tolerance.
- Added auto-refresh functionality for plant moisture and sensor detection with configurable enablement.
2026-03-29 14:21:12 +02:00
4cf5f6d151 fix: correctly retrieve and display IP address for both IPv4 and IPv6 configurations 2026-03-27 20:45:24 +01:00
9de5236e65 fix tank sensor 2026-03-27 10:45:33 +01:00
abca324a67 fix website 2026-03-18 01:42:37 +01:00
57323bad55 Update OTA HTML to display multiple firmware states 2026-03-18 01:32:14 +01:00
086b0cbe4e Merge branch 'develop' of ssh://git.mannheim.ccc.de:1337/C3MA/PlantCtrl into develop 2026-03-18 01:25:29 +01:00
39e4e733f3 Fix ota, use MMU to determine running partition, use RMW wrapper for ota_data partition (littelfs handles this internally, so it was no problem prior) 2026-03-18 01:22:33 +01:00
66e1fe63e0 Revert "new ota logic"
This reverts commit c61a586595.
2026-03-17 22:17:47 +01:00
ce981232f0 Revert "Refactor OTA update handling and improve error reporting."
This reverts commit 7c128a27eb.
2026-03-17 22:17:32 +01:00
07cf97fffb Revert "Refactor OTA update handling and improve error reporting."
This reverts commit cca13f51d9.
2026-03-17 22:17:28 +01:00
cca13f51d9 Refactor OTA update handling and improve error reporting.
Added a CRC check to firmware uploads, streamlined OTA partition management, and replaced detailed slot states with a single unified state representation. Improved consistency in variable formatting, error handling, and code readability across multiple modules.
2026-03-17 22:16:39 +01:00
7c128a27eb Refactor OTA update handling and improve error reporting.
Added a CRC check to firmware uploads, streamlined OTA partition management, and replaced detailed slot states with a single unified state representation. Improved consistency in variable formatting, error handling, and code readability across multiple modules.
2026-03-17 22:16:31 +01:00
924a9ba228 add: script to erase OTA data using cargo espflash 2026-03-17 20:29:51 +01:00
a069888341 reboot after 5 times error code without powercycle 2026-03-17 19:59:55 +01:00
02c9486e98 canbus fix and ota adjustments 2026-03-15 20:28:53 +01:00