-
Notifications
You must be signed in to change notification settings - Fork 47
Rework of firmware upload #113
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
Open
hmbacher
wants to merge
69
commits into
theelims:main
Choose a base branch
from
hmbacher:firmware-update-ehancement
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+828
−199
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Implemented a new page for managing sensors in the frontend. - Created an EditSensor component for editing sensor details with validation. - Developed ControllerSettingsService to manage controller settings via HTTP endpoints. - Introduced FanController to handle fan control logic based on temperature readings. - Added OneWireESP32 library for interfacing with DS18B20 temperature sensors. - Implemented TempSensorsService to manage temperature sensors and their data acquisition. - Established persistence for sensor settings and states using file storage. - Enhanced error handling and logging throughout the services.
- Added FFCMqttConfig component for configuring MQTT settings. - Removed GatewayMQTTConfig component to streamline MQTT configuration. - Updated MQTT routing to use FFCMqttConfig. - Introduced new alarms page for managing alarm events. - Created backend services for alarm logging and MQTT settings. - Integrated alarm notifications via MQTT. - Enhanced temperature sensor service to publish alarms on sensor status changes. - Added utility functions for ISO 8601 date conversion. - Updated UI to include alarm log and relevant error handling.
… enhance temperature sensor discovery logging
- Changed to PCB v2.0 settings - Updated version string
# Conflicts: # .gitignore # README.md # factory_settings.ini # features.ini # interface/package-lock.json # interface/package.json # interface/src/app.css # interface/src/lib/DaisyUiHelper.ts # interface/src/lib/assets/logo.png # interface/src/lib/components/Collapsible.svelte # interface/src/lib/components/ConfirmDialog.svelte # interface/src/lib/components/InputPassword.svelte # interface/src/lib/components/SettingsCard.svelte # interface/src/lib/components/Spinner.svelte # interface/src/lib/components/UpdateIndicator.svelte # interface/src/lib/components/toasts/Toast.svelte # interface/src/lib/stores/analytics.ts # interface/src/lib/stores/socket.ts # interface/src/lib/types/models.ts # interface/src/routes/+layout.svelte # interface/src/routes/+layout.ts # interface/src/routes/+page.svelte # interface/src/routes/connections/mqtt/+page.svelte # interface/src/routes/connections/mqtt/MQTT.svelte # interface/src/routes/connections/ntp/NTP.svelte # interface/src/routes/login.svelte # interface/src/routes/menu.svelte # interface/src/routes/statusbar.svelte # interface/src/routes/system/metrics/BatteryMetrics.svelte # interface/src/routes/system/metrics/SystemMetrics.svelte # interface/src/routes/system/status/SystemStatus.svelte # interface/src/routes/system/update/GithubFirmwareManager.svelte # interface/src/routes/system/update/UploadFirmware.svelte # interface/src/routes/user/+page.svelte # interface/src/routes/user/EditUser.svelte # interface/src/routes/wifi/ap/Accesspoint.svelte # interface/src/routes/wifi/sta/Scan.svelte # interface/src/routes/wifi/sta/Wifi.svelte # interface/static/favicon.png # interface/static/manifest.json # interface/vite.config.ts # lib/PsychicHttp/src/PsychicCore.h # lib/PsychicHttp/src/PsychicEndpoint.cpp # lib/PsychicHttp/src/PsychicEndpoint.h # lib/PsychicHttp/src/PsychicHttp.h # lib/PsychicHttp/src/PsychicHttpServer.cpp # lib/PsychicHttp/src/PsychicStaticFileHander.cpp # lib/PsychicHttp/src/PsychicUploadHandler.cpp # lib/framework/APSettingsService.cpp # lib/framework/APSettingsService.h # lib/framework/APStatus.cpp # lib/framework/APStatus.h # lib/framework/AnalyticsService.h # lib/framework/ArduinoJsonJWT.cpp # lib/framework/ArduinoJsonJWT.h # lib/framework/AuthenticationService.cpp # lib/framework/AuthenticationService.h # lib/framework/BatteryService.cpp # lib/framework/BatteryService.h # lib/framework/DownloadFirmwareService.cpp # lib/framework/DownloadFirmwareService.h # lib/framework/ESP32SvelteKit.cpp # lib/framework/ESP32SvelteKit.h # lib/framework/ESPFS.h # lib/framework/EventEndpoint.h # lib/framework/EventSocket.cpp # lib/framework/EventSocket.h # lib/framework/FSPersistence.h # lib/framework/FactoryResetService.cpp # lib/framework/FactoryResetService.h # lib/framework/Features.h # lib/framework/FeaturesService.cpp # lib/framework/FeaturesService.h # lib/framework/HttpEndpoint.h # lib/framework/IPUtils.h # lib/framework/JsonUtils.h # lib/framework/MqttEndpoint.h # lib/framework/MqttSettingsService.cpp # lib/framework/MqttSettingsService.h # lib/framework/MqttStatus.cpp # lib/framework/MqttStatus.h # lib/framework/NTPSettingsService.cpp # lib/framework/NTPSettingsService.h # lib/framework/NTPStatus.cpp # lib/framework/NTPStatus.h # lib/framework/NotificationService.h # lib/framework/RestartService.cpp # lib/framework/RestartService.h # lib/framework/SecurityManager.h # lib/framework/SecuritySettingsService.cpp # lib/framework/SecuritySettingsService.h # lib/framework/SettingValue.cpp # lib/framework/SettingValue.h # lib/framework/SleepService.cpp # lib/framework/SleepService.h # lib/framework/StatefulService.cpp # lib/framework/StatefulService.h # lib/framework/SystemStatus.cpp # lib/framework/SystemStatus.h # lib/framework/UploadFirmwareService.cpp # lib/framework/UploadFirmwareService.h # lib/framework/WebSocketClient.bak # lib/framework/WebSocketServer.h # lib/framework/WiFiScanner.cpp # lib/framework/WiFiScanner.h # lib/framework/WiFiSettingsService.cpp # lib/framework/WiFiSettingsService.h # lib/framework/WiFiStatus.cpp # lib/framework/WiFiStatus.h # platformio.ini # scripts/build_interface.py # scripts/rename_fw.py # src/main.cpp
# Conflicts: # platformio.ini
# Conflicts: # interface/src/routes/gateway/smoke-detectors/+page.svelte # platformio.ini
# Conflicts: # interface/src/routes/gateway/smoke-detectors/+page.svelte
# Conflicts: # interface/src/lib/components/DraggableList.svelte
# Conflicts: # interface/src/routes/gateway/smoke-detectors/+page.svelte # src/GatewayDevicesService.cpp
# Conflicts: # scripts/generate_enums.py
…s in scripts # Conflicts: # scripts/generate_enums.py
Sync fork
Sync with 0.6.0
# Conflicts: # interface/src/routes/wifi/sta/Wifi.svelte
- Removed GithubUpdateDialog component and replaced it with FirmwareUpdateDialog for consistency. - Updated telemetry store to manage OTA status with additional fields: bytes_written and total_bytes. - Modified UpdateIndicator and UploadFirmware components to utilize the new FirmwareUpdateDialog and updated telemetry structure. - Enhanced UploadFirmwareService to emit detailed progress updates via WebSocket, including bytes written and total bytes. - Introduced validation for firmware chip type in UploadFirmwareService to ensure compatibility. - Improved error handling and user feedback during firmware upload processes. - Added new FirmwareUpdateEvents header for standardized WebSocket event names and structures.
- Removed GithubUpdateDialog component and replaced it with FirmwareUpdateDialog for consistency. - Updated telemetry store to manage OTA status with additional fields: bytes_written and total_bytes. - Modified UpdateIndicator and UploadFirmware components to utilize the new FirmwareUpdateDialog and updated telemetry structure. - Enhanced UploadFirmwareService to emit detailed progress updates via WebSocket, including bytes written and total bytes. - Introduced validation for firmware chip type in UploadFirmwareService to ensure compatibility. - Improved error handling and user feedback during firmware upload processes. - Added new FirmwareUpdateEvents header for standardized WebSocket event names and structures.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello!
The firmware upload user experience was quite basic, so I've significantly enhanced it with better validation, progress tracking, and error handling.
Unified Firmware Update Dialog
WebSocket Event Enhancements
EVENT_OTA_UPDATE) for both upload and download flowsbytes_writtenandtotal_bytesfor accurate progress trackingClient-Side Validation
.binand.md5files acceptedServer-Side Validation
Enhanced Error Handling
Some Refactoring
UploadFirmwareService(thread-safe implementation)request->_tempObject