Inspiration

Energy prices fluctuate throughout the day — yet most homes still run appliances without considering cost or environmental impact. We wanted to create a system that helps households automatically schedule their energy usage to minimize cost without sacrificing comfort. Our goal was to combine machine learning, optimization, and real-world data to make energy efficiency simple, intelligent, and personalized.

What It Does:

  1. SmartEnergy is a web-based platform that:
  2. Fetches live electricity prices from ComEd’s 5-minute pricing API
  3. Lets users define their appliances, power usage, and preferred operation hours
  4. Uses both Reinforcement Learning (RL) and Linear Programming (LP) to generate optimized schedules
  5. Balances energy cost reduction with user comfort preferences
  6. Visualizes the final schedule and estimated savings in a clean, interactive dashboard
  7. In short, SmartEnergy helps you save money, save power, and stay comfortable — all at once.

How We Built It: We built SmartEnergy with a modular Python architecture: Backend logic: Reinforcement Learning via Stable-Baselines3 (PPO) and Linear Optimization using PuLP Simulation environments: Custom OpenAI Gym environments (EnergyEnv and EnergyEnvWithPreferences) Live data: Real-time ComEd price fetching, with fallback sample data generation Web app: Streamlit frontend for intuitive configuration, visualization, and control Utility modules: Handle appliance data, I/O management, and readable schedule formatting This structure allows SmartEnergy to be easily extended — for example, adding new optimizers, APIs, or IoT integration later.

Challenges We Ran Into:

  • Integrating live pricing data: The ComEd API sometimes returns incomplete data, requiring smart fallback handling.
  • Balancing cost and comfort: Finding a meaningful reward function that weighs user preferences without over-penalizing cost.
  • Training RL models: PPO agents needed fine-tuning and stable reward normalization to converge reliably.
  • Usability: Designing an interface that’s technical yet accessible to non-engineering users.

What We Learned:

  • How to design and implement custom Gym environments for real-world optimization problems.
  • The power of hybrid ML + deterministic optimization approaches (RL + LP).
  • Importance of data reliability and fallback logic when dealing with external APIs.
  • How small UX touches (e.g., readable schedules, live feedback) massively improve user trust and engagement.

Built With

Share this project:

Updates