Load¶
Loads represent power consumption in your system. The Load element uses forecast data to model any type of consumption pattern from fixed baseline loads to variable time-varying consumption.
Connection endpoints
Load elements appear in connection selectors only when Advanced Mode is enabled on your hub.
Configuration¶
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| Name | String | Yes | - | Unique identifier for this load |
| Forecast | sensor(s) | Yes | - | Power consumption forecast sensor(s) (kW) |
| Shedding | Boolean | No | false | Allow the optimizer to reduce load below the forecast when it is uneconomic |
Name¶
Unique identifier for this load within your HAEO configuration. Used to create sensor entity IDs and identify the load in connections.
Examples: "Base Load", "House Load", "Total Load", "EV Charger", "Pool Pump"
Forecast¶
Specify one or more Home Assistant sensor entities providing power consumption data. The Load element is flexible and works with both constant and time-varying patterns.
Single forecast example:
| Field | Value |
|---|---|
| Forecast | sensor.house_load_forecast |
Multiple load components example:
| Field | Value |
|---|---|
| Forecast | sensor.base_load, sensor.ev_charger_schedule, sensor.hvac_forecast |
Provide all load forecasts to get accurate total consumption predictions. See the Forecasts and Sensors guide for details on how HAEO processes sensor data.
Shedding¶
Allow HAEO to reduce load consumption below the forecast.
Default: Disabled (load follows the forecast exactly).
When enabled: HAEO can shed the load when the system is fully supplied and further consumption would increase cost.
Constant Load Pattern¶
For fixed baseline consumption that doesn't vary over time, use an input_number helper providing a constant value.
Creating a Constant Load¶
-
Create Input Number Helper:
- Go to Settings → Devices & Services → Helpers
- Add a new "Number" helper
- Set name: "Base Load Power"
- Set unit: kW
- Set desired constant value (e.g., 1.0)
-
Configure Load Element:
Field Value Name Base Load Forecast input_number.base_load_power
This configuration represents constant consumption (e.g., 1 kW = 24 kWh per day).
Determining Your Baseline¶
To find your baseline consumption:
- Measure overnight minimum: Check your consumption during hours when everything is "off" (e.g., 2-4 AM)
- Add always-on devices: Include refrigerators, networking equipment, standby devices
- Add safety margin: Increase by 10-20% to account for variations
Typical Values¶
- Small apartment: 0.2-0.4 kW
- Average home: 0.5-1.2 kW
- Large home: 1.0-2.0 kW
- Commercial: 2.0+ kW
Start Conservative
It's better to overestimate baseline consumption slightly. The optimizer will ensure sufficient power is available.
Forecast-Based Load Pattern¶
For variable consumption that changes over time, use sensors that provide forecast data.
Single Variable Load¶
| Field | Value |
|---|---|
| Name | House Load |
| Forecast | sensor.house_load_forecast |
The forecast sensor should provide:
- Current consumption value
- Forecast data for future periods
- Unit of measurement: kW
Common Forecast Sources¶
Direct Measurement:
- Home energy monitors
- Smart meters with forecast capability
- Utility consumption APIs
Calculated Forecasts:
- Template sensors combining multiple sources
- Machine learning predictions
- Historical pattern averaging
Scheduled Devices:
- EV charger schedules
- Pool pump timers
- HVAC duty cycles
Combining Constant and Variable Loads¶
For most accurate optimization, combine a constant baseline with variable consumption:
Configuration 1: Constant baseline
| Field | Value |
|---|---|
| Name | Base Load |
| Forecast | input_number.base_load_power |
Configuration 2: Variable consumption on top
| Field | Value |
|---|---|
| Name | Variable Load |
| Forecast | sensor.variable_consumption |
Total consumption = 1.0 kW (constant) + variable forecast.
This approach:
- Simplifies forecast creation (only forecast variable portion)
- Ensures baseline is always covered
- Improves optimization reliability
- Makes it easier to adjust baseline without changing forecasts
Combining Loads¶
Combine multiple load sources in a single element:
| Field | Value |
|---|---|
| Name | Total House Load |
| Forecast | input_number.base_load, sensor.ev_charger_schedule, sensor.pool_pump_schedule, sensor.hvac_forecast |
HAEO automatically sums all sensors at each timestamp, allowing you to model complex load profiles from simple components.
Configuration Examples¶
Simple Constant Load¶
Fixed baseline consumption:
| Field | Value |
|---|---|
| Name | Base Load |
| Forecast | input_number.constant_power |
Variable Household Consumption¶
Time-varying consumption with forecast:
| Field | Value |
|---|---|
| Name | House Load |
| Forecast | sensor.house_consumption_forecast |
Combined Constant and Variable¶
Baseline plus variable components:
| Field | Value |
|---|---|
| Name | Total Load |
| Forecast | input_number.baseline_power, sensor.appliance_forecast |
Multiple Variable Sources¶
Combine multiple consumption sources:
| Field | Value |
|---|---|
| Name | All Loads |
| Forecast | sensor.base_consumption, sensor.ev_charger, sensor.pool_pump_schedule, sensor.hvac_system |
Input Entities¶
Each configuration field creates a corresponding input entity in Home Assistant.
Input entities appear as Number or Switch entities with the config entity category.
| Input | Unit | Description |
|---|---|---|
number.{name}_forecast |
kW | Load power forecast from configured sensor(s) |
switch.{name}_curtailment |
- | Whether shedding is permitted |
number.{name}_consumption_cost |
$/kWh | Running value of serving the load (if configured) |
The consumption cost surfaces the value of serving this load for shedding decisions. It is entered as a positive running value and stored as the negative of a policy rule; the input appears on both the load device and the Policies device. This also applies when the value is driven by a sensor: a positive sensor reading is negated for the policy, and the entities continue to display the positive running value.
Input entities include a forecast attribute showing values for each optimization period.
See the Input Entities developer guide for details on input entity behavior.
Sensors Created¶
Sensor Summary¶
A Load element creates 1 device in Home Assistant with the following sensors.
| Sensor | Unit | Description |
|---|---|---|
sensor.{name}_power |
kW | Power consumed by load |
sensor.{name}_forecast_limit_price |
$/kWh | Shadow price of the load power limit constraint |
Power¶
The optimal power consumed by this load at each time period.
When Shedding is disabled, this matches the configured forecast or constant value. When shedding is enabled, this may be lower than the forecast if the optimizer determines shedding reduces total system cost.
For constant loads: The sensor shows the same value for all periods (the configured constant power).
For variable loads: The sensor reflects the forecast values for each period from the configured sensor(s).
Example: A value of 2.5 kW means this load requires 2.5 kW at this time period, which the optimization must supply from available sources.
Interpreting partial power
HAEO models average power for each time period. When the optimized power is lower than the configured forecast, HAEO does not distinguish between:
- a load running at 50% for the whole period, and
- a load running at 100% for half the period. Interpret the reduced power in whatever way makes sense for the device you are controlling.
Forecast Limit Price¶
Shadow price of the load power limit constraint at each time period. See the Shadow Prices modeling guide for general shadow price concepts.
This reflects the marginal impact of increasing the allowed load power by 1 kW for the time period. When shedding is disabled (fixed forecast), it is commonly interpreted as the marginal cost of serving the load.
Interpretation:
- Positive value: Increasing allowed load would increase total cost (power is expensive or constrained)
- Higher values: Indicate serving the load is expensive (peak grid prices, battery constraints, etc.)
- Lower values: Indicate serving the load is cheap (off-peak prices, excess solar, etc.)
- Magnitude: Shows the economic pressure at this load point in the network
Example: A value of 0.28 means it costs $0.28 per kW to serve this load at this time period, reflecting the marginal cost of the power source.
All sensors include a forecast attribute containing future optimized values for upcoming periods.
For constant loads, the forecast shows the same value for all periods.
For variable loads, the forecast reflects the configured sensor forecast values.
Troubleshooting¶
Sensor Not Found¶
Problem: Error "Sensors not found or unavailable"
Solutions:
- Verify sensor entity ID exists in Home Assistant
- Check sensor is available (not "unavailable" or "unknown")
- Ensure sensor provides numeric values
- For input_number helpers, ensure they are created and have a value set
Incorrect Load Values¶
Problem: Load values don't match expectations
Check:
- Units: Ensure sensor reports power in kW (not W or MW)
- Multiple sensors: Verify you want additive combination
- Constant vs Variable: Confirm sensor type matches intent
- Forecast data: Check sensor attributes contain forecast if expected
Optimization Infeasible¶
If optimization fails with loads:
- Check total load vs supply: Ensure grid + solar + battery can supply the total load
- Verify load values: Check that load power is reasonable
- Grid limits: Ensure grid import limit is sufficient for load
- Constant load too high: If using constant load, verify it's within available power
Load Too Low¶
Problem: Optimizer shows lower consumption than expected
Common causes:
- Shedding is enabled and the optimizer can reduce the load because there is no value assigned to serving it.
- Your forecast includes optional or deferrable load that you expect to be scheduled, not modeled as always-on consumption.
Solutions:
- Disable Shedding for loads that must always run.
- Only include loads that represent required consumption in the Load element. For controllable/deferrable loads today, schedule them externally (for example EMHASS) and drive this element from forecast sensors, or wait for planned native deferrable support in HAEO.
Next steps¶
-
Create a historical load forecast
Build a simple load forecast from past consumption data.
-
Connect to network
Learn how to connect your load to other elements using connections.
-
Configure forecast sensors
Deep dive into how HAEO loads and processes sensor data.
-
Add battery storage
Pair loads with battery storage to optimize energy usage.
-
Add grid connection
Configure grid import/export to meet load requirements.