Fix Hydrawise zone addressing (#97333)

pull/97609/head
David Knowles 2023-07-27 09:57:36 -04:00 committed by Franck Nijhof
parent d05efe8c6a
commit 37e9fff1eb
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
3 changed files with 10 additions and 10 deletions

View File

@ -92,6 +92,6 @@ class HydrawiseBinarySensor(HydrawiseEntity, BinarySensorEntity):
if self.entity_description.key == "status":
self._attr_is_on = self.coordinator.api.status == "All good!"
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"
super()._handle_coordinator_update()

View File

@ -77,7 +77,7 @@ class HydrawiseSensor(HydrawiseEntity, SensorEntity):
def _handle_coordinator_update(self) -> None:
"""Get the latest data and updates the states."""
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 relay_data["timestr"] == "Now":
self._attr_native_value = int(relay_data["run"] / 60)

View File

@ -99,26 +99,26 @@ class HydrawiseSwitch(HydrawiseEntity, SwitchEntity):
def turn_on(self, **kwargs: Any) -> None:
"""Turn the device on."""
relay_data = self.data["relay"] - 1
zone_number = self.data["relay"]
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":
self.coordinator.api.suspend_zone(0, relay_data)
self.coordinator.api.suspend_zone(0, zone_number)
def turn_off(self, **kwargs: Any) -> None:
"""Turn the device off."""
relay_data = self.data["relay"] - 1
zone_number = self.data["relay"]
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":
self.coordinator.api.suspend_zone(365, relay_data)
self.coordinator.api.suspend_zone(365, zone_number)
@callback
def _handle_coordinator_update(self) -> None:
"""Update device state."""
relay_data = self.data["relay"] - 1
zone_number = self.data["relay"]
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":
self._attr_is_on = timestr == "Now"
elif self.entity_description.key == "auto_watering":