Add configuration_url
to Netatmo devices (#58160)
This commit is contained in:
parent
70469e0979
commit
83e45300c2
7 changed files with 30 additions and 7 deletions
|
@ -36,6 +36,7 @@ from .const import (
|
||||||
SERVICE_SET_PERSON_AWAY,
|
SERVICE_SET_PERSON_AWAY,
|
||||||
SERVICE_SET_PERSONS_HOME,
|
SERVICE_SET_PERSONS_HOME,
|
||||||
SIGNAL_NAME,
|
SIGNAL_NAME,
|
||||||
|
TYPE_SECURITY,
|
||||||
WEBHOOK_LIGHT_MODE,
|
WEBHOOK_LIGHT_MODE,
|
||||||
WEBHOOK_NACAMERA_CONNECTION,
|
WEBHOOK_NACAMERA_CONNECTION,
|
||||||
WEBHOOK_PUSH_TYPE,
|
WEBHOOK_PUSH_TYPE,
|
||||||
|
@ -135,6 +136,7 @@ class NetatmoCamera(NetatmoBase, Camera):
|
||||||
self._device_name = self._data.get_camera(camera_id=camera_id)["name"]
|
self._device_name = self._data.get_camera(camera_id=camera_id)["name"]
|
||||||
self._attr_name = f"{MANUFACTURER} {self._device_name}"
|
self._attr_name = f"{MANUFACTURER} {self._device_name}"
|
||||||
self._model = camera_type
|
self._model = camera_type
|
||||||
|
self._netatmo_type = TYPE_SECURITY
|
||||||
self._attr_unique_id = f"{self._id}-{self._model}"
|
self._attr_unique_id = f"{self._id}-{self._model}"
|
||||||
self._quality = quality
|
self._quality = quality
|
||||||
self._vpnurl: str | None = None
|
self._vpnurl: str | None = None
|
||||||
|
|
|
@ -52,6 +52,7 @@ from .const import (
|
||||||
MANUFACTURER,
|
MANUFACTURER,
|
||||||
SERVICE_SET_SCHEDULE,
|
SERVICE_SET_SCHEDULE,
|
||||||
SIGNAL_NAME,
|
SIGNAL_NAME,
|
||||||
|
TYPE_ENERGY,
|
||||||
)
|
)
|
||||||
from .data_handler import (
|
from .data_handler import (
|
||||||
HOMEDATA_DATA_CLASS_NAME,
|
HOMEDATA_DATA_CLASS_NAME,
|
||||||
|
@ -209,6 +210,8 @@ class NetatmoThermostat(NetatmoBase, ClimateEntity):
|
||||||
self._model = NA_THERM
|
self._model = NA_THERM
|
||||||
break
|
break
|
||||||
|
|
||||||
|
self._netatmo_type = TYPE_ENERGY
|
||||||
|
|
||||||
self._device_name = self._data.rooms[home_id][room_id]["name"]
|
self._device_name = self._data.rooms[home_id][room_id]["name"]
|
||||||
self._attr_name = f"{MANUFACTURER} {self._device_name}"
|
self._attr_name = f"{MANUFACTURER} {self._device_name}"
|
||||||
self._current_temperature: float | None = None
|
self._current_temperature: float | None = None
|
||||||
|
|
|
@ -45,6 +45,10 @@ MODELS = {
|
||||||
"public": MODEL_PUBLIC,
|
"public": MODEL_PUBLIC,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TYPE_SECURITY = "security"
|
||||||
|
TYPE_ENERGY = "energy"
|
||||||
|
TYPE_WEATHER = "weather"
|
||||||
|
|
||||||
AUTH = "netatmo_auth"
|
AUTH = "netatmo_auth"
|
||||||
CONF_PUBLIC = "public_sensor_config"
|
CONF_PUBLIC = "public_sensor_config"
|
||||||
CAMERA_DATA = "netatmo_camera"
|
CAMERA_DATA = "netatmo_camera"
|
||||||
|
|
|
@ -19,6 +19,7 @@ from .const import (
|
||||||
EVENT_TYPE_LIGHT_MODE,
|
EVENT_TYPE_LIGHT_MODE,
|
||||||
MANUFACTURER,
|
MANUFACTURER,
|
||||||
SIGNAL_NAME,
|
SIGNAL_NAME,
|
||||||
|
TYPE_SECURITY,
|
||||||
WEBHOOK_LIGHT_MODE,
|
WEBHOOK_LIGHT_MODE,
|
||||||
WEBHOOK_PUSH_TYPE,
|
WEBHOOK_PUSH_TYPE,
|
||||||
)
|
)
|
||||||
|
@ -88,6 +89,7 @@ class NetatmoLight(NetatmoBase, LightEntity):
|
||||||
self._id = camera_id
|
self._id = camera_id
|
||||||
self._home_id = home_id
|
self._home_id = home_id
|
||||||
self._model = camera_type
|
self._model = camera_type
|
||||||
|
self._netatmo_type = TYPE_SECURITY
|
||||||
self._device_name: str = self._data.get_camera(camera_id)["name"]
|
self._device_name: str = self._data.get_camera(camera_id)["name"]
|
||||||
self._attr_name = f"{MANUFACTURER} {self._device_name}"
|
self._attr_name = f"{MANUFACTURER} {self._device_name}"
|
||||||
self._is_on = False
|
self._is_on = False
|
||||||
|
|
|
@ -28,6 +28,7 @@ class NetatmoBase(Entity):
|
||||||
self._device_name: str = ""
|
self._device_name: str = ""
|
||||||
self._id: str = ""
|
self._id: str = ""
|
||||||
self._model: str = ""
|
self._model: str = ""
|
||||||
|
self._netatmo_type: str = ""
|
||||||
self._attr_name = None
|
self._attr_name = None
|
||||||
self._attr_unique_id = None
|
self._attr_unique_id = None
|
||||||
self._attr_extra_state_attributes = {ATTR_ATTRIBUTION: DEFAULT_ATTRIBUTION}
|
self._attr_extra_state_attributes = {ATTR_ATTRIBUTION: DEFAULT_ATTRIBUTION}
|
||||||
|
@ -91,9 +92,10 @@ class NetatmoBase(Entity):
|
||||||
@property
|
@property
|
||||||
def device_info(self) -> DeviceInfo:
|
def device_info(self) -> DeviceInfo:
|
||||||
"""Return the device info for the sensor."""
|
"""Return the device info for the sensor."""
|
||||||
return {
|
return DeviceInfo(
|
||||||
"identifiers": {(DOMAIN, self._id)},
|
configuration_url=f"https://my.netatmo.com/app/{self._netatmo_type}",
|
||||||
"name": self._device_name,
|
identifiers={(DOMAIN, self._id)},
|
||||||
"manufacturer": MANUFACTURER,
|
name=self._device_name,
|
||||||
"model": MODELS[self._model],
|
manufacturer=MANUFACTURER,
|
||||||
}
|
model=MODELS[self._model],
|
||||||
|
)
|
||||||
|
|
|
@ -20,6 +20,7 @@ from .const import (
|
||||||
EVENT_TYPE_SCHEDULE,
|
EVENT_TYPE_SCHEDULE,
|
||||||
MANUFACTURER,
|
MANUFACTURER,
|
||||||
SIGNAL_NAME,
|
SIGNAL_NAME,
|
||||||
|
TYPE_ENERGY,
|
||||||
)
|
)
|
||||||
from .data_handler import HOMEDATA_DATA_CLASS_NAME, NetatmoDataHandler
|
from .data_handler import HOMEDATA_DATA_CLASS_NAME, NetatmoDataHandler
|
||||||
from .helper import get_all_home_ids, update_climate_schedules
|
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._attr_name = f"{MANUFACTURER} {self._device_name}"
|
||||||
|
|
||||||
self._model: str = "NATherm1"
|
self._model: str = "NATherm1"
|
||||||
|
self._netatmo_type = TYPE_ENERGY
|
||||||
|
|
||||||
self._attr_unique_id = f"{self._home_id}-schedule-select"
|
self._attr_unique_id = f"{self._home_id}-schedule-select"
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,14 @@ from homeassistant.helpers.dispatcher import (
|
||||||
)
|
)
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
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 (
|
from .data_handler import (
|
||||||
HOMECOACH_DATA_CLASS_NAME,
|
HOMECOACH_DATA_CLASS_NAME,
|
||||||
PUBLICDATA_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._attr_name = f"{MANUFACTURER} {self._device_name} {description.name}"
|
||||||
self._model = device["type"]
|
self._model = device["type"]
|
||||||
|
self._netatmo_type = TYPE_WEATHER
|
||||||
self._attr_unique_id = f"{self._id}-{description.key}"
|
self._attr_unique_id = f"{self._id}-{description.key}"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue