|
1 |
| -from datetime import datetime, timedelta |
| 1 | +from datetime import date, datetime, timedelta |
2 | 2 |
|
3 | 3 | import pause
|
4 | 4 | from abscence_handler import AbsenceHandler
|
5 | 5 | from aiohttp import ClientError
|
6 | 6 | from dateutil import tz
|
| 7 | +from energy_amount import EnergyAmount |
7 | 8 | from environment_variable_getter import EnvironmentVariableGetter
|
8 | 9 | from goodwe import OperationMode
|
9 | 10 | from inverter import Inverter
|
@@ -179,8 +180,9 @@ def _charge_inverter(self, target_state_of_charge: int) -> None:
|
179 | 180 | charging_progress_check_interval = timedelta(minutes=5)
|
180 | 181 | dry_run = EnvironmentVariableGetter.get(name_of_variable="DRY_RUN", default_value=True)
|
181 | 182 |
|
182 |
| - energy_buy_of_today_before_charging = self.sems_portal_api_handler.get_energy_buy_of_today() |
183 |
| - self.log.debug(f"The amount of energy bought before charging is {energy_buy_of_today_before_charging}") |
| 183 | + energy_bought_before_charging = self.sems_portal_api_handler.get_energy_buy() |
| 184 | + date_starting_to_charge = date.today() |
| 185 | + self.log.debug(f"The amount of energy bought before charging is {energy_bought_before_charging}") |
184 | 186 |
|
185 | 187 | self.log.info("Starting to charge")
|
186 | 188 | self.inverter.set_operation_mode(OperationMode.ECO_CHARGE)
|
@@ -217,9 +219,24 @@ def _charge_inverter(self, target_state_of_charge: int) -> None:
|
217 | 219 | f"Charging is still ongoing (current: {current_state_of_charge} %, target: >= {target_state_of_charge} %) --> Waiting for another {charging_progress_check_interval}..."
|
218 | 220 | )
|
219 | 221 |
|
220 |
| - energy_buy_of_today_after_charging = self.sems_portal_api_handler.get_energy_buy_of_today() |
221 |
| - self.log.debug(f"The amount of energy bought after charging is {energy_buy_of_today_after_charging}") |
| 222 | + energy_bought = self._calculate_amount_of_energy_bought(energy_bought_before_charging, date_starting_to_charge) |
| 223 | + self.log.info(f"Bought {energy_bought} to charge the battery") |
222 | 224 |
|
223 |
| - self.log.info( |
224 |
| - f"Bought {energy_buy_of_today_after_charging - energy_buy_of_today_before_charging} to charge the battery" |
| 225 | + def _calculate_amount_of_energy_bought( |
| 226 | + self, energy_bought_before_charging: EnergyAmount, date_starting_to_charge: date |
| 227 | + ) -> EnergyAmount: |
| 228 | + date_ending_to_charge = date.today() |
| 229 | + |
| 230 | + if date_starting_to_charge == date_ending_to_charge: |
| 231 | + energy_bought_today_after_charging = self.sems_portal_api_handler.get_energy_buy() |
| 232 | + self.log.debug( |
| 233 | + f"It is till the same day since starting to charge, the amount of energy bought after charging is {energy_bought_today_after_charging}" |
| 234 | + ) |
| 235 | + return energy_bought_today_after_charging - energy_bought_before_charging |
| 236 | + |
| 237 | + energy_bought_today_after_charging = self.sems_portal_api_handler.get_energy_buy() |
| 238 | + energy_bought_yesterday = self.sems_portal_api_handler.get_energy_buy(1) - energy_bought_before_charging |
| 239 | + self.log.debug( |
| 240 | + f"It is the next day since starting to charge, the amount of energy bought after charging (today) is {energy_bought_today_after_charging}, the amount of energy bought after charging (yesterday) is {energy_bought_yesterday}" |
225 | 241 | )
|
| 242 | + return energy_bought_today_after_charging + energy_bought_yesterday |
0 commit comments