π Installation Guide
Contents
Requirements
Before installing, make sure you have:
- Home Assistant 2023.12 or later
- A Nordpool (or compatible) electricity price sensor with
raw_todayandraw_tomorrowattributes - An indoor temperature sensor
- An outdoor temperature sensor
- (Optional) A weather entity β required for forecast-based preheat and precool
- (Optional) An Ohmigo WiFi controller for direct hardware push
New Installation
Step 1 β Add via HACS
- Open HACS in your Home Assistant sidebar.
- Go to Integrations β click the three-dot menu β Custom repositories.
- Add
https://github.com/JohanAlvedal/PumpSteeras an Integration. - Search for PumpSteer and click Download.
Step 2 β Restart Home Assistant
A full restart is required after installing a new custom integration.
Step 3 β Add the integration
- Go to Settings β Devices & Services β Add Integration.
- Search for PumpSteer and select it.
- Fill in the required entities:
| Field | Description |
|---|---|
| Indoor temperature sensor | Your indoor thermometer sensor |
| Outdoor temperature sensor | The real outdoor temperature |
| Electricity price sensor | Todayβs price list (e.g. Nordpool) |
| Tomorrow price sensor | Tomorrowβs price list |
| Weather entity (optional) | Used for forecast-based preheat |
Step 4 β Verify
After setup, check that:
sensor.pumpsteeris active and shows a temperature value- The
statusattribute readsok - The
modeattribute changes sensibly over time (normal β braking β normal) - The
price_categoryattribute reflects current electricity prices
It can take a few minutes after HA startup before all entities report valid states. PumpSteer falls back to safe mode (passing through real outdoor temp) until all required sensors are available.
Manual Installation
If you prefer not to use HACS:
- Download the latest release from GitHub.
- Extract and copy the
custom_components/pumpsteer/folder to your HAconfig/custom_components/directory. - Restart Home Assistant.
- Continue from Step 3 above.
Upgrade from 2.0.x β 2.1.x
No migration required. Existing setups continue working without changes.
New in 2.1.x:
sensor.pumpsteer_thermal_outlookis automatically registeredswitch.pumpsteer_preheat_boostreplaces the options-flow toggle (your saved value is preserved via RestoreEntity)
Upgrade from 1.x β 2.x
PumpSteer 2.0 is a complete rewrite. Treat this as a new integration, not an update.
Breaking changes
| What changed | Action required |
|---|---|
| Price categories | Old categories (very_cheap, extreme) are gone. New: cheap, normal, expensive |
| Entity IDs | All entities have been renamed β update dashboards and automations |
| ML features | Removed entirely |
| Options flow | Rebuilt β reconfigure after upgrade |
Recommended upgrade path
- Note your current settings (target temp, aggressiveness, etc.)
- Remove the old PumpSteer integration
- Install 2.x fresh via HACS
- Reconfigure with your saved settings
- Observe for 24β48 hours before migrating dashboards and automations
What PumpSteer creates
After setup, PumpSteer registers the following entities:
Sensors
| Entity | Description |
|β|β|
| sensor.pumpsteer | The fake outdoor temperature sent to the heat pump |
| sensor.pumpsteer_thermal_outlook | Forecast analysis (preheat worthwhile, trend, etc.) |
Number sliders
| Entity | Description | Default |
|β|β|β|
| number.pumpsteer_target_temperature | Desired indoor temperature | 21 Β°C |
| number.pumpsteer_summer_mode_threshold | Outdoor temp at which summer mode activates | 17 Β°C |
| number.pumpsteer_saving_level | Aggressiveness 0β5 | 3 |
| number.pumpsteer_brake_ramp_time | Ramp duration (house inertia) | 2.0 |
Switches
| Entity | Description | Default |
|β|β|β|
| switch.pumpsteer_preheat_boost | Enable/disable preheat boost | On |
| switch.pumpsteer_notifications | Enable/disable price notifications | On |
| switch.pumpsteer_holiday_mode | Enable holiday mode (16 Β°C target) | Off |
| switch.pumpsteer_ohmigo_enabled | Enable/disable Ohmigo push | On |
Datetime helpers
| Entity | Description |
|β|β|
| datetime.pumpsteer_holiday_start | Holiday start time (auto-activates holiday mode) |
| datetime.pumpsteer_holiday_end | Holiday end time (auto-deactivates holiday mode) |