{"id":60,"date":"2025-02-08T19:24:26","date_gmt":"2025-02-08T19:24:26","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/?p=60"},"modified":"2025-02-09T00:57:02","modified_gmt":"2025-02-09T00:57:02","slug":"anyas-status-report-for-2-8-25","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/2025\/02\/08\/anyas-status-report-for-2-8-25\/","title":{"rendered":"Anya&#8217;s Status Report for 2\/8\/25"},"content":{"rendered":"<p><strong>Work Accomplished<\/strong>\u00a0 (code available at\u00a0https:\/\/github.com\/erika-24\/smart-watt)<\/p>\n<ul>\n<li>Started working on a\u00a0ML-based time-series forecasting model to predict load demand from training dataset (semi-synthetic for now). Used skforecast models (LinearRegression, ElasticNet, KNeighborsRegressor, RandomForestRegressor, XGBoost).<\/li>\n<li>Some challenges while writing code : How to handle missing values in data. I used forward fill and backward fill for now, will try using other interpolation methods as well as see what the output looks like if rows with missing data are deleted.Final output<strong style=\"font-size: 1rem\">:<\/strong><span style=\"font-size: 1rem\">\u00a0Generated a <\/span><strong style=\"font-size: 1rem\">48-step ahead forecast (30-minute intervals)<\/strong><span style=\"font-size: 1rem\"> for future load demand.<\/span><\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-68\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-6.52.13-PM-300x265.png\" alt=\"\" width=\"300\" height=\"265\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-6.52.13-PM-300x265.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-6.52.13-PM-768x678.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-6.52.13-PM-1024x904.png 1024w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-6.52.13-PM.png 1094w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>For the photovoltaic power output forecast,<\/p>\n<ul>\n<li>Integrated Solcast API to fetch solar power forecast data for energy optimization.<\/li>\n<li>Implemented API calls with rooftop ID and API key authentication.<\/li>\n<li>Parsed JSON responses and converted them into Pandas DataFrames for easier analysis<\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-70\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-7.13.05-PM-300x174.png\" alt=\"\" width=\"300\" height=\"174\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-7.13.05-PM-300x174.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-7.13.05-PM.png 600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>I also started doing research on the cost function and objective functions as well as constraints to optimize.\u00a0 The approach will likely be a combination of linear programming (objective fn is affine) and model predictive control.<\/p>\n<p><strong>Progress<\/strong> :<\/p>\n<p>My progress is on track with regards to the Gantt Chart. I set up synthetic data pipeline for now, but will switch to live IoT device logs.<img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-69\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-7.09.11-PM-300x120.png\" alt=\"\" width=\"531\" height=\"212\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-7.09.11-PM-300x120.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-7.09.11-PM-768x306.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-7.09.11-PM-1024x409.png 1024w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-content\/uploads\/sites\/364\/2025\/02\/Screen-Shot-2025-02-08-at-7.09.11-PM.png 1970w\" sizes=\"(max-width: 531px) 100vw, 531px\" \/><\/p>\n<p>Things to do for next week:<\/p>\n<p>Current Approach: Using synthetic training data for load forecasting.<br \/>\nNext Step:\u00a0 Retrieve real-time power consumption logs from IoT\/smart meter devices that we plan to use for the demo.<br \/>\n1.\u00a0 Set up an IoT device integration (ESP32 with a smart plug for getting power consumption data).<br \/>\n2. Use MQTT or ESPHome API to stream real-time power consumption data.<br \/>\n3.\u00a0 Store device logs in InfluxDB or a time-series database.<\/p>\n<p>Current Approach<strong>:<\/strong> Integrated PV output from Solcast, but not yet synchronized with load forecasts.<br \/>\nNext Step: Merge solar and load forecasts to optimize energy storage &amp; grid consumption.<\/p>\n<p><strong>Action Plan:<\/strong><br \/>\n1. Align solar forecast timestamps with predicted load timestamps.<br \/>\n2. Start implementing the\u00a0optimization algorithm (Linear Programming, MPC) to balance solar vs. grid power usage<\/p>\n<p>3. Evaluate forecasting accuracy with r2_score and MAE\/RMSE<\/p>\n<p>4. Implement hyperparameter tuning for XGBoost to improve accuracy<\/p>\n<h3><\/h3>\n<hr \/>\n<h3><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Work Accomplished\u00a0 (code available at\u00a0https:\/\/github.com\/erika-24\/smart-watt) Started working on a\u00a0ML-based time-series forecasting model to predict load demand from training dataset (semi-synthetic for now). Used skforecast models (LinearRegression, ElasticNet, KNeighborsRegressor, RandomForestRegressor, XGBoost). Some challenges while writing code : How to handle missing values in data. I used forward fill and backward fill for now, will try using &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/2025\/02\/08\/anyas-status-report-for-2-8-25\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Anya&#8217;s Status Report for 2\/8\/25&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1050,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-json\/wp\/v2\/posts\/60"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-json\/wp\/v2\/users\/1050"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-json\/wp\/v2\/comments?post=60"}],"version-history":[{"count":5,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-json\/wp\/v2\/posts\/60\/revisions"}],"predecessor-version":[{"id":82,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-json\/wp\/v2\/posts\/60\/revisions\/82"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-json\/wp\/v2\/media?parent=60"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-json\/wp\/v2\/categories?post=60"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamd5\/wp-json\/wp\/v2\/tags?post=60"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}