Ah, OK. It works perfect so far!
If you ever need someone who is testing things on this board, don’t hesitate to write me 
Thank you so much!
Cheers
serdal
Ah, OK. It works perfect so far!
If you ever need someone who is testing things on this board, don’t hesitate to write me 
Thank you so much!
Cheers
serdal
I will have some updates for you in the coming weeks,
A way to set and read the charging voltages
A way to set and read the cutoff and turn on voltage
5v output sleep for power saving
And a coulomb counter to monitor battery state
Later I will count discharge cycles to various states of discharge to predict expected battery life cycles and also look into some sort of efficiency calculation
Are you able to provide a graph of the temperatures from your device?
Here is an example from mine, this is 3 days at 20s samples with a 5piont moving average applied. Im interested to see the offset between battery and processor during charging/non charging conditions. also did you move the battery sensor to the battery or is it still on the main board?
I have thermal taped the temp sensor to the middle of the battery and covered over it with insulating material on the outside, hence the rapid changes from rain/wind gusts have less effect (even though they are in a sealed enclosure)
Sorry for the delay,
weekend without tech-stuff 
I didn’t attached the temperature sensor to the battery yet.
Next weekend I have access to the charger again and will try to provide graphs to you.
Cheers
Even without it on the battery is it offset?
I’ve got just a graph for two days. At night time the microcontroller shuts down and no data is collected.
Irrigator bme temp is located on the microcontroller sub-board which is in the same housing as the other temp sensors at this moment.
Hi Serdal, or any one else that wants to give it a go,
I have made some changes to my code, latest available here https://github.com/Hootie81/esphome/tree/main/external_components/mppt
The updated code has a few more sensors… mostly diagnostic ones, but a useful coulomb counter updating every 1s, and I use this to calculate battery state of charge. Its not perfect as there is some charging efficiency losses etc, but gives a good idea. there is also a battery full binary sensor, its looking at a few things to guess when the battery is full. I will use this to reset the coulomb counter (currently there is a service exposed to reset it, but later I want to make this smarter)
to calculate the battery level you will need to input how many coulombs your battery is. mine is a 9Ah battery, so I did 9x3600 to change it to As, and put the result as a negative (-32400) in the calibrate linear filter for the battery level, if you have a 7ah it will be -25200.
I’ve also added a service to sleep the device (turns off the 5v output of the charger) for a given amount of time, and it can also be used as a watchdog, just kick it every now and then, if it doesnt get kicked within the sleep_delay time it will sleep for the time set in the sleep_time. also setting the enable bool off will disable the watchdog. all 3 parameters need to be set at the same time, however when disabling the watchdog it doesnt matter what value you enter for the sleep_time or sleep_delay. this could be useful if you have another device running off the 5v output that you need to reboot
there is also some hard coded parameters in the yaml file for the bulk/float charge voltages and low battery power off/on voltages. If they are not set in the yaml they will default to the chargers normal values. Note: the values in the yaml file on github are slightly different to the defaults, I have reduced the float charge voltage by 25mV and upped the low battery cutoff from 11.5v to 11.7v… trying to make the battery last a tad longer.
due to the number of sensors and the fast polling rate for the coulomb counter sometimes its hard to flash OTA, there is a safemode switch which will reboot the ESP into safemode for updating.
Hi Chris,
sounds great. I will test is the next days.
I moved the battery temperature sensor to the casing of the battery a few days ago, so it shows different values than the charger temperature sensor. I already had a temperature sensor in the casing of my circuitry, so there are three values to compare.
These are the values of the last three days, maybe it’s informative…
Dear Chris,
thank you for publishing your code!
I have two makerPowerSolar running since the Crowdfunding: I must say they are running very reliable! This is great work by danjulio, who also provided awesome support.
I want to change my Arduino-based setups to esphone soon, so your code will help alot to facilite this ![]()
Best wishes
they are very reliable, its been kinda set and forget with it. my old charger i had loads of issues with batteries going flat all the time and i had no idea why.
i really like watching the stats of how much it discharges overnight and how quickly it gets up to full voltage during the day. sometimes we have 4 days of bad weather and it drops right down but the low voltage cutout kicks in, then it charges right back up and everything just comes back to life
one of the best features is to be able to reboot the device connected to it. I have a weather station and a Jomjol ai on the edge watermeter running off the 5v output, and there has been quite a few times where its locked up during an update and a reboot has managed to bring it back to life. there is a service you can call to use the watchdog to reboot…
the esphome component itself is well overdue an update, the voltage setting part no longer works since the number component came out… and i really want to include the charging efficiency into the calculation for the battery level, there is a bit of a difference between whats used vs whats put back in to charge it up! problem is I work fifo and I’m away from home 75% of the time… so hobbies are unfortunately taking a backseat. and i seem to spend more time fixing things after updates than making progress… spent most of yesterday getting half my house back online after my router decided not to use its allocation tables and revert its dhcp to the full range!