Team’s Status Report for 03/29

Risks

  • Backend performance under real-time load
    With multiple device schedules and real-time data polling, system lag or crashes may occur if not optimized.
  • Home Assistant integration 
    Integration with HA might face compatibility or API syncing issues depending on setup.
  • Edge-case handling for devices
    Unresponsive or offline devices could cause unexpected failures if not properly handled

Changes

  • System currently loads price data from CSV files, need to change it to connect to a SQLite database, for storing device state, energy usage, and forecasts is in place
  • Add some more loads such as speakers for an audio component in the model house

Progress

  • Frontend and backend frameworks set up
  • User preferences taken into the consideration when performing constrained optimization
  • Model house for demo set up
  • Sensors integrated into Home Assistant

Anya’s Status Report for 03/29

Work Accomplished

  • Implemented conversational AI interface allowing users to query the system about energy optimization at their home.
  • Created suggestion system that guides users with prompt examples for better engagement with the AI assistant
  • The optimization system was enhanced with a user preferences framework that allows the user to select custom timeslots in which to run devices.
  • The system incorporates earliest start times and latest end times for each scheduled device.
  • Then designed a new constraint-based optimization that respects user preferences while maximizing energy savings
  • A three-tier priority system was implemented:
    • Low Priority: Maximizes energy savings with flexible timing (priority weight: 0.3)
    • Medium Priority: Balances energy savings with user-preferred times (priority weight: 0.5)
    • High Priority: Strictly adheres to user time preferences (priority weight: 0.8)
  • Priority settings directly influence how the optimization algorithm weighs time constraints against cost savings

Progress

Frontend and backend up and ready.

Right now, I need to implement the API routes that will actually trigger device control — switching devices on or off based on user input or automated schedules. Slightly behind schedule with regards to the GANT chart.

These routes will act as the bridge between the UI actions and the actuation layer. Once the endpoints are set up and mapped to the appropriate device control logic, the system will be able to execute real actions, completing the loop from user interaction to physical outcome.

Next Steps

  • Tie each route to the code that interacts with the device (ESP 32GPIO pins/ Home Assistant API).
  • Then test with real devices to validate actual switching.
  • Refine ML or linear programming algorithms that decide when to turn devices on/off.
  • Incorporate feedback loops from usage data.

Anya’s Status Report 03/22

Work Accomplished:

  • Did some testing of a LSTM neural network architecture for time-series energy consumption prediction
  • Tracked self-consumption metrics for solar utilization, peak reduction and cost savings % according to a baseline.
  • The original cost is based on the predicted load with original device schedule. The optimized cost uses the new schedules with shifted loads

Mock backend for schedules : (I need to parse the results of optimization algo and figure out whats a good way to put that into device schedules). This is what the frontend should look like

Current display of predicted vs optimzied power. Need to scale this up accordingly once the power sensors are connected to Home Assistant and download the data from there.

Progress: I would say I am a little behind because a) the power sensor data is not logged in, need to do the integration of the backend with Home Assistant to feed that data, look at transience to analyze average power consumption b) The grid pricing data is fed in through Nordpool which has an integration  with Home Assistant, but for now I am training the LSTM by downloading a csv from Home Assistant rather than having it dynamically via an API (API calls are expensive)


Challenges and Next Steps:

  • Improve load shifting algorithm with better device priority handling [figure out a way to parse info about optimized loads from an aggregate to a device level]
  • Also right now, all devices have the same priority.  Need to assign weights based on device priorities (like running a fridge vs fan, fridge is way more important)
  • Use these weights in the objective function to favor high-priority loads when minimizing cost or peak demand.

  • Add detailed logging for performance metrics to validate optimization results

  • Integration between HA and backend would be just creating a docker container and adding that to HA vs API requests

Team’s Status Report for 03/22

Significant Risks & Mitigation Strategies

Potential Risks:

  1. Material Delays: The arrival of the acrylic sheets is critical for completing the assembly of the model house. Any delays could push back integration.

    • Mitigation: The order was placed early this week, about two weeks before the interim demo to allow enough time for laser cutting and assembly.

Contingency Plan: If the acrylic sheets do not arrive on time, we will use tape to secure the wiring and move forward with integrating the electronics.

2.

Risk: Optimization does not accurately reflect the assigned priority levels of individual devices, leading to suboptimal or unfair load scheduling.

Mitigation:

  • Integrate device priority directly into the optimization objective and constraints as weighted penalties or scheduling preferences.

  • Validate post-optimization results by checking if higher-priority devices are scheduled within their preferred windows or receive preferential treatment.

  • Implement unit tests to ensure the priority values are parsed and utilized correctly in the solver.


