Add icon translations to BMW (#111348)

* Add icon translations to BMW

* Add icon translations to BMW
pull/111892/head
Joost Lekkerkerker 2024-02-28 13:05:27 +01:00 committed by GitHub
parent 40431a9f7e
commit a8887d59ed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 101 additions and 80 deletions

View File

@ -130,7 +130,6 @@ SENSOR_TYPES: tuple[BMWBinarySensorEntityDescription, ...] = (
key="lids",
translation_key="lids",
device_class=BinarySensorDeviceClass.OPENING,
icon="mdi:car-door-lock",
# device class opening: On means open, Off means closed
value_fn=lambda v: not v.doors_and_windows.all_lids_closed,
attr_fn=lambda v, u: {
@ -141,7 +140,6 @@ SENSOR_TYPES: tuple[BMWBinarySensorEntityDescription, ...] = (
key="windows",
translation_key="windows",
device_class=BinarySensorDeviceClass.OPENING,
icon="mdi:car-door",
# device class opening: On means open, Off means closed
value_fn=lambda v: not v.doors_and_windows.all_windows_closed,
attr_fn=lambda v, u: {
@ -152,7 +150,6 @@ SENSOR_TYPES: tuple[BMWBinarySensorEntityDescription, ...] = (
key="door_lock_state",
translation_key="door_lock_state",
device_class=BinarySensorDeviceClass.LOCK,
icon="mdi:car-key",
# device class lock: On means unlocked, Off means locked
# Possible values: LOCKED, SECURED, SELECTIVE_LOCKED, UNLOCKED
value_fn=lambda v: v.doors_and_windows.door_lock_state
@ -165,7 +162,6 @@ SENSOR_TYPES: tuple[BMWBinarySensorEntityDescription, ...] = (
key="condition_based_services",
translation_key="condition_based_services",
device_class=BinarySensorDeviceClass.PROBLEM,
icon="mdi:wrench",
# device class problem: On means problem detected, Off means no problem
value_fn=lambda v: v.condition_based_services.is_service_required,
attr_fn=_condition_based_services,
@ -174,7 +170,6 @@ SENSOR_TYPES: tuple[BMWBinarySensorEntityDescription, ...] = (
key="check_control_messages",
translation_key="check_control_messages",
device_class=BinarySensorDeviceClass.PROBLEM,
icon="mdi:car-tire-alert",
# device class problem: On means problem detected, Off means no problem
value_fn=lambda v: v.check_control_messages.has_check_control_messages,
attr_fn=lambda v, u: _check_control_messages(v),
@ -184,7 +179,6 @@ SENSOR_TYPES: tuple[BMWBinarySensorEntityDescription, ...] = (
key="charging_status",
translation_key="charging_status",
device_class=BinarySensorDeviceClass.BATTERY_CHARGING,
icon="mdi:ev-station",
# device class power: On means power detected, Off means no power
value_fn=lambda v: v.fuel_and_battery.charging_status == ChargingState.CHARGING,
),
@ -192,13 +186,11 @@ SENSOR_TYPES: tuple[BMWBinarySensorEntityDescription, ...] = (
key="connection_status",
translation_key="connection_status",
device_class=BinarySensorDeviceClass.PLUG,
icon="mdi:car-electric",
value_fn=lambda v: v.fuel_and_battery.is_charger_connected,
),
BMWBinarySensorEntityDescription(
key="is_pre_entry_climatization_enabled",
translation_key="is_pre_entry_climatization_enabled",
icon="mdi:car-seat-heater",
value_fn=lambda v: v.charging_profile.is_pre_entry_climatization_enabled
if v.charging_profile
else False,

View File

@ -44,24 +44,21 @@ BUTTON_TYPES: tuple[BMWButtonEntityDescription, ...] = (
BMWButtonEntityDescription(
key="light_flash",
translation_key="light_flash",
icon="mdi:car-light-alert",
remote_function=lambda vehicle: vehicle.remote_services.trigger_remote_light_flash(),
),
BMWButtonEntityDescription(
key="sound_horn",
translation_key="sound_horn",
icon="mdi:bullhorn",
remote_function=lambda vehicle: vehicle.remote_services.trigger_remote_horn(),
),
BMWButtonEntityDescription(
key="activate_air_conditioning",
translation_key="activate_air_conditioning",
icon="mdi:hvac",
remote_function=lambda vehicle: vehicle.remote_services.trigger_remote_air_conditioning(),
),
BMWButtonEntityDescription(
key="deactivate_air_conditioning",
icon="mdi:hvac-off",
translation_key="deactivate_air_conditioning",
name="Deactivate air conditioning",
remote_function=lambda vehicle: vehicle.remote_services.trigger_remote_air_conditioning_stop(),
is_available=lambda vehicle: vehicle.is_remote_climate_stop_enabled,
@ -69,7 +66,6 @@ BUTTON_TYPES: tuple[BMWButtonEntityDescription, ...] = (
BMWButtonEntityDescription(
key="find_vehicle",
translation_key="find_vehicle",
icon="mdi:crosshairs-question",
remote_function=lambda vehicle: vehicle.remote_services.trigger_remote_vehicle_finder(),
),
)

View File

@ -45,6 +45,7 @@ class BMWDeviceTracker(BMWBaseEntity, TrackerEntity):
"""MyBMW device tracker."""
_attr_force_update = False
_attr_translation_key = "car"
_attr_icon = "mdi:car"
def __init__(

View File

@ -0,0 +1,99 @@
{
"entity": {
"binary_sensor": {
"lids": {
"default": "mdi:car-door-lock"
},
"windows": {
"default": "mdi:car-door"
},
"door_lock_state": {
"default": "mdi:car-key"
},
"condition_based_services": {
"default": "mdi:wrench"
},
"check_control_messages": {
"default": "mdi:car-tire-alert"
},
"charging_status": {
"default": "mdi:ev-station"
},
"connection_status": {
"default": "mdi:car-electric"
},
"is_pre_entry_climatization_enabled": {
"default": "mdi:car-seat-heater"
}
},
"button": {
"light_flash": {
"default": "mdi:car-light-alert"
},
"sound_horn": {
"default": "mdi:bullhorn"
},
"activate_air_conditioning": {
"default": "mdi:hvac"
},
"deactivate_air_conditioning": {
"default": "mdi:hvac-off"
},
"find_vehicle": {
"default": "mdi:crosshairs-question"
}
},
"device_tracker": {
"car": {
"default": "mdi:car"
}
},
"number": {
"target_soc": {
"default": "mdi:battery-charging-medium"
}
},
"select": {
"ac_limit": {
"default": "mdi:current-ac"
},
"charging_mode": {
"default": "mdi:vector-point-select"
}
},
"sensor": {
"charging_status": {
"default": "mdi:ev-station"
},
"charging_target": {
"default": "mdi:battery-charging-high"
},
"mileage": {
"default": "mdi:speedometer"
},
"remaining_range_total": {
"default": "mdi:map-marker-distance"
},
"remaining_range_electric": {
"default": "mdi:map-marker-distance"
},
"remaining_range_fuel": {
"default": "mdi:map-marker-distance"
},
"remaining_fuel": {
"default": "mdi:gas-station"
},
"remaining_fuel_percent": {
"default": "mdi:gas-station"
}
},
"switch": {
"climate": {
"default": "mdi:fan"
},
"charging": {
"default": "mdi:ev-station"
}
}
}
}

View File

@ -56,7 +56,6 @@ NUMBER_TYPES: list[BMWNumberEntityDescription] = [
remote_service=lambda v, o: v.remote_services.trigger_charging_settings_update(
target_soc=int(o)
),
icon="mdi:battery-charging-medium",
),
]

View File

@ -51,7 +51,6 @@ SELECT_TYPES: dict[str, BMWSelectEntityDescription] = {
remote_service=lambda v, o: v.remote_services.trigger_charging_settings_update(
ac_limit=int(o)
),
icon="mdi:current-ac",
unit_of_measurement=UnitOfElectricCurrent.AMPERE,
),
"charging_mode": BMWSelectEntityDescription(
@ -63,7 +62,6 @@ SELECT_TYPES: dict[str, BMWSelectEntityDescription] = {
remote_service=lambda v, o: v.remote_services.trigger_charging_profile_update(
charging_mode=ChargingMode(o)
),
icon="mdi:vector-point-select",
),
}

View File

@ -59,7 +59,6 @@ SENSOR_TYPES: dict[str, BMWSensorEntityDescription] = {
translation_key="ac_current_limit",
key_class="charging_profile",
unit_type=UnitOfElectricCurrent.AMPERE,
icon="mdi:current-ac",
entity_registry_enabled_default=False,
),
"charging_start_time": BMWSensorEntityDescription(
@ -79,14 +78,12 @@ SENSOR_TYPES: dict[str, BMWSensorEntityDescription] = {
key="charging_status",
translation_key="charging_status",
key_class="fuel_and_battery",
icon="mdi:ev-station",
value=lambda x, y: x.value,
),
"charging_target": BMWSensorEntityDescription(
key="charging_target",
translation_key="charging_target",
key_class="fuel_and_battery",
icon="mdi:battery-charging-high",
unit_type=PERCENTAGE,
),
"remaining_battery_percent": BMWSensorEntityDescription(
@ -101,7 +98,6 @@ SENSOR_TYPES: dict[str, BMWSensorEntityDescription] = {
"mileage": BMWSensorEntityDescription(
key="mileage",
translation_key="mileage",
icon="mdi:speedometer",
unit_type=LENGTH,
value=lambda x, hass: convert_and_round(x, hass.config.units.length, 2),
state_class=SensorStateClass.TOTAL_INCREASING,
@ -110,7 +106,6 @@ SENSOR_TYPES: dict[str, BMWSensorEntityDescription] = {
key="remaining_range_total",
translation_key="remaining_range_total",
key_class="fuel_and_battery",
icon="mdi:map-marker-distance",
unit_type=LENGTH,
value=lambda x, hass: convert_and_round(x, hass.config.units.length, 2),
state_class=SensorStateClass.MEASUREMENT,
@ -119,7 +114,6 @@ SENSOR_TYPES: dict[str, BMWSensorEntityDescription] = {
key="remaining_range_electric",
translation_key="remaining_range_electric",
key_class="fuel_and_battery",
icon="mdi:map-marker-distance",
unit_type=LENGTH,
value=lambda x, hass: convert_and_round(x, hass.config.units.length, 2),
state_class=SensorStateClass.MEASUREMENT,
@ -128,7 +122,6 @@ SENSOR_TYPES: dict[str, BMWSensorEntityDescription] = {
key="remaining_range_fuel",
translation_key="remaining_range_fuel",
key_class="fuel_and_battery",
icon="mdi:map-marker-distance",
unit_type=LENGTH,
value=lambda x, hass: convert_and_round(x, hass.config.units.length, 2),
state_class=SensorStateClass.MEASUREMENT,
@ -137,7 +130,6 @@ SENSOR_TYPES: dict[str, BMWSensorEntityDescription] = {
key="remaining_fuel",
translation_key="remaining_fuel",
key_class="fuel_and_battery",
icon="mdi:gas-station",
unit_type=VOLUME,
value=lambda x, hass: convert_and_round(x, hass.config.units.volume, 2),
state_class=SensorStateClass.MEASUREMENT,
@ -146,7 +138,6 @@ SENSOR_TYPES: dict[str, BMWSensorEntityDescription] = {
key="remaining_fuel_percent",
translation_key="remaining_fuel_percent",
key_class="fuel_and_battery",
icon="mdi:gas-station",
unit_type=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
),

View File

@ -56,7 +56,6 @@ NUMBER_TYPES: list[BMWSwitchEntityDescription] = [
value_fn=lambda v: v.climate.is_climate_on,
remote_service_on=lambda v: v.remote_services.trigger_remote_air_conditioning(),
remote_service_off=lambda v: v.remote_services.trigger_remote_air_conditioning_stop(),
icon="mdi:fan",
),
BMWSwitchEntityDescription(
key="charging",
@ -65,7 +64,6 @@ NUMBER_TYPES: list[BMWSwitchEntityDescription] = [
value_fn=lambda v: v.fuel_and_battery.charging_status in CHARGING_STATE_ON,
remote_service_on=lambda v: v.remote_services.trigger_charge_start(),
remote_service_off=lambda v: v.remote_services.trigger_charge_stop(),
icon="mdi:ev-station",
),
]

View File

@ -5,7 +5,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Flash lights',
'icon': 'mdi:car-light-alert',
}),
'context': <ANY>,
'entity_id': 'button.ix_xdrive50_flash_lights',
@ -17,7 +16,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Sound horn',
'icon': 'mdi:bullhorn',
}),
'context': <ANY>,
'entity_id': 'button.ix_xdrive50_sound_horn',
@ -29,7 +27,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Activate air conditioning',
'icon': 'mdi:hvac',
}),
'context': <ANY>,
'entity_id': 'button.ix_xdrive50_activate_air_conditioning',
@ -41,7 +38,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Deactivate air conditioning',
'icon': 'mdi:hvac-off',
}),
'context': <ANY>,
'entity_id': 'button.ix_xdrive50_deactivate_air_conditioning',
@ -53,7 +49,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Find vehicle',
'icon': 'mdi:crosshairs-question',
}),
'context': <ANY>,
'entity_id': 'button.ix_xdrive50_find_vehicle',
@ -65,7 +60,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Flash lights',
'icon': 'mdi:car-light-alert',
}),
'context': <ANY>,
'entity_id': 'button.i4_edrive40_flash_lights',
@ -77,7 +71,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Sound horn',
'icon': 'mdi:bullhorn',
}),
'context': <ANY>,
'entity_id': 'button.i4_edrive40_sound_horn',
@ -89,7 +82,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Activate air conditioning',
'icon': 'mdi:hvac',
}),
'context': <ANY>,
'entity_id': 'button.i4_edrive40_activate_air_conditioning',
@ -101,7 +93,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Deactivate air conditioning',
'icon': 'mdi:hvac-off',
}),
'context': <ANY>,
'entity_id': 'button.i4_edrive40_deactivate_air_conditioning',
@ -113,7 +104,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Find vehicle',
'icon': 'mdi:crosshairs-question',
}),
'context': <ANY>,
'entity_id': 'button.i4_edrive40_find_vehicle',
@ -125,7 +115,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Flash lights',
'icon': 'mdi:car-light-alert',
}),
'context': <ANY>,
'entity_id': 'button.m340i_xdrive_flash_lights',
@ -137,7 +126,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Sound horn',
'icon': 'mdi:bullhorn',
}),
'context': <ANY>,
'entity_id': 'button.m340i_xdrive_sound_horn',
@ -149,7 +137,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Activate air conditioning',
'icon': 'mdi:hvac',
}),
'context': <ANY>,
'entity_id': 'button.m340i_xdrive_activate_air_conditioning',
@ -161,7 +148,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Deactivate air conditioning',
'icon': 'mdi:hvac-off',
}),
'context': <ANY>,
'entity_id': 'button.m340i_xdrive_deactivate_air_conditioning',
@ -173,7 +159,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Find vehicle',
'icon': 'mdi:crosshairs-question',
}),
'context': <ANY>,
'entity_id': 'button.m340i_xdrive_find_vehicle',
@ -185,7 +170,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Flash lights',
'icon': 'mdi:car-light-alert',
}),
'context': <ANY>,
'entity_id': 'button.i3_rex_flash_lights',
@ -197,7 +181,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Sound horn',
'icon': 'mdi:bullhorn',
}),
'context': <ANY>,
'entity_id': 'button.i3_rex_sound_horn',
@ -209,7 +192,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Activate air conditioning',
'icon': 'mdi:hvac',
}),
'context': <ANY>,
'entity_id': 'button.i3_rex_activate_air_conditioning',
@ -221,7 +203,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Find vehicle',
'icon': 'mdi:crosshairs-question',
}),
'context': <ANY>,
'entity_id': 'button.i3_rex_find_vehicle',

