11import calendar
22import datetime
3+ from unittest .mock import inplace
4+
35# from unittest.mock import inplace
46
57import 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
0 commit comments