"""Constants for the Renault integration tests.""" from homeassistant.components.binary_sensor import ( DEVICE_CLASS_BATTERY_CHARGING, DEVICE_CLASS_PLUG, DOMAIN as BINARY_SENSOR_DOMAIN, ) from homeassistant.components.renault.const import ( CONF_KAMEREON_ACCOUNT_ID, CONF_LOCALE, DEVICE_CLASS_CHARGE_MODE, DEVICE_CLASS_CHARGE_STATE, DEVICE_CLASS_PLUG_STATE, DOMAIN, ) from homeassistant.components.renault.renault_entities import ATTR_LAST_UPDATE from homeassistant.components.sensor import ( ATTR_STATE_CLASS, DOMAIN as SENSOR_DOMAIN, STATE_CLASS_MEASUREMENT, STATE_CLASS_TOTAL_INCREASING, ) from homeassistant.const import ( ATTR_DEVICE_CLASS, ATTR_ICON, ATTR_UNIT_OF_MEASUREMENT, CONF_PASSWORD, CONF_USERNAME, DEVICE_CLASS_BATTERY, DEVICE_CLASS_ENERGY, DEVICE_CLASS_POWER, DEVICE_CLASS_TEMPERATURE, ENERGY_KILO_WATT_HOUR, LENGTH_KILOMETERS, PERCENTAGE, POWER_KILO_WATT, STATE_OFF, STATE_ON, STATE_UNKNOWN, TEMP_CELSIUS, TIME_MINUTES, VOLUME_LITERS, ) FIXED_ATTRIBUTES = ( ATTR_DEVICE_CLASS, ATTR_STATE_CLASS, ATTR_UNIT_OF_MEASUREMENT, ) DYNAMIC_ATTRIBUTES = ( ATTR_ICON, ATTR_LAST_UPDATE, ) ICON_FOR_EMPTY_VALUES = { "sensor.charge_mode": "mdi:calendar-remove", "sensor.charge_state": "mdi:flash-off", "sensor.plug_state": "mdi:power-plug-off", } # Mock config data to be used across multiple tests MOCK_CONFIG = { CONF_USERNAME: "email@test.com", CONF_PASSWORD: "test", CONF_KAMEREON_ACCOUNT_ID: "account_id_1", CONF_LOCALE: "fr_FR", } MOCK_VEHICLES = { "zoe_40": { "expected_device": { "identifiers": {(DOMAIN, "VF1AAAAA555777999")}, "manufacturer": "Renault", "model": "Zoe", "name": "REG-NUMBER", "sw_version": "X101VE", }, "endpoints_available": [ True, # cockpit True, # hvac-status True, # battery-status True, # charge-mode ], "endpoints": { "battery_status": "battery_status_charging.json", "charge_mode": "charge_mode_always.json", "cockpit": "cockpit_ev.json", "hvac_status": "hvac_status.json", }, BINARY_SENSOR_DOMAIN: [ { "entity_id": "binary_sensor.plugged_in", "unique_id": "vf1aaaaa555777999_plugged_in", "result": STATE_ON, ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG, ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", }, { "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:16Z", }, ], SENSOR_DOMAIN: [ { "entity_id": "sensor.battery_autonomy", "unique_id": "vf1aaaaa555777999_battery_autonomy", "result": "141", ATTR_ICON: "mdi:ev-station", ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, }, { "entity_id": "sensor.battery_available_energy", "unique_id": "vf1aaaaa555777999_battery_available_energy", "result": "31", ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, }, { "entity_id": "sensor.battery_level", "unique_id": "vf1aaaaa555777999_battery_level", "result": "60", ATTR_DEVICE_CLASS: DEVICE_CLASS_BATTERY, ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, }, { "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:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, }, { "entity_id": "sensor.charge_mode", "unique_id": "vf1aaaaa555777999_charge_mode", "result": "always", ATTR_DEVICE_CLASS: DEVICE_CLASS_CHARGE_MODE, ATTR_ICON: "mdi:calendar-remove", }, { "entity_id": "sensor.charge_state", "unique_id": "vf1aaaaa555777999_charge_state", "result": "charge_in_progress", ATTR_DEVICE_CLASS: DEVICE_CLASS_CHARGE_STATE, ATTR_ICON: "mdi:flash", ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", }, { "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:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT, }, { "entity_id": "sensor.charging_remaining_time", "unique_id": "vf1aaaaa555777999_charging_remaining_time", "result": "145", ATTR_ICON: "mdi:timer", ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: TIME_MINUTES, }, { "entity_id": "sensor.mileage", "unique_id": "vf1aaaaa555777999_mileage", "result": "49114", ATTR_ICON: "mdi:sign-direction", ATTR_STATE_CLASS: STATE_CLASS_TOTAL_INCREASING, ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, }, { "entity_id": "sensor.outside_temperature", "unique_id": "vf1aaaaa555777999_outside_temperature", "result": "8.0", ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, }, { "entity_id": "sensor.plug_state", "unique_id": "vf1aaaaa555777999_plug_state", "result": "plugged", ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG_STATE, ATTR_ICON: "mdi:power-plug", ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", }, ], }, "zoe_50": { "expected_device": { "identifiers": {(DOMAIN, "VF1AAAAA555777999")}, "manufacturer": "Renault", "model": "Zoe", "name": "REG-NUMBER", "sw_version": "X102VE", }, "endpoints_available": [ True, # cockpit False, # hvac-status True, # battery-status True, # charge-mode ], "endpoints": { "battery_status": "battery_status_not_charging.json", "charge_mode": "charge_mode_schedule.json", "cockpit": "cockpit_ev.json", }, BINARY_SENSOR_DOMAIN: [ { "entity_id": "binary_sensor.plugged_in", "unique_id": "vf1aaaaa555777999_plugged_in", "result": STATE_OFF, ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG, ATTR_LAST_UPDATE: "2020-11-17T09:06:48+01: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-17T09:06:48+01:00", }, ], SENSOR_DOMAIN: [ { "entity_id": "sensor.battery_autonomy", "unique_id": "vf1aaaaa555777999_battery_autonomy", "result": "128", ATTR_ICON: "mdi:ev-station", ATTR_LAST_UPDATE: "2020-11-17T09:06:48+01:00", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, }, { "entity_id": "sensor.battery_available_energy", "unique_id": "vf1aaaaa555777999_battery_available_energy", "result": "0", ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, ATTR_LAST_UPDATE: "2020-11-17T09:06:48+01:00", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, }, { "entity_id": "sensor.battery_level", "unique_id": "vf1aaaaa555777999_battery_level", "result": "50", ATTR_DEVICE_CLASS: DEVICE_CLASS_BATTERY, ATTR_LAST_UPDATE: "2020-11-17T09:06:48+01:00", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, }, { "entity_id": "sensor.battery_temperature", "unique_id": "vf1aaaaa555777999_battery_temperature", "result": STATE_UNKNOWN, ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE, ATTR_LAST_UPDATE: "2020-11-17T09:06:48+01:00", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, }, { "entity_id": "sensor.charge_mode", "unique_id": "vf1aaaaa555777999_charge_mode", "result": "schedule_mode", ATTR_DEVICE_CLASS: DEVICE_CLASS_CHARGE_MODE, ATTR_ICON: "mdi:calendar-clock", }, { "entity_id": "sensor.charge_state", "unique_id": "vf1aaaaa555777999_charge_state", "result": "charge_error", ATTR_DEVICE_CLASS: DEVICE_CLASS_CHARGE_STATE, ATTR_ICON: "mdi:flash-off", ATTR_LAST_UPDATE: "2020-11-17T09:06:48+01:00", }, { "entity_id": "sensor.charging_power", "unique_id": "vf1aaaaa555777999_charging_power", "result": STATE_UNKNOWN, ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER, ATTR_LAST_UPDATE: "2020-11-17T09:06:48+01:00", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT, }, { "entity_id": "sensor.charging_remaining_time", "unique_id": "vf1aaaaa555777999_charging_remaining_time", "result": STATE_UNKNOWN, ATTR_ICON: "mdi:timer", ATTR_LAST_UPDATE: "2020-11-17T09:06:48+01:00", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: TIME_MINUTES, }, { "entity_id": "sensor.mileage", "unique_id": "vf1aaaaa555777999_mileage", "result": "49114", ATTR_ICON: "mdi:sign-direction", ATTR_STATE_CLASS: STATE_CLASS_TOTAL_INCREASING, ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, }, { "entity_id": "sensor.plug_state", "unique_id": "vf1aaaaa555777999_plug_state", "result": "unplugged", ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG_STATE, ATTR_ICON: "mdi:power-plug-off", ATTR_LAST_UPDATE: "2020-11-17T09:06:48+01:00", }, ], }, "captur_phev": { "expected_device": { "identifiers": {(DOMAIN, "VF1AAAAA555777123")}, "manufacturer": "Renault", "model": "Captur ii", "name": "REG-NUMBER", "sw_version": "XJB1SU", }, "endpoints_available": [ True, # cockpit False, # hvac-status True, # battery-status True, # charge-mode ], "endpoints": { "battery_status": "battery_status_charging.json", "charge_mode": "charge_mode_always.json", "cockpit": "cockpit_fuel.json", }, BINARY_SENSOR_DOMAIN: [ { "entity_id": "binary_sensor.plugged_in", "unique_id": "vf1aaaaa555777123_plugged_in", "result": STATE_ON, ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG, ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", }, { "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:16Z", }, ], SENSOR_DOMAIN: [ { "entity_id": "sensor.battery_autonomy", "unique_id": "vf1aaaaa555777123_battery_autonomy", "result": "141", ATTR_ICON: "mdi:ev-station", ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, }, { "entity_id": "sensor.battery_available_energy", "unique_id": "vf1aaaaa555777123_battery_available_energy", "result": "31", ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, }, { "entity_id": "sensor.battery_level", "unique_id": "vf1aaaaa555777123_battery_level", "result": "60", ATTR_DEVICE_CLASS: DEVICE_CLASS_BATTERY, ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, }, { "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:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, }, { "entity_id": "sensor.charge_mode", "unique_id": "vf1aaaaa555777123_charge_mode", "result": "always", ATTR_DEVICE_CLASS: DEVICE_CLASS_CHARGE_MODE, ATTR_ICON: "mdi:calendar-remove", }, { "entity_id": "sensor.charge_state", "unique_id": "vf1aaaaa555777123_charge_state", "result": "charge_in_progress", ATTR_DEVICE_CLASS: DEVICE_CLASS_CHARGE_STATE, ATTR_ICON: "mdi:flash", ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", }, { "entity_id": "sensor.charging_power", "unique_id": "vf1aaaaa555777123_charging_power", "result": "27.0", ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER, ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: POWER_KILO_WATT, }, { "entity_id": "sensor.charging_remaining_time", "unique_id": "vf1aaaaa555777123_charging_remaining_time", "result": "145", ATTR_ICON: "mdi:timer", ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: TIME_MINUTES, }, { "entity_id": "sensor.fuel_autonomy", "unique_id": "vf1aaaaa555777123_fuel_autonomy", "result": "35", ATTR_ICON: "mdi:gas-station", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, }, { "entity_id": "sensor.fuel_quantity", "unique_id": "vf1aaaaa555777123_fuel_quantity", "result": "3", ATTR_ICON: "mdi:fuel", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: VOLUME_LITERS, }, { "entity_id": "sensor.mileage", "unique_id": "vf1aaaaa555777123_mileage", "result": "5567", ATTR_ICON: "mdi:sign-direction", ATTR_STATE_CLASS: STATE_CLASS_TOTAL_INCREASING, ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, }, { "entity_id": "sensor.plug_state", "unique_id": "vf1aaaaa555777123_plug_state", "result": "plugged", ATTR_DEVICE_CLASS: DEVICE_CLASS_PLUG_STATE, ATTR_ICON: "mdi:power-plug", ATTR_LAST_UPDATE: "2020-01-12T21:40:16Z", }, ], }, "captur_fuel": { "expected_device": { "identifiers": {(DOMAIN, "VF1AAAAA555777123")}, "manufacturer": "Renault", "model": "Captur ii", "name": "REG-NUMBER", "sw_version": "XJB1SU", }, "endpoints_available": [ True, # cockpit False, # hvac-status # Ignore, # battery-status # Ignore, # charge-mode ], "endpoints": {"cockpit": "cockpit_fuel.json"}, BINARY_SENSOR_DOMAIN: [], SENSOR_DOMAIN: [ { "entity_id": "sensor.fuel_autonomy", "unique_id": "vf1aaaaa555777123_fuel_autonomy", "result": "35", ATTR_ICON: "mdi:gas-station", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, }, { "entity_id": "sensor.fuel_quantity", "unique_id": "vf1aaaaa555777123_fuel_quantity", "result": "3", ATTR_ICON: "mdi:fuel", ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_UNIT_OF_MEASUREMENT: VOLUME_LITERS, }, { "entity_id": "sensor.mileage", "unique_id": "vf1aaaaa555777123_mileage", "result": "5567", ATTR_ICON: "mdi:sign-direction", ATTR_STATE_CLASS: STATE_CLASS_TOTAL_INCREASING, ATTR_UNIT_OF_MEASUREMENT: LENGTH_KILOMETERS, }, ], }, }