1 """Support to control ecoal/esterownik.pl coal/wood boiler controller."""
5 from ecoaliface.simple
import ECoalController
6 import voluptuous
as vol
10 CONF_MONITORED_CONDITIONS,
22 _LOGGER = logging.getLogger(__name__)
24 DOMAIN =
"ecoal_boiler"
25 DATA_ECOAL_BOILER = f
"data_{DOMAIN}"
27 DEFAULT_USERNAME =
"admin"
28 DEFAULT_PASSWORD =
"admin"
34 "central_heating_pump":
"Central heating pump",
35 "central_heating_pump2":
"Central heating pump2",
36 "domestic_hot_water_pump":
"Domestic hot water pump",
42 "outdoor_temp":
"Outdoor temperature",
43 "indoor_temp":
"Indoor temperature",
44 "indoor2_temp":
"Indoor temperature 2",
45 "domestic_hot_water_temp":
"Domestic hot water temperature",
46 "target_domestic_hot_water_temp":
"Target hot water temperature",
47 "feedwater_in_temp":
"Feedwater input temperature",
48 "feedwater_out_temp":
"Feedwater output temperature",
49 "target_feedwater_temp":
"Target feedwater temperature",
50 "fuel_feeder_temp":
"Fuel feeder temperature",
51 "exhaust_temp":
"Exhaust temperature",
54 SWITCH_SCHEMA = vol.Schema(
56 vol.Optional(CONF_MONITORED_CONDITIONS, default=
list(AVAILABLE_PUMPS)): vol.All(
57 cv.ensure_list, [vol.In(AVAILABLE_PUMPS)]
62 SENSOR_SCHEMA = vol.Schema(
65 CONF_MONITORED_CONDITIONS, default=
list(AVAILABLE_SENSORS)
66 ): vol.All(cv.ensure_list, [vol.In(AVAILABLE_SENSORS)])
70 CONFIG_SCHEMA = vol.Schema(
74 vol.Required(CONF_HOST): cv.string,
75 vol.Optional(CONF_PASSWORD, default=DEFAULT_PASSWORD): cv.string,
76 vol.Optional(CONF_SENSORS, default={}): SENSOR_SCHEMA,
77 vol.Optional(CONF_SWITCHES, default={}): SWITCH_SCHEMA,
78 vol.Optional(CONF_USERNAME, default=DEFAULT_USERNAME): cv.string,
82 extra=vol.ALLOW_EXTRA,
86 def setup(hass: HomeAssistant, hass_config: ConfigType) -> bool:
87 """Set up global ECoalController instance same for sensors and switches."""
89 conf = hass_config[DOMAIN]
90 host = conf[CONF_HOST]
91 username = conf[CONF_USERNAME]
92 passwd = conf[CONF_PASSWORD]
94 ecoal_contr = ECoalController(host, username, passwd)
95 if ecoal_contr.version
is None:
98 "Unable to read controller status from %s@%s (wrong host/credentials)",
103 _LOGGER.debug(
"Detected controller version: %r @%s", ecoal_contr.version, host)
104 hass.data[DATA_ECOAL_BOILER] = ecoal_contr
106 switches = conf[CONF_SWITCHES][CONF_MONITORED_CONDITIONS]
107 load_platform(hass, Platform.SWITCH, DOMAIN, switches, hass_config)
109 sensors = conf[CONF_SENSORS][CONF_MONITORED_CONDITIONS]
110 load_platform(hass, Platform.SENSOR, DOMAIN, sensors, hass_config)
bool setup(HomeAssistant hass, ConfigType hass_config)
None load_platform(core.HomeAssistant hass, Platform|str component, str platform, DiscoveryInfoType|None discovered, ConfigType hass_config)