Skip to content

Conversation

@hmbacher
Copy link
Contributor

@hmbacher hmbacher commented Oct 11, 2025

Hi @theelims, this is a summary of the rework I did to my fork:

  • Replaced svelte-dnd-list with svelte-dnd-action as svelte-dnd-list creates build warnings and appears to no longer be maintained, while svelte-dnd-action is under active community development

  • Created DraggableList component based on svelte-dnd-action (used in WiFi Settings)

  • Extended Collapsible and SettingsCard components to support a dirty status

  • Enhanced ConfirmDialog, InfoDialog and Toast components to support HTML content

  • Made Spinner component more flexible (to allow other texts than "Loading..." or no text at all)

  • Added connection check to WebSocket store (socket.ts)

  • Allow secure WebSocket connections

  • Fixed some Svelte warnings (in JS console)

  • Reworked WiFi Settings (Station) dialog: added edit dialog for networks, rearranged UI components, used new DraggableList component

  • Fixed preprocessor warning: usage of #ifdef with OR operator

  • Fixed preprocessor warning: redefinition of ESP_PLATFORM

  • Added a delayed reconnect function to WifiSettingsService.cpp to allow the last POST request from frontend (providing new network settings) to be properly responded to. In the previous implementation, the POST request was never responded to by the backend, as the connection was closed immediately upon receiving the request in the backend. This resulted in the user receiving no feedback about whether the settings update was successful, only a timeout that suggested something had gone wrong.

  • Fixed deprecated usage of merge-bin and its parameters in scripts/merge_bin.py

  • Added scripts/prebuild_utils.py that allows other build scripts to be executed depending on the type of the executed task (e.g. I don't want to have the interface built or the certificate bundle created on clean tasks)

hmbacher added 30 commits May 19, 2025 21:11
- 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
(cherry picked from commit bda977530a219d6f820a7dec7acd86008004d1ef)
# 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
@hmbacher hmbacher marked this pull request as draft October 11, 2025 11:23
@hmbacher hmbacher changed the title Replaced D'nD component, rework of network settings, enhanced a couple of UI components, Replaced D'n'D component, rework of network settings, enhanced a couple of UI components, some minor fixes Oct 11, 2025
@hmbacher hmbacher marked this pull request as ready for review October 11, 2025 11:31
@theelims
Copy link
Owner

Thank you so much! I'm on vacation this coming week and will test it next weekend.

@theelims theelims merged commit 616f186 into theelims:main Oct 17, 2025
JuergenLeber pushed a commit to JuergenLeber/ESP32-sveltekit that referenced this pull request Nov 2, 2025
…le of UI components, some minor fixes (theelims#100)

* first commit

* Implement fans configuration feature with UI and backend support

* feat: Add sensor management and control functionality

- 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.

* feat: Enhance temperature sensor handling with error tracking and event updates

* migrated from ESP32C3 to ESP32S3

* feat: Implement FFC MQTT Configuration and Alarm Logging

- 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.

* feat: Integrate alarm state management and update alarm handling in UI

* feat: Add RPM sensor functionality and integrate with fan controller

* feat: Refactor RPM sensor to include alarm service and enhance error handling

* feat: Implement sensor discovery functionality and update controller state management

* feat: Remove unused icons and configuration files; update logo in UI

* feat: Update navigation to settings page and enhance alarm display with ID

* feat: Enhance alarm notifications and add fan/temperature monitoring settings

* chore: Update TODO file for project organization and future tasks

* feat: Add configuration file and update PWM settings for fan control; enhance temperature sensor discovery logging

* - Removed obsolete (default) docs
- Changed to PCB v2.0 settings
- Updated version string

* chore: Add initial TODO file with features and known bugs

* Reworked network settings

* Fixed complier/IDE warnings

* Updated pioarduino platfom and switched to explicit versioning

* Cleanup up async worker

* Update development server configuration and dependencies

* Updated SSL cert creation config, updated pipeline scripts

* Fixed vite dev server issue

* Fixed bug if now handlers are passed

* Added coredump

* Finalized Wifi Sta settings

* Optimized dirty flag for SettingsCard and Collapsible

* Delete lib/framework/WWWData.h

* Fixed preprocessor directive

* Fixed makro redefinition

(cherry picked from commit bda977530a219d6f820a7dec7acd86008004d1ef)

* Enhanced logo visualization on login page and on main page

* Added $src path alias

* Added missing page.ts for Core Dump

* Changes to prevent Svelte warning 'binding_property_non_reactive'

* Fixed PSRAM chart creation

* Fixed PSRAM metric

* Implemented delayed wifi reconnect, to allow previous POST request to be successfull

* Optimized language

* Implemented draggable list with svelte-dnd-action

# Conflicts:
#	interface/src/routes/gateway/smoke-detectors/+page.svelte
#	platformio.ini

* Fixed overflow properties

# Conflicts:
#	interface/src/routes/gateway/smoke-detectors/+page.svelte

* Fixed Websockets implementation in frontend

* Changed drag & drop styling

# Conflicts:
#	interface/src/lib/components/DraggableList.svelte

* Fixed re-ordering of Smoke detectors

# Conflicts:
#	interface/src/routes/gateway/smoke-detectors/+page.svelte
#	src/GatewayDevicesService.cpp

* Cleanup up obsolete comments

* Show HTML in Info and Confirm dialog

* Removed deprecated commands in build script

* Enhanced execution of pre-build scripts

# Conflicts:
#	scripts/generate_enums.py

* Add print statements to indicate skipped execution for non-build tasks in scripts

# Conflicts:
#	scripts/generate_enums.py

* Latest Arduino

---------

Co-authored-by: elims <[email protected]>
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