From b9bc6ca070f07f97f73c14a7b25fe8d06576b003 Mon Sep 17 00:00:00 2001
From: Diogo Gomes <dgomes@ua.pt>
Date: Sun, 12 Nov 2023 11:04:10 +0000
Subject: [PATCH] Address late V2C review comments (#103808)

* address review

* missing fixture
---
 homeassistant/components/v2c/coordinator.py | 4 ++--
 homeassistant/components/v2c/entity.py      | 2 +-
 homeassistant/components/v2c/number.py      | 5 ++---
 homeassistant/components/v2c/sensor.py      | 6 ++----
 homeassistant/components/v2c/strings.json   | 3 ---
 homeassistant/components/v2c/switch.py      | 5 ++---
 tests/components/v2c/test_config_flow.py    | 2 +-
 7 files changed, 10 insertions(+), 17 deletions(-)

diff --git a/homeassistant/components/v2c/coordinator.py b/homeassistant/components/v2c/coordinator.py
index 2ab6b967fc6..f61d58b844d 100644
--- a/homeassistant/components/v2c/coordinator.py
+++ b/homeassistant/components/v2c/coordinator.py
@@ -35,7 +35,7 @@ class V2CUpdateCoordinator(DataUpdateCoordinator[TrydanData]):
         """Fetch sensor data from api."""
         try:
             data: TrydanData = await self.evse.get_data()
-            _LOGGER.debug("Received data: %s", data)
-            return data
         except TrydanError as err:
             raise UpdateFailed(f"Error communicating with API: {err}") from err
+        _LOGGER.debug("Received data: %s", data)
+        return data
diff --git a/homeassistant/components/v2c/entity.py b/homeassistant/components/v2c/entity.py
index c00e221d397..ee3c94d8d0c 100644
--- a/homeassistant/components/v2c/entity.py
+++ b/homeassistant/components/v2c/entity.py
@@ -26,7 +26,7 @@ class V2CBaseEntity(CoordinatorEntity[V2CUpdateCoordinator]):
         super().__init__(coordinator)
 
         self._attr_device_info = DeviceInfo(
-            identifiers={(DOMAIN, coordinator.evse.host)},
+            identifiers={(DOMAIN, coordinator.config_entry.entry_id)},
             manufacturer="V2C",
             model="Trydan",
             name=coordinator.name,
diff --git a/homeassistant/components/v2c/number.py b/homeassistant/components/v2c/number.py
index 843dbbdfa65..0f2551818a2 100644
--- a/homeassistant/components/v2c/number.py
+++ b/homeassistant/components/v2c/number.py
@@ -60,11 +60,10 @@ async def async_setup_entry(
     """Set up V2C Trydan number platform."""
     coordinator: V2CUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]
 
-    entities: list[NumberEntity] = [
+    async_add_entities(
         V2CSettingsNumberEntity(coordinator, description, config_entry.entry_id)
         for description in TRYDAN_NUMBER_SETTINGS
-    ]
-    async_add_entities(entities)
+    )
 
 
 class V2CSettingsNumberEntity(V2CBaseEntity, NumberEntity):
diff --git a/homeassistant/components/v2c/sensor.py b/homeassistant/components/v2c/sensor.py
index 64aacf8e49e..0c860943922 100644
--- a/homeassistant/components/v2c/sensor.py
+++ b/homeassistant/components/v2c/sensor.py
@@ -16,7 +16,6 @@ from homeassistant.components.sensor import (
 from homeassistant.config_entries import ConfigEntry
 from homeassistant.const import UnitOfEnergy, UnitOfPower, UnitOfTime
 from homeassistant.core import HomeAssistant
-from homeassistant.helpers.entity import Entity
 from homeassistant.helpers.entity_platform import AddEntitiesCallback
 
 from .const import DOMAIN
@@ -90,11 +89,10 @@ async def async_setup_entry(
     """Set up V2C sensor platform."""
     coordinator: V2CUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]
 
-    entities: list[Entity] = [
+    async_add_entities(
         V2CSensorBaseEntity(coordinator, description, config_entry.entry_id)
         for description in TRYDAN_SENSORS
-    ]
-    async_add_entities(entities)
+    )
 
 
 class V2CSensorBaseEntity(V2CBaseEntity, SensorEntity):
diff --git a/homeassistant/components/v2c/strings.json b/homeassistant/components/v2c/strings.json
index 5108b89a58a..749cfb9979e 100644
--- a/homeassistant/components/v2c/strings.json
+++ b/homeassistant/components/v2c/strings.json
@@ -10,9 +10,6 @@
     "error": {
       "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
       "unknown": "[%key:common::config_flow::error::unknown%]"
-    },
-    "abort": {
-      "already_configured": "[%key:common::config_flow::abort::already_configured_device%]"
     }
   },
   "entity": {
diff --git a/homeassistant/components/v2c/switch.py b/homeassistant/components/v2c/switch.py
index d54c14f88d6..4e56e72dcbf 100644
--- a/homeassistant/components/v2c/switch.py
+++ b/homeassistant/components/v2c/switch.py
@@ -55,11 +55,10 @@ async def async_setup_entry(
     """Set up V2C switch platform."""
     coordinator: V2CUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]
 
-    entities: list[SwitchEntity] = [
+    async_add_entities(
         V2CSwitchEntity(coordinator, description, config_entry.entry_id)
         for description in TRYDAN_SWITCHES
-    ]
-    async_add_entities(entities)
+    )
 
 
 class V2CSwitchEntity(V2CBaseEntity, SwitchEntity):
diff --git a/tests/components/v2c/test_config_flow.py b/tests/components/v2c/test_config_flow.py
index 0124c1abb9c..50bc4ca91bf 100644
--- a/tests/components/v2c/test_config_flow.py
+++ b/tests/components/v2c/test_config_flow.py
@@ -46,7 +46,7 @@ async def test_form(hass: HomeAssistant, mock_setup_entry: AsyncMock) -> None:
     ],
 )
 async def test_form_cannot_connect(
-    hass: HomeAssistant, side_effect: Exception, error: str
+    hass: HomeAssistant, mock_setup_entry: AsyncMock, side_effect: Exception, error: str
 ) -> None:
     """Test we handle cannot connect error."""
     result = await hass.config_entries.flow.async_init(
-- 
GitLab