Smart EMS

Energy Management System with pluggable orchestrators for solar, battery, EV and managed loads.
Energy Management System with pluggable orchestrators for solar, battery, EV and managed loads.

Read more ›

Supported devices

Flow cards

Click on a device above to show related Flow cards only.

When...

Grid Aware EMS
Turned on
Grid Aware EMS
Turned off
Grid Aware EMS
The power changed
Grid Aware EMS
Battery force-charge started
i
Fires the moment the 'Force battery charge now' button is pressed (or set to true via a flow). Use to send notifications, log to history, or chain other automations.
Grid Aware EMS
EV force-charge started
i
Fires the moment the 'Force EV charge now' button is pressed (or set to true via a flow). Use to send notifications, log to history, or chain other automations.
Grid Aware EMS
Mode changed
i
Fires on EVERY orchestrator mode transition, regardless of which mode. Use with the 'Mode is X' condition card to branch flexibly. For a simple 'changed to specific mode' flow, use the 'mode changed to ...' trigger instead.
Grid Aware EMS
State changed to State
i
Fires when the energy manager transitions into the chosen state (only on the actual transition, not on every evaluation). Use to drive solar-aware loads — e.g. start the boiler when state becomes 'Charging home battery'.
Grid Aware EMS
Solar curtailment started
i
Fires when the EMS starts limiting solar production (surplus with no destination and curtailment is on).
Grid Aware EMS
Solar curtailment stopped
i
Fires when the EMS stops limiting solar production and lifts the cap again.
Net Zero EMS
Turned on
Net Zero EMS
Turned off
Net Zero EMS
The power changed
Net Zero EMS
Mode changed
i
Fires on EVERY orchestrator mode transition, regardless of which mode. Use with the 'Mode is X' condition card to branch flexibly. For a simple 'changed to specific mode' flow, use the 'mode changed to ...' trigger instead.
Net Zero EMS
State changed to State
i
Fires when the energy manager transitions into the chosen state (only on the actual transition, not on every evaluation). Use to drive solar-aware loads — e.g. start the boiler when state becomes 'Charging home battery'.
Peak Shaving EMS
Turned on
Peak Shaving EMS
Turned off
Peak Shaving EMS
The power changed
Peak Shaving EMS
Mode changed
i
Fires on EVERY orchestrator mode transition, regardless of which mode. Use with the 'Mode is X' condition card to branch flexibly. For a simple 'changed to specific mode' flow, use the 'mode changed to ...' trigger instead.
Peak Shaving EMS
State changed to State
i
Fires when the energy manager transitions into the chosen state (only on the actual transition, not on every evaluation). Use to drive solar-aware loads — e.g. start the boiler when state becomes 'Charging home battery'.
Peak Shaving EMS
New monthly peak reached
i
Fires when a completed quarter-hour sets a new highest grid-import peak for the current calendar month. The new peak (W) is available as a token.
Smart Charging EMS
Turned on
Smart Charging EMS
Turned off
Smart Charging EMS
The power changed
Smart Charging EMS
EV force-charge started
i
Fires the moment the 'Force EV charge now' button is pressed (or set to true via a flow). Use to send notifications, log to history, or chain other automations.
Smart Charging EMS
Mode changed
i
Fires on EVERY orchestrator mode transition, regardless of which mode. Use with the 'Mode is X' condition card to branch flexibly. For a simple 'changed to specific mode' flow, use the 'mode changed to ...' trigger instead.
Smart Charging EMS
State changed to State
i
Fires when the energy manager transitions into the chosen state (only on the actual transition, not on every evaluation). Use to drive solar-aware loads — e.g. start the boiler when state becomes 'Charging home battery'.
Smart Charging EMS
Solar curtailment started
i
Fires when the EMS starts limiting solar production (surplus with no destination and curtailment is on).
Smart Charging EMS
Solar curtailment stopped
i
Fires when the EMS stops limiting solar production and lifts the cap again.
Smart EMS
Error occurred
i
Fires when the app or any device logs an ERROR-level event. Use to wire mobile push, timeline notifications, etc.

And...

