add coordinator class

This commit is contained in:
vincent committed 2024-02-27 08:49:27 +01:00
1 parent 6c6b035cf5
commit cee71535bf
12 files changed
+284 -152

No files matched your search

+10 -6
View File
@@ -9,13 +9,16 @@ from .koolnova.device import Koolnova
from .const import DOMAIN, PLATFORMS
from .coordinator import KoolnovaCoordinator
_LOGGER = logging.getLogger(__name__)
async def async_setup_entry(hass: HomeAssistant,
entry: ConfigEntry) -> bool: # pylint: disable=unused-argument
""" Creation des entités à partir d'une configEntry """
hass.data.setdefault(DOMAIN, [])
#hass.data.setdefault(DOMAIN, [])
hass.data.setdefault(DOMAIN, {})
name: str = entry.data['Name']
port: str = entry.data['Device']
@@ -26,7 +29,7 @@ async def async_setup_entry(hass: HomeAssistant,
stopbits: int = entry.data['Stopbits']
timeout: int = entry.data['Timeout']
_LOGGER.debug("Appel de async_setup_entry - entry: entry_id={}, data={}".format(entry.entry_id, entry.data))
#_LOGGER.debug("Appel de async_setup_entry - entry: entry_id={}, data={}".format(entry.entry_id, entry.data))
try:
device = Koolnova(name, port, addr, baudrate, parity, bytesize, stopbits, timeout)
# connect to modbus client
@@ -34,12 +37,13 @@ async def async_setup_entry(hass: HomeAssistant,
# update attributes
await device.update()
# record each area in device
_LOGGER.debug("Koolnova areas: {}".format(entry.data['areas']))
#_LOGGER.debug("Koolnova areas: {}".format(entry.data['areas']))
for area in entry.data['areas']:
await device.add_manual_registered_zone(name=area['Name'],
id_zone=area['Zone_id'])
_LOGGER.debug("Koolnova device: {}".format(device))
hass.data[DOMAIN].append(device)
id_zone=area['Area_id'])
hass.data[DOMAIN]['device'] = device
coordinator = KoolnovaCoordinator(hass, device)
hass.data[DOMAIN]['coordinator'] = coordinator
except Exception as e:
_LOGGER.exception("Something went wrong ... {}".format(e))