Fix unnecessary API calls in Netatmo (#51260)

This commit is contained in:
Tobias Sauerwein 2021-05-31 05:55:45 +02:00 committed by GitHub
parent 1a5d35d7bf
commit 9bd74961f0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 4 deletions

View file

@ -158,7 +158,13 @@ class NetatmoDataHandler:
):
"""Register data class."""
if data_class_entry in self.data_classes:
self.data_classes[data_class_entry]["subscriptions"].append(update_callback)
if (
update_callback
not in self.data_classes[data_class_entry]["subscriptions"]
):
self.data_classes[data_class_entry]["subscriptions"].append(
update_callback
)
return
self.data_classes[data_class_entry] = {

View file

@ -130,7 +130,7 @@ PUBLIC = "public"
async def async_setup_entry(hass, entry, async_add_entities):
"""Set up the Netatmo weather and homecoach platform."""
data_handler = hass.data[DOMAIN][entry.entry_id][DATA_HANDLER]
platform_not_ready = False
platform_not_ready = True
async def find_entities(data_class_name):
"""Find all entities."""
@ -183,8 +183,8 @@ async def async_setup_entry(hass, entry, async_add_entities):
await data_handler.register_data_class(data_class_name, data_class_name, None)
data_class = data_handler.data.get(data_class_name)
if not data_class or not data_class.raw_data:
platform_not_ready = True
if not (data_class and data_class.raw_data):
platform_not_ready = False
async_add_entities(await find_entities(data_class_name), True)
@ -226,6 +226,12 @@ async def async_setup_entry(hass, entry, async_add_entities):
lat_sw=area.lat_sw,
lon_sw=area.lon_sw,
)
data_class = data_handler.data.get(signal_name)
if not (data_class and data_class.raw_data):
nonlocal platform_not_ready
platform_not_ready = False
for sensor_type in SUPPORTED_PUBLIC_SENSOR_TYPES:
new_entities.append(
NetatmoPublicSensor(data_handler, area, sensor_type)