The problem I wanted to solve
Off-grid and hybrid solar setups fail quietly. A battery running low with no grid power available isn't dramatic until it's suddenly a real problem — lights out, equipment down, no warning beforehand.
Checking a solar monitoring app manually, repeatedly, isn't a sustainable habit. The information existed; it just wasn't reaching anyone at the moment it mattered.
What it actually produces
-
battery_alertAn alert that's hard to missBattery approaching critical with no grid backup available fires an immediate alert — Discord and email both.
-
solar_powerA quiet running scoreDaily grid deficit and peak vs off-peak purchases logged to a sheet — with end-of-day summaries for the whole billing cycle.
-
scheduleChecks that don't depend on memoryAn n8n workflow polls the Solarman API on a schedule, so nobody has to remember to open an app.
Three workflows, two speeds
The urgent one watches for exactly the combination that matters: battery running low while the grid has no electricity to fall back on. It reads the battery percentage and the grid-buy value from the Solarman API — if power were available from the grid, a low battery wouldn't be a crisis. When both line up badly, it fires a blunt Discord alert: turn off the AC and heavy load, before the battery gets dragged down further.
Then there are the two calmer, bookkeeping pipelines — each split into a logger and a reporter. One logs the daily grid deficit to a sheet and posts a nightly total for the billing cycle; the other logs peak-hour (6–10pm) versus off-peak purchases and reports the running split. Not urgent information — but exactly the kind of thing that's impossible to keep track of by memory, and expensive to discover only when the bill arrives.
How it feels to use
-
Set the conditionDefine what actually matters — battery level crossing critical with no grid backup.
-
Let it watchThe workflow polls the Solarman API on schedule, every day, without being asked.
-
Get alerted only when it mattersDiscord and email the moment the condition is met — silence the rest of the time.
Why this one is different
The shape of this workflow — poll an external API on a schedule, evaluate a condition, alert only when it matters — turned out to be reusable well beyond solar monitoring. The same skeleton, swapped to a different data feed and threshold, became the foundation for a crypto price-alert system and later an earthquake alert app.
Building one genuinely useful, narrow alert system properly is often more valuable long-term than it looks, because the architecture travels.