Reference Configurations#
Type: Reference β lookup of config blueprints for common system archetypes. Pick the closest match and adapt.
These are anonymized, abstract templates. They are not real usersβ systems. Each block is a starting point β the parameter values reflect typical hardware in the archetype, but you must verify against your own equipment. See Configuration for the full parameter reference.
Note
Integer hours only. operating_hours_of_each_deferrable_load accepts whole integers (see issue #373). The blueprints below round all hour values up to the nearest integer. If your loads need finer control, reduce optimization_time_step (e.g. to 15 minutes) so the same wall-clock duration spans more timesteps.
1. Single-family home β PV + battery + heat pump + EV + dynamic tariff#
The most common modern setup: ~150 mΒ² home, 8β12 kWp PV, 10β15 kWh battery, air-source heat pump with underfloor heating, one EV, Tibber/aWATTar/Octopus dynamic pricing.
# Static config (Add-on options or config_emhass.yaml)
set_use_pv: true
solar_forecast_kwp: 10
optimization_time_step: 30
# Note: prediction_horizon is a runtime parameter (passed in the MPC payload),
# not a static config field. With this 30-min step a 24 h horizon is 48 timesteps.
set_use_battery: true
battery_nominal_energy_capacity: 12000 # Wh (= 12 kWh)
battery_charge_power_max: 5000 # W
battery_discharge_power_max: 5000 # W
battery_minimum_state_of_charge: 0.2
battery_maximum_state_of_charge: 0.9
battery_target_state_of_charge: 0.5
nominal_power_of_deferrable_loads:
- 3000 # water heater (regular deferrable)
- 11000 # EV charger
- 0 # heat pump (controlled via thermal_battery, set 0 here)
operating_hours_of_each_deferrable_load:
- 4
- 0 # EV: overridden at runtime
- 0 # heat pump: thermal_battery handles it
# def_load_config β passed at runtime (template in heat_pump_walkthrough.md)
Cross-link: Heat-pump walkthrough for the full MPC payload assembly. Daily cost depends strongly on local tariff spread, PV size, weather, and house thermal characteristics β measure your own baseline before claiming savings.
2. PV-only β no battery, heat pump, static tariff#
A simpler setup: 6β10 kWp PV, no battery, an air-source heat pump for water heating, fixed-rate import (no dynamic prices). EMHASS still helps schedule the heat pump and other deferrable loads against PV surplus.
set_use_pv: true
solar_forecast_kwp: 8
optimization_time_step: 30
set_use_battery: false
nominal_power_of_deferrable_loads:
- 3000 # water heater (heat-pump-driven, treat as regular deferrable)
- 1500 # dishwasher
operating_hours_of_each_deferrable_load:
- 4
- 2 # rounded up from typical 1.5 h cycle
# Static prices (no dynamic tariff)
load_cost_forecast_method: list
prod_price_forecast_method: list
# Pass [0.30] * 48 and [0.08] * 48 at runtime, or set in config if truly static.
Most savings come from shifting deferrable loads into PV-surplus hours. Cost reduction is bounded by the share of the daily load that is actually shiftable.
3. Off-grid heavy β large PV + battery, no grid import#
Cabin / off-grid setup: 15+ kWp PV, 30+ kWh battery, no grid connection (or grid connection with hard limits). Cost minimization is irrelevant β the goal is donβt run out of charge.
set_use_pv: true
solar_forecast_kwp: 20
set_use_battery: true
battery_nominal_energy_capacity: 30000 # Wh (= 30 kWh)
battery_charge_power_max: 10000 # W
battery_discharge_power_max: 10000 # W
battery_minimum_state_of_charge: 0.2 # lower floor β off-grid prefers more usable range
battery_maximum_state_of_charge: 0.95
battery_target_state_of_charge: 0.7 # always end day with reserve
# No grid: cost function reflects PV-curtailment penalty + load-shed penalty
costfun: self-consumption
For true off-grid use, modeling load shedding (turning loads off when SOC drops) is currently outside EMHASSβs optimization model and must be handled in HA automations. The costfun: self-consumption mode minimises grid interaction without explicit load-shedding constraints.
4. Apartment with dynamic tariff β no PV, no battery#
Renter setup: no rooftop access, no battery space. Just deferrable-load shifting against Tibber/aWATTar prices.
set_use_pv: false
set_use_battery: false
nominal_power_of_deferrable_loads:
- 2200 # washing machine
- 2000 # dishwasher
- 1800 # heat-pump tumble dryer
operating_hours_of_each_deferrable_load:
- 2 # washing machine (rounded up from typical 1.5 h cycle)
- 2 # dishwasher (rounded up from typical 1.5 h cycle)
- 1 # tumble dryer
Savings depend on the daily price spread of your dynamic tariff and the share of total energy that runs through shiftable loads. For typical 0.10β0.25 EUR/kWh spreads, deferrable-only setups produce visible but modest savings β the marginal value scales linearly with the spread.
5. Heat-pump-focused β PV + heat pump, no battery, no EV#
Mid-renovation home: PV installed but no battery yet, heat pump replaced gas, no EV. Most flexibility lives in the thermal battery (slab) rather than an electrochemical battery.
set_use_pv: true
solar_forecast_kwp: 10
optimization_time_step: 30
set_use_battery: false
nominal_power_of_deferrable_loads:
- 0 # heat pump via thermal_battery
# def_load_config with thermal_battery β see heat_pump_walkthrough.md
The thermal slab serves as the storage. Expect strong dependence on thermal_inertia_time_constant and accurate outdoor_temperature_forecast.
Cross-link: Heat-pump walkthrough, Reference: thermal_battery.
6. Multi-EV β PV + battery + 2 EVs#
Two-EV household: each EV has independent departure time and required-energy. Both modeled as separate deferrable slots.
set_use_pv: true
solar_forecast_kwp: 12
set_use_battery: true
battery_nominal_energy_capacity: 10000 # Wh (= 10 kWh)
nominal_power_of_deferrable_loads:
- 3000 # water heater
- 11000 # EV 1 (3-phase 16 A)
- 7400 # EV 2 (1-phase 32 A)
operating_hours_of_each_deferrable_load:
- 4
- 0 # runtime override
- 0 # runtime override
end_timesteps_of_each_deferrable_load:
- 48
- 0 # runtime override (per EV departure)
- 0 # runtime override (per EV departure)
Pass per-EV def_total_hours[1], def_total_hours[2], end_timesteps[1], end_timesteps[2] from each EVβs source at runtime. See EV walkthrough for the template pattern; replicate per EV.
See also#
Reference: Configuration β complete parameter reference
Reference: Passing data β runtime payload schema
Tutorials: Basic β PV, Basic β PV + Battery
How-tos: MPC, Heat-pump walkthrough, EV
Explanation: Good Practices