Grid Aware EMS
Is turned on
Grid Aware EMS
EV is charging from surplus
i
True when the orchestrator currently dispatches surplus to the EV (auto_w > 0). Reflects real-time decision, not just charger state.
Grid Aware EMS
Vehicle leaves today (auto-inzet)
i
True when auto-inzet mode is set (typically by the 22:00 prompt flow). Drives all surplus to EV until departure.
Grid Aware EMS
Vehicle is home
i
True when the orchestrator's auto_thuis flag is set (typically driven by the BEV-Presence flow).
Grid Aware EMS
Battery is charging from surplus
i
True when the orchestrator currently dispatches surplus to the home battery (batterij_w > 0).
Grid Aware EMS
Battery saving is active
i
True when battery is in 'saving' mode (set by planner when SOC is below backup-min+10%, prevents discharging until reserve recovered).
Grid Aware EMS
Today is a sunny day
i
True when today's solar forecast covers ≥70% of expected consumption (set by day planner at 23:50, can be overridden by middag planner at 12:00).
Grid Aware EMS
Expensive hours are active
i
True when the orchestrator's expensive-hours flag is set (typically driven by the Smart EMS - Controller flow on the dynamic price feed).
Grid Aware EMS
Expensive hours (now) is active
i
True when the energy manager is currently treating this hour as expensive — the conclusion from the linked day-ahead price device (or your manual override on top). Use this to know 'are we in expensive hours right now', independent of the override toggle.
Grid Aware EMS
State is State
i
True when the energy manager is currently in the chosen state. Use as AND-condition in any flow.
Grid Aware EMS
Solar curtailment is active
i
True when the EMS is currently limiting solar production.
Net Zero EMS
Is turned on
Net Zero EMS
Battery is charging from surplus
i
True when the orchestrator currently dispatches surplus to the home battery (batterij_w > 0).
Net Zero EMS
State is State
i
True when the energy manager is currently in the chosen state. Use as AND-condition in any flow.
Peak Shaving EMS
Is turned on
Peak Shaving EMS
Battery is charging from surplus
i
True when the orchestrator currently dispatches surplus to the home battery (batterij_w > 0).
Peak Shaving EMS
Expensive hours are active
i
True when the orchestrator's expensive-hours flag is set (typically driven by the Smart EMS - Controller flow on the dynamic price feed).
Peak Shaving EMS
Expensive hours (now) is active
i
True when the energy manager is currently treating this hour as expensive — the conclusion from the linked day-ahead price device (or your manual override on top). Use this to know 'are we in expensive hours right now', independent of the override toggle.
Peak Shaving EMS
State is State
i
True when the energy manager is currently in the chosen state. Use as AND-condition in any flow.
Peak Shaving EMS
Peak shaving is shaving a peak now
i
True when the home battery is currently discharging to shave a grid-import peak below the target quarter-hour average.
Smart Charging EMS
Is turned on
Smart Charging EMS
EV is charging from surplus
i
True when the orchestrator currently dispatches surplus to the EV (auto_w > 0). Reflects real-time decision, not just charger state.
Smart Charging EMS
Vehicle leaves today (auto-inzet)
i
True when auto-inzet mode is set (typically by the 22:00 prompt flow). Drives all surplus to EV until departure.
Smart Charging EMS
Vehicle is home
i
True when the orchestrator's auto_thuis flag is set (typically driven by the BEV-Presence flow).
Smart Charging EMS
Today is a sunny day
i
True when today's solar forecast covers ≥70% of expected consumption (set by day planner at 23:50, can be overridden by middag planner at 12:00).
Smart Charging EMS
Expensive hours are active
i
True when the orchestrator's expensive-hours flag is set (typically driven by the Smart EMS - Controller flow on the dynamic price feed).
Smart Charging EMS
Expensive hours (now) is active
i
True when the energy manager is currently treating this hour as expensive — the conclusion from the linked day-ahead price device (or your manual override on top). Use this to know 'are we in expensive hours right now', independent of the override toggle.
Smart Charging EMS
State is State
i
True when the energy manager is currently in the chosen state. Use as AND-condition in any flow.
Smart Charging EMS
Solar curtailment is active
i
True when the EMS is currently limiting solar production.

Then...

