Epilykos Wiki
Settings

Notifications

Alerts and reports by push, Telegram, Discord, ntfy or webhook.

Settings → Notifications lets Epilykos tell you when something needs your attention, and send you regular reports. Messages can go to your phones and computers, Telegram, Discord, ntfy or a webhook. Only the admin can see this section, and bot tokens, webhook addresses, authorisation headers and push keys are all stored encrypted.

It works in two parts: first set up at least one channel (where messages go), then add rules (what to send, and when).

The General and Push devices cards in Settings → Notifications

General

  • Send notifications switches everything on or off in one go.
  • Quiet hours hold back everything except critical alerts; more on that below.
  • Dashboard address for links: messages on Telegram, Discord, ntfy and webhooks include a link to this address. Leave it empty if you don't want a link.

Channels

ChannelHow to set it up
Push to devicesNotifications on the phones, tablets and computers where you switch push on. One channel can reach all of them or just the ones you pick.
TelegramMessage @BotFather, send /newbot and paste the token it gives you. Then send your bot a message (or add it as an admin of your channel or group and post something there) and press Find chat.
DiscordPaste a channel's webhook address. You can have it Mention @here on critical alerts.
ntfyUse ntfy.sh or your own ntfy server, with the ntfy phone app. Switch on Server is on my local network if your server is at home.
WebhookEach alert is sent as JSON to Home Assistant, n8n, Node-RED or a script of your own, optionally with an authorisation header.

Every channel has a test button, so you can check it before relying on it.

Push needs HTTPS

Push notifications only work when Epilykos is on an https:// address. Tailscale and Cloudflare Tunnel both give you one; see Network and remote access. On iPhone and iPad, add Epilykos to the Home Screen first; see Install as an app.

Telegram commands

Switch on Answer commands in this chat and you can ask the bot for /status, /today, /yesterday or /forecast whenever you like. It only answers in that chat.

Webhook payload

The JSON includes source, title, message, severity, tag, url and timestamp, plus either event or rule.

Rules

You can start from a ready-made rule or build your own:

Ready-made ruleWhat it does
Grid outageTells you when the grid goes off. It's critical, so it gets through quiet hours.
Grid restoredTells you when the grid comes back, and how long it was off.
Battery lowWarns you when the battery stays under 20% for 5 minutes.
Source offlineTells you when a source stops answering, and when it's back.
Data stopped updatingWarns you when a metric hasn't had a new value for 15 minutes.
Forecast unavailableTells you when Solcast or Open-Meteo can't be reached.
Evening summarySends today's solar, usage, grid and savings at 21:00.
Low solar tomorrowWarns you in the evening when tomorrow looks poor.

For each rule you choose which channels it uses and how serious it is: Critical, Warning or Info.

Metric rules

A metric rule watches one reading. It can fire when the reading goes above, below or equal to a value (text works too, such as a grid status of off), when it changes, or when it hasn't updated for a number of minutes. You can fine-tune it with:

  • For at least (minutes), so short spikes don't set it off;
  • Resolve margin, how far the reading has to come back before the alert clears (an alert for "below 20" with a margin of 5 clears above 25);
  • a "back to normal" message when it clears;
  • Remind me every (minutes) for as long as it lasts;
  • a cooldown, so you aren't told about the same thing over and over.

Event rules

An event rule waits for something to happen. It can watch one event, or a whole group with a wildcard such as source.*:

EventWhen it happens
grid.offThe grid status metric went off.
grid.onThe grid came back; the message says how long the outage lasted.
source.offlineA source failed to answer 3 times in a row.
source.onlineA source that was offline answered again.
mqtt.disconnected / mqtt.connectedThe connection to an MQTT broker dropped, or came back.
pvoutput.alertPVOutput sent an alert to the webhook.
forecast.unavailableSolcast (for example because its daily allowance ran out) or Open-Meteo couldn't be reached.
backup.snapshot_failedThe daily database snapshot couldn't be written.
backup.snapshot_overdueThere's no recent automatic snapshot.
update.availableA newer Epilykos build is out. You're told once per build.
system.startedEpilykos started, after an update, a reboot or a crash.

Scheduled reports

A scheduled report arrives at a set time on the weekdays you choose. It can be:

  • a daily energy summary, for today or yesterday;
  • the solar forecast, for tomorrow or today, optionally only when it's below a number of kWh (a handy "poor solar day ahead" warning);
  • the live status.

Scheduled reports are sent during quiet hours too.

Quiet hours and history

During quiet hours, everything except critical alerts waits until they're over. Every message that was sent is listed under History.

Epilykos remembers what's firing, the cooldowns and when each report last went out, even across restarts, so a restart won't repeat an alert or send a report twice.

Last updated on

On this page