@@ -240,6 +240,8 @@ async def set_select(
240240 case "select_schedule" :
241241 # schedule name corresponds to select option
242242 await self .set_schedule_state (loc_id , state , option )
243+ case "select_zone_profile" :
244+ await self .set_zone_profile (option )
243245
244246 async def set_dhw_mode (self , mode : str ) -> None :
245247 """Set the domestic hot water heating regulation mode."""
@@ -304,6 +306,19 @@ async def set_regulation_mode(self, mode: str) -> None:
304306 uri = f"{ APPLIANCES } ;type=gateway/regulation_mode_control"
305307 await self .call_request (uri , method = "put" , data = data )
306308
309+ async def set_zone_profile (self , profile : str ) -> None :
310+ """Set the Adam thermoszone heating profile."""
311+ if profile not in ("active" , "off" , "passive" ):
312+ raise PlugwiseError ("Plugwise: invalid zone profile." )
313+
314+ data = (
315+ "<thermostat_functionality>"
316+ f"<regulation_control>{ profile } </regulation_control>"
317+ "</thermostat_functionality>"
318+ )
319+ uri = self ._thermostat_uri (loc_id )
320+ await self .call_request (uri , method = "put" , data = data )
321+
307322 async def set_schedule_state (
308323 self ,
309324 loc_id : str ,
0 commit comments