You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HomeFlux EMS — Complete User Manual
Version covered: HomeFlux EMS 0.7.15
Language: English
Purpose: Complete setup, operation and Flow-card reference for batteries, PV, tariffs, planning, Autotune, Hybrid EMS, EV charging, HVAC and water heating.
What HomeFlux EMS does
HomeFlux EMS is an energy-management layer for Homey. It does not require one specific battery, inverter, EV charger, HVAC brand or boiler. Instead, it receives measurements through Homey Flows, makes an energy decision, and publishes commands back through Flow cards.
The basic control loop is:
Measure — grid power, PV power, battery SoC, EV state, temperatures, prices and forecasts are sent to HomeFlux.
Plan — HomeFlux calculates how much battery energy should be kept, when grid charging is useful, how much solar energy is still expected and which flexible loads can run.
Decide — the EMS chooses a mode and a target action while enforcing SoC limits, Peak Guard, tariff rules and device constraints.
Control — Flow triggers publish battery, EV, PV, HVAC and boiler commands.
Verify — the P1/grid measurement is the main real-world feedback for power balance and Peak Guard.
HomeFlux is intentionally configurable. You decide how conservative or aggressive it may be, which tariffs may charge a battery or EV, which SoC reserves must be kept, whether low-PV days should trigger Battery Save, and which devices may use surplus PV.
Before you start
2.1 Minimum useful inputs
For battery control, HomeFlux should normally receive:
Grid power in watts.
Battery SoC for every configured battery.
Battery command output connected to the real battery control Flow.
For forecast-aware planning, also provide:
PV power in watts.
Remaining PV forecast for today in kWh.
Tomorrow's PV forecast in kWh.
For dynamic pricing, provide either:
Homey Energy price data, or
an external full price curve through the corresponding Flow card.
A current price alone can be used as fallback information, but a complete hourly or 15-minute curve is needed for price-based planning.
2.2 Sign conventions
Use these conventions consistently:
Value Positive Negative
Grid power Import from grid Export to grid
Battery command / external battery power Battery discharging Battery charging
PV power Positive generation Not normally used
Export price Revenue received for export Cost paid for export
Example:
P1 reports +1,200 W → the home is importing 1.2 kW.
P1 reports -850 W → the home is exporting 850 W.
Battery command +2,000 W → discharge battery at 2 kW.
Battery command -2,000 W → charge battery at 2 kW.
If a device uses the opposite battery sign convention, invert the value in the Flow that connects HomeFlux to that device.
Recommended basic Flow setup
The cleanest setup is to separate inputs to HomeFlux from outputs from HomeFlux.
3.1 Grid power input
Whenever your P1 meter or grid meter changes:
When
Your P1/grid power changes
Then Set grid power → send the current grid power in watts
Positive = import, negative = export.
This is one of the most important inputs in the entire EMS. Peak Guard, self-consumption regulation, Hybrid EMS verification and several EV decisions depend on it.
3.2 Battery SoC input
HomeFlux can request SoC itself:
When Request Battery SoC is needed → select the configured battery
Then
Read the battery SoC and call Set battery SoC for that same battery.
The request is generated periodically and at startup for configured batteries.
You may also push SoC whenever the battery reports a new value. The important part is that HomeFlux receives current, trustworthy SoC data.
3.3 Battery output
For a normal battery API:
When Battery commands are updated
Then
Send the Battery 1 / Battery 2 / ... command token to the corresponding battery.
The generic output supports up to eight batteries.
Important:New battery setpoint calculated is a preview/diagnostic card. It fires when the controller calculates a new target, before the minimum command interval decides whether that target may actually be published. Do not use it as the primary battery-control output. Use Battery commands are updated or the split-command cards.
3.4 Batteries that require separate mode and power commands
Enable Split Command for that battery.
HomeFlux then provides four generic per-battery triggers: Battery: switch to charge mode Battery: switch to discharge mode Battery: charge power is updated Battery: discharge power is updated
When a direction switch is allowed, HomeFlux sends the mode first and waits 1 second before publishing the power command. This is useful for battery/inverter APIs that cannot safely accept a mode change and a power change simultaneously.
3.5 PV power input
When Request PV power is needed
Then
Read the current inverter/PV production and call Set PV power.
HomeFlux requests this every 15 seconds and at startup.
3.6 PV forecast inputs
For the remaining production today:
When Request forecast is needed
Then
Retrieve your forecast for remaining PV production today and call Set remaining PV forecast.
For tomorrow:
When Tomorrow PV forecast is needed
Then
Retrieve tomorrow's expected total PV production and call Set tomorrow PV forecast.
Both requests are generated every 30 minutes and at startup.
Do not send a static full-day forecast as the “remaining today” value. HomeFlux expects that value to decrease during the day as predicted production is consumed by time.
Battery configuration
HomeFlux supports 0 to 8 batteries. With zero batteries, EV, Peak Guard-related EV protection, HVAC, boiler and price logic can still be used, while battery planning and battery commands are skipped.
4.1 Capacity
The configured capacity is the total usable battery capacity used by the planner.
HomeFlux currently uses one combined capacity value rather than a separate capacity per battery.
If all batteries have similar capacity, this is straightforward. For strongly mixed battery sizes, remember that Battery Balance is based on SoC difference, not on kWh capacity.
4.2 Minimum SoC
Minimum SoC is the absolute lower boundary.
Normal strategies should not deliberately discharge below their operational reserve. Peak Guard, however, may use the battery below Safety SoC when necessary, down to Minimum SoC.
HomeFlux never intentionally discharges below the configured Minimum SoC.
4.3 Safety SoC
Safety SoC is the normal operating reserve.
It is used as a lower boundary for ordinary self-consumption and planning. Think of it as the amount of battery energy HomeFlux normally protects for uncertainty.
Example:
Minimum SoC: 10%
Safety SoC: 20%
Normal self-consumption stops around 20%, but Peak Guard may still use the 20% → 10% reserve if required to protect the grid-import limit.
4.4 Maximum SoC
Maximum SoC is the hard upper charging boundary used by HomeFlux.
4.5 Battery Save discharge floor
Battery Save has its own discharge floor.
Example:
Safety SoC = 20%
Battery Save discharge floor = 70%
When Battery Save is active, ordinary household consumption will normally not pull the battery below 70%. The stored energy is preserved for later.
There is an important exception: Battery Save with “discharge to forecast target”, described in detail in section 8.
4.6 Charge and discharge power limits
Configure the maximum total charging and discharging power that HomeFlux may request.
You can also configure per-battery limits. If one battery reaches its individual limit, HomeFlux can redistribute the remaining command to other available batteries.
4.7 Direction test and control lock
HomeFlux can require a direction confirmation before full battery control is allowed. The test verifies that the configured sign convention actually causes:
a small charge, and
a small discharge.
This prevents an inverted integration from turning a requested charge into a discharge or vice versa.
Multiple batteries and Battery Balance
5.1 How normal power is distributed
HomeFlux starts by dividing a group command across the available batteries. It does not weight the distribution according to each battery's kWh capacity yet.
Battery Balance can then modify the distribution based on SoC difference:
a lower-SoC battery receives relatively more charging power;
a higher-SoC battery receives relatively more discharging power.
Individual charge/discharge power limits are respected and residual power can be redistributed.
A battery with missing or stale SoC is excluded from SoC-based control until valid data returns.
5.2 Important limitation with very different capacities
Suppose you have:
Battery 1: 40 kWh
Batteries 2–5: 5 kWh each
Battery Balance sees SoC percentages, not stored kWh. The system is therefore not capacity-weighted yet. It can reduce SoC drift between batteries, but it cannot mathematically treat the 40 kWh unit as eight times the capacity of a 5 kWh unit.
For similarly sized batteries this is normally fine. For extreme mixed-capacity systems, validate the behaviour with real measurements before relying on Battery Balance as a capacity-balancing mechanism.
5.3 Battery Balance warning
The trigger Battery Balance warning fires when the SoC spread continues to grow while balancing is active. You can use this to notify yourself when the battery group is not responding as expected.
Grid control and self-consumption
6.1 Zero-grid regulation
During normal self-consumption HomeFlux uses the P1 measurement to move grid power toward the configured control band.
Instead of constantly chasing exactly 0 W, you can configure a lower and upper zero-grid boundary. If the grid measurement leaves that band, HomeFlux aims for the midpoint.
This reduces unnecessary command chatter.
6.2 P1 averaging
The controller can use either the latest P1 value directly or an average of recent samples. Supported averaging windows include the latest 3, 5, 7 or 10 inputs.
A longer window is calmer but reacts more slowly. A shorter window reacts faster but may chase short spikes.
When PV changes sharply, HomeFlux can temporarily favour the newest live grid value so it does not react to an outdated average.
6.3 Control profile
The battery control profile changes how strongly HomeFlux reacts:
Quiet — approximately 65% response
Normal — approximately 85% response
Exact/Aggressive — 100% response
The calmer profiles reduce oscillation on slower battery systems.
6.4 Command deadband and timing
HomeFlux avoids sending tiny battery corrections when the difference is below the configured command deadband.
It also enforces a minimum interval between normal battery commands. This protects batteries and APIs that dislike rapid writes.
An adaptive control mechanism can detect repeated large command swings and adjust the large-setpoint handling accordingly.
EMS modes
The Flow action Set EMS mode can force a mode. Automatic returns control to HomeFlux planning.
7.1 Automatic
HomeFlux chooses the appropriate strategy from:
tariff rules;
forecast;
calculated target SoC;
low-PV policy;
planned charging windows;
current battery SoC;
Peak Guard;
active EV demand;
other configured priorities.
For everyday use, this is normally the preferred mode.
7.2 Self consumption
HomeFlux tries to minimize normal grid exchange:
surplus PV charges the battery;
household import can be supported by battery discharge;
Safety SoC and planning floors are respected;
Peak Guard still has higher priority.
7.3 Battery Save
Battery Save preserves stored energy by restricting normal discharge.
The battery can still:
absorb real PV export;
respond to Peak Guard;
optionally discharge down to the calculated forecast target if that feature is enabled for the current tariff/class.
This last option is one of the most useful ways to make Battery Save intelligent rather than static. See section 8.
7.4 Avoid grid import
This mode uses available battery energy to prevent or reduce grid import, subject to the applicable SoC floors and safety rules.
In tariff policy, Avoid grid import has strong priority. If it is enabled for a tariff, HomeFlux will not simultaneously treat that tariff as a planned grid-charging period.
7.5 Forced charge
Forced charge requests charging at the available configured charging power.
The command is still bounded by:
battery maximum SoC;
battery power limits;
valid measurements;
Peak Guard.
“Forced” does not mean safety limits are disabled.
7.6 Standby
Standby requests true zero battery output.
Unlike the other active modes, Standby does not automatically use the battery to absorb PV export. Use Standby when you genuinely want HomeFlux battery control inactive at 0 W.
7.7 Planned grid charging
Planned grid charging is an automatic/internal mode. It is entered when the active tariff/price window permits charging and the battery is below the planner target.
It is not the same as Forced Charge: planned charging is part of the forecast and tariff strategy and stops when its target or eligible window is satisfied.
Battery Save that may still discharge to the forecast target
This is an important HomeFlux concept.
A static Battery Save rule can be too conservative. Imagine that you normally want to keep 70% in the battery on a poor solar day. Tomorrow, however, the forecast says enough solar will arrive to refill the battery. Holding 70% all night would leave too little empty capacity for tomorrow's PV.
HomeFlux can therefore combine:
Battery Save, and
Discharge to forecast target.
8.1 Example
Configuration:
Minimum SoC: 10%
Safety SoC: 20%
Battery Save floor: 70%
Current battery SoC: 75%
Tomorrow's solar forecast allows the planner to calculate a target SoC of 40%
For the active tariff/class, Battery Save on low PV is enabled
For that same tariff/class, Discharge to forecast target is enabled
Result:
HomeFlux is in Battery Save because the low-PV policy says energy should normally be preserved.
The planner sees that tomorrow's PV should be able to refill part of the battery.
Instead of protecting the static 70% Battery Save floor, HomeFlux allows ordinary discharge down to 40%.
At 40%, normal discharge stops.
If Peak Guard later needs more power, it can still use the protected reserve down toward Minimum SoC.
So Battery Save does not have to mean “freeze the battery at 70%”. It can mean:
Save the amount of energy that is actually needed, but create enough free capacity for expected solar energy.
8.2 Safety SoC still wins
If the calculated forecast target were only 15% while Safety SoC is 20%, HomeFlux uses 20% as the normal lower boundary.
8.3 Seasonal minimum SoC still wins
If the active seasonal minimum is 50%, a calculated forecast target below 50% does not reduce the battery below that seasonal floor.
The seasonal minimum is a floor, not an extra amount added on top of the calculated requirement.
8.4 Where to enable it
Depending on contract type, you can allow Battery Save and “discharge to forecast target”:
globally/per relevant option for a fixed contract;
per tariff for a time-of-use contract;
per cheap/normal/expensive price class for a dynamic contract.
This allows very different policies. For example, you can preserve the battery during an expensive evening tariff, yet still let it fall to the planner's target before a sunny next day.
Forecast planning
9.1 Two forecast concepts
HomeFlux uses forecasts in two ways:
Full-day expectation — useful for deciding whether a day qualifies as low-PV or sunny.
Remaining production — useful for determining how much energy the battery still needs to carry forward.
The “remaining today” input should therefore truly represent the remaining solar energy from now until the end of the solar day.
9.2 Day planning
Day planning becomes relevant once PV production is present.
The planner combines:
expected non-EV energy need;
remaining PV forecast;
usable battery capacity;
Minimum/Safety/Maximum SoC;
seasonal minimums;
current SoC.
It calculates the battery target needed to bridge the expected energy gap without unnecessarily filling the battery before solar arrives.
9.3 Night planning
After PV has remained very low for the configured/end-of-solar logic, HomeFlux switches to night planning. If no reliable solar-end moment is available, a fallback evening time is used.
Night planning uses tomorrow's forecast and aims toward the configured morning target time, typically around the start of the day.
9.4 Seasonal minimums
You can define different battery minimums for selected winter months and for the other/summer months.
The planner first calculates what is actually needed from the technical/normal lower basis. Then the active seasonal minimum acts as a lower floor: final target = max(calculated target, active seasonal minimum)
The seasonal minimum is not added to the calculated need.
If the setting to apply seasonal minimums at night is disabled, the night planner does not use those seasonal floors.
9.5 Charge-plan Flow Charge plan is updated publishes:
plan text;
target SoC;
current SoC;
charge window;
planning PV forecast.
This is useful for dashboards, notifications or Logic variables.
Low-PV strategy
The Low-PV threshold tells HomeFlux when expected solar production is low enough to activate the configured low-PV strategy.
For each relevant tariff/class you can decide whether a low-PV day should:
activate Battery Save;
allow discharge to the forecast target.
This makes the policy contextual. A low-solar day does not have to behave the same during every tariff.
10.1 Sunny-day override
Forecasts are not perfect. HomeFlux can detect that a supposedly poor solar day is actually doing well.
If battery SoC remains above the configured “sunny day” threshold for the required time, HomeFlux can latch the current day as effectively sunny and disable low-PV Battery Save for the rest of that day.
The forecast value itself is not rewritten. HomeFlux simply overrides the low-PV behaviour based on real-world evidence.
Autotune
Autotune learns from the actual installation and can suggest safer or better technical values.
It is intentionally permission-based: a suggestion can be shown without allowing HomeFlux to change that parameter automatically.
11.1 Confidence
Autotune attaches a confidence percentage to recommendations. The user chooses the minimum confidence required before automatic management may act.
11.2 User limits
For parameters under automatic management, the user can set allowed minimum and maximum values. Automatic changes remain inside those bounds.
A deliberate manual Apply now action is a user decision and can be used to try a recommendation even when it is outside the automatic range.
11.3 Technical parameters
Autotune can learn parameters such as:
battery command deadband;
zero-grid band;
P1 averaging window;
adaptive large-setpoint threshold/window;
battery command interval;
PV-delta sensitivity;
PV command interval;
Battery Balance deadband and strength;
EV timing/feedback parameters and mode-current estimates.
Technical parameters are rate-limited so they do not continuously chase short-term noise.
11.4 Planning parameters
Autotune can also learn planning-oriented values such as:
Low-PV threshold;
expected energy need;
Battery Save discharge floor;
sunny-day SoC/time settings.
These are changed much more slowly than technical controller values.
11.5 The 20% SoC rule
For two important planning parameters, an upward adjustment now requires evidence of a real energy shortage:
Expected energy need
Autotune may only increase the expected energy need if at least one usable learning day actually dropped below 20.0% average battery SoC.
Exactly 20.0% does not count.
If the battery never fell below 20%, HomeFlux has no evidence that more stored energy was really necessary.
It may still reduce an overly conservative value when the historical data supports that.
When automatic management of expected energy need is allowed, the user can also set the desired battery target SoC used by this learning logic. The default is 95%, bounded by the battery's configured SoC limits.
Low-PV threshold
The same protection applies when Autotune wants to raise the Low-PV threshold.
A higher threshold makes HomeFlux classify more days as “low PV”, so it should only become more conservative when the battery has actually shown evidence of shortage.
Autotune may therefore:
raise the Low-PV threshold only after a usable day dropped below 20% SoC;
lower an overly high threshold without requiring a low-SoC event.
This prevents the Low-PV threshold from slowly creeping upward simply because of normal forecast variation.
Peak Guard
Peak Guard is a high-priority safety layer that limits grid import to the configured maximum.
12.1 During battery charging
If grid import approaches the limit, HomeFlux first reduces battery charging power.
If that is not enough, it can stop charging and, when required and allowed, move toward discharge.
12.2 During EV charging
Peak Guard reduces EV current or charging permission before allowing the grid connection to exceed the configured import limit.
For mode-controlled chargers, HomeFlux can move through the available modes or stop the charger depending on the configured integration.
12.3 During Battery Save
Peak Guard has higher priority than the Battery Save discharge floor. It may use the battery below that floor and below Safety SoC if required, but never below Minimum SoC.
This distinction is deliberate:
Battery Save is an energy strategy.
Peak Guard protects an electrical/grid limit.
12.4 Condition card
Use Peak Guard is actively limiting when you want other Homey Flows to react to an active intervention.
PV export limiting / inverter curtailment
HomeFlux can reduce inverter output when unwanted grid export would otherwise occur.
13.1 PV limit output PV power limit is updated provides:
PV limit percentage;
target PV power;
curtailed power;
minimum export buffer;
predicted grid power after the limit.
Map the percentage to the inverter's power-limit control.
100% means unrestricted.
HomeFlux does not command below 10%.
13.2 Minimum export buffer
A small intentional export buffer can prevent the controller from oscillating around exactly zero export.
13.3 Battery SoC threshold before curtailment
When batteries are present, HomeFlux can wait until battery SoC is above the configured threshold before curtailing PV. Below that threshold, full PV remains available so the battery can absorb surplus energy.
With no batteries configured, the battery-SoC requirement is naturally not applicable.
Electricity contracts and tariff behaviour
HomeFlux supports fixed, time-of-use and dynamic strategies.
14.1 Fixed contract
Configure the relevant import/export prices and the fixed charging policy/window.
Low-PV Battery Save and forecast-target discharge can still be used.
14.2 Time-of-use contract
Define tariffs and weekly time blocks.
For each tariff, HomeFlux can independently determine policies such as:
planned battery charging on weekdays/weekends;
charge during night/day/always/never;
Avoid grid import;
Low-PV Battery Save;
discharge to forecast target;
EV charging permission;
EV PV/grid supplementation policy.
This is useful for three-period contracts where, for example, the night tariff may charge the battery, the normal tariff may favour self-consumption, and the peak tariff may avoid grid import.
Priority note
If Avoid grid import is enabled for a tariff, HomeFlux treats that as the stronger policy. It will not simultaneously use that tariff for planned battery grid charging.
14.3 Dynamic contract
HomeFlux classifies current price slots using the configured number of cheapest and most expensive hours/periods.
Depending on your settings:
cheap slots can be used for planned grid charging;
normal periods can use battery self-consumption or Battery Save;
expensive periods can favour battery discharge/avoid import;
Low-PV rules can be configured per price class.
If no usable full price curve is available, HomeFlux does not invent price-based charging/discharging decisions. PV capture and Peak Guard can continue.
14.4 External price inputs
Available actions include: Set external electricity price Set external electricity price curve Set PBTH electricity price curve Set current export price
For planning, a full curve is more important than the current price alone.
Hybrid EMS / external self-consumption controller
Hybrid EMS is intended for systems such as SMA/SHM2 or other where the native controller can perform fast self-consumption well, while HomeFlux remains responsible for higher-level strategy.
15.1 Division of responsibility
The external EMS may handle plain self-consumption when no special HomeFlux strategy is needed.
HomeFlux takes or keeps control when it needs to enforce functions such as:
planned or forced charging;
low-PV Battery Save;
discharge to the forecast target;
Standby;
Peak Guard;
protected reserve/SoC decisions;
intentional EV grid-import strategy;
battery boundary/safety behaviour.
15.2 Delegating self-consumption
Use the trigger: Set external EMS to self consumption
When this fires, switch the external controller back to its native self-consumption/automatic mode.
The trigger includes a Reason token and a Retry token.
15.3 External battery-power feedback
The current action is named: Report external EMS battery power
Despite the wording, for a Hybrid EMS such as SMA/SHM2 or other you can feed HomeFlux the actual measured total battery power while the external EMS is in control. You do not need to find an internal SMA requested/accepted setpoint if that is not reliably available.
Use the HomeFlux sign convention:
positive = discharge;
negative = charge.
For multiple batteries, report the combined battery-group power.
This feedback helps HomeFlux keep its energy/accounting state aligned and helps the Hybrid watchdog determine whether the external controller is still changing its battery action.
The P1/grid measurement remains the authoritative check of what is actually happening at the grid connection.
When HomeFlux itself owns battery control, background external battery-power feedback is ignored for control ownership.
15.4 Hybrid watchdog
While the external EMS owns self-consumption, HomeFlux continues to watch grid power.
If grid power remains inside the acceptable watchdog band, the external controller is considered healthy.
If the grid remains outside the band and the external battery action appears stale:
HomeFlux first requests external self-consumption again.
If the situation still does not recover after the retry period, HomeFlux takes battery control back.
Peak Guard can also force HomeFlux ownership immediately when required.
15.5 Important Flow design
Even when Hybrid EMS is enabled, keep the normal HomeFlux battery-output Flow connected.
When HomeFlux publishes a battery command, your Flow/integration must ensure the inverter/battery is switched from external automatic control to the manual/setpoint mode required to execute that command.
EV charging
HomeFlux supports up to 4 EVs.
Each EV can have its own mode, control type, current limits, tariff rules, SoC input, target and deadlines.
16.1 Required EV inputs
Connection and actual current
Use: Set EV status
Send:
whether the EV/charger is available/connected;
actual charging current in amperes.
The actual current is important. It lets HomeFlux distinguish a requested charging state from what the car is physically doing.
EV SoC
If SoC support is enabled for that EV, use: EV SoC is needed
and answer with: Set EV SoC
SoC requests are generated periodically.
If reliable vehicle SoC is unavailable, HomeFlux can still use tariff/PV charging and kWh-based deadline planning.
16.2 EV output cards
Depending on charger control type, use one or more of: EV charge current is updated EV charging permission is updated EV charge mode is updated
Current-controlled charger
HomeFlux publishes the desired current in amperes.
Mode-controlled charger
HomeFlux publishes a mode such as:
Stop
Smart
Standard
Because a mode does not directly reveal physical current, configure realistic estimated Smart and Standard currents for planning and Peak Guard. The measured actual current remains the truth once charging starts.
Hybrid-controlled charger
HomeFlux can use both mode and current commands. Peak Guard can force Stop/0 A when necessary.
EV operating modes
17.1 Smart
Smart is the general-purpose optimized mode.
It can use:
real PV surplus;
tariffs selected for that EV;
configured grid top-up behaviour;
target/deadline information;
available home-battery support if enabled.
With reliable EV SoC, Smart can plan toward a target SoC. Without SoC, Smart can still optimize PV and tariff charging.
17.2 SoC target
SoC Target mode is only meaningful when EV SoC input is enabled and current.
HomeFlux charges toward the configured minimum target using the permitted PV/tariff opportunities.
If the target has a guaranteed deadline, HomeFlux may use otherwise unfavourable tariffs when necessary to secure the minimum target.
17.3 Emergency charge
Emergency mode starts charging as quickly as possible at the configured maximum charging capability.
Peak Guard remains absolute: Emergency charging is not allowed to ignore the site's grid-import limit.
A separate setting can determine whether the home battery may assist Emergency charging.
EV grid top-up and PV charging
EV charging from PV can be configured with hysteresis:
minimum surplus required to start;
lower/stop threshold;
stop delay;
optional grid supplementation.
Grid top-up modes can be configured so that PV charging uses:
no grid supplement;
enough grid power to maintain the minimum charging current;
fuller supplementation according to the configured policy.
Tariff policy still determines when that supplementation is permitted.
Peak Guard always has the final say.
EV and home-battery interaction
19.1 Sharing PV
When both the home battery and EV can use surplus PV, HomeFlux creates a shared flexible PV budget and distributes it according to the configured priorities/weights.
This prevents both systems from independently assuming that the same PV surplus is available.
19.2 Battery support for EV charging
If enabled, Smart and SoC Target charging may use available home-battery discharge above the applicable battery reserve.
This does not disable the battery controller. HomeFlux still enforces battery minimums and Peak Guard.
19.3 Night surplus energy dump to EV
During night planning, HomeFlux knows how much battery energy it wants to keep for the next day.
If the battery contains energy above that calculated night target, HomeFlux can allow that surplus energy to be transferred to an EV near its deadline.
The idea is:
If the energy is not needed in the home battery tomorrow, it can be more useful in the car than left unused.
This transfer does not grant permission for arbitrary grid charging. It uses available battery energy above the calculated target and stops when the battery target is reached.
EV deadlines and one-session overrides
20.1 One-session operating-mode override
Action: Override EV mode for one charging session
Select:
Smart
SoC target
Emergency charge
The configured base EV mode is not overwritten.
If the EV is already connected, the override ends when that connection session ends. If it is disconnected, the override waits for the next connect → disconnect cycle.
20.2 Energy needed by a deadline
Action: Set EV energy needed by time
Provide:
required kWh;
deadline HH:mm;
whether the target is guaranteed.
Guarantee = No
HomeFlux uses favourable configured tariff/PV opportunities. It does not deliberately use any tariff simply to guarantee the requested kWh.
Guarantee = Yes
HomeFlux may use otherwise unselected tariffs when required to secure the minimum energy by the deadline.
Peak Guard remains absolute.
HomeFlux estimates delivered energy from the reported actual charge current.
20.3 Minimum SoC by a deadline
Action: Set EV minimum SoC by time
This works similarly, but the target is expressed as vehicle SoC rather than kWh.
Use this only when the EV SoC input is reliable.
20.4 Clear planning override Clear EV planning override removes the persistent Flow-supplied kWh/SoC deadline and returns to the EV target configured in the app.
20.5 Explicit session end
If your charger or vehicle gives a reliable “charging session ended” signal, call: EV charging session has ended
HomeFlux immediately:
removes EV grid permission;
sends Stop for mode control;
resumes normal battery behaviour;
keeps the end state latched until the EV reconnects.
This is preferable to waiting for inference when a reliable end event exists.
20.6 Target cannot be reached
The trigger EV target cannot be reached provides:
EV number/name;
warning text;
energy still needed;
deadline.
Use it for push notifications or logging.
Multi-EV behaviour
With several EVs, HomeFlux manages a shared site/grid budget.
Key points:
EVs have independent states and targets.
Priority/weight settings influence allocation.
HomeFlux starts at most one new EV in a normal control cycle to avoid several chargers suddenly stepping up together.
Peak Guard evaluates the combined site impact.
The learned house-load reference helps identify whether EV load is really active.
For mode-controlled chargers, HomeFlux can infer that EV charging has stopped when total load returns near the learned non-EV house baseline. With multiple EVs this inference is portfolio-based; if your charger exposes a reliable session-end signal, use the explicit session-end action instead.
HVAC control
HomeFlux supports up to 4 HVAC units.
The HVAC controller is designed primarily to use flexible thermal demand to absorb useful solar energy while respecting comfort.
22.1 Inputs
For each configured HVAC, HomeFlux can receive:
room temperature;
current mode;
current setpoint;
current fan speed;
whether automatic HomeFlux control is enabled.
A global action is available for outdoor temperature: Set HVAC outdoor temperature
22.2 Outputs
For each configured HVAC, HomeFlux can publish: HVAC power command is updated HVAC mode command is updated HVAC setpoint command is updated HVAC fan command is updated
Only enable the control permissions your device/integration can safely execute.
22.3 Heating and cooling activation
Configure temperature thresholds that determine when heating or cooling is useful.
Conceptually:
below the heating threshold → heating may be useful;
above the cooling threshold → cooling may be useful;
between them → comfort dead zone.
22.4 Comfort targets
Configure the normal heating and cooling comfort boundaries.
HomeFlux can then choose between two broad strategies:
Comfort first
Stay close to the desired comfort setpoints and use surplus only when this fits naturally.
Minimize PV surplus
Allow limited pre-heating or pre-cooling beyond the normal comfort target, within the configured permitted deviation, to store solar energy thermally in the building.
Example:
If normal cooling is 24°C and a permitted PV-surplus deviation allows pre-cooling to 22°C, HomeFlux can use excess solar now and reduce compressor demand later.
22.5 PV start and stop behaviour
A new HVAC session starts only when sufficient PV surplus exists and the start conditions are met.
If allow on battery is enabled, battery energy may continue an HVAC session that was started by PV, down to the configured HVAC battery-stop SoC.
This does not mean HomeFlux freely starts HVAC from battery whenever there is no solar. PV is the normal start trigger; battery support is a continuation mechanism.
22.6 Import reset
If grid import rises above the configured HVAC reset threshold, HomeFlux can immediately back out of the PV-surplus HVAC strategy instead of waiting for the normal slow regulation cycle.
22.7 Fan control
Fan behaviour can be adapted using outdoor temperature and configured slow/normal/fast profiles.
If the HVAC device exposes a numeric fan scale, configure its minimum, maximum and step so HomeFlux can move through valid values only.
22.8 Manual Homey control
Use: Set HVAC automatic control
when you want another Flow to enable or disable automatic HomeFlux control for a specific HVAC without removing its configuration.
Condition: HVAC is actively managed
can be used by other Homey automations.
Boiler / water heater control
HomeFlux supports one controllable water heater/boiler as a flexible thermal load.
The output is deliberately simple: on/off.
23.1 Output Flow
When Boiler power command is updated
Then
Turn the real boiler/water-heater relay on or off using the boolean token.
23.2 PV-first heating
HomeFlux can heat water primarily from solar surplus.
Typical conditions include:
solar period is active;
battery SoC is above the configured boiler-start SoC;
sufficient real PV surplus exists to cover the configured boiler power.
If battery SoC falls below the boiler stop threshold, HomeFlux can stop the boiler.
23.3 Heating-cycle completion
HomeFlux tracks cumulative heating time toward the configured full heating cycle.
Temporary cloud or SoC interruptions do not necessarily reset the accumulated progress. Once a full cycle is completed, the boiler can be marked warm.
Condition: Water heater is marked warm
Trigger: Boiler warmed status is updated
can be used in your own Flows.
23.4 Daily cold reset
At the configured reset time, typically in the morning, the “warm” state is reset for the new day.
This prevents HomeFlux from repeatedly reheating a boiler at night when a full heating cycle was already completed earlier.
23.5 Tariff fallback
If solar does not provide enough heating within the allowed number of fallback days, HomeFlux can use selected electricity tariffs to complete the heating cycle.
You can configure whether fallback is allowed:
during day;
during night;
always;
or never, depending on the relevant settings.
Separate battery SoC start/stop thresholds can be used during tariff fallback to create hysteresis.
23.6 Boiler support during Peak Guard / planned charging
A boiler is a large controllable load. If simultaneous battery grid charging and boiler heating would exceed Peak Guard, HomeFlux can normally reduce/stop the lower-priority energy action.
An option allows the battery to support the boiler to avoid violating Peak Guard. In that case planned battery grid charging yields first, and battery discharge may support the load subject to the applicable battery limits.
Thermal priorities: HVAC and boiler
HomeFlux can prioritize the boiler and enabled HVAC units as flexible thermal loads.
EVs are deliberately not part of this thermal-priority list; EV charging has its own allocation logic.
At each thermal re-evaluation, HomeFlux releases at most one new thermal device. This avoids several large loads starting simultaneously.
An already active thermal device is not automatically displaced just because a higher-priority device becomes available later. This reduces rapid switching.
Savings and energy accounting
HomeFlux tracks several categories such as:
direct PV use;
PV energy later used from the battery;
exported PV/battery energy;
load shifting / tariff benefit.
25.1 Imported/exported energy calibration
Actions: Set imported energy today Set exported energy today
accept cumulative daily kWh meter values.
These inputs are for Savings/accounting calibration. They do not change the real-time EMS control decision.
25.2 Export price Set current export price can provide a live export price for dynamic contracts.
positive = compensation received;
negative = cost paid to inject.
Fixed and time-of-use contracts normally use their configured export prices.
Status, conditions and dashboards
HomeFlux exposes status information through both the app/device and Flow cards.
Useful conditions include: EMS control is enabled EMS mode is ... EMS action is ... Average battery SoC is above ... Battery group is charging/idle/discharging Current tariff is ... Planning phase is day/night Price data is current PV power is above ... Peak Guard is actively limiting
Useful triggers include: EMS status changed Charge plan is updated Battery commands are updated
Use Get EMS status when you need the current status on demand rather than waiting for a change trigger.
Practical behaviour recipes
These examples show how settings can be combined to express intent without writing a complete EMS yourself.
Recipe A — “Protect my battery on poor solar days, but create room if tomorrow will be sunny”
Goal:
preserve battery energy when PV is poor;
avoid holding unnecessary energy when tomorrow's forecast can refill the battery.
Configuration example:
Minimum SoC: 10%
Safety SoC: 20%
Battery Save floor: 70%
Low-PV Battery Save: enabled for the relevant tariff/class
Discharge to forecast target: enabled for that same tariff/class
Tomorrow forecast input connected
Behaviour:
Poor PV forecast → Battery Save activates.
If the planner says 55% is needed, battery may discharge to 55% and stops there.
If tomorrow's strong forecast reduces the calculated target to 35%, battery may discharge to 35%, provided Safety/seasonal floors do not require more.
Peak Guard may still use the reserve down to Minimum SoC if necessary.
This is generally better than a rigid “never go below 70% on low-PV days” rule.
Recipe B — “Only grid-charge in my cheapest tariff”
For a time-of-use contract:
Allow planned battery charging only in the desired cheap tariff.
Set charging to Never for the other tariffs.
Leave Automatic mode active.
Provide forecast and energy-need data.
HomeFlux then decides how much it needs to charge, while your tariff policy decides where it is allowed to do so.
Recipe C — “Never import in the expensive tariff unless a hard constraint requires it”
Enable Avoid grid import for the expensive tariff.
Do not allow planned grid charging in that tariff.
Keep an appropriate Safety/Minimum SoC reserve.
HomeFlux uses available battery energy to suppress import during that period. Peak Guard and hard battery boundaries remain active.
Recipe D — “Charge the EV from PV, but never let PV charging cause unwanted grid import”
EV mode: Smart.
Enable PV charging.
Set grid supplementation to Off for the relevant tariff.
Configure PV start/stop thresholds with hysteresis.
Feed actual EV charging current back through Set EV status.
HomeFlux then bases the EV budget on real available surplus and can stop/reduce charging when surplus disappears.
Recipe E — “I need 20 kWh in the car by 07:00, but cheap energy first”
Use: Set EV energy needed by time
with:
20 kWh
07:00
Guarantee = Yes if the minimum absolutely must be reached
HomeFlux first uses configured favourable windows. If Guarantee is Yes and those windows are insufficient, it may expand into other tariffs as late as necessary while respecting Peak Guard.
If Guarantee is No, HomeFlux does not deliberately buy unfavourable energy merely to guarantee the target.
Recipe F — “Long trip: temporarily ignore my normal Smart mode”
Use: Override EV mode for one charging session → Emergency charge
The EV charges as fast as the configured charger/site limits allow. When the session ends, the normal configured Smart mode returns automatically.
Recipe G — “Use air conditioning as a solar buffer”
Enable HVAC automatic control.
Enable PV-surplus control.
Choose “Minimize PV surplus”.
Allow a reasonable pre-cooling deviation.
Optionally allow battery continuation to a chosen stop SoC.
On a sunny afternoon, HomeFlux can cool the building slightly below the normal comfort target instead of exporting the same energy. Later, the HVAC has less work to do when PV disappears.
Recipe H — “Heat water from PV, but guarantee hot water after several bad days”
Boiler PV-first enabled.
Configure boiler wattage, battery start/stop SoC and full-cycle duration.
Configure fallback after the desired number of unsuccessful solar days.
Select which tariff(s) may be used for fallback.
HomeFlux first waits for sufficient solar. If solar remains insufficient for the configured period, tariff fallback completes the heating cycle.
Recipe I — “Let the external ems do the fast self-consumption loop, but let HomeFlux make strategic decisions”
Enable Hybrid EMS.
Connect Set external EMS to self consumption to the external automatic/self-consumption mode.
Feed P1/grid power continuously to HomeFlux.
Feed actual measured total battery power through Report external EMS battery power while the external owns control.
Keep the normal HomeFlux battery-output Flow connected so HomeFlux can retake control.
Result:
SHM2 performs its fast native regulation during plain self-consumption.
HomeFlux still takes control for planned charging, Battery Save, forecast-target discharge, Peak Guard and other strategic states.
P1 remains the real-world verification signal.
Failure behaviour and safe degradation
HomeFlux is designed to degrade rather than invent data.
Examples:
No valid grid measurement → regulation cannot safely continue normally.
Battery SoC missing/stale → affected battery is excluded from SoC-based control.
PV missing → solar-specific decisions become less informed.
Forecast missing → forecast-aware planning is reduced; HomeFlux does not pretend a forecast exists.
Dynamic price curve missing → no price-based planned charging/discharging; basic PV capture and Peak Guard can remain available.
EV SoC stale → HomeFlux can fall back to PV/tariff/current-based behaviour rather than trusting an old SoC value.
For critical integrations, use Homey notifications/logging around missing input data and HomeFlux warning triggers.
Flow-card design notes
29.1 Configured-device selectors
Modern battery, EV and HVAC cards use a configured-device selector. Only the number of devices saved in HomeFlux settings is shown.
This keeps the Flow-card list manageable even though HomeFlux supports multiple batteries, EVs and HVAC units.
29.2 Legacy cards
Older numbered cards are retained for backward compatibility so existing Flows do not suddenly break.
For new Flows, use the current generic/configured cards documented below.
Suggested first-test checklist
Before allowing full automatic control, verify these items one by one:
P1 sign — importing is positive and exporting is negative.
Battery sign — positive HomeFlux battery command really discharges; negative really charges.
Battery SoC — every configured battery updates correctly and remains fresh.
Battery limits — Minimum, Safety, Maximum and power limits match the real installation.
PV input — current PV wattage is realistic.
Forecast — “remaining today” actually decreases through the day; tomorrow is a total tomorrow forecast.
Peak Guard — test with a moderate controllable load before relying on it for a hard connection limit.
Tariffs — verify the current tariff/category in the HomeFlux status before enabling planned grid charging.
EV actual current — verify HomeFlux receives measured current, not only requested current.
HVAC permissions — only enable mode/setpoint/fan/power actions your HVAC integration supports correctly.
Boiler power — configure the real electrical load so surplus and Peak Guard calculations are meaningful.
Hybrid EMS — verify the external self-consumption hand-off and then verify that a HomeFlux strategic mode can retake control.
Autotune — initially review recommendations manually. Grant automatic rights only for parameters you are comfortable allowing HomeFlux to change.
A useful way to think about HomeFlux
HomeFlux works best when the configuration expresses policy, while the controller handles timing.
Examples of policy are:
“Keep at least 20% for normal operation.”
“During this tariff, avoid importing.”
“On poor-solar days, preserve the battery.”
“But if tomorrow's solar can refill it, discharge to the calculated target first.”
“The EV may use PV and cheap tariffs, but expensive energy only when a guaranteed deadline needs it.”
“Start HVAC from solar surplus; battery may only finish an already started session.”
“Heat water from PV first, but use the cheap tariff after too many unsuccessful solar days.”
“Let the native external controller do fast self-consumption, but give HomeFlux strategic ownership whenever planning or safety requires it.”
That is the main design idea: you define the boundaries and priorities; HomeFlux continuously decides what is appropriate inside them.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
HomeFlux EMS — Complete User Manual
Version covered: HomeFlux EMS 0.7.15
Language: English
Purpose: Complete setup, operation and Flow-card reference for batteries, PV, tariffs, planning, Autotune, Hybrid EMS, EV charging, HVAC and water heating.
HomeFlux EMS is an energy-management layer for Homey. It does not require one specific battery, inverter, EV charger, HVAC brand or boiler. Instead, it receives measurements through Homey Flows, makes an energy decision, and publishes commands back through Flow cards.
The basic control loop is:
Measure — grid power, PV power, battery SoC, EV state, temperatures, prices and forecasts are sent to HomeFlux.
Plan — HomeFlux calculates how much battery energy should be kept, when grid charging is useful, how much solar energy is still expected and which flexible loads can run.
Decide — the EMS chooses a mode and a target action while enforcing SoC limits, Peak Guard, tariff rules and device constraints.
Control — Flow triggers publish battery, EV, PV, HVAC and boiler commands.
Verify — the P1/grid measurement is the main real-world feedback for power balance and Peak Guard.
HomeFlux is intentionally configurable. You decide how conservative or aggressive it may be, which tariffs may charge a battery or EV, which SoC reserves must be kept, whether low-PV days should trigger Battery Save, and which devices may use surplus PV.
2.1 Minimum useful inputs
For battery control, HomeFlux should normally receive:
Grid power in watts.
Battery SoC for every configured battery.
Battery command output connected to the real battery control Flow.
For forecast-aware planning, also provide:
PV power in watts.
Remaining PV forecast for today in kWh.
Tomorrow's PV forecast in kWh.
For dynamic pricing, provide either:
Homey Energy price data, or
an external full price curve through the corresponding Flow card.
A current price alone can be used as fallback information, but a complete hourly or 15-minute curve is needed for price-based planning.
2.2 Sign conventions
Use these conventions consistently:
Value Positive Negative
Grid power Import from grid Export to grid
Battery command / external battery power Battery discharging Battery charging
PV power Positive generation Not normally used
Export price Revenue received for export Cost paid for export
Example:
P1 reports +1,200 W → the home is importing 1.2 kW.
P1 reports -850 W → the home is exporting 850 W.
Battery command +2,000 W → discharge battery at 2 kW.
Battery command -2,000 W → charge battery at 2 kW.
If a device uses the opposite battery sign convention, invert the value in the Flow that connects HomeFlux to that device.
The cleanest setup is to separate inputs to HomeFlux from outputs from HomeFlux.
3.1 Grid power input
Whenever your P1 meter or grid meter changes:
When
Your P1/grid power changes
Then
Set grid power→ send the current grid power in wattsPositive = import, negative = export.
This is one of the most important inputs in the entire EMS. Peak Guard, self-consumption regulation, Hybrid EMS verification and several EV decisions depend on it.
3.2 Battery SoC input
HomeFlux can request SoC itself:
When
Request Battery SoC is needed→ select the configured batteryThen
Read the battery SoC and call
Set battery SoCfor that same battery.The request is generated periodically and at startup for configured batteries.
You may also push SoC whenever the battery reports a new value. The important part is that HomeFlux receives current, trustworthy SoC data.
3.3 Battery output
For a normal battery API:
When
Battery commands are updatedThen
Send the Battery 1 / Battery 2 / ... command token to the corresponding battery.
The generic output supports up to eight batteries.
HomeFlux supports 0 to 8 batteries. With zero batteries, EV, Peak Guard-related EV protection, HVAC, boiler and price logic can still be used, while battery planning and battery commands are skipped.
4.1 Capacity
The configured capacity is the total usable battery capacity used by the planner.
HomeFlux currently uses one combined capacity value rather than a separate capacity per battery.
If all batteries have similar capacity, this is straightforward. For strongly mixed battery sizes, remember that Battery Balance is based on SoC difference, not on kWh capacity.
4.2 Minimum SoC
Minimum SoC is the absolute lower boundary.
Normal strategies should not deliberately discharge below their operational reserve. Peak Guard, however, may use the battery below Safety SoC when necessary, down to Minimum SoC.
HomeFlux never intentionally discharges below the configured Minimum SoC.
4.3 Safety SoC
Safety SoC is the normal operating reserve.
It is used as a lower boundary for ordinary self-consumption and planning. Think of it as the amount of battery energy HomeFlux normally protects for uncertainty.
Example:
Minimum SoC: 10%
Safety SoC: 20%
Normal self-consumption stops around 20%, but Peak Guard may still use the 20% → 10% reserve if required to protect the grid-import limit.
4.4 Maximum SoC
Maximum SoC is the hard upper charging boundary used by HomeFlux.
4.5 Battery Save discharge floor
Battery Save has its own discharge floor.
Example:
Safety SoC = 20%
Battery Save discharge floor = 70%
When Battery Save is active, ordinary household consumption will normally not pull the battery below 70%. The stored energy is preserved for later.
There is an important exception: Battery Save with “discharge to forecast target”, described in detail in section 8.
4.6 Charge and discharge power limits
Configure the maximum total charging and discharging power that HomeFlux may request.
You can also configure per-battery limits. If one battery reaches its individual limit, HomeFlux can redistribute the remaining command to other available batteries.
4.7 Direction test and control lock
HomeFlux can require a direction confirmation before full battery control is allowed. The test verifies that the configured sign convention actually causes:
a small charge, and
a small discharge.
This prevents an inverted integration from turning a requested charge into a discharge or vice versa.
5.1 How normal power is distributed
HomeFlux starts by dividing a group command across the available batteries. It does not weight the distribution according to each battery's kWh capacity yet.
Battery Balance can then modify the distribution based on SoC difference:
a lower-SoC battery receives relatively more charging power;
a higher-SoC battery receives relatively more discharging power.
Individual charge/discharge power limits are respected and residual power can be redistributed.
A battery with missing or stale SoC is excluded from SoC-based control until valid data returns.
5.2 Important limitation with very different capacities
Suppose you have:
Battery 1: 40 kWh
Batteries 2–5: 5 kWh each
Battery Balance sees SoC percentages, not stored kWh. The system is therefore not capacity-weighted yet. It can reduce SoC drift between batteries, but it cannot mathematically treat the 40 kWh unit as eight times the capacity of a 5 kWh unit.
For similarly sized batteries this is normally fine. For extreme mixed-capacity systems, validate the behaviour with real measurements before relying on Battery Balance as a capacity-balancing mechanism.
5.3 Battery Balance warning
The trigger
Battery Balance warningfires when the SoC spread continues to grow while balancing is active. You can use this to notify yourself when the battery group is not responding as expected.6.1 Zero-grid regulation
During normal self-consumption HomeFlux uses the P1 measurement to move grid power toward the configured control band.
Instead of constantly chasing exactly 0 W, you can configure a lower and upper zero-grid boundary. If the grid measurement leaves that band, HomeFlux aims for the midpoint.
This reduces unnecessary command chatter.
6.2 P1 averaging
The controller can use either the latest P1 value directly or an average of recent samples. Supported averaging windows include the latest 3, 5, 7 or 10 inputs.
A longer window is calmer but reacts more slowly. A shorter window reacts faster but may chase short spikes.
When PV changes sharply, HomeFlux can temporarily favour the newest live grid value so it does not react to an outdated average.
6.3 Control profile
The battery control profile changes how strongly HomeFlux reacts:
Quiet — approximately 65% response
Normal — approximately 85% response
Exact/Aggressive — 100% response
The calmer profiles reduce oscillation on slower battery systems.
6.4 Command deadband and timing
HomeFlux avoids sending tiny battery corrections when the difference is below the configured command deadband.
It also enforces a minimum interval between normal battery commands. This protects batteries and APIs that dislike rapid writes.
An adaptive control mechanism can detect repeated large command swings and adjust the large-setpoint handling accordingly.
The Flow action
Set EMS modecan force a mode. Automatic returns control to HomeFlux planning.7.1 Automatic
HomeFlux chooses the appropriate strategy from:
tariff rules;
forecast;
calculated target SoC;
low-PV policy;
planned charging windows;
current battery SoC;
Peak Guard;
active EV demand;
other configured priorities.
For everyday use, this is normally the preferred mode.
7.2 Self consumption
HomeFlux tries to minimize normal grid exchange:
surplus PV charges the battery;
household import can be supported by battery discharge;
Safety SoC and planning floors are respected;
Peak Guard still has higher priority.
7.3 Battery Save
Battery Save preserves stored energy by restricting normal discharge.
The battery can still:
absorb real PV export;
respond to Peak Guard;
optionally discharge down to the calculated forecast target if that feature is enabled for the current tariff/class.
This last option is one of the most useful ways to make Battery Save intelligent rather than static. See section 8.
7.4 Avoid grid import
This mode uses available battery energy to prevent or reduce grid import, subject to the applicable SoC floors and safety rules.
In tariff policy, Avoid grid import has strong priority. If it is enabled for a tariff, HomeFlux will not simultaneously treat that tariff as a planned grid-charging period.
7.5 Forced charge
Forced charge requests charging at the available configured charging power.
The command is still bounded by:
battery maximum SoC;
battery power limits;
valid measurements;
Peak Guard.
“Forced” does not mean safety limits are disabled.
7.6 Standby
Standby requests true zero battery output.
Unlike the other active modes, Standby does not automatically use the battery to absorb PV export. Use Standby when you genuinely want HomeFlux battery control inactive at 0 W.
7.7 Planned grid charging
Planned grid charging is an automatic/internal mode. It is entered when the active tariff/price window permits charging and the battery is below the planner target.
It is not the same as Forced Charge: planned charging is part of the forecast and tariff strategy and stops when its target or eligible window is satisfied.
This is an important HomeFlux concept.
A static Battery Save rule can be too conservative. Imagine that you normally want to keep 70% in the battery on a poor solar day. Tomorrow, however, the forecast says enough solar will arrive to refill the battery. Holding 70% all night would leave too little empty capacity for tomorrow's PV.
HomeFlux can therefore combine:
Battery Save, and
Discharge to forecast target.
8.1 Example
Configuration:
Minimum SoC: 10%
Safety SoC: 20%
Battery Save floor: 70%
Current battery SoC: 75%
Tomorrow's solar forecast allows the planner to calculate a target SoC of 40%
For the active tariff/class, Battery Save on low PV is enabled
For that same tariff/class, Discharge to forecast target is enabled
Result:
HomeFlux is in Battery Save because the low-PV policy says energy should normally be preserved.
The planner sees that tomorrow's PV should be able to refill part of the battery.
Instead of protecting the static 70% Battery Save floor, HomeFlux allows ordinary discharge down to 40%.
At 40%, normal discharge stops.
If Peak Guard later needs more power, it can still use the protected reserve down toward Minimum SoC.
So Battery Save does not have to mean “freeze the battery at 70%”. It can mean:
9.1 Two forecast concepts
HomeFlux uses forecasts in two ways:
Full-day expectation — useful for deciding whether a day qualifies as low-PV or sunny.
Remaining production — useful for determining how much energy the battery still needs to carry forward.
The “remaining today” input should therefore truly represent the remaining solar energy from now until the end of the solar day.
9.2 Day planning
Day planning becomes relevant once PV production is present.
The planner combines:
expected non-EV energy need;
remaining PV forecast;
usable battery capacity;
Minimum/Safety/Maximum SoC;
seasonal minimums;
current SoC.
It calculates the battery target needed to bridge the expected energy gap without unnecessarily filling the battery before solar arrives.
9.3 Night planning
After PV has remained very low for the configured/end-of-solar logic, HomeFlux switches to night planning. If no reliable solar-end moment is available, a fallback evening time is used.
Night planning uses tomorrow's forecast and aims toward the configured morning target time, typically around the start of the day.
9.4 Seasonal minimums
You can define different battery minimums for selected winter months and for the other/summer months.
The planner first calculates what is actually needed from the technical/normal lower basis. Then the active seasonal minimum acts as a lower floor:
final target = max(calculated target, active seasonal minimum)The seasonal minimum is not added to the calculated need.
If the setting to apply seasonal minimums at night is disabled, the night planner does not use those seasonal floors.
9.5 Charge-plan Flow
Charge plan is updatedpublishes:plan text;
target SoC;
current SoC;
charge window;
planning PV forecast.
This is useful for dashboards, notifications or Logic variables.
The Low-PV threshold tells HomeFlux when expected solar production is low enough to activate the configured low-PV strategy.
For each relevant tariff/class you can decide whether a low-PV day should:
activate Battery Save;
allow discharge to the forecast target.
This makes the policy contextual. A low-solar day does not have to behave the same during every tariff.
10.1 Sunny-day override
Forecasts are not perfect. HomeFlux can detect that a supposedly poor solar day is actually doing well.
If battery SoC remains above the configured “sunny day” threshold for the required time, HomeFlux can latch the current day as effectively sunny and disable low-PV Battery Save for the rest of that day.
The forecast value itself is not rewritten. HomeFlux simply overrides the low-PV behaviour based on real-world evidence.
Autotune learns from the actual installation and can suggest safer or better technical values.
It is intentionally permission-based: a suggestion can be shown without allowing HomeFlux to change that parameter automatically.
11.1 Confidence
Autotune attaches a confidence percentage to recommendations. The user chooses the minimum confidence required before automatic management may act.
11.2 User limits
For parameters under automatic management, the user can set allowed minimum and maximum values. Automatic changes remain inside those bounds.
A deliberate manual Apply now action is a user decision and can be used to try a recommendation even when it is outside the automatic range.
11.3 Technical parameters
Autotune can learn parameters such as:
battery command deadband;
zero-grid band;
P1 averaging window;
adaptive large-setpoint threshold/window;
battery command interval;
PV-delta sensitivity;
PV command interval;
Battery Balance deadband and strength;
EV timing/feedback parameters and mode-current estimates.
Technical parameters are rate-limited so they do not continuously chase short-term noise.
11.4 Planning parameters
Autotune can also learn planning-oriented values such as:
Low-PV threshold;
expected energy need;
Battery Save discharge floor;
sunny-day SoC/time settings.
These are changed much more slowly than technical controller values.
11.5 The 20% SoC rule
For two important planning parameters, an upward adjustment now requires evidence of a real energy shortage:
Expected energy need
Autotune may only increase the expected energy need if at least one usable learning day actually dropped below 20.0% average battery SoC.
Exactly 20.0% does not count.
If the battery never fell below 20%, HomeFlux has no evidence that more stored energy was really necessary.
It may still reduce an overly conservative value when the historical data supports that.
When automatic management of expected energy need is allowed, the user can also set the desired battery target SoC used by this learning logic. The default is 95%, bounded by the battery's configured SoC limits.
Low-PV threshold
The same protection applies when Autotune wants to raise the Low-PV threshold.
A higher threshold makes HomeFlux classify more days as “low PV”, so it should only become more conservative when the battery has actually shown evidence of shortage.
Autotune may therefore:
raise the Low-PV threshold only after a usable day dropped below 20% SoC;
lower an overly high threshold without requiring a low-SoC event.
This prevents the Low-PV threshold from slowly creeping upward simply because of normal forecast variation.
Peak Guard is a high-priority safety layer that limits grid import to the configured maximum.
12.1 During battery charging
If grid import approaches the limit, HomeFlux first reduces battery charging power.
If that is not enough, it can stop charging and, when required and allowed, move toward discharge.
12.2 During EV charging
Peak Guard reduces EV current or charging permission before allowing the grid connection to exceed the configured import limit.
For mode-controlled chargers, HomeFlux can move through the available modes or stop the charger depending on the configured integration.
12.3 During Battery Save
Peak Guard has higher priority than the Battery Save discharge floor. It may use the battery below that floor and below Safety SoC if required, but never below Minimum SoC.
This distinction is deliberate:
Battery Save is an energy strategy.
Peak Guard protects an electrical/grid limit.
12.4 Condition card
Use
Peak Guard is actively limitingwhen you want other Homey Flows to react to an active intervention.HomeFlux can reduce inverter output when unwanted grid export would otherwise occur.
13.1 PV limit output
PV power limit is updatedprovides:PV limit percentage;
target PV power;
curtailed power;
minimum export buffer;
predicted grid power after the limit.
Map the percentage to the inverter's power-limit control.
100% means unrestricted.
HomeFlux does not command below 10%.
13.2 Minimum export buffer
A small intentional export buffer can prevent the controller from oscillating around exactly zero export.
13.3 Battery SoC threshold before curtailment
When batteries are present, HomeFlux can wait until battery SoC is above the configured threshold before curtailing PV. Below that threshold, full PV remains available so the battery can absorb surplus energy.
With no batteries configured, the battery-SoC requirement is naturally not applicable.
HomeFlux supports fixed, time-of-use and dynamic strategies.
14.1 Fixed contract
Configure the relevant import/export prices and the fixed charging policy/window.
Low-PV Battery Save and forecast-target discharge can still be used.
14.2 Time-of-use contract
Define tariffs and weekly time blocks.
For each tariff, HomeFlux can independently determine policies such as:
planned battery charging on weekdays/weekends;
charge during night/day/always/never;
Avoid grid import;
Low-PV Battery Save;
discharge to forecast target;
EV charging permission;
EV PV/grid supplementation policy.
This is useful for three-period contracts where, for example, the night tariff may charge the battery, the normal tariff may favour self-consumption, and the peak tariff may avoid grid import.
Priority note
If Avoid grid import is enabled for a tariff, HomeFlux treats that as the stronger policy. It will not simultaneously use that tariff for planned battery grid charging.
14.3 Dynamic contract
HomeFlux classifies current price slots using the configured number of cheapest and most expensive hours/periods.
Depending on your settings:
cheap slots can be used for planned grid charging;
normal periods can use battery self-consumption or Battery Save;
expensive periods can favour battery discharge/avoid import;
Low-PV rules can be configured per price class.
If no usable full price curve is available, HomeFlux does not invent price-based charging/discharging decisions. PV capture and Peak Guard can continue.
14.4 External price inputs
Available actions include:
Set external electricity priceSet external electricity price curveSet PBTH electricity price curveSet current export priceFor planning, a full curve is more important than the current price alone.
Hybrid EMS is intended for systems such as SMA/SHM2 or other where the native controller can perform fast self-consumption well, while HomeFlux remains responsible for higher-level strategy.
15.1 Division of responsibility
The external EMS may handle plain self-consumption when no special HomeFlux strategy is needed.
HomeFlux takes or keeps control when it needs to enforce functions such as:
planned or forced charging;
low-PV Battery Save;
discharge to the forecast target;
Standby;
Peak Guard;
protected reserve/SoC decisions;
intentional EV grid-import strategy;
battery boundary/safety behaviour.
15.2 Delegating self-consumption
Use the trigger:
Set external EMS to self consumptionWhen this fires, switch the external controller back to its native self-consumption/automatic mode.
The trigger includes a Reason token and a Retry token.
15.3 External battery-power feedback
The current action is named:
Report external EMS battery powerDespite the wording, for a Hybrid EMS such as SMA/SHM2 or other you can feed HomeFlux the actual measured total battery power while the external EMS is in control. You do not need to find an internal SMA requested/accepted setpoint if that is not reliably available.
Use the HomeFlux sign convention:
positive = discharge;
negative = charge.
For multiple batteries, report the combined battery-group power.
This feedback helps HomeFlux keep its energy/accounting state aligned and helps the Hybrid watchdog determine whether the external controller is still changing its battery action.
The P1/grid measurement remains the authoritative check of what is actually happening at the grid connection.
When HomeFlux itself owns battery control, background external battery-power feedback is ignored for control ownership.
15.4 Hybrid watchdog
While the external EMS owns self-consumption, HomeFlux continues to watch grid power.
If grid power remains inside the acceptable watchdog band, the external controller is considered healthy.
If the grid remains outside the band and the external battery action appears stale:
HomeFlux first requests external self-consumption again.
If the situation still does not recover after the retry period, HomeFlux takes battery control back.
Peak Guard can also force HomeFlux ownership immediately when required.
15.5 Important Flow design
Even when Hybrid EMS is enabled, keep the normal HomeFlux battery-output Flow connected.
When HomeFlux publishes a battery command, your Flow/integration must ensure the inverter/battery is switched from external automatic control to the manual/setpoint mode required to execute that command.
HomeFlux supports up to 4 EVs.
Each EV can have its own mode, control type, current limits, tariff rules, SoC input, target and deadlines.
16.1 Required EV inputs
Connection and actual current
Use:
Set EV statusSend:
whether the EV/charger is available/connected;
actual charging current in amperes.
The actual current is important. It lets HomeFlux distinguish a requested charging state from what the car is physically doing.
EV SoC
If SoC support is enabled for that EV, use:
EV SoC is neededand answer with:
Set EV SoCSoC requests are generated periodically.
If reliable vehicle SoC is unavailable, HomeFlux can still use tariff/PV charging and kWh-based deadline planning.
16.2 EV output cards
Depending on charger control type, use one or more of:
EV charge current is updatedEV charging permission is updatedEV charge mode is updatedCurrent-controlled charger
HomeFlux publishes the desired current in amperes.
Mode-controlled charger
HomeFlux publishes a mode such as:
Stop
Smart
Standard
Because a mode does not directly reveal physical current, configure realistic estimated Smart and Standard currents for planning and Peak Guard. The measured actual current remains the truth once charging starts.
Hybrid-controlled charger
HomeFlux can use both mode and current commands. Peak Guard can force Stop/0 A when necessary.
17.1 Smart
Smart is the general-purpose optimized mode.
It can use:
real PV surplus;
tariffs selected for that EV;
configured grid top-up behaviour;
target/deadline information;
available home-battery support if enabled.
With reliable EV SoC, Smart can plan toward a target SoC. Without SoC, Smart can still optimize PV and tariff charging.
17.2 SoC target
SoC Target mode is only meaningful when EV SoC input is enabled and current.
HomeFlux charges toward the configured minimum target using the permitted PV/tariff opportunities.
If the target has a guaranteed deadline, HomeFlux may use otherwise unfavourable tariffs when necessary to secure the minimum target.
17.3 Emergency charge
Emergency mode starts charging as quickly as possible at the configured maximum charging capability.
Peak Guard remains absolute: Emergency charging is not allowed to ignore the site's grid-import limit.
A separate setting can determine whether the home battery may assist Emergency charging.
EV charging from PV can be configured with hysteresis:
minimum surplus required to start;
lower/stop threshold;
stop delay;
optional grid supplementation.
Grid top-up modes can be configured so that PV charging uses:
no grid supplement;
enough grid power to maintain the minimum charging current;
fuller supplementation according to the configured policy.
Tariff policy still determines when that supplementation is permitted.
Peak Guard always has the final say.
19.1 Sharing PV
When both the home battery and EV can use surplus PV, HomeFlux creates a shared flexible PV budget and distributes it according to the configured priorities/weights.
This prevents both systems from independently assuming that the same PV surplus is available.
19.2 Battery support for EV charging
If enabled, Smart and SoC Target charging may use available home-battery discharge above the applicable battery reserve.
This does not disable the battery controller. HomeFlux still enforces battery minimums and Peak Guard.
19.3 Night surplus energy dump to EV
During night planning, HomeFlux knows how much battery energy it wants to keep for the next day.
If the battery contains energy above that calculated night target, HomeFlux can allow that surplus energy to be transferred to an EV near its deadline.
The idea is:
20.1 One-session operating-mode override
Action:
Override EV mode for one charging sessionSelect:
Smart
SoC target
Emergency charge
The configured base EV mode is not overwritten.
If the EV is already connected, the override ends when that connection session ends. If it is disconnected, the override waits for the next connect → disconnect cycle.
20.2 Energy needed by a deadline
Action:
Set EV energy needed by timeProvide:
required kWh;
deadline
HH:mm;whether the target is guaranteed.
Guarantee = No
HomeFlux uses favourable configured tariff/PV opportunities. It does not deliberately use any tariff simply to guarantee the requested kWh.
Guarantee = Yes
HomeFlux may use otherwise unselected tariffs when required to secure the minimum energy by the deadline.
Peak Guard remains absolute.
HomeFlux estimates delivered energy from the reported actual charge current.
20.3 Minimum SoC by a deadline
Action:
Set EV minimum SoC by timeThis works similarly, but the target is expressed as vehicle SoC rather than kWh.
Use this only when the EV SoC input is reliable.
20.4 Clear planning override
Clear EV planning overrideremoves the persistent Flow-supplied kWh/SoC deadline and returns to the EV target configured in the app.20.5 Explicit session end
If your charger or vehicle gives a reliable “charging session ended” signal, call:
EV charging session has endedHomeFlux immediately:
removes EV grid permission;
sends Stop for mode control;
resumes normal battery behaviour;
keeps the end state latched until the EV reconnects.
This is preferable to waiting for inference when a reliable end event exists.
20.6 Target cannot be reached
The trigger
EV target cannot be reachedprovides:EV number/name;
warning text;
energy still needed;
deadline.
Use it for push notifications or logging.
With several EVs, HomeFlux manages a shared site/grid budget.
Key points:
EVs have independent states and targets.
Priority/weight settings influence allocation.
HomeFlux starts at most one new EV in a normal control cycle to avoid several chargers suddenly stepping up together.
Peak Guard evaluates the combined site impact.
The learned house-load reference helps identify whether EV load is really active.
For mode-controlled chargers, HomeFlux can infer that EV charging has stopped when total load returns near the learned non-EV house baseline. With multiple EVs this inference is portfolio-based; if your charger exposes a reliable session-end signal, use the explicit session-end action instead.
HomeFlux supports up to 4 HVAC units.
The HVAC controller is designed primarily to use flexible thermal demand to absorb useful solar energy while respecting comfort.
22.1 Inputs
For each configured HVAC, HomeFlux can receive:
room temperature;
current mode;
current setpoint;
current fan speed;
whether automatic HomeFlux control is enabled.
A global action is available for outdoor temperature:
Set HVAC outdoor temperature22.2 Outputs
For each configured HVAC, HomeFlux can publish:
HVAC power command is updatedHVAC mode command is updatedHVAC setpoint command is updatedHVAC fan command is updatedOnly enable the control permissions your device/integration can safely execute.
22.3 Heating and cooling activation
Configure temperature thresholds that determine when heating or cooling is useful.
Conceptually:
below the heating threshold → heating may be useful;
above the cooling threshold → cooling may be useful;
between them → comfort dead zone.
22.4 Comfort targets
Configure the normal heating and cooling comfort boundaries.
HomeFlux can then choose between two broad strategies:
Comfort first
Stay close to the desired comfort setpoints and use surplus only when this fits naturally.
Minimize PV surplus
Allow limited pre-heating or pre-cooling beyond the normal comfort target, within the configured permitted deviation, to store solar energy thermally in the building.
Example:
If normal cooling is 24°C and a permitted PV-surplus deviation allows pre-cooling to 22°C, HomeFlux can use excess solar now and reduce compressor demand later.
22.5 PV start and stop behaviour
A new HVAC session starts only when sufficient PV surplus exists and the start conditions are met.
If allow on battery is enabled, battery energy may continue an HVAC session that was started by PV, down to the configured HVAC battery-stop SoC.
This does not mean HomeFlux freely starts HVAC from battery whenever there is no solar. PV is the normal start trigger; battery support is a continuation mechanism.
22.6 Import reset
If grid import rises above the configured HVAC reset threshold, HomeFlux can immediately back out of the PV-surplus HVAC strategy instead of waiting for the normal slow regulation cycle.
22.7 Fan control
Fan behaviour can be adapted using outdoor temperature and configured slow/normal/fast profiles.
If the HVAC device exposes a numeric fan scale, configure its minimum, maximum and step so HomeFlux can move through valid values only.
22.8 Manual Homey control
Use:
Set HVAC automatic controlwhen you want another Flow to enable or disable automatic HomeFlux control for a specific HVAC without removing its configuration.
Condition:
HVAC is actively managedcan be used by other Homey automations.
HomeFlux supports one controllable water heater/boiler as a flexible thermal load.
The output is deliberately simple: on/off.
23.1 Output Flow
When
Boiler power command is updatedThen
Turn the real boiler/water-heater relay on or off using the boolean token.
23.2 PV-first heating
HomeFlux can heat water primarily from solar surplus.
Typical conditions include:
solar period is active;
battery SoC is above the configured boiler-start SoC;
sufficient real PV surplus exists to cover the configured boiler power.
If battery SoC falls below the boiler stop threshold, HomeFlux can stop the boiler.
23.3 Heating-cycle completion
HomeFlux tracks cumulative heating time toward the configured full heating cycle.
Temporary cloud or SoC interruptions do not necessarily reset the accumulated progress. Once a full cycle is completed, the boiler can be marked warm.
Condition:
Water heater is marked warmTrigger:
Boiler warmed status is updatedcan be used in your own Flows.
23.4 Daily cold reset
At the configured reset time, typically in the morning, the “warm” state is reset for the new day.
This prevents HomeFlux from repeatedly reheating a boiler at night when a full heating cycle was already completed earlier.
23.5 Tariff fallback
If solar does not provide enough heating within the allowed number of fallback days, HomeFlux can use selected electricity tariffs to complete the heating cycle.
You can configure whether fallback is allowed:
during day;
during night;
always;
or never, depending on the relevant settings.
Separate battery SoC start/stop thresholds can be used during tariff fallback to create hysteresis.
23.6 Boiler support during Peak Guard / planned charging
A boiler is a large controllable load. If simultaneous battery grid charging and boiler heating would exceed Peak Guard, HomeFlux can normally reduce/stop the lower-priority energy action.
An option allows the battery to support the boiler to avoid violating Peak Guard. In that case planned battery grid charging yields first, and battery discharge may support the load subject to the applicable battery limits.
HomeFlux can prioritize the boiler and enabled HVAC units as flexible thermal loads.
EVs are deliberately not part of this thermal-priority list; EV charging has its own allocation logic.
At each thermal re-evaluation, HomeFlux releases at most one new thermal device. This avoids several large loads starting simultaneously.
An already active thermal device is not automatically displaced just because a higher-priority device becomes available later. This reduces rapid switching.
HomeFlux tracks several categories such as:
direct PV use;
PV energy later used from the battery;
exported PV/battery energy;
load shifting / tariff benefit.
25.1 Imported/exported energy calibration
Actions:
Set imported energy todaySet exported energy todayaccept cumulative daily kWh meter values.
These inputs are for Savings/accounting calibration. They do not change the real-time EMS control decision.
25.2 Export price
Set current export pricecan provide a live export price for dynamic contracts.positive = compensation received;
negative = cost paid to inject.
Fixed and time-of-use contracts normally use their configured export prices.
HomeFlux exposes status information through both the app/device and Flow cards.
Useful conditions include:
EMS control is enabledEMS mode is ...EMS action is ...Average battery SoC is above ...Battery group is charging/idle/dischargingCurrent tariff is ...Planning phase is day/nightPrice data is currentPV power is above ...Peak Guard is actively limitingUseful triggers include:
EMS status changedCharge plan is updatedBattery commands are updatedUse
Get EMS statuswhen you need the current status on demand rather than waiting for a change trigger.These examples show how settings can be combined to express intent without writing a complete EMS yourself.
Recipe A — “Protect my battery on poor solar days, but create room if tomorrow will be sunny”
Goal:
preserve battery energy when PV is poor;
avoid holding unnecessary energy when tomorrow's forecast can refill the battery.
Configuration example:
Minimum SoC: 10%
Safety SoC: 20%
Battery Save floor: 70%
Low-PV Battery Save: enabled for the relevant tariff/class
Discharge to forecast target: enabled for that same tariff/class
Tomorrow forecast input connected
Behaviour:
Poor PV forecast → Battery Save activates.
If the planner says 55% is needed, battery may discharge to 55% and stops there.
If tomorrow's strong forecast reduces the calculated target to 35%, battery may discharge to 35%, provided Safety/seasonal floors do not require more.
Peak Guard may still use the reserve down to Minimum SoC if necessary.
This is generally better than a rigid “never go below 70% on low-PV days” rule.
Recipe B — “Only grid-charge in my cheapest tariff”
For a time-of-use contract:
Allow planned battery charging only in the desired cheap tariff.
Set charging to Never for the other tariffs.
Leave Automatic mode active.
Provide forecast and energy-need data.
HomeFlux then decides how much it needs to charge, while your tariff policy decides where it is allowed to do so.
Recipe C — “Never import in the expensive tariff unless a hard constraint requires it”
Enable Avoid grid import for the expensive tariff.
Do not allow planned grid charging in that tariff.
Keep an appropriate Safety/Minimum SoC reserve.
HomeFlux uses available battery energy to suppress import during that period. Peak Guard and hard battery boundaries remain active.
Recipe D — “Charge the EV from PV, but never let PV charging cause unwanted grid import”
EV mode: Smart.
Enable PV charging.
Set grid supplementation to Off for the relevant tariff.
Configure PV start/stop thresholds with hysteresis.
Feed actual EV charging current back through
Set EV status.HomeFlux then bases the EV budget on real available surplus and can stop/reduce charging when surplus disappears.
Recipe E — “I need 20 kWh in the car by 07:00, but cheap energy first”
Use:
Set EV energy needed by timewith:
20 kWh
07:00
Guarantee = Yes if the minimum absolutely must be reached
HomeFlux first uses configured favourable windows. If Guarantee is Yes and those windows are insufficient, it may expand into other tariffs as late as necessary while respecting Peak Guard.
If Guarantee is No, HomeFlux does not deliberately buy unfavourable energy merely to guarantee the target.
Recipe F — “Long trip: temporarily ignore my normal Smart mode”
Use:
Override EV mode for one charging session→ Emergency chargeThe EV charges as fast as the configured charger/site limits allow. When the session ends, the normal configured Smart mode returns automatically.
Recipe G — “Use air conditioning as a solar buffer”
Enable HVAC automatic control.
Enable PV-surplus control.
Choose “Minimize PV surplus”.
Allow a reasonable pre-cooling deviation.
Optionally allow battery continuation to a chosen stop SoC.
On a sunny afternoon, HomeFlux can cool the building slightly below the normal comfort target instead of exporting the same energy. Later, the HVAC has less work to do when PV disappears.
Recipe H — “Heat water from PV, but guarantee hot water after several bad days”
Boiler PV-first enabled.
Configure boiler wattage, battery start/stop SoC and full-cycle duration.
Configure fallback after the desired number of unsuccessful solar days.
Select which tariff(s) may be used for fallback.
HomeFlux first waits for sufficient solar. If solar remains insufficient for the configured period, tariff fallback completes the heating cycle.
Recipe I — “Let the external ems do the fast self-consumption loop, but let HomeFlux make strategic decisions”
Enable Hybrid EMS.
Connect
Set external EMS to self consumptionto the external automatic/self-consumption mode.Feed P1/grid power continuously to HomeFlux.
Feed actual measured total battery power through
Report external EMS battery powerwhile the external owns control.Keep the normal HomeFlux battery-output Flow connected so HomeFlux can retake control.
Result:
SHM2 performs its fast native regulation during plain self-consumption.
HomeFlux still takes control for planned charging, Battery Save, forecast-target discharge, Peak Guard and other strategic states.
P1 remains the real-world verification signal.
HomeFlux is designed to degrade rather than invent data.
Examples:
No valid grid measurement → regulation cannot safely continue normally.
Battery SoC missing/stale → affected battery is excluded from SoC-based control.
PV missing → solar-specific decisions become less informed.
Forecast missing → forecast-aware planning is reduced; HomeFlux does not pretend a forecast exists.
Dynamic price curve missing → no price-based planned charging/discharging; basic PV capture and Peak Guard can remain available.
EV SoC stale → HomeFlux can fall back to PV/tariff/current-based behaviour rather than trusting an old SoC value.
For critical integrations, use Homey notifications/logging around missing input data and HomeFlux warning triggers.
29.1 Configured-device selectors
Modern battery, EV and HVAC cards use a configured-device selector. Only the number of devices saved in HomeFlux settings is shown.
This keeps the Flow-card list manageable even though HomeFlux supports multiple batteries, EVs and HVAC units.
29.2 Legacy cards
Older numbered cards are retained for backward compatibility so existing Flows do not suddenly break.
For new Flows, use the current generic/configured cards documented below.
Before allowing full automatic control, verify these items one by one:
P1 sign — importing is positive and exporting is negative.
Battery sign — positive HomeFlux battery command really discharges; negative really charges.
Battery SoC — every configured battery updates correctly and remains fresh.
Battery limits — Minimum, Safety, Maximum and power limits match the real installation.
PV input — current PV wattage is realistic.
Forecast — “remaining today” actually decreases through the day; tomorrow is a total tomorrow forecast.
Peak Guard — test with a moderate controllable load before relying on it for a hard connection limit.
Tariffs — verify the current tariff/category in the HomeFlux status before enabling planned grid charging.
EV actual current — verify HomeFlux receives measured current, not only requested current.
HVAC permissions — only enable mode/setpoint/fan/power actions your HVAC integration supports correctly.
Boiler power — configure the real electrical load so surplus and Peak Guard calculations are meaningful.
Hybrid EMS — verify the external self-consumption hand-off and then verify that a HomeFlux strategic mode can retake control.
Autotune — initially review recommendations manually. Grant automatic rights only for parameters you are comfortable allowing HomeFlux to change.
HomeFlux works best when the configuration expresses policy, while the controller handles timing.
Examples of policy are:
“Keep at least 20% for normal operation.”
“During this tariff, avoid importing.”
“On poor-solar days, preserve the battery.”
“But if tomorrow's solar can refill it, discharge to the calculated target first.”
“The EV may use PV and cheap tariffs, but expensive energy only when a guaranteed deadline needs it.”
“Start HVAC from solar surplus; battery may only finish an already started session.”
“Heat water from PV first, but use the cheap tariff after too many unsuccessful solar days.”
“Let the native external controller do fast self-consumption, but give HomeFlux strategic ownership whenever planning or safety requires it.”
That is the main design idea: you define the boundaries and priorities; HomeFlux continuously decides what is appropriate inside them.
All reactions