View File

@ -6,7 +6,6 @@
'attribution': 'Data provided by MyBMW',
'device_class': 'battery',
'friendly_name': 'iX xDrive50 Target SoC',
'icon': 'mdi:battery-charging-medium',
'max': 100.0,
'min': 20.0,
'mode': <NumberMode.SLIDER: 'slider'>,
@ -23,7 +22,6 @@
'attribution': 'Data provided by MyBMW',
'device_class': 'battery',
'friendly_name': 'i4 eDrive40 Target SoC',
'icon': 'mdi:battery-charging-medium',
'max': 100.0,
'min': 20.0,
'mode': <NumberMode.SLIDER: 'slider'>,

View File

@ -5,7 +5,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 AC Charging Limit',
'icon': 'mdi:current-ac',
'options': list([
'6',
'7',
@ -33,7 +32,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Charging Mode',
'icon': 'mdi:vector-point-select',
'options': list([
'IMMEDIATE_CHARGING',
'DELAYED_CHARGING',
@ -49,7 +47,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 AC Charging Limit',
'icon': 'mdi:current-ac',
'options': list([
'6',
'7',
@ -77,7 +74,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Charging Mode',
'icon': 'mdi:vector-point-select',
'options': list([
'IMMEDIATE_CHARGING',
'DELAYED_CHARGING',
@ -93,7 +89,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Charging Mode',
'icon': 'mdi:vector-point-select',
'options': list([
'IMMEDIATE_CHARGING',
'DELAYED_CHARGING',

View File

@ -5,7 +5,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Remaining range total',
'icon': 'mdi:map-marker-distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -19,7 +18,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Mileage',
'icon': 'mdi:speedometer',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -45,7 +43,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Charging status',
'icon': 'mdi:ev-station',
}),
'context': <ANY>,
'entity_id': 'sensor.ix_xdrive50_charging_status',
@ -71,7 +68,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Remaining range electric',
'icon': 'mdi:map-marker-distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -85,7 +81,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Charging target',
'icon': 'mdi:battery-charging-high',
'unit_of_measurement': '%',
}),
'context': <ANY>,
@ -98,7 +93,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Remaining range total',
'icon': 'mdi:map-marker-distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -112,7 +106,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Mileage',
'icon': 'mdi:speedometer',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -138,7 +131,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Charging status',
'icon': 'mdi:ev-station',
}),
'context': <ANY>,
'entity_id': 'sensor.i4_edrive40_charging_status',
@ -164,7 +156,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Remaining range electric',
'icon': 'mdi:map-marker-distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -178,7 +169,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Charging target',
'icon': 'mdi:battery-charging-high',
'unit_of_measurement': '%',
}),
'context': <ANY>,
@ -191,7 +181,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Remaining range total',
'icon': 'mdi:map-marker-distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -205,7 +194,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Mileage',
'icon': 'mdi:speedometer',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -219,7 +207,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Remaining fuel',
'icon': 'mdi:gas-station',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfVolume.LITERS: 'L'>,
}),
@ -233,7 +220,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Remaining range fuel',
'icon': 'mdi:map-marker-distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -247,7 +233,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Remaining fuel percent',
'icon': 'mdi:gas-station',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
@ -261,7 +246,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Remaining range total',
'icon': 'mdi:map-marker-distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -275,7 +259,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Mileage',
'icon': 'mdi:speedometer',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -301,7 +284,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Charging status',
'icon': 'mdi:ev-station',
}),
'context': <ANY>,
'entity_id': 'sensor.i3_rex_charging_status',
@ -327,7 +309,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Remaining range electric',
'icon': 'mdi:map-marker-distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -341,7 +322,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Charging target',
'icon': 'mdi:battery-charging-high',
'unit_of_measurement': '%',
}),
'context': <ANY>,
@ -354,7 +334,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Remaining fuel',
'icon': 'mdi:gas-station',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfVolume.LITERS: 'L'>,
}),
@ -368,7 +347,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Remaining range fuel',
'icon': 'mdi:map-marker-distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfLength.KILOMETERS: 'km'>,
}),
@ -382,7 +360,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i3 (+ REX) Remaining fuel percent',
'icon': 'mdi:gas-station',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),

View File

@ -5,7 +5,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Climate',
'icon': 'mdi:fan',
}),
'context': <ANY>,
'entity_id': 'switch.ix_xdrive50_climate',
@ -17,7 +16,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'iX xDrive50 Charging',
'icon': 'mdi:ev-station',
}),
'context': <ANY>,
'entity_id': 'switch.ix_xdrive50_charging',
@ -29,7 +27,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'i4 eDrive40 Climate',
'icon': 'mdi:fan',
}),
'context': <ANY>,
'entity_id': 'switch.i4_edrive40_climate',
@ -41,7 +38,6 @@
'attributes': ReadOnlyDict({
'attribution': 'Data provided by MyBMW',
'friendly_name': 'M340i xDrive Climate',
'icon': 'mdi:fan',
}),
'context': <ANY>,
'entity_id': 'switch.m340i_xdrive_climate',