Home Assistant Unofficial Reference 2024.12.1
__init__.py
Go to the documentation of this file.
1 """Automation manager for boards manufactured by ProgettiHWSW Italy."""
2 
3 from ProgettiHWSW.input import Input
4 from ProgettiHWSW.ProgettiHWSWAPI import ProgettiHWSWAPI
5 from ProgettiHWSW.relay import Relay
6 
7 from homeassistant.config_entries import ConfigEntry
8 from homeassistant.const import Platform
9 from homeassistant.core import HomeAssistant
10 
11 from .const import DOMAIN
12 
13 PLATFORMS = [Platform.BINARY_SENSOR, Platform.SWITCH]
14 
15 
16 async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
17  """Set up ProgettiHWSW Automation from a config entry."""
18  hass.data.setdefault(DOMAIN, {})
19  hass.data[DOMAIN][entry.entry_id] = ProgettiHWSWAPI(
20  f'{entry.data["host"]}:{entry.data["port"]}'
21  )
22 
23  # Check board validation again to load new values to API.
24  await hass.data[DOMAIN][entry.entry_id].check_board()
25 
26  await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
27 
28  return True
29 
30 
31 async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
32  """Unload a config entry."""
33  unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
34  if unload_ok:
35  hass.data[DOMAIN].pop(entry.entry_id)
36 
37  return unload_ok
38 
39 
40 def setup_input(api: ProgettiHWSWAPI, input_number: int) -> Input:
41  """Initialize the input pin."""
42  return api.get_input(input_number)
43 
44 
45 def setup_switch(api: ProgettiHWSWAPI, switch_number: int, mode: str) -> Relay:
46  """Initialize the output pin."""
47  return api.get_relay(switch_number, mode)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
Definition: __init__.py:16
Relay setup_switch(ProgettiHWSWAPI api, int switch_number, str mode)
Definition: __init__.py:45
Input setup_input(ProgettiHWSWAPI api, int input_number)
Definition: __init__.py:40
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
Definition: __init__.py:31