@@ -76,6 +76,13 @@ class HumidifierState(DeviceState):
7676 'nightlight_brightness' ,
7777 'nightlight_color_temp' ,
7878 'nightlight_status' ,
79+ 'rgb_nightlight_blue' ,
80+ 'rgb_nightlight_brightness' ,
81+ 'rgb_nightlight_color_mode' ,
82+ 'rgb_nightlight_green' ,
83+ 'rgb_nightlight_red' ,
84+ 'rgb_nightlight_set_time' ,
85+ 'rgb_nightlight_status' ,
7986 'temperature' ,
8087 'warm_mist_enabled' ,
8188 'warm_mist_level' ,
@@ -112,6 +119,13 @@ def __init__(
112119 self .mode : str | None = None
113120 self .nightlight_brightness : int | None = None
114121 self .nightlight_status : str | None = None
122+ self .rgb_nightlight_status : str | None = None
123+ self .rgb_nightlight_brightness : int | None = None
124+ self .rgb_nightlight_red : int | None = None
125+ self .rgb_nightlight_green : int | None = None
126+ self .rgb_nightlight_blue : int | None = None
127+ self .rgb_nightlight_color_mode : str | None = None
128+ self .rgb_nightlight_set_time : float | None = None
115129 self .nightlight_color_temp : int | None = None
116130 self .warm_mist_enabled : bool | None = None
117131 self .warm_mist_level : int | None = None
@@ -289,6 +303,15 @@ def supports_nightlight_brightness(self) -> bool:
289303 """Return True if the humidifier supports nightlight brightness."""
290304 return HumidifierFeatures .NIGHTLIGHT_BRIGHTNESS in self .features
291305
306+ @property
307+ def supports_rgb_nightlight (self ) -> bool :
308+ """Return True if the humidifier supports RGB nightlight.
309+
310+ Returns:
311+ bool: True if RGB nightlight is supported, False otherwise.
312+ """
313+ return HumidifierFeatures .RGB_NIGHTLIGHT in self .features
314+
292315 @property
293316 def supports_drying_mode (self ) -> bool :
294317 """Return True if the humidifier supports drying mode."""
@@ -461,6 +484,33 @@ async def toggle_nightlight(self, toggle: bool | None = None) -> bool:
461484 logger .error ('Nightlight has not been configured.' )
462485 return False
463486
487+ async def set_rgb_nightlight (
488+ self ,
489+ power : bool | None = None ,
490+ brightness : int | None = None ,
491+ red : int | None = None ,
492+ green : int | None = None ,
493+ blue : int | None = None ,
494+ ) -> bool :
495+ """Set RGB nightlight state and color.
496+
497+ Args:
498+ power: Turn nightlight on (True) or off (False).
499+ brightness: Brightness level (0-100).
500+ red: Red color value (0-255).
501+ green: Green color value (0-255).
502+ blue: Blue color value (0-255).
503+
504+ Returns:
505+ bool: Success of request.
506+ """
507+ del power , brightness , red , green , blue
508+ if not self .supports_rgb_nightlight :
509+ logger .error ('RGB Nightlight is not supported for this device.' )
510+ return False
511+ logger .error ('RGB Nightlight has not been configured.' )
512+ return False
513+
464514 async def set_warm_level (self , warm_level : int ) -> bool :
465515 """Set Humidifier Warm Level.
466516
0 commit comments