-
-
Notifications
You must be signed in to change notification settings - Fork 107
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
Add option for auxiliary port #127
Comments
EMS-ESP is open-source so we welcome any new additions. The idea of exposing one of the GPIOs in the WebUI is a good idea (we need to vote on what to call it though!) and also having a list of configurable actions like your 'pool circulation pump'. There is already a The pump stop delay - is that just a time for switching between on and off? I would like to see some of the code - is it at https://github.com/Sunbuzz/EMS-ESP32/tree/PumpSwitch ? @MichaelDvP what do you think? |
The pump delay is how long the circulation should stay on after the heatpump stopped heating the pool. No, PumpSwitch was a first draft, I'll push the branch now, it's called "ft_aux" |
No, this was someone other here. But i have a 3-way-valve for solar heating in the backflow that is now controlled by a tasmota wifi-plug depending on emsesp-values (2 dallas sensors and mixer pump). This is a bit to special for the aux-function. But for easy configurable actions i like the idea. |
@proddy Did you have any chance to look at the code? |
@Sunbuzz not yet, will get it this weekend. I need to finish off some other bugs and changes first |
@Sunbuzz I had a look at the code, looks like a solid implementation that's follows the design patterns of EMS-ESP. Perhaps a few minor changes here and there but we can work on those later. One thing worth changing though is the setting "aux_pump_delay" to something generic like "aux_parameter". That way we can extend the Aux functionality to any custom classes which accepts a customizable setting parameter. So please go ahead and create a PR under the nice work! |
@proddy I think the pump_delay is only for this specific function (see here). For other fuctions a parameter can be renamed and use other value range or value type. @Sunbuzz Have you tested the function? I think that reading the For all these functions we need a good documentation what the fuction and the parameter do. I think it's not self explaining. |
yes, to do this elegantly I was thinking of a plugin type architecture where these aux_functions are simple C++ interfaces in a |
@MichaelDvP yes, I have tested it, and it works as supposed. I noticed a while ago that the boiler keeps a mirror of this telegram in the logs, it is not true for all the telegrams tho, I have found several telegrams in the mixer that is not listed, and they do not have a mirror in the boiler. But since 5BA is mirrored, I thought using it was a better idea then try to get the value from the mixer class, since I use it in the boiler class.
|
@Sunbuzz this is going to be a major new feature if we end up implementing it differently. So could you push the PR to the ft_aux branch instead of dev? |
Sure, I just made a PR agains dev, but I can remove it and make a new one. |
How do we proceed from here? |
continue architecting a plugin sub-system where custom functions can be dropped in, as we talked about earlier. The work will be a major change (so not for v3.2) and can be done in this branch. I won't have time just now because I'm working first on the other features. |
Could just the hardware hooks go in EMS-ESP and leave all the automation (delays, logic etc.) in the connected system (HA, Domoticz etc.)? I'm assuming most people have the gateway connected to something else which can do all the logic and then keep the gateway implementation really simple. Would that speed delivery and make it more flexible going forward? If you were really concerned about reliability, you could loop the output of the aux port, or what it's controlling, back into the ADC input (or, better, a binary input) so that, having issued the aux port command, you get feedback to confirm it's happened, as you would in an industrial SCADA system. |
having the trigger logic and actions outside EMS-ESP is a better idea and use a home automation system (or node-red). This is why I'm still thinking what to do. |
@Sunbuzz in the latest v3.4 we introduced Analog sensors with 3 types (digital read, ADC read and an I/O counter). Could this be extended to your use case? Would we need to add a 'poll frequency' for example? |
I was looking through Sunbuzz's code again and it's pretty nifty. There's a new class PoolPump which has its own timers plus he's extended the heatpump entities by adding HpPoolStatus. @MichaelDvP is this something we should add, following the same design, or could it somehow be merged into our new analogsensor class since it uses a GPIO with a timer. @Sunbuzz are you still using this? |
Good idea to add this setting as a gpio function in the customization. The pump delay can send via the sensor.offset. |
The main reason I got into this project, was to be able to control my pool circulation pump. I needed a signal from the heatpump when the pool was actually heating, so that I could turn the circulation pump off, the pool circulation pump is about 1kW and I thought it was unnecessary to keep it on 24h a day when the heatpump only heats about 2h a day.
I have this system all set up on a custom forked branch, but I was thinking on making it available to everybody.
The Gateway E32 (which I use) have an auxiliary GPIO port (32) just above the ESP32 chip, and the Gateway S32 has one too (GPIO 22 I think).
I have made it so that you can edit the aux GPIO in the interface, and choose what function it should cater to, thinking others may use this port for something else in the future. I have attached a "pool circulation pump" option with functionality.
If you think this is a good Idea -
I have made a clean branch based on "dev" and I am wondering if you want me to create a pull request.
The text was updated successfully, but these errors were encountered: