Fix Hydrawise zone addressing (#97333)
This commit is contained in:
parent
cd1a99a15f
commit
2542c5f259
3 changed files with 10 additions and 10 deletions
|
@ -92,6 +92,6 @@ class HydrawiseBinarySensor(HydrawiseEntity, BinarySensorEntity):
|
||||||
if self.entity_description.key == "status":
|
if self.entity_description.key == "status":
|
||||||
self._attr_is_on = self.coordinator.api.status == "All good!"
|
self._attr_is_on = self.coordinator.api.status == "All good!"
|
||||||
elif self.entity_description.key == "is_watering":
|
elif self.entity_description.key == "is_watering":
|
||||||
relay_data = self.coordinator.api.relays[self.data["relay"] - 1]
|
relay_data = self.coordinator.api.relays_by_zone_number[self.data["relay"]]
|
||||||
self._attr_is_on = relay_data["timestr"] == "Now"
|
self._attr_is_on = relay_data["timestr"] == "Now"
|
||||||
super()._handle_coordinator_update()
|
super()._handle_coordinator_update()
|
||||||
|
|
|
@ -77,7 +77,7 @@ class HydrawiseSensor(HydrawiseEntity, SensorEntity):
|
||||||
def _handle_coordinator_update(self) -> None:
|
def _handle_coordinator_update(self) -> None:
|
||||||
"""Get the latest data and updates the states."""
|
"""Get the latest data and updates the states."""
|
||||||
LOGGER.debug("Updating Hydrawise sensor: %s", self.name)
|
LOGGER.debug("Updating Hydrawise sensor: %s", self.name)
|
||||||
relay_data = self.coordinator.api.relays[self.data["relay"] - 1]
|
relay_data = self.coordinator.api.relays_by_zone_number[self.data["relay"]]
|
||||||
if self.entity_description.key == "watering_time":
|
if self.entity_description.key == "watering_time":
|
||||||
if relay_data["timestr"] == "Now":
|
if relay_data["timestr"] == "Now":
|
||||||
self._attr_native_value = int(relay_data["run"] / 60)
|
self._attr_native_value = int(relay_data["run"] / 60)
|
||||||
|
|
|
@ -99,26 +99,26 @@ class HydrawiseSwitch(HydrawiseEntity, SwitchEntity):
|
||||||
|
|
||||||
def turn_on(self, **kwargs: Any) -> None:
|
def turn_on(self, **kwargs: Any) -> None:
|
||||||
"""Turn the device on."""
|
"""Turn the device on."""
|
||||||
relay_data = self.data["relay"] - 1
|
zone_number = self.data["relay"]
|
||||||
if self.entity_description.key == "manual_watering":
|
if self.entity_description.key == "manual_watering":
|
||||||
self.coordinator.api.run_zone(self._default_watering_timer, relay_data)
|
self.coordinator.api.run_zone(self._default_watering_timer, zone_number)
|
||||||
elif self.entity_description.key == "auto_watering":
|
elif self.entity_description.key == "auto_watering":
|
||||||
self.coordinator.api.suspend_zone(0, relay_data)
|
self.coordinator.api.suspend_zone(0, zone_number)
|
||||||
|
|
||||||
def turn_off(self, **kwargs: Any) -> None:
|
def turn_off(self, **kwargs: Any) -> None:
|
||||||
"""Turn the device off."""
|
"""Turn the device off."""
|
||||||
relay_data = self.data["relay"] - 1
|
zone_number = self.data["relay"]
|
||||||
if self.entity_description.key == "manual_watering":
|
if self.entity_description.key == "manual_watering":
|
||||||
self.coordinator.api.run_zone(0, relay_data)
|
self.coordinator.api.run_zone(0, zone_number)
|
||||||
elif self.entity_description.key == "auto_watering":
|
elif self.entity_description.key == "auto_watering":
|
||||||
self.coordinator.api.suspend_zone(365, relay_data)
|
self.coordinator.api.suspend_zone(365, zone_number)
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def _handle_coordinator_update(self) -> None:
|
def _handle_coordinator_update(self) -> None:
|
||||||
"""Update device state."""
|
"""Update device state."""
|
||||||
relay_data = self.data["relay"] - 1
|
zone_number = self.data["relay"]
|
||||||
LOGGER.debug("Updating Hydrawise switch: %s", self.name)
|
LOGGER.debug("Updating Hydrawise switch: %s", self.name)
|
||||||
timestr = self.coordinator.api.relays[relay_data]["timestr"]
|
timestr = self.coordinator.api.relays_by_zone_number[zone_number]["timestr"]
|
||||||
if self.entity_description.key == "manual_watering":
|
if self.entity_description.key == "manual_watering":
|
||||||
self._attr_is_on = timestr == "Now"
|
self._attr_is_on = timestr == "Now"
|
||||||
elif self.entity_description.key == "auto_watering":
|
elif self.entity_description.key == "auto_watering":
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue