Skip to content

Add Home Load Support#84

Open
markoceri wants to merge 195 commits intodevfrom
feat/home-load
Open

Add Home Load Support#84
markoceri wants to merge 195 commits intodevfrom
feat/home-load

Conversation

@markoceri
Copy link
Copy Markdown
Collaborator

Summary

This PR introduces home load monitoring and forecasting — the system now tracks household appliance energy consumption (boiler, EV charger, dishwasher, etc.) and predicts future usage. This allows the mining engine to make smarter start/stop decisions based on expected household demand.

What's New

  • Device profiles — Define which appliances are in your home and categorize them (controllable, continuous, seasonal, occasional).
  • History tracking — Pulls real consumption data from Home Assistant to build a usage history for each device.
  • Energy forecasting — Multiple forecasting strategies (from simple averages to ML-based models like XGBoost) predict how much energy your home will need in the next 1–4 hours.
  • Automatic model training — The system trains and evaluates forecast models overnight, automatically promoting the most accurate one.
  • Rule engine integration — New fields available in start/stop rules (e.g. home_load.total_forecast.next_2h.avg_power) so you can write conditions like "don't mine if the house will need more than 3 kW in the next hour".
  • REST API — Endpoints for managing forecast and history providers.

How It Works (High Level)

  1. The system fetches recent power readings from Home Assistant.
  2. A trained model forecasts expected consumption for the coming hours.
  3. The forecast is injected into the decisional context alongside solar, battery, and grid data.
  4. Your start/stop rules can reference predicted home load to decide whether mining should run.

Example Rules

# Stop mining if household demand will be high
- name: high_home_load_stop
  condition: "home_load.total_forecast.next_1h.avg_power > 3000"
  action: stop

# Start mining when household demand is low
- name: low_home_load_start
  condition: "home_load.total_forecast.next_2h.avg_power < 1000"
  action: start

…rConfigurationError for energy load history errors handling
markoceri and others added 28 commits April 24, 2026 03:19
…configurable data retrieval

Co-authored-by: Copilot <copilot@github.com>
…ic devices

Co-authored-by: Copilot <copilot@github.com>
…ast providers and services

Co-authored-by: Copilot <copilot@github.com>
…ng dependencies and insufficient data

Co-authored-by: Copilot <copilot@github.com>
…orecast providers

Co-authored-by: Copilot <copilot@github.com>
…nsumption

Co-authored-by: Copilot <copilot@github.com>
…nsumption

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
…kforecast provider

Co-authored-by: Copilot <copilot@github.com>
…terRecursive instantiation

Co-authored-by: Copilot <copilot@github.com>
…ovider and update related schemas and entities

Co-authored-by: Copilot <copilot@github.com>
…astProvider and update related models and schemas

Co-authored-by: Copilot <copilot@github.com>
…ecast providers documentation

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
…ate methods

Co-authored-by: Copilot <copilot@github.com>
…ile forecast provider

Co-authored-by: Copilot <copilot@github.com>
@markoceri markoceri self-assigned this May 6, 2026
@markoceri markoceri added the enhancement New feature or request label May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant