Skip to content

Commit

Permalink
feat: add support for SetUISpilloverCmd, fixes: #42 (#43)
Browse files Browse the repository at this point in the history
  • Loading branch information
cryptk committed Jun 23, 2023
1 parent 167c8b8 commit 435c55d
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
41 changes: 41 additions & 0 deletions pyomnilogic_local/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -501,3 +501,44 @@ async def async_restore_idle_state(self) -> None:
req_body = ET.tostring(body_element, xml_declaration=True, encoding="unicode")

return await self.async_send_message(MessageType.RESTORE_IDLE_STATE, req_body, False)

async def async_set_spillover(
self,
pool_id: int,
speed: int,
is_countdown_timer: bool = False,
start_time_hours: int = 0,
start_time_minutes: int = 0,
end_time_hours: int = 0,
end_time_minutes: int = 0,
days_active: int = 0,
recurring: bool = False,
) -> None:
body_element = ET.Element("Request", {"xmlns": "http://nextgen.hayward.com/api"})

name_element = ET.SubElement(body_element, "Name")
name_element.text = "SetUISpilloverCmd"

parameters_element = ET.SubElement(body_element, "Parameters")
parameter = ET.SubElement(parameters_element, "Parameter", name="poolId", dataType="int")
parameter.text = str(pool_id)
parameter = ET.SubElement(parameters_element, "Parameter", name="Speed", dataType="int")
parameter.text = str(speed)
parameter = ET.SubElement(parameters_element, "Parameter", name="IsCountDownTimer", dataType="bool")
parameter.text = str(int(is_countdown_timer))
parameter = ET.SubElement(parameters_element, "Parameter", name="StartTimeHours", dataType="int")
parameter.text = str(start_time_hours)
parameter = ET.SubElement(parameters_element, "Parameter", name="StartTimeMinutes", dataType="int")
parameter.text = str(start_time_minutes)
parameter = ET.SubElement(parameters_element, "Parameter", name="EndTimeHours", dataType="int")
parameter.text = str(end_time_hours)
parameter = ET.SubElement(parameters_element, "Parameter", name="EndTimeMinutes", dataType="int")
parameter.text = str(end_time_minutes)
parameter = ET.SubElement(parameters_element, "Parameter", name="DaysActive", dataType="int")
parameter.text = str(days_active)
parameter = ET.SubElement(parameters_element, "Parameter", name="Recurring", dataType="bool")
parameter.text = str(int(recurring))

req_body = ET.tostring(body_element, xml_declaration=True, encoding="unicode")

return await self.async_send_message(MessageType.SET_SPILLOVER, req_body, False)
1 change: 1 addition & 0 deletions pyomnilogic_local/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class MessageType(Enum):
GET_TELEMETRY = 300
GET_ALARM_LIST = 304
SET_STANDALONE_LIGHT_SHOW = 308
SET_SPILLOVER = 311
RESTORE_IDLE_STATE = 340
GET_FILTER_DIAGNOSTIC_INFO = 386
HANDSHAKE = 1000
Expand Down

0 comments on commit 435c55d

Please sign in to comment.