Skip to content

Commit

Permalink
feat-support-repeating-start-times
Browse files Browse the repository at this point in the history
  • Loading branch information
EdLeckert committed Nov 6, 2023
1 parent 8edd0bf commit e516511
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions pyopensprinkler/program.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,30 @@ async def set_program_start_time_offset_type(
params = self._format_program_data(dlist)
return await self._set_variables(params)

async def set_program_start_repeat_count(self, repeat_count):
"""Set program start repeat count"""
if self.start_time_type == 1:
raise RuntimeError(
f"cannot update repeat count when start time type is 'fixed'"
)

dlist = self._get_program_data().copy()
dlist[3][1] = repeat_count
params = self._format_program_data(dlist)
return await self._set_variables(params)

async def set_program_start_repeat_interval(self, repeat_minutes):
"""Set program start repeat interval in minutes"""
if self.start_time_type == 1:
raise RuntimeError(
f"cannot update repeat count when start time type is 'fixed'"
)

dlist = self._get_program_data().copy()
dlist[3][2] = repeat_minutes
params = self._format_program_data(dlist)
return await self._set_variables(params)

async def set_station_duration(self, station_index, duration):
dlist = self._get_program_data().copy()
dlist[4][station_index] = duration
Expand Down Expand Up @@ -462,6 +486,16 @@ def program_start_time_offset_types(self):
]

@property
def program_start_repeat_count(self):
"""Retrieve program start repeat count"""
return self._get_variable(3)[1]

@property
def program_start_repeat_interval(self):
"""Retrieve program start repeat interval in minutes"""
return self._get_variable(3)[2]

@property
def station_durations(self):
"""Retrieve station durations"""
return self._get_variable(4)
Expand Down

0 comments on commit e516511

Please sign in to comment.