44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
"""Helper for Netatmo integration."""
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
from uuid import UUID, uuid4
|
|
|
|
import pyatmo
|
|
|
|
|
|
@dataclass
|
|
class NetatmoArea:
|
|
"""Class for keeping track of an area."""
|
|
|
|
area_name: str
|
|
lat_ne: float
|
|
lon_ne: float
|
|
lat_sw: float
|
|
lon_sw: float
|
|
mode: str
|
|
show_on_map: bool
|
|
uuid: UUID = uuid4()
|
|
|
|
|
|
def get_all_home_ids(home_data: pyatmo.HomeData | None) -> list[str]:
|
|
"""Get all the home ids returned by NetAtmo API."""
|
|
if home_data is None:
|
|
return []
|
|
return [
|
|
home_data.homes[home_id]["id"]
|
|
for home_id in home_data.homes
|
|
if "modules" in home_data.homes[home_id]
|
|
]
|
|
|
|
|
|
def update_climate_schedules(home_ids: list[str], schedules: dict) -> dict:
|
|
"""Get updated list of all climate schedules."""
|
|
return {
|
|
home_id: {
|
|
schedule_id: schedule_data.get("name")
|
|
for schedule_id, schedule_data in schedules[home_id].items()
|
|
}
|
|
for home_id in home_ids
|
|
}
|