diff --git a/homeassistant/components/netatmo/camera.py b/homeassistant/components/netatmo/camera.py index 5e63c56788b..7e2ea494604 100644 --- a/homeassistant/components/netatmo/camera.py +++ b/homeassistant/components/netatmo/camera.py @@ -36,6 +36,7 @@ from .const import ( SERVICE_SET_PERSON_AWAY, SERVICE_SET_PERSONS_HOME, SIGNAL_NAME, + TYPE_SECURITY, WEBHOOK_LIGHT_MODE, WEBHOOK_NACAMERA_CONNECTION, WEBHOOK_PUSH_TYPE, @@ -135,6 +136,7 @@ class NetatmoCamera(NetatmoBase, Camera): self._device_name = self._data.get_camera(camera_id=camera_id)["name"] self._attr_name = f"{MANUFACTURER} {self._device_name}" self._model = camera_type + self._netatmo_type = TYPE_SECURITY self._attr_unique_id = f"{self._id}-{self._model}" self._quality = quality self._vpnurl: str | None = None diff --git a/homeassistant/components/netatmo/climate.py b/homeassistant/components/netatmo/climate.py index e71b6939982..6b0f9cf5124 100644 --- a/homeassistant/components/netatmo/climate.py +++ b/homeassistant/components/netatmo/climate.py @@ -52,6 +52,7 @@ from .const import ( MANUFACTURER, SERVICE_SET_SCHEDULE, SIGNAL_NAME, + TYPE_ENERGY, ) from .data_handler import ( HOMEDATA_DATA_CLASS_NAME, @@ -209,6 +210,8 @@ class NetatmoThermostat(NetatmoBase, ClimateEntity): self._model = NA_THERM break + self._netatmo_type = TYPE_ENERGY + self._device_name = self._data.rooms[home_id][room_id]["name"] self._attr_name = f"{MANUFACTURER} {self._device_name}" self._current_temperature: float | None = None diff --git a/homeassistant/components/netatmo/const.py b/homeassistant/components/netatmo/const.py index ea0f486b6cc..07651d982a5 100644 --- a/homeassistant/components/netatmo/const.py +++ b/homeassistant/components/netatmo/const.py @@ -45,6 +45,10 @@ MODELS = { "public": MODEL_PUBLIC, } +TYPE_SECURITY = "security" +TYPE_ENERGY = "energy" +TYPE_WEATHER = "weather" + AUTH = "netatmo_auth" CONF_PUBLIC = "public_sensor_config" CAMERA_DATA = "netatmo_camera" diff --git a/homeassistant/components/netatmo/light.py b/homeassistant/components/netatmo/light.py index 34c0d023edc..cb52271dbf5 100644 --- a/homeassistant/components/netatmo/light.py +++ b/homeassistant/components/netatmo/light.py @@ -19,6 +19,7 @@ from .const import ( EVENT_TYPE_LIGHT_MODE, MANUFACTURER, SIGNAL_NAME, + TYPE_SECURITY, WEBHOOK_LIGHT_MODE, WEBHOOK_PUSH_TYPE, ) @@ -88,6 +89,7 @@ class NetatmoLight(NetatmoBase, LightEntity): self._id = camera_id self._home_id = home_id self._model = camera_type + self._netatmo_type = TYPE_SECURITY self._device_name: str = self._data.get_camera(camera_id)["name"] self._attr_name = f"{MANUFACTURER} {self._device_name}" self._is_on = False diff --git a/homeassistant/components/netatmo/netatmo_entity_base.py b/homeassistant/components/netatmo/netatmo_entity_base.py index f276fb3d947..1704fadedca 100644 --- a/homeassistant/components/netatmo/netatmo_entity_base.py +++ b/homeassistant/components/netatmo/netatmo_entity_base.py @@ -28,6 +28,7 @@ class NetatmoBase(Entity): self._device_name: str = "" self._id: str = "" self._model: str = "" + self._netatmo_type: str = "" self._attr_name = None self._attr_unique_id = None self._attr_extra_state_attributes = {ATTR_ATTRIBUTION: DEFAULT_ATTRIBUTION} @@ -91,9 +92,10 @@ class NetatmoBase(Entity): @property def device_info(self) -> DeviceInfo: """Return the device info for the sensor.""" - return { - "identifiers": {(DOMAIN, self._id)}, - "name": self._device_name, - "manufacturer": MANUFACTURER, - "model": MODELS[self._model], - } + return DeviceInfo( + configuration_url=f"https://my.netatmo.com/app/{self._netatmo_type}", + identifiers={(DOMAIN, self._id)}, + name=self._device_name, + manufacturer=MANUFACTURER, + model=MODELS[self._model], + ) diff --git a/homeassistant/components/netatmo/select.py b/homeassistant/components/netatmo/select.py index 387fb8f0acc..1f4c60b9dbc 100644 --- a/homeassistant/components/netatmo/select.py +++ b/homeassistant/components/netatmo/select.py @@ -20,6 +20,7 @@ from .const import ( EVENT_TYPE_SCHEDULE, MANUFACTURER, SIGNAL_NAME, + TYPE_ENERGY, ) from .data_handler import HOMEDATA_DATA_CLASS_NAME, NetatmoDataHandler from .helper import get_all_home_ids, update_climate_schedules @@ -87,6 +88,7 @@ class NetatmoScheduleSelect(NetatmoBase, SelectEntity): self._attr_name = f"{MANUFACTURER} {self._device_name}" self._model: str = "NATherm1" + self._netatmo_type = TYPE_ENERGY self._attr_unique_id = f"{self._home_id}-schedule-select" diff --git a/homeassistant/components/netatmo/sensor.py b/homeassistant/components/netatmo/sensor.py index 8a4078d3d22..108ed3b2cea 100644 --- a/homeassistant/components/netatmo/sensor.py +++ b/homeassistant/components/netatmo/sensor.py @@ -42,7 +42,14 @@ from homeassistant.helpers.dispatcher import ( ) from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .const import CONF_WEATHER_AREAS, DATA_HANDLER, DOMAIN, MANUFACTURER, SIGNAL_NAME +from .const import ( + CONF_WEATHER_AREAS, + DATA_HANDLER, + DOMAIN, + MANUFACTURER, + SIGNAL_NAME, + TYPE_WEATHER, +) from .data_handler import ( HOMECOACH_DATA_CLASS_NAME, PUBLICDATA_DATA_CLASS_NAME, @@ -492,6 +499,7 @@ class NetatmoSensor(NetatmoBase, SensorEntity): self._attr_name = f"{MANUFACTURER} {self._device_name} {description.name}" self._model = device["type"] + self._netatmo_type = TYPE_WEATHER self._attr_unique_id = f"{self._id}-{description.key}" @property