mirror of
https://github.com/home-assistant/core.git
synced 2026-05-08 09:38:58 +01:00
NRGkick: do not update vehicle connected timestamp when vehicle is not connected (#163292)
This commit is contained in:
@@ -7,6 +7,8 @@ from dataclasses import dataclass
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Any, cast
|
||||
|
||||
from nrgkick_api import ChargingStatus
|
||||
|
||||
from homeassistant.components.sensor import (
|
||||
SensorDeviceClass,
|
||||
SensorEntity,
|
||||
@@ -632,11 +634,18 @@ SENSORS: tuple[NRGkickSensorEntityDescription, ...] = (
|
||||
key="vehicle_connected_since",
|
||||
translation_key="vehicle_connected_since",
|
||||
device_class=SensorDeviceClass.TIMESTAMP,
|
||||
value_fn=lambda data: _seconds_to_stable_timestamp(
|
||||
cast(
|
||||
StateType,
|
||||
_get_nested_dict_value(data.values, "general", "vehicle_connect_time"),
|
||||
value_fn=lambda data: (
|
||||
_seconds_to_stable_timestamp(
|
||||
cast(
|
||||
StateType,
|
||||
_get_nested_dict_value(
|
||||
data.values, "general", "vehicle_connect_time"
|
||||
),
|
||||
)
|
||||
)
|
||||
if _get_nested_dict_value(data.values, "general", "status")
|
||||
!= ChargingStatus.STANDBY
|
||||
else None
|
||||
),
|
||||
),
|
||||
NRGkickSensorEntityDescription(
|
||||
|
||||
@@ -67,3 +67,19 @@ async def test_cellular_and_gps_entities_are_gated_by_model_type(
|
||||
assert hass.states.get("sensor.nrgkick_test_cellular_mode") is None
|
||||
assert hass.states.get("sensor.nrgkick_test_cellular_signal_strength") is None
|
||||
assert hass.states.get("sensor.nrgkick_test_cellular_operator") is None
|
||||
|
||||
|
||||
async def test_vehicle_connected_since_none_when_standby(
|
||||
hass: HomeAssistant,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
mock_nrgkick_api: AsyncMock,
|
||||
) -> None:
|
||||
"""Test vehicle connected since is unknown when vehicle is not connected."""
|
||||
mock_nrgkick_api.get_values.return_value["general"]["status"] = (
|
||||
ChargingStatus.STANDBY
|
||||
)
|
||||
|
||||
await setup_integration(hass, mock_config_entry, platforms=[Platform.SENSOR])
|
||||
|
||||
assert (state := hass.states.get("sensor.nrgkick_test_vehicle_connected_since"))
|
||||
assert state.state == STATE_UNKNOWN
|
||||
|
||||
Reference in New Issue
Block a user