@@ -572,3 +572,44 @@ async def async_set_spillover(
572572 req_body = ET .tostring (body_element , xml_declaration = True , encoding = "unicode" )
573573
574574 return await self .async_send_message (MessageType .SET_SPILLOVER , req_body , False )
575+
576+ async def async_set_group_enable (
577+ self ,
578+ group_id : int ,
579+ enabled : int | bool ,
580+ is_countdown_timer : bool = False ,
581+ start_time_hours : int = 0 ,
582+ start_time_minutes : int = 0 ,
583+ end_time_hours : int = 0 ,
584+ end_time_minutes : int = 0 ,
585+ days_active : int = 0 ,
586+ recurring : bool = False ,
587+ ) -> None :
588+ body_element = ET .Element ("Request" , {"xmlns" : "http://nextgen.hayward.com/api" })
589+
590+ name_element = ET .SubElement (body_element , "Name" )
591+ name_element .text = "RunGroupCmd"
592+
593+ parameters_element = ET .SubElement (body_element , "Parameters" )
594+ parameter = ET .SubElement (parameters_element , "Parameter" , name = "GroupID" , dataType = "int" )
595+ parameter .text = str (group_id )
596+ parameter = ET .SubElement (parameters_element , "Parameter" , name = "Data" , dataType = "int" )
597+ parameter .text = str (int (enabled ))
598+ parameter = ET .SubElement (parameters_element , "Parameter" , name = "IsCountDownTimer" , dataType = "bool" )
599+ parameter .text = str (int (is_countdown_timer ))
600+ parameter = ET .SubElement (parameters_element , "Parameter" , name = "StartTimeHours" , dataType = "int" )
601+ parameter .text = str (start_time_hours )
602+ parameter = ET .SubElement (parameters_element , "Parameter" , name = "StartTimeMinutes" , dataType = "int" )
603+ parameter .text = str (start_time_minutes )
604+ parameter = ET .SubElement (parameters_element , "Parameter" , name = "EndTimeHours" , dataType = "int" )
605+ parameter .text = str (end_time_hours )
606+ parameter = ET .SubElement (parameters_element , "Parameter" , name = "EndTimeMinutes" , dataType = "int" )
607+ parameter .text = str (end_time_minutes )
608+ parameter = ET .SubElement (parameters_element , "Parameter" , name = "DaysActive" , dataType = "int" )
609+ parameter .text = str (days_active )
610+ parameter = ET .SubElement (parameters_element , "Parameter" , name = "Recurring" , dataType = "bool" )
611+ parameter .text = str (int (recurring ))
612+
613+ req_body = ET .tostring (body_element , xml_declaration = True , encoding = "unicode" )
614+
615+ return await self .async_send_message (MessageType .RUN_GROUP_CMD , req_body , False )
0 commit comments