From 60fbb8b698d51ec0dc4b20e65d865030aeaddba7 Mon Sep 17 00:00:00 2001 From: Mandar Patil Date: Wed, 31 Jan 2024 02:00:04 -0800 Subject: [PATCH] Add session energy sensor for Tesla Wall Connector (#102635) Co-authored-by: Joost Lekkerkerker --- homeassistant/components/tesla_wall_connector/sensor.py | 7 +++++++ homeassistant/components/tesla_wall_connector/strings.json | 3 +++ tests/components/tesla_wall_connector/test_sensor.py | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/homeassistant/components/tesla_wall_connector/sensor.py b/homeassistant/components/tesla_wall_connector/sensor.py index d1c108aaf95..6dcc2669789 100644 --- a/homeassistant/components/tesla_wall_connector/sensor.py +++ b/homeassistant/components/tesla_wall_connector/sensor.py @@ -125,6 +125,13 @@ WALL_CONNECTOR_SENSORS = [ state_class=SensorStateClass.MEASUREMENT, entity_category=EntityCategory.DIAGNOSTIC, ), + WallConnectorSensorDescription( + key="session_energy_wh", + translation_key="session_energy_wh", + native_unit_of_measurement=UnitOfEnergy.WATT_HOUR, + value_fn=lambda data: data[WALLCONNECTOR_DATA_VITALS].session_energy_wh, + state_class=SensorStateClass.MEASUREMENT, + ), WallConnectorSensorDescription( key="energy_kWh", native_unit_of_measurement=UnitOfEnergy.WATT_HOUR, diff --git a/homeassistant/components/tesla_wall_connector/strings.json b/homeassistant/components/tesla_wall_connector/strings.json index 97bac988d16..88ff6e6791d 100644 --- a/homeassistant/components/tesla_wall_connector/strings.json +++ b/homeassistant/components/tesla_wall_connector/strings.json @@ -59,6 +59,9 @@ }, "voltage_c_v": { "name": "Phase C voltage" + }, + "session_energy_wh": { + "name": "Session energy" } } } diff --git a/tests/components/tesla_wall_connector/test_sensor.py b/tests/components/tesla_wall_connector/test_sensor.py index 06cd5a8ef83..3279ddad12e 100644 --- a/tests/components/tesla_wall_connector/test_sensor.py +++ b/tests/components/tesla_wall_connector/test_sensor.py @@ -44,6 +44,9 @@ async def test_sensors(hass: HomeAssistant) -> None: EntityAndExpectedValues( "sensor.tesla_wall_connector_phase_c_voltage", "232.1", "230" ), + EntityAndExpectedValues( + "sensor.tesla_wall_connector_session_energy", "1234.56", "112.2" + ), ] mock_vitals_first_update = get_vitals_mock() @@ -57,6 +60,7 @@ async def test_sensors(hass: HomeAssistant) -> None: mock_vitals_first_update.currentA_a = 10 mock_vitals_first_update.currentB_a = 11.1 mock_vitals_first_update.currentC_a = 12 + mock_vitals_first_update.session_energy_wh = 1234.56 mock_vitals_second_update = get_vitals_mock() mock_vitals_second_update.evse_state = 2 @@ -69,6 +73,7 @@ async def test_sensors(hass: HomeAssistant) -> None: mock_vitals_second_update.currentA_a = 7 mock_vitals_second_update.currentB_a = 8 mock_vitals_second_update.currentC_a = 9 + mock_vitals_second_update.session_energy_wh = 112.2 lifetime_mock_first_update = get_lifetime_mock() lifetime_mock_first_update.energy_wh = 988022