Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """DROP device data update coordinator object."""
2 
3 from __future__ import annotations
4 
5 import logging
6 
7 from dropmqttapi.mqttapi import DropAPI
8 
9 from homeassistant.components import mqtt
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
13 
14 from .const import CONF_COMMAND_TOPIC, DOMAIN
15 
16 _LOGGER = logging.getLogger(__name__)
17 
18 
20  """DROP device object."""
21 
22  config_entry: ConfigEntry
23 
24  def __init__(self, hass: HomeAssistant, unique_id: str) -> None:
25  """Initialize the device."""
26  super().__init__(hass, _LOGGER, name=f"{DOMAIN}-{unique_id}")
27  self.drop_apidrop_api = DropAPI()
28 
29  async def set_water(self, value: int) -> None:
30  """Change water supply state."""
31  payload = self.drop_apidrop_api.set_water_message(value)
32  await mqtt.async_publish(
33  self.hasshass,
34  self.config_entryconfig_entry.data[CONF_COMMAND_TOPIC],
35  payload,
36  )
37 
38  async def set_bypass(self, value: int) -> None:
39  """Change water bypass state."""
40  payload = self.drop_apidrop_api.set_bypass_message(value)
41  await mqtt.async_publish(
42  self.hasshass,
43  self.config_entryconfig_entry.data[CONF_COMMAND_TOPIC],
44  payload,
45  )
46 
47  async def set_protect_mode(self, value: str) -> None:
48  """Change protect mode state."""
49  payload = self.drop_apidrop_api.set_protect_mode_message(value)
50  await mqtt.async_publish(
51  self.hasshass,
52  self.config_entryconfig_entry.data[CONF_COMMAND_TOPIC],
53  payload,
54  )