diff --git a/pyopensprinkler/program.py b/pyopensprinkler/program.py index ff5be0c..1b735c2 100644 --- a/pyopensprinkler/program.py +++ b/pyopensprinkler/program.py @@ -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 @@ -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)