Huge release, made possible with loads of testing by @austrisv and myself across two different continents and coordinated on the discord channel. Big changes are:
- 📡 OTA Updating! There's now two methods:
- via the [ip]/update page (or via curl command)
- via loading from a http web server, initiated by the
update=
command. Can be sent, as always, via serial or http, and now via MQTT (see below!)
- 🎙 Ability to send commands via the MQTT /cmd topic. For example on linux/mac:
mosquitto_pub -L 'mqtt://myuser:mypassword@localhost/solar/mppt/cmd' -m version
- 🌲 new
log()
function instead of printf. Sends to serial and to MQTT db. Allows you to see state changes, errors, etc, remotely. - 🌎 Now state-driven, can look at the
state
to see if the battery is:- in
mppt
mode, limited because the battery is fullfull_cv
, current limited by configurationcapped
,off
,sweeping
, running incollapsemode
(see below), or having issues witherror
state.
- in
- 🥣 Serial buffering for the CLI interface. Now it'll let you type-in input when using miniterm/screen/etc.
- 🌥 New collapse-mode that will allow passthrough power from your panel to battery when that's the best option for the most power. Very useful on foggy/cloudy days, early/late in the day, or when there are lots of shadows on your panel.
- New
currFilt
variable that shows a slowly filtered current value, this is used to restore from collapses much faster (and sent to mqtt for pretty charts) - 🔒 Added in mutex locking for shared resources so random reboots aren't a thing anymore. Days of uptime.
- Added an
uptime
command. 😎
- Added an
- New backoff functionality that stops polling the DROK so frequently at night and when it's disconnected.
- 🧹 Sweep now far more robust, detects full batteries, current caps, collapse-mode, and won't auto-run when not needed.