Fix Wallbox price unit (#82420)

* Change Symbol to Currency code in test

* change unit to currency/kWh

* f string
This commit is contained in:
Hessel 2022-11-23 11:25:21 +01:00 committed by GitHub
parent 188cdd1bac
commit c68149c75b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 7 deletions

View file

@ -33,6 +33,7 @@ from .const import (
CHARGER_SOFTWARE_KEY, CHARGER_SOFTWARE_KEY,
CHARGER_STATUS_DESCRIPTION_KEY, CHARGER_STATUS_DESCRIPTION_KEY,
CHARGER_STATUS_ID_KEY, CHARGER_STATUS_ID_KEY,
CODE_KEY,
CONF_STATION, CONF_STATION,
DOMAIN, DOMAIN,
ChargerStatus, ChargerStatus,
@ -129,9 +130,10 @@ class WallboxCoordinator(DataUpdateCoordinator[dict[str, Any]]):
data[CHARGER_ENERGY_PRICE_KEY] = data[CHARGER_DATA_KEY][ data[CHARGER_ENERGY_PRICE_KEY] = data[CHARGER_DATA_KEY][
CHARGER_ENERGY_PRICE_KEY CHARGER_ENERGY_PRICE_KEY
] ]
data[CHARGER_CURRENCY_KEY] = data[CHARGER_DATA_KEY][CHARGER_CURRENCY_KEY][ data[
"code" CHARGER_CURRENCY_KEY
] ] = f"{data[CHARGER_DATA_KEY][CHARGER_CURRENCY_KEY][CODE_KEY]}/kWh"
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
) )

View file

@ -5,6 +5,7 @@ DOMAIN = "wallbox"
BIDIRECTIONAL_MODEL_PREFIXES = ["QSX"] BIDIRECTIONAL_MODEL_PREFIXES = ["QSX"]
CODE_KEY = "code"
CONF_STATION = "station" CONF_STATION = "station"
CHARGER_ADDED_DISCHARGED_ENERGY_KEY = "added_discharged_energy" CHARGER_ADDED_DISCHARGED_ENERGY_KEY = "added_discharged_energy"
CHARGER_ADDED_ENERGY_KEY = "added_energy" CHARGER_ADDED_ENERGY_KEY = "added_energy"

View file

@ -129,7 +129,6 @@ 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, state_class=SensorStateClass.MEASUREMENT,
), ),
CHARGER_ENERGY_PRICE_KEY: WallboxSensorEntityDescription( CHARGER_ENERGY_PRICE_KEY: WallboxSensorEntityDescription(
@ -137,7 +136,6 @@ SENSOR_TYPES: dict[str, WallboxSensorEntityDescription] = {
icon="mdi:ev-station", icon="mdi:ev-station",
name="Energy Price", name="Energy Price",
precision=2, precision=2,
device_class=SensorDeviceClass.MONETARY,
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
), ),
CHARGER_STATUS_DESCRIPTION_KEY: WallboxSensorEntityDescription( CHARGER_STATUS_DESCRIPTION_KEY: WallboxSensorEntityDescription(
@ -204,6 +202,9 @@ class WallboxSensor(WallboxEntity, SensorEntity):
@property @property
def native_unit_of_measurement(self) -> str | None: def native_unit_of_measurement(self) -> str | None:
"""Return the unit of measurement of the sensor. When monetary, get the value from the api.""" """Return the unit of measurement of the sensor. When monetary, get the value from the api."""
if self.entity_description.device_class == SensorDeviceClass.MONETARY: if self.entity_description.key in (
CHARGER_ENERGY_PRICE_KEY,
CHARGER_DEPOT_PRICE_KEY,
):
return cast(str, self.coordinator.data[CHARGER_CURRENCY_KEY]) return cast(str, self.coordinator.data[CHARGER_CURRENCY_KEY])
return cast(str, self.entity_description.native_unit_of_measurement) return cast(str, self.entity_description.native_unit_of_measurement)

View file

@ -49,7 +49,7 @@ test_response = json.loads(
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": ""}, CHARGER_CURRENCY_KEY: {"code": "EUR/kWh"},
}, },
} }
) )