Skip to content

Commit 6b113ff

Browse files
authored
fix: last_meter_read is not defined (#152)
* fix: last_meter_read is not defined * fix: last_meter_read is not defined * update version
1 parent 7103acc commit 6b113ff

File tree

2 files changed

+27
-22
lines changed

2 files changed

+27
-22
lines changed

custom_components/iec/coordinator.py

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import itertools
44
import logging
55
import socket
6-
from datetime import datetime, timedelta
6+
from datetime import datetime, timedelta, date
77
from typing import cast, Any # noqa: UP035
88
from collections import Counter
99
from uuid import UUID
@@ -68,8 +68,8 @@ def __init__(
6868
self._devices_by_contract_id = {}
6969
self._last_meter_reading = {}
7070
self._devices_by_meter_id = {}
71-
self._delivery_tariff_by_pahse = {}
72-
self._distribution_tariff_by_pahse = {}
71+
self._delivery_tariff_by_phase = {}
72+
self._distribution_tariff_by_phase = {}
7373
self._power_size_by_connection_size = {}
7474
self._kwh_tariff: float | None = None
7575
self._kva_tariff: float | None = None
@@ -152,21 +152,21 @@ async def _get_kva_tariff(self) -> float:
152152
return self._kva_tariff or 0.0
153153

154154
async def _get_delivery_tariff(self, phase) -> float:
155-
delivery_tariff = self._delivery_tariff_by_pahse.get(phase)
155+
delivery_tariff = self._delivery_tariff_by_phase.get(phase)
156156
if not delivery_tariff:
157157
try:
158158
delivery_tariff = await self.api.get_delivery_tariff(phase)
159-
self._delivery_tariff_by_pahse[phase] = delivery_tariff
159+
self._delivery_tariff_by_phase[phase] = delivery_tariff
160160
except IECError as e:
161161
_LOGGER.exception(f"Failed fetching Delivery Tariff by phase {phase}", e)
162162
return delivery_tariff or 0.0
163163

164164
async def _get_distribution_tariff(self, phase) -> float:
165-
distribution_tariff = self._distribution_tariff_by_pahse.get(phase)
165+
distribution_tariff = self._distribution_tariff_by_phase.get(phase)
166166
if not distribution_tariff:
167167
try:
168168
distribution_tariff = await self.api.get_distribution_tariff(phase)
169-
self._distribution_tariff_by_pahse[phase] = distribution_tariff
169+
self._distribution_tariff_by_phase[phase] = distribution_tariff
170170
except IECError as e:
171171
_LOGGER.exception(f"Failed fetching Distribution Tariff by phase {phase}", e)
172172
return distribution_tariff or 0.0
@@ -198,28 +198,28 @@ async def _get_power_size(self, connection_size) -> float:
198198
_LOGGER.exception(f"Failed fetching Power Size by Connection Size {connection_size}", e)
199199
return power_size or 0.0
200200

201-
async def _get_readings(self, contract_id: int, device_id: str | int, device_code: str | int, date: datetime,
201+
async def _get_readings(self, contract_id: int, device_id: str | int, device_code: str | int, reading_date: datetime,
202202
resolution: ReadingResolution):
203203

204-
date_key = date.strftime("%Y")
204+
date_key = reading_date.strftime("%Y")
205205
match resolution:
206206
case ReadingResolution.DAILY:
207-
date_key += date.strftime("-%m-%d")
207+
date_key += reading_date.strftime("-%m-%d")
208208
case ReadingResolution.WEEKLY:
209-
date_key += "/" + str(date.isocalendar().week)
209+
date_key += "/" + str(reading_date.isocalendar().week)
210210
case ReadingResolution.MONTHLY:
211-
date_key += date.strftime("-%m")
211+
date_key += reading_date.strftime("-%m")
212212
case _:
213213
_LOGGER.warning("Unexpected resolution value")
214-
date_key += date.strftime("-%m-%d")
214+
date_key += reading_date.strftime("-%m-%d")
215215

216216
key = (contract_id, int(device_id), date_key)
217217
reading = self._readings.get(key)
218218
if not reading:
219219
try:
220220
reading = await self.api.get_remote_reading(device_id, int(device_code),
221-
date,
222-
date,
221+
reading_date,
222+
reading_date,
223223
resolution,
224224
str(contract_id))
225225
self._readings[key] = reading
@@ -420,8 +420,8 @@ async def _async_update_data(
420420
_LOGGER.debug("Failed fetching FutureConsumption, data in IEC API is corrupted")
421421

422422
estimated_bill, fixed_price, consumption_price, total_days, delivery_price, distribution_price, \
423-
total_kva_price, estimated_kwh_consumption = await self._estimate_bill(contract_id, device.device_number,\
424-
is_private_producer, future_consumption,\
423+
total_kva_price, estimated_kwh_consumption = await self._estimate_bill(contract_id, device.device_number,
424+
is_private_producer, future_consumption,
425425
kwh_tariff, kva_tariff, last_invoice)
426426

427427
estimated_bill_dict = {
@@ -618,8 +618,14 @@ async def _insert_statistics(self, contract_id: int, is_smart_meter: bool) -> No
618618
self.hass, cost_metadata, cost_statistics
619619
)
620620

621-
async def _estimate_bill(self, contract_id, device_number, is_private_producer,\
622-
future_consumption, kwh_tariff, kva_tariff, last_invoice):
621+
async def _estimate_bill(self, contract_id, device_number, is_private_producer,
622+
future_consumption, kwh_tariff, kva_tariff, last_invoice):
623+
last_meter_read: int | None = None
624+
last_meter_read_date: date | None = None
625+
phase_count: int | None = None
626+
connection_size: str | None = None
627+
devices_by_id: Devices | None = None
628+
623629
if not is_private_producer:
624630
try:
625631
devices_by_id: Devices = await self._get_devices_by_device_id(device_number)
@@ -629,9 +635,8 @@ async def _estimate_bill(self, contract_id, device_number, is_private_producer,\
629635
connection_size = (devices_by_id.counter_devices[0].
630636
connection_size.representative_connection_size)
631637
except Exception as e:
632-
_LOGGER.warn("Failed to fetch data from devices_by_id, falling back to Masa API", e)
638+
_LOGGER.warning("Failed to fetch data from devices_by_id, falling back to Masa API", e)
633639
_LOGGER.debug(f"DevicesById Response: {devices_by_id}")
634-
devices_by_id = None
635640
last_meter_read = None
636641
last_meter_read_date = None
637642
phase_count = None

custom_components/iec/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@
1111
"issue_tracker": "https://github.com/guykh/iec-custom-component/issues",
1212
"loggers": ["iec_api"],
1313
"requirements": ["iec-api==0.4.1"],
14-
"version": "0.0.31"
14+
"version": "0.0.31-fix"
1515
}

0 commit comments

Comments
 (0)