mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
parent
ca6376488d
commit
f7badfe441
@ -21,8 +21,10 @@ from homeassistant.helpers.update_coordinator import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from .const import (
|
from .const import (
|
||||||
|
CHARGER_CURRENCY_KEY,
|
||||||
CHARGER_CURRENT_VERSION_KEY,
|
CHARGER_CURRENT_VERSION_KEY,
|
||||||
CHARGER_DATA_KEY,
|
CHARGER_DATA_KEY,
|
||||||
|
CHARGER_ENERGY_PRICE_KEY,
|
||||||
CHARGER_LOCKED_UNLOCKED_KEY,
|
CHARGER_LOCKED_UNLOCKED_KEY,
|
||||||
CHARGER_MAX_CHARGING_CURRENT_KEY,
|
CHARGER_MAX_CHARGING_CURRENT_KEY,
|
||||||
CHARGER_NAME_KEY,
|
CHARGER_NAME_KEY,
|
||||||
@ -124,6 +126,12 @@ class WallboxCoordinator(DataUpdateCoordinator[dict[str, Any]]):
|
|||||||
data[CHARGER_LOCKED_UNLOCKED_KEY] = data[CHARGER_DATA_KEY][
|
data[CHARGER_LOCKED_UNLOCKED_KEY] = data[CHARGER_DATA_KEY][
|
||||||
CHARGER_LOCKED_UNLOCKED_KEY
|
CHARGER_LOCKED_UNLOCKED_KEY
|
||||||
]
|
]
|
||||||
|
data[CHARGER_ENERGY_PRICE_KEY] = data[CHARGER_DATA_KEY][
|
||||||
|
CHARGER_ENERGY_PRICE_KEY
|
||||||
|
]
|
||||||
|
data[CHARGER_CURRENCY_KEY] = data[CHARGER_DATA_KEY][CHARGER_CURRENCY_KEY][
|
||||||
|
"code"
|
||||||
|
]
|
||||||
data[CHARGER_STATUS_DESCRIPTION_KEY] = CHARGER_STATUS.get(
|
data[CHARGER_STATUS_DESCRIPTION_KEY] = CHARGER_STATUS.get(
|
||||||
data[CHARGER_STATUS_ID_KEY], ChargerStatus.UNKNOWN
|
data[CHARGER_STATUS_ID_KEY], ChargerStatus.UNKNOWN
|
||||||
)
|
)
|
||||||
|
@ -15,8 +15,10 @@ CHARGER_CHARGING_TIME_KEY = "charging_time"
|
|||||||
CHARGER_COST_KEY = "cost"
|
CHARGER_COST_KEY = "cost"
|
||||||
CHARGER_CURRENT_MODE_KEY = "current_mode"
|
CHARGER_CURRENT_MODE_KEY = "current_mode"
|
||||||
CHARGER_CURRENT_VERSION_KEY = "currentVersion"
|
CHARGER_CURRENT_VERSION_KEY = "currentVersion"
|
||||||
|
CHARGER_CURRENCY_KEY = "currency"
|
||||||
CHARGER_DATA_KEY = "config_data"
|
CHARGER_DATA_KEY = "config_data"
|
||||||
CHARGER_DEPOT_PRICE_KEY = "depot_price"
|
CHARGER_DEPOT_PRICE_KEY = "depot_price"
|
||||||
|
CHARGER_ENERGY_PRICE_KEY = "energy_price"
|
||||||
CHARGER_SERIAL_NUMBER_KEY = "serial_number"
|
CHARGER_SERIAL_NUMBER_KEY = "serial_number"
|
||||||
CHARGER_PART_NUMBER_KEY = "part_number"
|
CHARGER_PART_NUMBER_KEY = "part_number"
|
||||||
CHARGER_SOFTWARE_KEY = "software"
|
CHARGER_SOFTWARE_KEY = "software"
|
||||||
|
@ -31,9 +31,11 @@ from .const import (
|
|||||||
CHARGER_CHARGING_POWER_KEY,
|
CHARGER_CHARGING_POWER_KEY,
|
||||||
CHARGER_CHARGING_SPEED_KEY,
|
CHARGER_CHARGING_SPEED_KEY,
|
||||||
CHARGER_COST_KEY,
|
CHARGER_COST_KEY,
|
||||||
|
CHARGER_CURRENCY_KEY,
|
||||||
CHARGER_CURRENT_MODE_KEY,
|
CHARGER_CURRENT_MODE_KEY,
|
||||||
CHARGER_DATA_KEY,
|
CHARGER_DATA_KEY,
|
||||||
CHARGER_DEPOT_PRICE_KEY,
|
CHARGER_DEPOT_PRICE_KEY,
|
||||||
|
CHARGER_ENERGY_PRICE_KEY,
|
||||||
CHARGER_MAX_AVAILABLE_POWER_KEY,
|
CHARGER_MAX_AVAILABLE_POWER_KEY,
|
||||||
CHARGER_MAX_CHARGING_CURRENT_KEY,
|
CHARGER_MAX_CHARGING_CURRENT_KEY,
|
||||||
CHARGER_SERIAL_NUMBER_KEY,
|
CHARGER_SERIAL_NUMBER_KEY,
|
||||||
@ -127,6 +129,16 @@ SENSOR_TYPES: dict[str, WallboxSensorEntityDescription] = {
|
|||||||
icon="mdi:ev-station",
|
icon="mdi:ev-station",
|
||||||
name="Depot Price",
|
name="Depot Price",
|
||||||
precision=2,
|
precision=2,
|
||||||
|
device_class=SensorDeviceClass.MONETARY,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
),
|
||||||
|
CHARGER_ENERGY_PRICE_KEY: WallboxSensorEntityDescription(
|
||||||
|
key=CHARGER_ENERGY_PRICE_KEY,
|
||||||
|
icon="mdi:ev-station",
|
||||||
|
name="Energy Price",
|
||||||
|
precision=2,
|
||||||
|
device_class=SensorDeviceClass.MONETARY,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
),
|
),
|
||||||
CHARGER_STATUS_DESCRIPTION_KEY: WallboxSensorEntityDescription(
|
CHARGER_STATUS_DESCRIPTION_KEY: WallboxSensorEntityDescription(
|
||||||
key=CHARGER_STATUS_DESCRIPTION_KEY,
|
key=CHARGER_STATUS_DESCRIPTION_KEY,
|
||||||
@ -188,3 +200,10 @@ class WallboxSensor(WallboxEntity, SensorEntity):
|
|||||||
round(self.coordinator.data[self.entity_description.key], sensor_round),
|
round(self.coordinator.data[self.entity_description.key], sensor_round),
|
||||||
)
|
)
|
||||||
return cast(StateType, self.coordinator.data[self.entity_description.key])
|
return cast(StateType, self.coordinator.data[self.entity_description.key])
|
||||||
|
|
||||||
|
@property
|
||||||
|
def native_unit_of_measurement(self) -> str | None:
|
||||||
|
"""Return the unit of measurement of the sensor. When monetary, get the value from the api."""
|
||||||
|
if self.entity_description.device_class == SensorDeviceClass.MONETARY:
|
||||||
|
return cast(str, self.coordinator.data[CHARGER_CURRENCY_KEY])
|
||||||
|
return cast(str, self.entity_description.native_unit_of_measurement)
|
||||||
|
@ -10,8 +10,10 @@ from homeassistant.components.wallbox.const import (
|
|||||||
CHARGER_ADDED_RANGE_KEY,
|
CHARGER_ADDED_RANGE_KEY,
|
||||||
CHARGER_CHARGING_POWER_KEY,
|
CHARGER_CHARGING_POWER_KEY,
|
||||||
CHARGER_CHARGING_SPEED_KEY,
|
CHARGER_CHARGING_SPEED_KEY,
|
||||||
|
CHARGER_CURRENCY_KEY,
|
||||||
CHARGER_CURRENT_VERSION_KEY,
|
CHARGER_CURRENT_VERSION_KEY,
|
||||||
CHARGER_DATA_KEY,
|
CHARGER_DATA_KEY,
|
||||||
|
CHARGER_ENERGY_PRICE_KEY,
|
||||||
CHARGER_LOCKED_UNLOCKED_KEY,
|
CHARGER_LOCKED_UNLOCKED_KEY,
|
||||||
CHARGER_MAX_AVAILABLE_POWER_KEY,
|
CHARGER_MAX_AVAILABLE_POWER_KEY,
|
||||||
CHARGER_MAX_CHARGING_CURRENT_KEY,
|
CHARGER_MAX_CHARGING_CURRENT_KEY,
|
||||||
@ -42,10 +44,12 @@ test_response = json.loads(
|
|||||||
CHARGER_NAME_KEY: "WallboxName",
|
CHARGER_NAME_KEY: "WallboxName",
|
||||||
CHARGER_DATA_KEY: {
|
CHARGER_DATA_KEY: {
|
||||||
CHARGER_MAX_CHARGING_CURRENT_KEY: 24,
|
CHARGER_MAX_CHARGING_CURRENT_KEY: 24,
|
||||||
|
CHARGER_ENERGY_PRICE_KEY: 0.4,
|
||||||
CHARGER_LOCKED_UNLOCKED_KEY: False,
|
CHARGER_LOCKED_UNLOCKED_KEY: False,
|
||||||
CHARGER_SERIAL_NUMBER_KEY: "20000",
|
CHARGER_SERIAL_NUMBER_KEY: "20000",
|
||||||
CHARGER_PART_NUMBER_KEY: "PLP1-0-2-4-9-002-E",
|
CHARGER_PART_NUMBER_KEY: "PLP1-0-2-4-9-002-E",
|
||||||
CHARGER_SOFTWARE_KEY: {CHARGER_CURRENT_VERSION_KEY: "5.5.10"},
|
CHARGER_SOFTWARE_KEY: {CHARGER_CURRENT_VERSION_KEY: "5.5.10"},
|
||||||
|
CHARGER_CURRENCY_KEY: {"code": "€"},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user