Design Changes & Justification

  1. Change: Slight modifications to the DXF files were made to improve the fit between the basswood and acrylic layers. I have also decided to not place acrylic sheets over the wooden floors. This reduces materials, lowers cost, and removes unnecessary complexity with laser cutting.
  • Reason for Change: Initial design testing revealed minor misalignments in slots for acrylic insertion. Adjusting the DXF ensures a more precise assembly.

  • Costs Incurred: Additional time spent in CAD revision and verification.

  • Mitigation Strategy: These changes were made early enough, before laser cutting the wood and ordering the acrylic, that they do not impact the schedule. The updated files are ready for cutting as soon as materials arrive.

2. Instead of relying on API requests to interact with Home Assistant, we will use a Dockerized container to deploy and upload the optimized scheduling code directly into the Home Assistant environment. This approach improves modularity, simplifies integration, and allows for more consistent control and updates to the system.

Progress:

  • Testing validation loss and training loss for LSTM for load prediction
  • Frontend developed for device scheduling

Erika’s Status Report for 03/22/2025

Accomplishments This Week

This week, I laser cut all of the basswood sheets for the exterior of the model house. I also designed the DXF files for the acrylic sheets that will form the inner layer of the walls. To ensure timely progress, I placed an order for all required acrylic sheets. Ideally, they arrive in time for the interim demo, but if not we can just tape up the wiring to the wood as a quick solution.

Project Status

Currently, my progress is on schedule. The next steps depend on receiving the acrylic sheets, but designing the DXF files and laser cutting the basswood keeps the timeline on track.

Next Week’s Deliverables

In the upcoming week, I plan to:

  • Laser cut the acrylic sheets once they arrive

  • Assemble the exterior and interior walls of the model house

  • Begin integrating electrical components if time permits

Maya’s Progress Report 2025-03-22

  1. Expanded Device Integration:
    • Successfully got power sensors working for real-time energy monitoring.
    • Integrated motors, PWM fans, and servos for enhanced automation control.
    • Scaled up LED configurations for various smart lighting applications.
  2. Home Assistant Add-on Development:
    • Continued packaging the system as a Home Assistant add-on.
    • Enhanced compatibility for seamless deployment and integration.
    • Refined the Dockerized module for stability and performance.

Challenges Encountered:

  • Ensuring reliable scaling of devices and automation workflows.
  • Addressing minor compatibility issues with different Home Assistant setups.

Next Steps:

  • Finalize and thoroughly test the Home Assistant add-on.
  • Optimize performance for larger-scale automation setups.
  • Continue refining integration with additional smart devices.
  • Document setup and deployment instructions for broader adoption.

Maya’s Status Report 2025-03-15

Work Accomplished:

  1. Home Assistant Resilience Improvements:
    • Reconfigured the Home Assistant setup to be more resilient after a previous system failure.
    • Implemented backup strategies to prevent future downtime.
    • Improved the code deployment pipeline to make iteration a lot faster and seamless
  2. Network Accessibility Enhancements:
    • Set up a reverse proxy on an external server with HTTPS and certificates to ensure secure access
    • Set up a mesh VPN network to make sure that the home assistant node can always be accessed from the reverse proxy as long as it has an internet connection, this means that the entire team will be able to access it no matter if it is at my house or on campus with no extra tweaking
    • Configured port forwarding to allow global access to Home Assistant.
    • From `192.168.1.214:8123` to
  3. Device Integration:
    • Got the power sensors, PWM fans working with the ESPHome
  4. Packaging Code:
    • Started work on dockerizing Anya’s code to streamline deployment.
    • Began packaging it as a Home Assistant addon for easy integration and seamless one-click installation.

Challenges Encountered:

  • Unable to access the soldering station due to conflicts with other users, delaying hardware assembly.

Next Steps:

  • Complete soldering of hardware components to ensure stable connection, tomorrow
  • Expand ESPHome integration with additional devices and refine automation.
  • Continue testing and optimizing Home Assistant configurations for improved performance and security.
  • Explore additional security measures for globally accessible Home Assistant setup.
  • Finalize and test the Home Assistant addon for seamless deployment.

Status

  • Despite the set backs with being able to access equipment, mostly on pace just need to do the soldering tomorrow

Team’s Status Report for 03/15

Risks:

Gradient Step Update Issue:

  • In SGD and L-BFGS optimization algorithms, when forecasted energy demand closely matches actual load, the gradient of the cost function is near-zero.
  • This results in very small updates to optimization variables, reducing adaptability and making it harder for the model to improve scheduling decisions.
  • Mitigation: Introduce regularization techniques, perturbations in forecast data (white Gaussian noise)

Misinterpreting Transients as Long-Term Load Changes

Short-term power spikes (when a fan starts) can be mistaken for sustained high energy demand. The optimizer may overcompensate by reducing battery discharge or increasing grid imports unnecessarily.

Changes:

No major changes happened this week. We are thinking of adding a user tracking functionality to improve future recommendations based on past actions to make the system more interactive.

