mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 17:57:55 +00:00
Bump ohmepy to 1.5.1 (#141879)
* Bump ohmepy to 1.5.1 * Fix types for ohmepy version change
This commit is contained in:
parent
506526a6a2
commit
e16ba27ce8
@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from collections.abc import Awaitable, Callable
|
from collections.abc import Callable, Coroutine
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
from ohme import ApiException, ChargerStatus, OhmeApiClient
|
from ohme import ApiException, ChargerStatus, OhmeApiClient
|
||||||
|
|
||||||
@ -23,7 +24,7 @@ PARALLEL_UPDATES = 1
|
|||||||
class OhmeButtonDescription(OhmeEntityDescription, ButtonEntityDescription):
|
class OhmeButtonDescription(OhmeEntityDescription, ButtonEntityDescription):
|
||||||
"""Class describing Ohme button entities."""
|
"""Class describing Ohme button entities."""
|
||||||
|
|
||||||
press_fn: Callable[[OhmeApiClient], Awaitable[None]]
|
press_fn: Callable[[OhmeApiClient], Coroutine[Any, Any, bool]]
|
||||||
|
|
||||||
|
|
||||||
BUTTON_DESCRIPTIONS = [
|
BUTTON_DESCRIPTIONS = [
|
||||||
|
@ -7,5 +7,5 @@
|
|||||||
"integration_type": "device",
|
"integration_type": "device",
|
||||||
"iot_class": "cloud_polling",
|
"iot_class": "cloud_polling",
|
||||||
"quality_scale": "silver",
|
"quality_scale": "silver",
|
||||||
"requirements": ["ohme==1.4.1"]
|
"requirements": ["ohme==1.5.1"]
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
"""Platform for number."""
|
"""Platform for number."""
|
||||||
|
|
||||||
from collections.abc import Awaitable, Callable
|
from collections.abc import Callable, Coroutine
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
from ohme import ApiException, OhmeApiClient
|
from ohme import ApiException, OhmeApiClient
|
||||||
|
|
||||||
@ -22,7 +23,7 @@ PARALLEL_UPDATES = 1
|
|||||||
class OhmeNumberDescription(OhmeEntityDescription, NumberEntityDescription):
|
class OhmeNumberDescription(OhmeEntityDescription, NumberEntityDescription):
|
||||||
"""Class describing Ohme number entities."""
|
"""Class describing Ohme number entities."""
|
||||||
|
|
||||||
set_fn: Callable[[OhmeApiClient, float], Awaitable[None]]
|
set_fn: Callable[[OhmeApiClient, float], Coroutine[Any, Any, bool]]
|
||||||
value_fn: Callable[[OhmeApiClient], float]
|
value_fn: Callable[[OhmeApiClient], float]
|
||||||
|
|
||||||
|
|
||||||
@ -31,7 +32,7 @@ NUMBER_DESCRIPTION = [
|
|||||||
key="target_percentage",
|
key="target_percentage",
|
||||||
translation_key="target_percentage",
|
translation_key="target_percentage",
|
||||||
value_fn=lambda client: client.target_soc,
|
value_fn=lambda client: client.target_soc,
|
||||||
set_fn=lambda client, value: client.async_set_target(target_percent=value),
|
set_fn=lambda client, value: client.async_set_target(target_percent=int(value)),
|
||||||
native_min_value=0,
|
native_min_value=0,
|
||||||
native_max_value=100,
|
native_max_value=100,
|
||||||
native_step=1,
|
native_step=1,
|
||||||
@ -42,7 +43,7 @@ NUMBER_DESCRIPTION = [
|
|||||||
translation_key="preconditioning_duration",
|
translation_key="preconditioning_duration",
|
||||||
value_fn=lambda client: client.preconditioning,
|
value_fn=lambda client: client.preconditioning,
|
||||||
set_fn=lambda client, value: client.async_set_target(
|
set_fn=lambda client, value: client.async_set_target(
|
||||||
pre_condition_length=value
|
pre_condition_length=int(value)
|
||||||
),
|
),
|
||||||
native_min_value=0,
|
native_min_value=0,
|
||||||
native_max_value=60,
|
native_max_value=60,
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from collections.abc import Awaitable, Callable
|
from collections.abc import Callable, Coroutine
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Any, Final
|
from typing import Any, Final
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ PARALLEL_UPDATES = 1
|
|||||||
class OhmeSelectDescription(OhmeEntityDescription, SelectEntityDescription):
|
class OhmeSelectDescription(OhmeEntityDescription, SelectEntityDescription):
|
||||||
"""Class to describe an Ohme select entity."""
|
"""Class to describe an Ohme select entity."""
|
||||||
|
|
||||||
select_fn: Callable[[OhmeApiClient, Any], Awaitable[None]]
|
select_fn: Callable[[OhmeApiClient, Any], Coroutine[Any, Any, bool | None]]
|
||||||
options: list[str] | None = None
|
options: list[str] | None = None
|
||||||
options_fn: Callable[[OhmeApiClient], list[str]] | None = None
|
options_fn: Callable[[OhmeApiClient], list[str]] | None = None
|
||||||
current_option_fn: Callable[[OhmeApiClient], str | None]
|
current_option_fn: Callable[[OhmeApiClient], str | None]
|
||||||
|
@ -34,7 +34,7 @@ PARALLEL_UPDATES = 0
|
|||||||
class OhmeSensorDescription(OhmeEntityDescription, SensorEntityDescription):
|
class OhmeSensorDescription(OhmeEntityDescription, SensorEntityDescription):
|
||||||
"""Class describing Ohme sensor entities."""
|
"""Class describing Ohme sensor entities."""
|
||||||
|
|
||||||
value_fn: Callable[[OhmeApiClient], str | int | float]
|
value_fn: Callable[[OhmeApiClient], str | int | float | None]
|
||||||
|
|
||||||
|
|
||||||
SENSOR_CHARGE_SESSION = [
|
SENSOR_CHARGE_SESSION = [
|
||||||
@ -129,6 +129,6 @@ class OhmeSensor(OhmeEntity, SensorEntity):
|
|||||||
entity_description: OhmeSensorDescription
|
entity_description: OhmeSensorDescription
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def native_value(self) -> str | int | float:
|
def native_value(self) -> str | int | float | None:
|
||||||
"""Return the state of the sensor."""
|
"""Return the state of the sensor."""
|
||||||
return self.entity_description.value_fn(self.coordinator.client)
|
return self.entity_description.value_fn(self.coordinator.client)
|
||||||
|
@ -78,7 +78,7 @@ def async_setup_services(hass: HomeAssistant) -> None:
|
|||||||
"""List of charge slots."""
|
"""List of charge slots."""
|
||||||
client = __get_client(service_call)
|
client = __get_client(service_call)
|
||||||
|
|
||||||
return {"slots": client.slots}
|
return {"slots": [slot.to_dict() for slot in client.slots]}
|
||||||
|
|
||||||
async def set_price_cap(
|
async def set_price_cap(
|
||||||
service_call: ServiceCall,
|
service_call: ServiceCall,
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
"""Platform for time."""
|
"""Platform for time."""
|
||||||
|
|
||||||
from collections.abc import Awaitable, Callable
|
from collections.abc import Callable, Coroutine
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import time
|
from datetime import time
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
from ohme import ApiException, OhmeApiClient
|
from ohme import ApiException, OhmeApiClient
|
||||||
|
|
||||||
@ -22,7 +23,7 @@ PARALLEL_UPDATES = 1
|
|||||||
class OhmeTimeDescription(OhmeEntityDescription, TimeEntityDescription):
|
class OhmeTimeDescription(OhmeEntityDescription, TimeEntityDescription):
|
||||||
"""Class describing Ohme time entities."""
|
"""Class describing Ohme time entities."""
|
||||||
|
|
||||||
set_fn: Callable[[OhmeApiClient, time], Awaitable[None]]
|
set_fn: Callable[[OhmeApiClient, time], Coroutine[Any, Any, bool]]
|
||||||
value_fn: Callable[[OhmeApiClient], time]
|
value_fn: Callable[[OhmeApiClient], time]
|
||||||
|
|
||||||
|
|
||||||
|
2
requirements_all.txt
generated
2
requirements_all.txt
generated
@ -1559,7 +1559,7 @@ odp-amsterdam==6.0.2
|
|||||||
oemthermostat==1.1.1
|
oemthermostat==1.1.1
|
||||||
|
|
||||||
# homeassistant.components.ohme
|
# homeassistant.components.ohme
|
||||||
ohme==1.4.1
|
ohme==1.5.1
|
||||||
|
|
||||||
# homeassistant.components.ollama
|
# homeassistant.components.ollama
|
||||||
ollama==0.4.7
|
ollama==0.4.7
|
||||||
|
2
requirements_test_all.txt
generated
2
requirements_test_all.txt
generated
@ -1305,7 +1305,7 @@ objgraph==3.5.0
|
|||||||
odp-amsterdam==6.0.2
|
odp-amsterdam==6.0.2
|
||||||
|
|
||||||
# homeassistant.components.ohme
|
# homeassistant.components.ohme
|
||||||
ohme==1.4.1
|
ohme==1.5.1
|
||||||
|
|
||||||
# homeassistant.components.ollama
|
# homeassistant.components.ollama
|
||||||
ollama==0.4.7
|
ollama==0.4.7
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
"""Tests for services."""
|
"""Tests for services."""
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
from unittest.mock import AsyncMock, MagicMock
|
from unittest.mock import AsyncMock, MagicMock
|
||||||
|
|
||||||
|
from ohme import ChargeSlot
|
||||||
import pytest
|
import pytest
|
||||||
from syrupy.assertion import SnapshotAssertion
|
from syrupy.assertion import SnapshotAssertion
|
||||||
|
|
||||||
@ -30,11 +32,11 @@ async def test_list_charge_slots(
|
|||||||
await setup_integration(hass, mock_config_entry)
|
await setup_integration(hass, mock_config_entry)
|
||||||
|
|
||||||
mock_client.slots = [
|
mock_client.slots = [
|
||||||
{
|
ChargeSlot(
|
||||||
"start": "2024-12-30T04:00:00+00:00",
|
datetime.fromisoformat("2024-12-30T04:00:00+00:00"),
|
||||||
"end": "2024-12-30T04:30:39+00:00",
|
datetime.fromisoformat("2024-12-30T04:30:39+00:00"),
|
||||||
"energy": 2.042,
|
2.042,
|
||||||
}
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
assert snapshot == await hass.services.async_call(
|
assert snapshot == await hass.services.async_call(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user