Sunsynk Energy Bot
Watches a solar inverter and messages you in plain English when something needs attention.

Overview
A monitor that keeps an eye on a Sunsynk solar inverter. It tracks the battery, the load, and the grid, and sends a clear message when something needs you. So you manage your energy from a notification instead of staring at a dashboard.
The problem
Inverter dashboards are dense, and you only look at them after something has already gone wrong. The raw numbers are hard to act on unless you're checking them all the time.
What's actually useful is a timely nudge you can understand: charge now, load too high, grid is down. Sent to where you already are.
The solution
The bot polls the inverter on a schedule, checks the state against a set of rules, and sends a message with what's happening and what to do about it. The thresholds are tuned so it doesn't cry wolf, and a daily summary rolls up how the system did.
It runs on its own without much minding. Timeouts, retries, and backoff mean a flaky connection doesn't turn into a missed alert or a hammered API.
Architecture
A scheduled poller reads the inverter, a small rules engine checks the state, and a notifier sends the message.
- Polls on a schedule with timeouts, retries, and backoff
- Rules tuned to keep the noise down
- Messages you can read and act on, with a suggested next step
- A daily summary of how the system performed
Screens & diagrams
Key features
Messages that mean something
Tells you what's happening and what to do about it, not just a number.
Doesn't cry wolf
Tuned thresholds and debouncing keep it from spamming you.
Daily summary
A short recap of what you generated, used, and how the battery held up.
Runs on its own
Backoff and retries keep it reliable even when the network isn't.
Implementation highlights
- Built the polling with backoff and jitter so it respects the inverter's API and rides out an outage.
- Made the thresholds configuration, so they change without touching code.
- Debounced the alerts to stop the flapping notifications you get around a threshold.
Challenges solved
Signal over noise
Debouncing and a bit of hysteresis around the thresholds turned a firehose of alerts into the handful that matter.
An API that isn't always up
Backoff and caching kept the bot dependable even when the endpoint had a bad day.
Technologies
Future improvements
- Suggest when to charge based on the weather forecast
- Handle more than one inverter
- A history view for the trends over time