Skip to content
EN | DE

Notifications

Notifications keep you up to date about your charging sessions, e.g. via Telegram, Pushover, ntfy or email. You choose which events trigger a message and can customise title and content with placeholders. Configuration is done via Configuration → Notifications.

Services

Under Services, add one or more of the services listed below.

Events

Messages can be sent for the following events:

EventFires when …
startcharging starts
stopcharging finishes
connecta vehicle is connected
disconnecta vehicle is disconnected
socthe vehicle state of charge changes
guestan unknown vehicle is detected
asleepa vehicle does not charge despite charge release
planoverruna charging plan is projected to miss its target

Each event has a title and a message. Both can be customised with placeholders.

Message Format

Message with simple syntax, e.g. for the stop event:

${title}: ${vehicleTitle} charged ${chargedEnergy:%.1fk}kWh in ${chargeDuration}.
Solar share: ${sessionSolarPercentage:%.0f}%

The same message with Go template syntax, with calculations (e.g. converting W to kW) and conditions:

{{.title}}: {{round (divf .chargedEnergy 1000) 1 }} kWh in {{.chargeDuration}}.
Solar share: {{round .sessionSolarPercentage 0 }}%
{{- if .sessionPrice}}
Cost: {{round .sessionPrice 2 }} {{.currency}} ({{round .sessionPricePerKWh 2 }} {{.currency}}/kWh)
{{- end}}

Placeholders

Titles and messages can use variables to display evcc information. There are two syntax options, which can also be combined:

  • Simple: ${variableName}, e.g. ${vehicleTitle}. Optionally with formatting like ${pvPower:%.1fk}: besides the usual printf specifiers, the suffix k divides the value by 1000 (e.g. Wh → kWh). Durations like ${chargeDuration} render rounded to whole seconds (e.g. 1h23m4s).
  • Go template: {{.variableName}} — enables calculations, conditions, and sprig functions.

Available Variables

The available variables correspond to the data from the REST API. When sending a message, the data of the triggering loadpoint and the global data are merged into a flat structure. This means both global values (e.g. pvPower, grid.Power) and loadpoint-specific values (e.g. mode, chargedEnergy, vehicleTitle) are directly accessible. Nested values like grid.Power or battery.Soc are only accessible with the Go template syntax; the capitalised field names are required there.

Commonly used loadpoint variables:

  • title: Loadpoint name
  • loadpoint: Loadpoint number 1, 2, …
  • mode: Charge mode off/now/minpv/pv
  • charging: Charging active
  • enabled: Charging enabled
  • connected: Vehicle connected
  • chargedEnergy: Energy charged in session in Wh
  • chargeDuration: Charging duration
  • chargePower: Current charge power in W
  • connectedDuration: Connection duration
  • chargeRemainingDuration: Remaining charge time until target
  • chargeRemainingEnergy: Remaining energy until target in Wh
  • phasesActive: Currently active phases
  • vehicleTitle: Vehicle name
  • vehicleName: Technical vehicle name
  • vehicleSoc: Vehicle state of charge in %
  • vehicleRange: Vehicle range in km
  • vehicleOdometer: Odometer reading in km
  • sessionSolarPercentage: Solar share of charging session in %
  • sessionPrice: Cost of charging session
  • sessionPricePerKWh: Average price per kWh
  • sessionCo2PerKWh: Average CO₂ emissions per kWh
  • planActive: Charge plan active
  • smartCostActive: Smart cost charging active

Commonly used global variables:

  • siteTitle: Name of the evcc instance
  • pvPower: Current solar power in W
  • homePower: Current home consumption in W
  • grid.Power: Grid import (+) / export (−) in W
  • battery.Power: Battery power in W
  • battery.Soc: Battery state of charge in %
  • currency: Tariff currency
  • tariffGrid: Current grid price per kWh
  • tariffFeedIn: Feed-in tariff per kWh
  • tariffCo2: Current CO₂ intensity
  • statistics.<period>.*: Charging statistics for the periods 30d, 365d, thisYear, and total (avgCo2, avgPrice, chargedKWh, solarPercentage)

The complete list of all available fields can be found in the API response at http://evcc.local:7070/api/state.

Both syntaxes work in the title and message fields of the UI. Configuration via evcc.yaml is described in the messaging reference.