Closed dalathegreat closed 1 week ago
Although it would probably require a serious amount of work at first, maybe it's worth considering implementing all these as ESPHome components.
ESPHome is a very well designed, extremely modular environment. It natively supports CAN and Modbus as frameworks, adding discrete devices on top of these is pretty straightforward. Has webserver support, MQTT fully customizable. Easier to maintain on long term.
Although it would probably require a serious amount of work at first, maybe it's worth considering implementing all these as ESPHome components.
ESPHome is a very well designed, extremely modular environment. It natively supports CAN and Modbus as frameworks, adding discrete devices on top of these is pretty straightforward. Has webserver support, MQTT fully customizable. Easier to maintain on long term.
Feel free to fork it there! I personally dont use MQTT or Webserver, I focus mainly on getting a stable and reliable way to re-use the batteries.
Although it would probably require a serious amount of work at first, maybe it's worth considering implementing all these as ESPHome components.
ESPHome is a very well designed, extremely modular environment. It natively supports CAN and Modbus as frameworks, adding discrete devices on top of these is pretty straightforward. Has webserver support, MQTT fully customizable. Easier to maintain on long term.
I want to do a small test with ESPhome soon - I already have some of the Tesla M3 battery protocol decoded via ESPhome, mainly just need to emulate the BYD HV protocol - any interest in helping with that @nagyrobi ? I don't think it will be particularly hard and could be done all in YAML, or via an external component. We probably should start another thread on the discord or somewhere else to discuss this though.
For this commit I fully support removing as many #ifdef blocks as possible from the code base :).
Somehow getting the dual batteries to not require doubling the Tesla.cpp file would be a huge improvement too eventually. Probably by making everything classes etc.
Somehow getting the dual batteries to not require doubling the Tesla.cpp file would be a huge improvement too eventually. Probably by making everything classes etc.
This is on my TODO list, I really want to refactor the battery handling as a class (which would get rid of duplicate code). But a bit too much for this PR :)
any interest in helping with that @nagyrobi
Sure!
What
This PR implements simplified webserver & battery/inverter integrations
Why
To simplify further development and make scaling the software up easier
How