1 """Support for Melnor RainCloud sprinkler water timer."""
3 from __future__
import annotations
7 import voluptuous
as vol
10 PLATFORM_SCHEMA
as BINARY_SENSOR_PLATFORM_SCHEMA,
19 from .const
import DATA_RAINCLOUD, ICON_MAP
20 from .entity
import RainCloudEntity
22 _LOGGER = logging.getLogger(__name__)
24 BINARY_SENSORS = [
"is_watering",
"status"]
26 PLATFORM_SCHEMA = BINARY_SENSOR_PLATFORM_SCHEMA.extend(
28 vol.Optional(CONF_MONITORED_CONDITIONS, default=
list(BINARY_SENSORS)): vol.All(
29 cv.ensure_list, [vol.In(BINARY_SENSORS)]
38 add_entities: AddEntitiesCallback,
39 discovery_info: DiscoveryInfoType |
None =
None,
41 """Set up a sensor for a raincloud device."""
42 raincloud = hass.data[DATA_RAINCLOUD].data
45 for sensor_type
in config[CONF_MONITORED_CONDITIONS]:
46 if sensor_type ==
"status":
56 for zone
in raincloud.controller.faucet.zones
63 """A sensor implementation for raincloud device."""
67 """Return true if the binary sensor is on."""
71 """Get the latest data and updates the state."""
72 _LOGGER.debug(
"Updating RainCloud sensor: %s", self.
_name_name)
79 """Return the icon of this device."""
81 return "mdi:water" if self.
is_onis_on
else "mdi:water-off"
83 return "mdi:pipe" if self.
is_onis_on
else "mdi:pipe-disconnected"
None add_entities(AsusWrtRouter router, AddEntitiesCallback async_add_entities, set[str] tracked)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)