diff --git a/homeassistant/components/tessie/icons.json b/homeassistant/components/tessie/icons.json index 8fae6859abe..5a85daae05e 100644 --- a/homeassistant/components/tessie/icons.json +++ b/homeassistant/components/tessie/icons.json @@ -181,6 +181,9 @@ "charge_state_charging_state": { "default": "mdi:ev-station" }, + "charge_state_energy_remaining": { + "default": "mdi:battery-medium" + }, "charge_state_minutes_to_full_charge": { "default": "mdi:clock-end" }, diff --git a/homeassistant/components/tessie/sensor.py b/homeassistant/components/tessie/sensor.py index 52accb15575..61df95972ab 100644 --- a/homeassistant/components/tessie/sensor.py +++ b/homeassistant/components/tessie/sensor.py @@ -131,6 +131,14 @@ DESCRIPTIONS: tuple[TessieSensorEntityDescription, ...] = ( suggested_display_precision=1, entity_registry_enabled_default=False, ), + TessieSensorEntityDescription( + key="charge_state_energy_remaining", + state_class=SensorStateClass.MEASUREMENT, + native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR, + device_class=SensorDeviceClass.ENERGY_STORAGE, + entity_category=EntityCategory.DIAGNOSTIC, + suggested_display_precision=2, + ), TessieSensorEntityDescription( key="drive_state_speed", state_class=SensorStateClass.MEASUREMENT, diff --git a/homeassistant/components/tessie/strings.json b/homeassistant/components/tessie/strings.json index ee7948b3575..034e95da55b 100644 --- a/homeassistant/components/tessie/strings.json +++ b/homeassistant/components/tessie/strings.json @@ -360,6 +360,9 @@ "stopped": "[%key:common::state::stopped%]" } }, + "charge_state_energy_remaining": { + "name": "Energy remaining" + }, "charge_state_est_battery_range": { "name": "Battery range estimate" }, diff --git a/tests/components/tessie/fixtures/vehicles.json b/tests/components/tessie/fixtures/vehicles.json index 622b31bae69..02994129f1f 100644 --- a/tests/components/tessie/fixtures/vehicles.json +++ b/tests/components/tessie/fixtures/vehicles.json @@ -81,7 +81,12 @@ "timestamp": 1701139037461, "trip_charging": false, "usable_battery_level": 75, - "user_charge_enable_request": null + "user_charge_enable_request": null, + "module_temp_min": 16.5, + "module_temp_max": 18, + "energy_remaining": 46.92, + "lifetime_energy_used": 20505.629, + "charging_schedule_override": false }, "climate_state": { "allow_cabin_overheat_protection": true, diff --git a/tests/components/tessie/snapshots/test_diagnostics.ambr b/tests/components/tessie/snapshots/test_diagnostics.ambr index 8eef7cbd549..d89f035e3d7 100644 --- a/tests/components/tessie/snapshots/test_diagnostics.ambr +++ b/tests/components/tessie/snapshots/test_diagnostics.ambr @@ -192,15 +192,20 @@ 'charge_state_charger_pilot_current': 32, 'charge_state_charger_power': 7, 'charge_state_charger_voltage': 224, + 'charge_state_charging_schedule_override': False, 'charge_state_charging_state': 'Charging', 'charge_state_conn_charge_cable': 'IEC', + 'charge_state_energy_remaining': 46.92, 'charge_state_est_battery_range': 324.73, 'charge_state_fast_charger_brand': '', 'charge_state_fast_charger_present': False, 'charge_state_fast_charger_type': 'ACSingleWireCAN', 'charge_state_ideal_battery_range': 263.68, + 'charge_state_lifetime_energy_used': 20505.629, 'charge_state_max_range_charge_counter': 0, 'charge_state_minutes_to_full_charge': 0, + 'charge_state_module_temp_max': 18, + 'charge_state_module_temp_min': 16.5, 'charge_state_not_enough_power_to_heat': None, 'charge_state_off_peak_charging_enabled': False, 'charge_state_off_peak_charging_times': 'all_week', diff --git a/tests/components/tessie/snapshots/test_sensor.ambr b/tests/components/tessie/snapshots/test_sensor.ambr index 932189e9583..c1a79232073 100644 --- a/tests/components/tessie/snapshots/test_sensor.ambr +++ b/tests/components/tessie/snapshots/test_sensor.ambr @@ -1342,6 +1342,63 @@ 'state': '22.5', }) # --- +# name: test_sensors[sensor.test_energy_remaining-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.test_energy_remaining', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Energy remaining', + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Energy remaining', + 'platform': 'tessie', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'charge_state_energy_remaining', + 'unique_id': 'VINVINVIN-charge_state_energy_remaining', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors[sensor.test_energy_remaining-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy_storage', + 'friendly_name': 'Test Energy remaining', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.test_energy_remaining', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '46.92', + }) +# --- # name: test_sensors[sensor.test_inside_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({