Grid Aware EMS
Turn on
Grid Aware EMS
Turn off
Grid Aware EMS
Toggle on or off
Grid Aware EMS
Run midday correction
i
Run the midday planner: re-evaluate strategy based on actual yield + remaining forecast. Schedule e.g. at 12:00.
Grid Aware EMS
Build day plan
i
Run the day planner: read forecast + weather + soc and store the strategy. Schedule e.g. at 23:50 to plan tomorrow.
Grid Aware EMS
Mark auto-inzet mode Status
i
Set by your 22:00 prompt flow when vehicle leaves tomorrow. Forces all surplus to EV (threshold=margin), skips battery, BOOST always on.
Grid Aware EMS
Mark vehicle Status
i
Set by your presence flow (AI camera, BEV plug-in detect). Affects margin (75W home / 25W away) and whether auto-first path is open.
Grid Aware EMS
Mark battery sparing Status
i
Block battery from receiving surplus (e.g. reserved for upcoming expensive evening).
Grid Aware EMS
Mark expensive hours Status
i
Set by your price-flow (ENTSO-E, SmartLoading, custom). When active and battery SOC is below threshold, surplus is blocked.
Grid Aware EMS
Discharge battery into car Status
i
Manually discharge the home battery into the EV (plus solar surplus) to make headroom before leaving or a sunny day. Never exports; stops at the battery floor or when the car leaves / is full.
Grid Aware EMS
Run wake-up check
i
Runs the morning recheck: closes night-precharge if SOC reached target, recalculates saving, applies wait-for-sun rule before EV charging. Trigger from your wake-up flow.
Grid Aware EMS
Re-evaluate now
i
Trigger an immediate orchestrator tick (not waiting for the next interval). Use to react to P1 / solar threshold events for sub-tick latency. Safe to call frequently.
Grid Aware EMS
Set EV target SOC to Target SOC%
i
Override the EV target SOC the day planner uses. Typical use: 22:00 prompt flow sets it based on tomorrow's plan (e.g. 75% summer-trip, 85% winter-trip, 55% summer-home).
Grid Aware EMS
Set battery backup minimum SOC to Backup minimum SOC%
i
Override the battery backup minimum SOC. Below backup_min + 10% the orchestrator parks the battery (idle, no anti-feed). Typical use: temporarily lower (to 9%) during auto-away dagen so anti-feed can run deeper.
Grid Aware EMS
Turn solar curtailment Status
i
Enable or disable solar curtailment (limiting production when surplus has nowhere to go).
Net Zero EMS
Turn on
Net Zero EMS
Turn off
Net Zero EMS
Toggle on or off
Net Zero EMS
Re-evaluate now
i
Trigger an immediate orchestrator tick (not waiting for the next interval). Use to react to P1 / solar threshold events for sub-tick latency. Safe to call frequently.
Net Zero EMS
Set battery backup minimum SOC to Backup minimum SOC%
i
Override the battery backup minimum SOC. Below backup_min + 10% the orchestrator parks the battery (idle, no anti-feed). Typical use: temporarily lower (to 9%) during auto-away dagen so anti-feed can run deeper.
Peak Shaving EMS
Turn on
Peak Shaving EMS
Turn off
Peak Shaving EMS
Toggle on or off
Peak Shaving EMS
Mark expensive hours Status
i
Set by your price-flow (ENTSO-E, SmartLoading, custom). When active and battery SOC is below threshold, surplus is blocked.
Peak Shaving EMS
Re-evaluate now
i
Trigger an immediate orchestrator tick (not waiting for the next interval). Use to react to P1 / solar threshold events for sub-tick latency. Safe to call frequently.
Peak Shaving EMS
Set battery backup minimum SOC to Backup minimum SOC%
i
Override the battery backup minimum SOC. Below backup_min + 10% the orchestrator parks the battery (idle, no anti-feed). Typical use: temporarily lower (to 9%) during auto-away dagen so anti-feed can run deeper.
Peak Shaving EMS
Set target monthly peak to Target monthly peak W
i
Change the peak-shaving target (the monthly grid-import peak the strategy tries to stay under). Handy to raise it in winter for heavy-use days, or lower it when you can spare the battery. Never applied below the peak floor.
Smart Charging EMS
Turn on
Smart Charging EMS
Turn off
Smart Charging EMS
Toggle on or off
Smart Charging EMS
Run midday correction
i
Run the midday planner: re-evaluate strategy based on actual yield + remaining forecast. Schedule e.g. at 12:00.
Smart Charging EMS
Build day plan
i
Run the day planner: read forecast + weather + soc and store the strategy. Schedule e.g. at 23:50 to plan tomorrow.
Smart Charging EMS
Mark auto-inzet mode Status
i
Set by your 22:00 prompt flow when vehicle leaves tomorrow. Forces all surplus to EV (threshold=margin), skips battery, BOOST always on.
Smart Charging EMS
Mark vehicle Status
i
Set by your presence flow (AI camera, BEV plug-in detect). Affects margin (75W home / 25W away) and whether auto-first path is open.
Smart Charging EMS
Mark expensive hours Status
i
Set by your price-flow (ENTSO-E, SmartLoading, custom). When active and battery SOC is below threshold, surplus is blocked.
Smart Charging EMS
Run wake-up check
i
Runs the morning recheck: closes night-precharge if SOC reached target, recalculates saving, applies wait-for-sun rule before EV charging. Trigger from your wake-up flow.
Smart Charging EMS
Re-evaluate now
i
Trigger an immediate orchestrator tick (not waiting for the next interval). Use to react to P1 / solar threshold events for sub-tick latency. Safe to call frequently.
Smart Charging EMS
Set EV target SOC to Target SOC%
i
Override the EV target SOC the day planner uses. Typical use: 22:00 prompt flow sets it based on tomorrow's plan (e.g. 75% summer-trip, 85% winter-trip, 55% summer-home).
Smart Charging EMS
Turn solar curtailment Status
i
Enable or disable solar curtailment (limiting production when surplus has nowhere to go).

Widgets

You can add this app’s widgets to your dashboard or homescreen in the mobile app.

EMS — Battery fleet (live)
EMS — Battery fleet (live)
EMS — Day plan
EMS — Day plan
Energy Flow
Energy Flow
Energy Flow — 24h
Energy Flow — 24h
Energy Flow — Day view
Energy Flow — Day view
Energy Flow — Hour patterns
Energy Flow — Hour patterns
EMS — Inverter fleet (live)
EMS — Inverter fleet (live)
EMS — Decision timeline
EMS — Decision timeline

Support

Having an issue with this app? Contact the developer via the developer website.

What’s new

Version 1.4.1 — Fix: in the app's Settings › tick log, a long mode name (like 'no destination') no longer overflows its column and overlaps the surplus value — the Mode column is a touch wider and clips cleanly, with the full name shown on hover.

View changelog

Smart EMS

This app can manage your entire Homey.

Smart EMS is not compatible with the selected Homey.

Smart EMS will install on Homey shortly.
Install App