Update nibe heatpump to 2.5.0 (#103788)

* Update nibe heatpump to 2.5.0

* Adjust for typing changes in lib

* If we use float value, we assume it's valid
This commit is contained in:
Joakim Plate 2023-11-12 20:25:34 +01:00 committed by GitHub
parent eda475fe25
commit 5ee62f2965
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 12 additions and 9 deletions

View File

@ -1,6 +1,7 @@
"""The Nibe Heat Pump climate.""" """The Nibe Heat Pump climate."""
from __future__ import annotations from __future__ import annotations
from datetime import date
from typing import Any from typing import Any
from nibe.coil import Coil from nibe.coil import Coil
@ -124,7 +125,7 @@ class NibeClimateEntity(CoordinatorEntity[Coordinator], ClimateEntity):
@callback @callback
def _handle_coordinator_update(self) -> None: def _handle_coordinator_update(self) -> None:
def _get_value(coil: Coil) -> int | str | float | None: def _get_value(coil: Coil) -> int | str | float | date | None:
return self.coordinator.get_coil_value(coil) return self.coordinator.get_coil_value(coil)
def _get_float(coil: Coil) -> float | None: def _get_float(coil: Coil) -> float | None:

View File

@ -4,7 +4,7 @@ from __future__ import annotations
import asyncio import asyncio
from collections import defaultdict from collections import defaultdict
from collections.abc import Callable, Iterable from collections.abc import Callable, Iterable
from datetime import timedelta from datetime import date, timedelta
from typing import Any, Generic, TypeVar from typing import Any, Generic, TypeVar
from nibe.coil import Coil, CoilData from nibe.coil import Coil, CoilData
@ -123,7 +123,7 @@ class Coordinator(ContextCoordinator[dict[int, CoilData], int]):
"""Return device information for the main device.""" """Return device information for the main device."""
return DeviceInfo(identifiers={(DOMAIN, self.unique_id)}) return DeviceInfo(identifiers={(DOMAIN, self.unique_id)})
def get_coil_value(self, coil: Coil) -> int | str | float | None: def get_coil_value(self, coil: Coil) -> int | str | float | date | None:
"""Return a coil with data and check for validity.""" """Return a coil with data and check for validity."""
if coil_with_data := self.data.get(coil.address): if coil_with_data := self.data.get(coil.address):
return coil_with_data.value return coil_with_data.value
@ -132,7 +132,7 @@ class Coordinator(ContextCoordinator[dict[int, CoilData], int]):
def get_coil_float(self, coil: Coil) -> float | None: def get_coil_float(self, coil: Coil) -> float | None:
"""Return a coil with float and check for validity.""" """Return a coil with float and check for validity."""
if value := self.get_coil_value(coil): if value := self.get_coil_value(coil):
return float(value) return float(value) # type: ignore[arg-type]
return None return None
async def async_write_coil(self, coil: Coil, value: int | float | str) -> None: async def async_write_coil(self, coil: Coil, value: int | float | str) -> None:

View File

@ -5,5 +5,5 @@
"config_flow": true, "config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/nibe_heatpump", "documentation": "https://www.home-assistant.io/integrations/nibe_heatpump",
"iot_class": "local_polling", "iot_class": "local_polling",
"requirements": ["nibe==2.4.0"] "requirements": ["nibe==2.5.0"]
} }

View File

@ -66,7 +66,7 @@ class Number(CoilEntity, NumberEntity):
return return
try: try:
self._attr_native_value = float(data.value) self._attr_native_value = float(data.value) # type: ignore[arg-type]
except ValueError: except ValueError:
self._attr_native_value = None self._attr_native_value = None

View File

@ -1,6 +1,8 @@
"""The Nibe Heat Pump sensors.""" """The Nibe Heat Pump sensors."""
from __future__ import annotations from __future__ import annotations
from datetime import date
from nibe.coil import Coil from nibe.coil import Coil
from nibe.coil_groups import WATER_HEATER_COILGROUPS, WaterHeaterCoilGroup from nibe.coil_groups import WATER_HEATER_COILGROUPS, WaterHeaterCoilGroup
from nibe.exceptions import CoilNotFoundException from nibe.exceptions import CoilNotFoundException
@ -132,7 +134,7 @@ class WaterHeater(CoordinatorEntity[Coordinator], WaterHeaterEntity):
return None return None
return self.coordinator.get_coil_float(coil) return self.coordinator.get_coil_float(coil)
def _get_value(coil: Coil | None) -> int | str | float | None: def _get_value(coil: Coil | None) -> int | str | float | date | None:
if coil is None: if coil is None:
return None return None
return self.coordinator.get_coil_value(coil) return self.coordinator.get_coil_value(coil)

View File

@ -1311,7 +1311,7 @@ nextcord==2.0.0a8
nextdns==2.0.1 nextdns==2.0.1
# homeassistant.components.nibe_heatpump # homeassistant.components.nibe_heatpump
nibe==2.4.0 nibe==2.5.0
# homeassistant.components.niko_home_control # homeassistant.components.niko_home_control
niko-home-control==0.2.1 niko-home-control==0.2.1

View File

@ -1025,7 +1025,7 @@ nextcord==2.0.0a8
nextdns==2.0.1 nextdns==2.0.1
# homeassistant.components.nibe_heatpump # homeassistant.components.nibe_heatpump
nibe==2.4.0 nibe==2.5.0
# homeassistant.components.nfandroidtv # homeassistant.components.nfandroidtv
notifications-android-tv==0.1.5 notifications-android-tv==0.1.5