-
-
Notifications
You must be signed in to change notification settings - Fork 123
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
Features proposal from @munzili #111
Comments
Hi, about SG state persistence, I think we should first ask ourselves if this is something needed and actually useful. |
I absolutely agree with you. I think prioritize them and break them in small PR is a good way. One big PR was not my final intention - just to show how it may work together :)
I think creating the UI/HTML and Webserver code is the easy part. Problem we may have is saving the configuration in the dynamic EEPROM. As far as i know, with the Arduino ESP32 lib the EEPROM is limited to 4kb. So it will not be possible to store the asltherma*.h definitions as currently are. Maybe we need to create for all known registers in the altherma*.h files, unique ID's and match them into a language id. For example: 1 = 0x10,0,217,1,-1 and in the definition files only use (based on correct model) On the WebUI the User could choose the Heat pump model and the register number he needs. So there will be only 1 byte stored for the model and 1 byte for each chosen register number.
A log and graph are also a nice idea for the WebUI. But we would need a place to store the data. EEPROM hasn't enough place for it and will overwrite it too often, i think.
Yea, cooling mode is correct :) Well, it depends on what you want to do. If you don't need smart grid and only want to switch the modes than this also can be done with the m5. Like me i only need the SG1, no need for SG2 - so i still can control heating, cooling and SG. Of course, if all is needed you need another board (like the ESP32-WROOM) with more GPIO. Will also be needed for CAN support i think - but that is another story.
Well, if we really get a WebUI for the settings, the setup.h and altherma*.h files don't need any modifications or copy anymore. So maybe the WebUI should be the priority instead of the modifications i did for the setup/settings. And you are right, most users will just download the zip from the repo.
As already mentioned, my basic idea was to implement the existing commands/protocols from the pyHSPU project as those are well tested already. I personally have a Rotex HSPU Compact 516 11kW from 2015. So i would connect the ESP32 with a CAN transceiver (https://www.amazon.com/SN65HVD230-Board-Connecting-Communication-Development/dp/B00KM6XMXO/) to the J13 connector. The informations there should be published to MQTT too and be configurable in the WebUI interface as well.
Good point. Maybe the SG persistence is realy obsolete. |
so, based on the feedback i started to cancel my current work and restarted it based on a webui with configs. When this update is done, other parts like CAN bus integration, ... can be done. I created another branch for this https://github.com/munzili/ESPAltherma/tree/feature-webui The current status is WIP!! The WebUI interface is 90% done an gives a preview how it will look and work - a lot of the backend work is still open. All the existing definitions files are redefined in a .json format. Its possible via the WebUI to Upload the needed definition file and use it to fetch the parameters. The end-user can than choose witch parameters to use. Also it will be possible to fetch all datas on the config page to give the end-user a preview of the datas, that will be fetched. Also custom parameters can be added or definition files be mixed. They will be stored on LittleFS Things Todo:
|
Good work @munzili! The definition files should go in json files (as you did) then parsed by ArduinoJSON lib. Same for the resulting configuration file, indeed all this stored in littlefs.
I would also gz compress all the html files, ESPAsyncWebServer serves them automagically, this should all fit nicely in a 4mb... |
Currently im rewriting the WebUI to allow choosing presets (light, normal, full, ...) which will be defined in the model's file. But its quit hard to tell what prams should go to light or normal. I could use some help/suggestions here per model. I rewrite the JSON model definitions to include those presets like: |
So, after some rework on the WebUI this is the current status. Everything should work already, just didn't connect it yet to the head pump for deeper testing. Will be the next step. Also still need some recommendation/help for defining the correct presets per model. All pins get preselected based on the ESP32 model, also only Pins are available that exists on the board. Defaults per board can be extra configured. Added possibility to choose a Wifi from a list in range instead of entering manually the SSID. Also, the HTML/JS is gziped and whole app uses about 60% of flash space (changed partition table). All parameters and config should be now UTF8 compliant. |
Hi @munzili I am pretty much interested in particular in your CAN bus proposal. |
Thx, at the moment I'm busy in my job and can't do much coding and testing right now. I hope i can continue with the project in a month or so |
Hi @munzili I guess the job still keeps you busy? |
So, i have updated the PR with my newst version. See PR for more infos |
@munzili started this #110 PR. I create this issue to discuss here the long feature list he's proposing.
Feel free to contribute to the discussion but please have a look at the PR #110 first
Thank you very much @munzili for starting this work.
There are some pretty nice things in there.
Before getting to the details, I would suggest first to agree on the changes by discussing it here.
Once we have the changes agreed on, prioritized and broken down in sets, we can work on them in small PRs.
I would much prefer this than a big one.
We can keep the breaking ones in a separate branch, yes.
Now just some quick feedbacks on the suggested improvements:
I like this very much but there is significant work to design the web UI with all the configuration we have. But many we can always query and return all possible values for a selected heat pump. This could be the v1 of the ESPAlthermaEasy.
The v2 would log and graph the data without the need for HomeAssistant...
Cooling mode I guess. Low on priority for me: it would however require one extra relay that cannot be supported by the m5 for something you'll do a couple of time per year. Plus, if the ESP is down the result can be unpredictable.
Ok, non breaking, quick win
Ok, non breaking, quick win
I understand the motivation behind this, it makes sense. I imagine that many users are at their technical limit with the configuration process. I doubt that they would actually clone the repo and git fetch new commits that are not bringing significant updates... Maybe I'm wrong but I imagine that most users are downloading the zip of the repo and it is then easier to edit 2 files than copying and editing. So I would make it low on the priority.
Ok, non breaking, quick win
That is a nice one definitely. I got myself a TTGO Can to play with the native CAN busses on the display pannel (not the P1P2). I expect we can find the same bus. But I have no time to explore so help will be greatly appreciated.
Ok, non breaking, quick win
I don't understand this one, I'll have a look at the code if you did it already.
I'll have a look at the code
The text was updated successfully, but these errors were encountered: