Home Assistant Unofficial Reference 2024.12.1
humidifier.py
Go to the documentation of this file.
1 """Support for Switchbot humidifier."""
2 
3 from __future__ import annotations
4 
5 import switchbot
6 
8  MODE_AUTO,
9  MODE_NORMAL,
10  HumidifierDeviceClass,
11  HumidifierEntity,
12  HumidifierEntityFeature,
13 )
14 from homeassistant.core import HomeAssistant
15 from homeassistant.helpers.entity_platform import AddEntitiesCallback
16 
17 from .coordinator import SwitchbotConfigEntry
18 from .entity import SwitchbotSwitchedEntity
19 
20 PARALLEL_UPDATES = 0
21 
22 
24  hass: HomeAssistant,
25  entry: SwitchbotConfigEntry,
26  async_add_entities: AddEntitiesCallback,
27 ) -> None:
28  """Set up Switchbot based on a config entry."""
29  async_add_entities([SwitchBotHumidifier(entry.runtime_data)])
30 
31 
33  """Representation of a Switchbot humidifier."""
34 
35  _attr_supported_features = HumidifierEntityFeature.MODES
36  _attr_device_class = HumidifierDeviceClass.HUMIDIFIER
37  _attr_available_modes = [MODE_NORMAL, MODE_AUTO]
38  _device: switchbot.SwitchbotHumidifier
39  _attr_min_humidity = 1
40  _attr_translation_key = "humidifier"
41  _attr_name = None
42 
43  @property
44  def is_on(self) -> bool | None:
45  """Return true if device is on."""
46  return self._device_device.is_on()
47 
48  @property
49  def mode(self) -> str:
50  """Return the humidity we try to reach."""
51  return MODE_AUTO if self._device_device.is_auto() else MODE_NORMAL
52 
53  @property
54  def target_humidity(self) -> int | None:
55  """Return the humidity we try to reach."""
56  return self._device_device.get_target_humidity()
57 
58  async def async_set_humidity(self, humidity: int) -> None:
59  """Set new target humidity."""
60  self._last_run_success_last_run_success_last_run_success = bool(await self._device_device.set_level(humidity))
61  self.async_write_ha_stateasync_write_ha_state()
62 
63  async def async_set_mode(self, mode: str) -> None:
64  """Set new target humidity."""
65  if mode == MODE_AUTO:
66  self._last_run_success_last_run_success_last_run_success = await self._device_device.async_set_auto()
67  else:
68  self._last_run_success_last_run_success_last_run_success = await self._device_device.async_set_manual()
69  self.async_write_ha_stateasync_write_ha_state()
None async_setup_entry(HomeAssistant hass, SwitchbotConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: humidifier.py:27