mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Fix validation of addressable light IDs (#2588)
This commit is contained in:
		| @@ -22,6 +22,12 @@ using ESPColor ESPDEPRECATED("esphome::light::ESPColor is deprecated, use esphom | ||||
| /// Convert the color information from a `LightColorValues` object to a `Color` object (does not apply brightness). | ||||
| Color color_from_light_color_values(LightColorValues val); | ||||
|  | ||||
| /// Use a custom state class for addressable lights, to allow type system to discriminate between addressable and | ||||
| /// non-addressable lights. | ||||
| class AddressableLightState : public LightState { | ||||
|   using LightState::LightState; | ||||
| }; | ||||
|  | ||||
| class AddressableLight : public LightOutput, public Component { | ||||
|  public: | ||||
|   virtual int32_t size() const = 0; | ||||
|   | ||||
| @@ -4,10 +4,9 @@ from esphome import automation | ||||
| # Base | ||||
| light_ns = cg.esphome_ns.namespace("light") | ||||
| LightState = light_ns.class_("LightState", cg.EntityBase, cg.Component) | ||||
| # Fake class for addressable lights | ||||
| AddressableLightState = light_ns.class_("LightState", LightState) | ||||
| AddressableLightState = light_ns.class_("AddressableLightState", LightState) | ||||
| LightOutput = light_ns.class_("LightOutput") | ||||
| AddressableLight = light_ns.class_("AddressableLight", cg.Component) | ||||
| AddressableLight = light_ns.class_("AddressableLight", LightOutput, cg.Component) | ||||
| AddressableLightRef = AddressableLight.operator("ref") | ||||
|  | ||||
| Color = cg.esphome_ns.class_("Color") | ||||
|   | ||||
		Reference in New Issue
	
	Block a user