Progress:

  • Optimization Model Debugging: Refined solver selection and fixed SOC linearity issues.
  • Created CAD model of the model house
  • Algorithm Development: Partial success with SGD & L-BFGS, but linear programming constraints need debugging.
  • Recommendation Engine: Classifies insights by priority and impact, with user tracking integration.
  • Frontend: Built an interactive energy visualization dashboard.
    Pending:
  • Hardware Integration: Waiting for power sensor polling to complete before full backend integration.
  • Building the model house in which to house all of our electrical components.

Anya’s Status Report for 03/15

Work Accomplished:

Spent a significant amount of time debugging the optimization constraints and attempting different techniques to resolve DCP rule violations in the optimization model. To resolve it, I made sure the SOC dynamics equation is now linear in the decision variables, added fallback options (within CVXPy library) to try different solvers if the primary ECOS solver fails.

The SGD and L-BFGS-B methods are somewhat working, for the linear programming solvers its thinking the constraints are of conic form so I need to debug that.

Here is the output for SGD


Started working on a recommendations analyzer that processes energy data to identify patterns and anomalies. I developed a classification system that categorizes insights by priority and potential impact. Added functionality to track user actions on recommendations to improve future suggestions

Worked on the recommendations frontend.


For the frontend, I implemented a responsive dashboard that visualizes energy usage, production, and optimization results across devices

Challenges

One of the main challenges in SGD and LGBFS optimization algorithms is that the forecasted energy demand is very close to the actual load.

  • If the forecasted load closely matches the actual load, then the gradient of the cost function is near-zero.
  • This results in very small updates to optimization variables, reducing the ability of the algorithm to adapt or improve scheduling decisions.
  • Mitigation Technique

Progress

I am on track regards to the schedule. Still waiting on the hardware integration to be complete and polling data from the power sensors, which will be fed into a database and processed to be displayed on the frontend.

Next Steps

  • Power sensor data arrives at high frequency (every few seconds or milliseconds). A proper database in SQLite is required to be created for  logging and retrieval.
  • When calculating average power consumption, factor in transients when devices switch on/off
  • Develop interactive dashboards that display key metrics from the optimization algorithm, such as grid usage, battery state of charge, device schedules, and cost calculations.

  • Start working on the integration of the backend with Home Assistant and ESPHome firmware. I have created the clients and API requests (communication protocol library) but actually need to start debugging

Erika’s Status Report for 03/15/2025

Accomplishments This Week

This week, I worked on the CAD model for the house, adjusting the design and dimensions to ensure we stay within our material constraints. I refined the layout to optimize material usage. I have also added slots in the back walls to easily and neatly slide in the acrylic sheets and sandwich the wires and electronic components within this two-layered wall.

Additionally, I researched laser cutting techniques and prepared the DXF files, ensuring that the design is ready for an efficient cutting session in the Ideate workspace next week. This preparation included:

  • Finalizing the vector paths to avoid unnecessary cuts.
  • Ensuring the scaling and material thickness were correctly accounted for.
  • Organizing files to minimize waste and speed up fabrication.

I have chosen a low-power approach with multiple passes to minimize the risk of charring the wood. This will hopefully result in a clean, polished look.

Finally, I reached out to IDeATe to request access to the laser cutters. Hopefully, my request will be approved and I can get in there early next week to cut all the basswood sheets needed to assembly the house.

Progress:

Kitchen

  • Floor: 20” x 8”
    • 20” x 12” -> cut off 4 inches from one side
  • Left Wall: 8” x 9 ⅞”
  • Right Wall: 8” x 9 ⅞”
  • Back Wall: 19 ¾” x 9 ⅞” (cut out slots)

Garage

  • Floor: 8” x 8”
  • Left Wall: 8” x 9 ⅞” 
  • Back Wall: 7 ¾” x 9 ⅞” (cut out slots)
  • Roof: 8” x 8”

Bedroom

  • Floor: 12” x 8”
  • Left Wall: 7” (diagonal to 7.09”) x 8”
  • Back Wall: Refer to design -> Max Height: 12”, Width: 11 ⅞”
  • Roof: 9.4” x 8”

Laundry

  • Floor: 8” x 8”
  • Left Wall: 8” x 10”
  • Right Wall: 8” x 7”
  • Back Wall: Refer to design -> Height: 10” to 7”, Width: 7 ¾”
  • Roof: 8” x 12.71”

Full Assembly:

 

Material Usage Planning

Project Schedule Status

My progress is on schedule with our project timeline. The CAD model and laser cutting preparation are key steps before fabrication, and completing them now keeps us aligned with our milestones.

Goals for Next Week

Next week, I plan to:

  • Laser cut the house components and assess fit/assembly.
  • Make any necessary adjustments to the CAD design based on cutting results.
  • Order colored acrylic and create DXF files to laser cut these sheets.
  • Begin assembling the physical prototype to test structural stability.