Add renault last activity sensors (#57750)

* Add battery and location last_activity sensors

* Drop state attributes

* Drop ATTR_LAST_UPDATE

* Adjust tests

* Mark new sensors as disabled_default

* Add default_disabled attribute

* Add context managers

* Adjust tests for disabled entities
This commit is contained in:
epenet 2021-10-15 16:27:12 +02:00 committed by GitHub
parent 1eebe45154
commit 6881ab58d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 180 additions and 97 deletions

View file

@ -13,7 +13,6 @@ from homeassistant.components.renault.const import (
DEVICE_CLASS_PLUG_STATE,
DOMAIN,
)
from homeassistant.components.renault.renault_entities import ATTR_LAST_UPDATE
from homeassistant.components.select import DOMAIN as SELECT_DOMAIN
from homeassistant.components.select.const import ATTR_OPTIONS
from homeassistant.components.sensor import (
@ -33,6 +32,7 @@ from homeassistant.const import (
DEVICE_CLASS_ENERGY,
DEVICE_CLASS_POWER,
DEVICE_CLASS_TEMPERATURE,
DEVICE_CLASS_TIMESTAMP,
ELECTRIC_CURRENT_AMPERE,
ENERGY_KILO_WATT_HOUR,
LENGTH_KILOMETERS,
@ -53,10 +53,7 @@ FIXED_ATTRIBUTES = (
ATTR_STATE_CLASS,
ATTR_UNIT_OF_MEASUREMENT,
)
DYNAMIC_ATTRIBUTES = (
ATTR_ICON,
ATTR_LAST_UPDATE,
)
DYNAMIC_ATTRIBUTES = (ATTR_ICON,)
ICON_FOR_EMPTY_VALUES = {
"select.charge_mode": "mdi:calendar-remove",
@ -100,14 +97,12 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_plugged_in",
"result": STATE_ON,
ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
},
{
"entity_id": "binary_sensor.charging",
"unique_id": "vf1aaaaa555777999_charging",
"result": STATE_ON,
ATTR_DEVICE_CLASS: DEVICE_CLASS_BATTERY_CHARGING,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
},
],
DEVICE_TRACKER_DOMAIN: [],
@ -127,7 +122,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_battery_autonomy",
"result": "141",
ATTR_ICON: "mdi:ev-station",
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS,
},
@ -136,7 +130,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_battery_available_energy",
"result": "31",
ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR,
},
@ -145,16 +138,21 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_battery_level",
"result": "60",
ATTR_DEVICE_CLASS: DEVICE_CLASS_BATTERY,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE,
},
{
"entity_id": "sensor.battery_last_activity",
"unique_id": "vf1aaaaa555777999_battery_last_activity",
"result": "2020-01-12T21:40:16+00:00",
"default_disabled": True,
ATTR_DEVICE_CLASS: DEVICE_CLASS_TIMESTAMP,
},
{
"entity_id": "sensor.battery_temperature",
"unique_id": "vf1aaaaa555777999_battery_temperature",
"result": "20",
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS,
},
@ -164,14 +162,12 @@ MOCK_VEHICLES = {
"result": "charge_in_progress",
ATTR_DEVICE_CLASS: DEVICE_CLASS_CHARGE_STATE,
ATTR_ICON: "mdi:flash",
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
},
{
"entity_id": "sensor.charging_power",
"unique_id": "vf1aaaaa555777999_charging_power",
"result": "0.027",
ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT,
},
@ -180,7 +176,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_charging_remaining_time",
"result": "145",
ATTR_ICON: "mdi:timer",
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: TIME_MINUTES,
},
@ -206,7 +201,6 @@ MOCK_VEHICLES = {
"result": "plugged",
ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG_STATE,
ATTR_ICON: "mdi:power-plug",
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
},
],
},
@ -237,14 +231,12 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_plugged_in",
"result": STATE_OFF,
ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG,
ATTR_LAST_UPDATE: "2020-11-17T08:06:48+00:00",
},
{
"entity_id": "binary_sensor.charging",
"unique_id": "vf1aaaaa555777999_charging",
"result": STATE_OFF,
ATTR_DEVICE_CLASS: DEVICE_CLASS_BATTERY_CHARGING,
ATTR_LAST_UPDATE: "2020-11-17T08:06:48+00:00",
},
],
DEVICE_TRACKER_DOMAIN: [
@ -253,7 +245,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_location",
"result": STATE_NOT_HOME,
ATTR_ICON: "mdi:car",
ATTR_LAST_UPDATE: "2020-02-18T16:58:38+00:00",
}
],
SELECT_DOMAIN: [
@ -272,7 +263,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_battery_autonomy",
"result": "128",
ATTR_ICON: "mdi:ev-station",
ATTR_LAST_UPDATE: "2020-11-17T08:06:48+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS,
},
@ -281,7 +271,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_battery_available_energy",
"result": "0",
ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY,
ATTR_LAST_UPDATE: "2020-11-17T08:06:48+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR,
},
@ -290,16 +279,21 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_battery_level",
"result": "50",
ATTR_DEVICE_CLASS: DEVICE_CLASS_BATTERY,
ATTR_LAST_UPDATE: "2020-11-17T08:06:48+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE,
},
{
"entity_id": "sensor.battery_last_activity",
"unique_id": "vf1aaaaa555777999_battery_last_activity",
"result": "2020-11-17T08:06:48+00:00",
"default_disabled": True,
ATTR_DEVICE_CLASS: DEVICE_CLASS_TIMESTAMP,
},
{
"entity_id": "sensor.battery_temperature",
"unique_id": "vf1aaaaa555777999_battery_temperature",
"result": STATE_UNKNOWN,
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
ATTR_LAST_UPDATE: "2020-11-17T08:06:48+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS,
},
@ -309,14 +303,12 @@ MOCK_VEHICLES = {
"result": "charge_error",
ATTR_DEVICE_CLASS: DEVICE_CLASS_CHARGE_STATE,
ATTR_ICON: "mdi:flash-off",
ATTR_LAST_UPDATE: "2020-11-17T08:06:48+00:00",
},
{
"entity_id": "sensor.charging_power",
"unique_id": "vf1aaaaa555777999_charging_power",
"result": STATE_UNKNOWN,
ATTR_DEVICE_CLASS: DEVICE_CLASS_CURRENT,
ATTR_LAST_UPDATE: "2020-11-17T08:06:48+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_CURRENT_AMPERE,
},
@ -325,7 +317,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777999_charging_remaining_time",
"result": STATE_UNKNOWN,
ATTR_ICON: "mdi:timer",
ATTR_LAST_UPDATE: "2020-11-17T08:06:48+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: TIME_MINUTES,
},
@ -343,7 +334,13 @@ MOCK_VEHICLES = {
"result": "unplugged",
ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG_STATE,
ATTR_ICON: "mdi:power-plug-off",
ATTR_LAST_UPDATE: "2020-11-17T08:06:48+00:00",
},
{
"entity_id": "sensor.location_last_activity",
"unique_id": "vf1aaaaa555777999_location_last_activity",
"result": "2020-02-18T16:58:38+00:00",
"default_disabled": True,
ATTR_DEVICE_CLASS: DEVICE_CLASS_TIMESTAMP,
},
],
},
@ -374,14 +371,12 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777123_plugged_in",
"result": STATE_ON,
ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
},
{
"entity_id": "binary_sensor.charging",
"unique_id": "vf1aaaaa555777123_charging",
"result": STATE_ON,
ATTR_DEVICE_CLASS: DEVICE_CLASS_BATTERY_CHARGING,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
},
],
DEVICE_TRACKER_DOMAIN: [
@ -390,7 +385,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777123_location",
"result": STATE_NOT_HOME,
ATTR_ICON: "mdi:car",
ATTR_LAST_UPDATE: "2020-02-18T16:58:38+00:00",
}
],
SELECT_DOMAIN: [
@ -409,7 +403,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777123_battery_autonomy",
"result": "141",
ATTR_ICON: "mdi:ev-station",
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS,
},
@ -418,7 +411,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777123_battery_available_energy",
"result": "31",
ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR,
},
@ -427,16 +419,21 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777123_battery_level",
"result": "60",
ATTR_DEVICE_CLASS: DEVICE_CLASS_BATTERY,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE,
},
{
"entity_id": "sensor.battery_last_activity",
"unique_id": "vf1aaaaa555777123_battery_last_activity",
"result": "2020-01-12T21:40:16+00:00",
"default_disabled": True,
ATTR_DEVICE_CLASS: DEVICE_CLASS_TIMESTAMP,
},
{
"entity_id": "sensor.battery_temperature",
"unique_id": "vf1aaaaa555777123_battery_temperature",
"result": "20",
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS,
},
@ -446,14 +443,12 @@ MOCK_VEHICLES = {
"result": "charge_in_progress",
ATTR_DEVICE_CLASS: DEVICE_CLASS_CHARGE_STATE,
ATTR_ICON: "mdi:flash",
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
},
{
"entity_id": "sensor.charging_power",
"unique_id": "vf1aaaaa555777123_charging_power",
"result": "27.0",
ATTR_DEVICE_CLASS: DEVICE_CLASS_CURRENT,
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_CURRENT_AMPERE,
},
@ -462,7 +457,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777123_charging_remaining_time",
"result": "145",
ATTR_ICON: "mdi:timer",
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
ATTR_UNIT_OF_MEASUREMENT: TIME_MINUTES,
},
@ -496,7 +490,13 @@ MOCK_VEHICLES = {
"result": "plugged",
ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG_STATE,
ATTR_ICON: "mdi:power-plug",
ATTR_LAST_UPDATE: "2020-01-12T21:40:16+00:00",
},
{
"entity_id": "sensor.location_last_activity",
"unique_id": "vf1aaaaa555777123_location_last_activity",
"result": "2020-02-18T16:58:38+00:00",
"default_disabled": True,
ATTR_DEVICE_CLASS: DEVICE_CLASS_TIMESTAMP,
},
],
},
@ -526,7 +526,6 @@ MOCK_VEHICLES = {
"unique_id": "vf1aaaaa555777123_location",
"result": STATE_NOT_HOME,
ATTR_ICON: "mdi:car",
ATTR_LAST_UPDATE: "2020-02-18T16:58:38+00:00",
}
],
SELECT_DOMAIN: [],
@ -555,6 +554,13 @@ MOCK_VEHICLES = {
ATTR_STATE_CLASS: STATE_CLASS_TOTAL_INCREASING,
ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS,
},
{
"entity_id": "sensor.location_last_activity",
"unique_id": "vf1aaaaa555777123_location_last_activity",
"result": "2020-02-18T16:58:38+00:00",
"default_disabled": True,
ATTR_DEVICE_CLASS: DEVICE_CLASS_TIMESTAMP,
},
],
},
}