16
16
from homeassistant .const import UnitOfApparentPower , UnitOfEnergy
17
17
from homeassistant .core import HomeAssistant
18
18
from homeassistant .helpers .entity_platform import AddEntitiesCallback
19
+ from homeassistant .helpers .typing import StateType
19
20
from homeassistant .helpers .update_coordinator import (
20
21
CoordinatorEntity ,
21
22
DataUpdateCoordinator ,
@@ -327,7 +328,7 @@ def __init__(
327
328
)
328
329
self ._attr_device_info = get_device_info (self .controller )
329
330
330
- self ._last_state : float | None = None
331
+ self ._last_state : StateType | None = None
331
332
332
333
async def async_added_to_hass (self ) -> None :
333
334
"""Restore state on startup."""
@@ -336,7 +337,7 @@ async def async_added_to_hass(self) -> None:
336
337
last_state = await self .async_get_last_state ()
337
338
338
339
if last_state :
339
- self ._last_state = float ( last_state .state )
340
+ self ._last_state = last_state .state
340
341
341
342
342
343
class TeleinfoInputEdDevice (EdSensorEntity ):
@@ -365,7 +366,7 @@ class TeleinfoInputTotalEdDevice(EdSensorEntity):
365
366
def native_value (self ) -> float | None :
366
367
"""Return the total value if it's greater than 0."""
367
368
if (value := float (self .coordinator .data [f"T{ self ._input_number } _BASE" ])) > 0 :
368
- if self ._last_state is None or value >= self ._last_state :
369
+ if self ._last_state is None or value >= float ( self ._last_state ) :
369
370
self ._last_state = value
370
371
return value
371
372
_LOGGER .warning (
@@ -387,7 +388,7 @@ def native_value(self) -> float | None:
387
388
value_hc = float (self .coordinator .data [f"T{ self ._input_number } _HCHC" ])
388
389
value_hp = float (self .coordinator .data [f"T{ self ._input_number } _HCHP" ])
389
390
if (value := value_hc + value_hp ) > 0 :
390
- if self ._last_state is None or value >= self ._last_state :
391
+ if self ._last_state is None or value >= float ( self ._last_state ) :
391
392
self ._last_state = value
392
393
return value
393
394
_LOGGER .warning (
@@ -407,7 +408,7 @@ class TeleinfoInputTotalHcEdDevice(EdSensorEntity):
407
408
def native_value (self ) -> float | None :
408
409
"""Return the total value if it's greater than 0."""
409
410
if (value := float (self .coordinator .data [f"T{ self ._input_number } _HCHC" ])) > 0 :
410
- if self ._last_state is None or value >= self ._last_state :
411
+ if self ._last_state is None or value >= float ( self ._last_state ) :
411
412
self ._last_state = value
412
413
return value
413
414
_LOGGER .warning (
@@ -427,7 +428,7 @@ class TeleinfoInputTotalHpEdDevice(EdSensorEntity):
427
428
def native_value (self ) -> float | None :
428
429
"""Return the total value if it's greater than 0."""
429
430
if (value := float (self .coordinator .data [f"T{ self ._input_number } _HCHP" ])) > 0 :
430
- if self ._last_state is None or value >= self ._last_state :
431
+ if self ._last_state is None or value >= float ( self ._last_state ) :
431
432
self ._last_state = value
432
433
return value
433
434
_LOGGER .warning (
@@ -450,7 +451,7 @@ def native_value(self) -> float | None:
450
451
for key in TELEINFO_TEMPO_ATTR .values ():
451
452
value += float (self .coordinator .data [f"T{ self ._input_number } _{ key } " ])
452
453
if value > 0 :
453
- if self ._last_state is None or value >= self ._last_state :
454
+ if self ._last_state is None or value >= float ( self ._last_state ) :
454
455
self ._last_state = value
455
456
return value
456
457
_LOGGER .warning (
@@ -470,7 +471,7 @@ class TeleinfoInputTempoEdDevice(EdSensorEntity):
470
471
def native_value (self ) -> float | None :
471
472
"""Return the total value if it's greater than 0 or the previous value."""
472
473
if (value := float (self .coordinator .data [self ._input_name .upper ()])) > 0 :
473
- if self ._last_state is None or value >= self ._last_state :
474
+ if self ._last_state is None or value >= float ( self ._last_state ) :
474
475
self ._last_state = value
475
476
return value
476
477
_LOGGER .warning (
@@ -562,7 +563,7 @@ def native_value(self) -> float | None:
562
563
if (
563
564
value := float (self .coordinator .data [f"count{ self ._input_number - 1 } " ])
564
565
) > 0 :
565
- if self ._last_state is None or value >= self ._last_state :
566
+ if self ._last_state is None or value >= float ( self ._last_state ) :
566
567
self ._last_state = value / 1000
567
568
return value / 1000
568
569
_LOGGER .warning (
0 commit comments