HEMS Controller

Optimize your battery based on electricity prices
Optimize your battery based on electricity prices

Read more ›

Supported devices

Flow cards

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

When...

HEMS Controller
HEMS: Charge battery — Battery
i
Charge the battery. Use the 'Recommended power' tag for charge rate.
HEMS Controller
HEMS: Discharge to cover house — Battery
i
Discharge to cover all or part of the house. Do not export to grid if household load is lower than recommended discharge power. Use the 'Recommended power' tag for discharge rate.
HEMS Controller
HEMS: Pause battery — Battery
i
Pause the battery. Do not charge or discharge.
HEMS Controller
HEMS: Charge with solar only — Battery
i
Charge battery using solar power only. Do not discharge.
HEMS Controller
HEMS: Sell to grid — Battery
i
Discharge battery to sell electricity to grid. Use the 'Recommended power' tag for discharge rate.
HEMS Controller
HEMS: Avoid power peak — Battery
i
Discharge to cover the entire household and prevent grid import. Do not export to grid. Use the 'Recommended power' tag for discharge rate.
HEMS Controller
HEMS: Prevent grid export — Battery
i
If possible, do not export to grid.
HEMS Controller
HEMS: Sell solar surplus — Battery
i
Sell solar surplus to the grid. The battery does nothing (no charge or discharge) — solar surplus flows automatically to the grid.
HEMS Controller
HEMS: Command or power changed — Battery
i
Triggers when HEMS changes command or its recommended power (e.g. from sellsolar to chargesolar, or a new power level for the same command).
HEMS Controller
HEMS: No change — Battery
i
Nothing has changed since last response. Keep current settings.
HEMS Controller
HEMS: Start EV charging — Car
i
HEMS wants to start charging. IMPORTANT: your 'Then' must do TWO things — first set the charging current to the 'Charging current (A)' tag, then start charging. If you skip the current step the charger keeps its previous setpoint and charges at the wrong current. Pick which car this flow controls — Car 1 = the same charger whose power you put in the EV charger 1 (W) field of the send card.
HEMS Controller
HEMS: Stop EV charging — Car
i
HEMS wants to stop charging your EV (e.g. target reached or expensive hours ahead). Pick which car this flow controls — Car 1 = the same charger whose power you put in the EV charger 1 (W) field of the send card.
HEMS Controller
HEMS: Charging current changed — Car
i
HEMS adjusted the charging current during an ongoing session (e.g. the house needs the power). Drag the 'New current (A)' tag into your charger's 'set current' card. Pick which car this flow controls — Car 1 = the same charger whose power you put in the EV charger 1 (W) field of the send card.
HEMS Controller
HEMS: Start load Load
i
HEMS wants to turn on a deferrable load (water heater, pool, etc.) you have configured in HEMS.
HEMS Controller
HEMS: Stop load Load
i
HEMS wants to turn off a deferrable load you have configured in HEMS.
HEMS Controller
HEMS: Connection lost
i
Triggered when no valid command has arrived for 3 minutes, or 5 consecutive API calls failed. Most common cause: a device or tag in your flow stopped delivering values (e.g. after an app update) — open your flow and check the tags in the send card. The HEMS server itself is rarely the problem. Use this to set a safe fallback for your battery.

And...

HEMS Controller
HEMS EV charging is active — Car
i
True while HEMS' latest declared state for the selected car is 'charge'. Use it to guard your charger: WHEN the box starts charging AND NOT [HEMS EV charging is active] THEN stop the box.
HEMS Controller
HEMS load Load is running
i
True while HEMS' latest declared state for the selected load is 'on'.
HEMS Controller
Battery number is Battery number
i
DEPRECATED for multi-battery setups — use the 'Battery' dropdown on the trigger card itself for reliable filtering. This condition card has a known race condition when multiple batteries trigger the same action simultaneously.
HEMS Controller
HEMS command is Action
i
Check if the current HEMS command matches the selected action.

Then...

HEMS Controller
Send to HEMS: Solar Solar production (W)W, Grid Grid power (W)W, Battery 1: Battery 1 SOC (%)% Battery 1 power (W)W, Battery 2: Battery 2 SOC (%)% Battery 2 power (W)W, Battery 3: Battery 3 SOC (%)% Battery 3 power (W)W, EV1: EV charger 1 (W)W, EV2: EV charger 2 (W)W
i
Send your values to HEMS and get back what the battery should do. Leave Battery 2/3 SOC empty if you only have one battery. Battery power is optional — if provided, send it for all batteries. EV charger power is optional — fill in one or two EV chargers if you have them.

Support

The developer of this app does not offer direct support.

What’s new

Version 1.16.0 — The 'Command changed' trigger card is now 'Command or power changed' — it fires both when HEMS switches command and when it changes the recommended power for the same command. Use this single card (with the 'Command' and 'Recommended power' tags) for a notification on every change, instead of collecting all the individual command cards into one flow (which made Homey show a duplicate tag per card). No change for flows already using the card.

View changelog

HEMS Controller

HEMS Controller is not compatible with the selected Homey.

HEMS Controller will install on Homey shortly.
Install App