Skip to content

Commit 8f3fded

Browse files
authored
Changed calculation of baseloads to omit NaN (#333)
1 parent 5e2e777 commit 8f3fded

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

dao/prog/da_report.py

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import calendar
22
import datetime
3+
from unittest.mock import inplace
4+
35
# from unittest.mock import inplace
46

57
import pandas as pd
@@ -2492,13 +2494,14 @@ def calc_co2_columns(self, report_df, active_interval, active_view):
24922494

24932495
# ------------------------------------------------
24942496
def get_sensor_week_data(
2495-
self, sensor: str, weekday: int, vanaf: datetime.datetime, col_name: str
2497+
self, sensor: str, weekday: int, vanaf: datetime.datetime, tot: datetime.datetime, col_name: str
24962498
) -> pd.DataFrame:
24972499
"""
24982500
Berekent de waarde van een HA-sensor over 24 uur voor een bepaalde weekdag
24992501
:param sensor:
25002502
:param weekday:
25012503
:param vanaf:
2504+
:param tot:
25022505
:param col_name:
25032506
:return:
25042507
"""
@@ -2531,6 +2534,7 @@ def get_sensor_week_data(
25312534

25322535
# Define parameters
25332536
start_ts_param1 = vanaf.strftime("%Y-%m-%d %H:%M:%S") # '2024-01-01 00:00:00'
2537+
tot_ts_param1 = tot.strftime("%Y-%m-%d %H:%M:%S")
25342538

25352539
# Build the query to retrieve raw data
25362540
query = (
@@ -2551,6 +2555,7 @@ def get_sensor_week_data(
25512555
& (t1.c.state.isnot(None))
25522556
& (t2.c.state.isnot(None))
25532557
& (t1.c.start_ts >= self.db_ha.unix_timestamp(start_ts_param1) - 3600)
2558+
& (t1.c.start_ts < self.db_ha.unix_timestamp(tot_ts_param1) - 3600)
25542559
)
25552560
)
25562561

@@ -2584,16 +2589,26 @@ def get_sensor_week_data(
25842589
def get_sensor_week_sum(
25852590
self, sensor_list: list, weekday: int, vanaf: datetime.datetime, col_name: str
25862591
) -> pd.DataFrame:
2587-
counter = 0
2592+
# counter = 0
25882593
result = None
2594+
now = datetime.datetime.now()
2595+
tot = datetime.datetime(now.year, now.month, now.day)
2596+
result = self.generate_df(vanaf, tot, "uur", None, col_name)
2597+
result["weekdag"] = result.apply(
2598+
lambda x: self.tijd_at_interval("weekdag", x["tijd"]), axis=1
2599+
)
2600+
result["uur"] = result.apply(
2601+
lambda x: self.tijd_at_interval("heel_uur", x["tijd"]), axis=1
2602+
)
2603+
result = result.loc[result["weekdag"] == weekday]
25892604
for sensor in sensor_list:
2590-
df = self.get_sensor_week_data(sensor, weekday, vanaf, col_name)
2591-
if counter == 0:
2592-
result = df
2593-
else:
2605+
df = self.get_sensor_week_data(sensor, weekday, vanaf, tot, col_name)
2606+
df.dropna(subset=[col_name], inplace=True)
2607+
if len(df) == len(result):
25942608
result[col_name] = result[col_name] + df[col_name]
2595-
# result = Report.add_col_df(df, result, col_name)
2596-
counter = +1
2609+
else:
2610+
result = Report.add_col_df(df, result, col_name)
2611+
25972612
if result is None:
25982613
logging.debug(f"Geen data voor baseload van {col_name}")
25992614
else:
@@ -2667,7 +2682,7 @@ def calc_weekday_baseload(self, wd: int) -> list:
26672682
grid_consumption = grid_consumption.rename(
26682683
columns={"grid_consumption": "baseload"}
26692684
)
2670-
grid_consumption.drop(columns=["state_t1", "state_t2"])
2685+
# grid_consumption.drop(columns=["state_t1", "state_t2"])
26712686
# baseload - grid_production
26722687
result = Report.add_col_df(
26732688
grid_production, grid_consumption, "grid_production", "baseload", True

release-testing/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# Changelog 刀 DAO
22
# Day Ahead Optimizer
33

4+
# 2025.7.3.rc1
5+
Changed calculation of baseloads to omit NaN
6+
47
# 2025.7.2
58
Fix error in api-calculation prognose pv_dc
69

release-testing/config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: 刀 Day Ahead Optimizer (TESTING)
3-
version: 2025.7.2.rc1
3+
version: 2025.7.3.rc1
44
stage: experimental
55
slug: day_ahead_opt-testing
66
description: Beta version of DAO. Use only for testing!

0 commit comments

Comments
 (0)