package domain // ColorMode describes a Home Assistant light color capability. type ColorMode string const ( // ColorModeColorTemp indicates color temperature control in kelvin. ColorModeColorTemp ColorMode = "color_temp" // ColorModeHS indicates hue/saturation color control. ColorModeHS ColorMode = "hs" // ColorModeXY indicates XY color control. ColorModeXY ColorMode = "xy" // ColorModeBrightness indicates brightness-only control. ColorModeBrightness ColorMode = "brightness" ) // Light represents a discovered light entity with presentation-friendly fields. type Light struct { // EntityID is the Home Assistant entity identifier. EntityID EntityID // FriendlyName is the user-facing name from Home Assistant attributes. FriendlyName string // State is the current raw light state, usually on, off, or unavailable. State string // "on" | "off" | "unavailable" // SupportedColorModes mirrors Home Assistant supported_color_modes. SupportedColorModes []ColorMode // MinColorTempKelvin is the lower supported color temperature bound. MinColorTempKelvin uint32 // MaxColorTempKelvin is the upper supported color temperature bound. MaxColorTempKelvin uint32 // IsHueGroup marks synthetic Hue group entities. IsHueGroup bool // EffectList contains supported named effects when exposed by Home Assistant. EffectList []string } // TurnOnParams collects optional light turn-on parameters. type TurnOnParams struct { // EntityID is the target light entity. EntityID EntityID // BrightnessPct is nil when brightness should be left unchanged. BrightnessPct *uint32 // ColorTempKelvin is nil when color temperature should be left unchanged. ColorTempKelvin *uint32 // RGBColor is nil when RGB color should be left unchanged. RGBColor *RGBColor // Transition is nil when no explicit transition is requested. Transition *uint32 } // RGBColor represents an RGB color payload for Home Assistant light calls. type RGBColor struct { R, G, B uint8 } // TurnOffParams collects optional light turn-off parameters. type TurnOffParams struct { // EntityID is the target light entity. EntityID EntityID // Transition is nil when no explicit transition is requested. Transition *uint32 }