Skip to content

Configuration from Web Browser#73

Open
sebcaps wants to merge 35 commits intotspopp:mainfrom
sebcaps:ApiStyle
Open

Configuration from Web Browser#73
sebcaps wants to merge 35 commits intotspopp:mainfrom
sebcaps:ApiStyle

Conversation

@sebcaps
Copy link

@sebcaps sebcaps commented Mar 30, 2025

This PR cancel and replace #71.
Even the purpose is the same, implementation is different and use a rest API architecture for better/easier extensibility.
Other changes are :

Copy link
Owner

@tspopp tspopp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall this looks very solid 👍 I have not installed this yet, but will most probably try it out the next days. There are a few spelling things which we can resolve later. I did a first review of the code and I believe I like what I see and how you added this to the codebase.

I think we should prepare this PR to remove the entire Configuration from the firmware, so we will be able to provide firmware images which does not contain any custom configuration.

Still, I do not undestand the need for the javascript and the css files. If you could provide some quick explanation and background and maybe why you chosen that, would be very helpful.

Actually I thought about going along with https://github.com/tzapu/WiFiManager. What was the reason for not taking this library into accout?

sebcaps and others added 2 commits March 31, 2025 22:46
Co-authored-by: Thomas Popp <66408890+tspopp@users.noreply.github.com>
@sebcaps
Copy link
Author

sebcaps commented Mar 31, 2025

Hello,
All comments taken into account.
Actually, I did not know WifiManager and so recreate a similar and light implementation for wifi settings. (eg no static IP...)
From what I see it can handle more parameter than just wifi.
Well let's say I somehow reinvented the wheel.

@sebcaps sebcaps requested a review from tspopp March 31, 2025 21:19
tspopp and others added 15 commits April 9, 2025 08:48
…popp#75)

* fix(next): fix heating element enabled switch

* chore(version): bump version to v1.7.1
* added a guide inside of HOMEASSISTANT.md` to setup a climat entity

* added custom climate card showcase images

* Updated HOMEASSISTANT.md with 3 showcase images from ./img
…heatpumps

The mLastStateUpdate variable was declared as time_t (signed integer)
while being compared with millis() return values (unsigned long). This
caused incorrect behavior after millis() exceeded the maximum signed
integer value (2,147,483,647ms / ~24.8 days), causing time updates to
stop being sent.

Changed mLastStateUpdate to unsigned long to match the type returned by
millis() and ensure proper overflow handling in time comparisons.
@sebcaps
Copy link
Author

sebcaps commented Dec 21, 2025

Hello, any chance for this PR to be merged ? ;-)

@tspopp
Copy link
Owner

tspopp commented Dec 21, 2025

First I think you need to rebase. I am quite open to merge this, but as suggested I think it would be nice to get rid of the entire configuration.h file. Don't you agree? I thought maybe you will go in that direction, but you were running into an "out of time" error ;)

@sebcaps
Copy link
Author

sebcaps commented Dec 22, 2025

Hello,
I rebase my code to comply with all the improvements. Actually I did not implement all parameters on purpose.
Some as MQTT_FILTER_TEMPERATURE, KALMAN_MEA_E.... sound to me quite unusual to be redefined.
Anyway, I will add them and propose a complete interface to avoid manual manipulation of configuration.h file.

@tspopp
Copy link
Owner

tspopp commented Jan 18, 2026

Hey, sorry for the long delay, been quite busy these days. I try go give this a test run soon and provide comments.

@phil-schneider
Copy link
Contributor

I think this would be a real changer for this project.
People would not need to checkout git, compile themself and so one.
Currently every user needs to compile it themself.
With this: The user can upload a precompiled version. And then adjust the settings via a webinterface.
Simular to WLED.

@sebcaps
Copy link
Author

sebcaps commented Jan 18, 2026

New version with all the parameters in progress
image
image
image
image

Almost good from a web / api perspective.
Will need more testing from esp32 perspective. Not a precise idea on how-to without connecting to a real device.
In addition I think it would be good to clamp some parameter like Kalman filter params, update intervalls; but no clue on limits.

Any hints about these two points ?

@tspopp
Copy link
Owner

tspopp commented Jan 19, 2026

Will need more testing from esp32 perspective. Not a precise idea on how-to without connecting to a real device.

Have not looked yet into the code, but if you can move all the business logic unrelated to the Arduino framework into a separate internal library, you can use the native platformio environment to write and run unittests. I did the same for a few protocol test I needed to write back then. Maybe this helps?

In addition I think it would be good to clamp some parameter like Kalman filter params, update intervalls; but no clue on limits.

Maybe me make these kalman parameters just const, not changeable through the web-if. Only very advanced users will change them anyway. What do you think?

@sebcaps
Copy link
Author

sebcaps commented Jan 25, 2026

Will need more testing from esp32 perspective. Not a precise idea on how-to without connecting to a real device.

Have not looked yet into the code, but if you can move all the business logic unrelated to the Arduino framework into a separate internal library, you can use the native platformio environment to write and run unittests. I did the same for a few protocol test I needed to write back then. Maybe this helps?

Will have a look to unittests, hope I'll manage to handle them...

In addition I think it would be good to clamp some parameter like Kalman filter params, update intervalls; but no clue on limits.

Maybe me make these kalman parameters just const, not changeable through the web-if. Only very advanced users will change them anyway. What do you think?

Actually, I added all parameters from Configuration.h (except WATCHDOG_TIMEOUT_MS, WIFI_RECONNECT_CYCLE_S, MQTT_MAX_TOPIC_SIZE, MQTT_MAX_PAYLOAD_SIZE which are unlikely to change) to almost remove the entire Configuration from the firmware.
I will re-add MQTT_FILTER_TEMPERATURE_NOISE, KALMAN_MEA_E, KALMAN_EST_E and KALMAN_Q.

Do you envision any other settings that are not very relevant from web config ?

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.

feature request: Web interface

6 participants