From 835cdad0a93fb0baeb87ae4b025e8d3a631ed78b Mon Sep 17 00:00:00 2001 From: Brett Adams Date: Tue, 29 Apr 2025 16:37:10 +1000 Subject: [PATCH] Add sentry mode sensor to Teslemetry (#143855) * Add sentry mode sensor * Fix state handler --- homeassistant/components/teslemetry/icons.json | 11 +++++++++++ homeassistant/components/teslemetry/sensor.py | 17 +++++++++++++++++ .../components/teslemetry/strings.json | 11 +++++++++++ 3 files changed, 39 insertions(+) diff --git a/homeassistant/components/teslemetry/icons.json b/homeassistant/components/teslemetry/icons.json index ea6bd360632..1a9a9b9f09d 100644 --- a/homeassistant/components/teslemetry/icons.json +++ b/homeassistant/components/teslemetry/icons.json @@ -372,6 +372,17 @@ }, "consumer_energy_imported_from_generator": { "default": "mdi:generator-stationary" + }, + "sentry_mode": { + "default": "mdi:shield-car", + "state": { + "off": "mdi:shield-off-outline", + "idle": "mdi:shield-outline", + "armed": "mdi:shield-check", + "aware": "mdi:shield-alert", + "panic": "mdi:shield-alert-outline", + "quiet": "mdi:shield-half-full" + } } }, "switch": { diff --git a/homeassistant/components/teslemetry/sensor.py b/homeassistant/components/teslemetry/sensor.py index 018e450b52f..a507c4ca07e 100644 --- a/homeassistant/components/teslemetry/sensor.py +++ b/homeassistant/components/teslemetry/sensor.py @@ -60,6 +60,15 @@ CHARGE_STATES = { SHIFT_STATES = {"P": "p", "D": "d", "R": "r", "N": "n"} +SENTRY_MODE_STATES = { + "Off": "off", + "Idle": "idle", + "Armed": "armed", + "Aware": "aware", + "Panic": "panic", + "Quiet": "quiet", +} + @dataclass(frozen=True, kw_only=True) class TeslemetryVehicleSensorEntityDescription(SensorEntityDescription): @@ -350,6 +359,14 @@ VEHICLE_DESCRIPTIONS: tuple[TeslemetryVehicleSensorEntityDescription, ...] = ( native_unit_of_measurement=UnitOfLength.MILES, device_class=SensorDeviceClass.DISTANCE, ), + TeslemetryVehicleSensorEntityDescription( + key="sentry_mode", + streaming_listener=lambda x, y: x.listen_SentryMode( + lambda z: None if z is None else y(SENTRY_MODE_STATES.get(z)) + ), + options=list(SENTRY_MODE_STATES.values()), + device_class=SensorDeviceClass.ENUM, + ), ) diff --git a/homeassistant/components/teslemetry/strings.json b/homeassistant/components/teslemetry/strings.json index a85d109231e..9d27fc5cb8e 100644 --- a/homeassistant/components/teslemetry/strings.json +++ b/homeassistant/components/teslemetry/strings.json @@ -644,6 +644,17 @@ }, "total_grid_energy_exported": { "name": "Grid exported" + }, + "sentry_mode": { + "name": "Sentry mode", + "state": { + "off": "Off", + "idle": "Idle", + "armed": "Armed", + "aware": "Aware", + "panic": "Panic", + "quiet": "Quiet" + } } }, "switch": {