Smart Home Microgrid Optimization with DIY Battery & Dynamic Pricing
Design and implement an intelligent Energy Management System (EMS) for a residential microgrid, integrating solar PV generation, a 'DIY' battery storage unit, and grid connectivity. The primary goal is to minimize household electricity costs and maximize energy self-sufficiency by optimally scheduling battery charge/discharge cycles and managing energy flows. The system must adapt to dynamic Time-of-Use (ToU) or real-time electricity pricing schemes and incorporate weather forecasts to predict solar generation. This challenge requires creating a control logic that can make informed decisions based on forecasted energy demands, solar production, and varying electricity prices. Participants will need to model realistic household load profiles, solar PV output, and battery characteristics. The solution should be robust enough to handle data uncertainties and ensure continuous power supply while prioritizing cost savings and maximizing the use of self-generated clean energy.
What you are building
The core problem, expected build, and operating context for this challenge.
Develop a Python-based energy management system to optimize power flows in a smart home microgrid with solar PV and a battery under dynamic pricing.
How work is evaluated
The evaluation module will assess the energy management system's ability to minimize electricity costs, maximize self-consumption, and ensure battery operational limits are respected over a simulated period (e.g., one week).
Challenge datasets
Public datasets, plus the private datasets you have access to.
What you should walk away with
Build a synthetic household electricity load profile generator that simulates typical hourly consumption patterns with customizable variations and daily/seasonal trends.
Implement a basic solar PV generation model that estimates power output based on factors like time of day, simulated irradiance, and panel efficiency.
Simulate a dynamic electricity pricing structure, such as Time-of-Use (ToU) tariffs or a simplified real-time pricing mechanism with hourly or sub-hourly variations.
Develop a greedy heuristic or a simple linear programming (LP) optimization routine (e.g., using SciPy.optimize) to schedule the battery's charge and discharge cycles.
Integrate simulated weather forecast data (e.g., irradiance, temperature) to improve solar generation predictions and adjust load profiles if needed.
Calculate key performance indicators (KPIs) such as daily/weekly electricity costs, grid interaction (export/import), self-consumption rate, and battery State of Charge (SoC) over a simulated period.
Implement a mechanism to prioritize critical loads or maintain a minimum battery SoC for resilience against simulated grid outages (optional advanced feature).
Reference links and supporting material
Sample data for 1 tasks
Challenge setup
The evaluation module will assess the energy management system's ability to minimize electricity costs, maximize self-consumption, and ensure battery operational limits are respected over a simulated period (e.g., one...
Challenge input
Python script containing the EMS logic and a configuration file (e.g., JSON) specifying simulation parameters (e.g., start_date, pricing schedule,...
Agent execution
No agent tool is listed for this challenge.
Evaluated output
JSON object containing total electricity bill, self-consumption rate, and battery SoC statistics.
- Verify that the battery's State of Charge (SoC) never falls below its minimum (e.g., 20%) or exceeds its ma...
- Total Electricity Bill (USD) target: Minimize
- Python execution harness
Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.
View technical recipe
Configured tools
No tool records are attached.
Evaluation contract
- Verify that the battery's State of Charge (SoC) never falls below its minimum (e.g., 20%) or exceeds its maximum (e.g., 95%) limits during the simulation.
Metrics
- Total Electricity Bill (USD) · Target Minimize
- Self-Consumption Rate (%) · Target Maximize
- Average Daily Battery Throughput (kWh) · Target Moderate (provide a reasonable range for optimal use)
Workflow tasks
- Task 1
Input: Python script containing the EMS logic and a configuration file (e.g., JSON) specifying simulation parameters (e.g., start_date, pricing schedule, battery capacity).
Output: JSON object containing total electricity bill, self-consumption rate, and battery SoC statistics.
Execution harness: Python
Recipe freeze marker
No recipe freeze time is recorded.