mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Fix custom output, add test
Fixes https://github.com/esphome/issues/issues/346
This commit is contained in:
		| @@ -1092,6 +1092,7 @@ def typed_schema(schemas, **kwargs): | |||||||
|         key_v = key_validator(value.pop(key)) |         key_v = key_validator(value.pop(key)) | ||||||
|         value = schemas[key_v](value) |         value = schemas[key_v](value) | ||||||
|         value[key] = key_v |         value[key] = key_v | ||||||
|  |         return value | ||||||
|  |  | ||||||
|     return validator |     return validator | ||||||
|  |  | ||||||
|   | |||||||
| @@ -26,3 +26,13 @@ class CustomComponent : public PollingComponent { | |||||||
|   void setup() override { ESP_LOGD("custom_component", "Setup"); } |   void setup() override { ESP_LOGD("custom_component", "Setup"); } | ||||||
|   void update() override { ESP_LOGD("custom_component", "Update"); } |   void update() override { ESP_LOGD("custom_component", "Update"); } | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | class CustomBinaryOutput : public BinaryOutput, public Component { | ||||||
|  |  protected: | ||||||
|  |   void write_state(bool state) override { ESP_LOGD("custom_output", "Setting %s", ONOFF(state)); } | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class CustomFloatOutput : public FloatOutput, public Component { | ||||||
|  |  protected: | ||||||
|  |   void write_state(float state) override { ESP_LOGD("custom_output", "Setting %f", state); } | ||||||
|  | }; | ||||||
|   | |||||||
| @@ -377,6 +377,22 @@ output: | |||||||
|     id: out |     id: out | ||||||
|     pin: D3 |     pin: D3 | ||||||
|     frequency: 50Hz |     frequency: 50Hz | ||||||
|  |   - platform: custom | ||||||
|  |     type: binary | ||||||
|  |     lambda: |- | ||||||
|  |       auto s = new CustomBinaryOutput(); | ||||||
|  |       App.register_component(s); | ||||||
|  |       return {s}; | ||||||
|  |     outputs: | ||||||
|  |       - id: custom_binary | ||||||
|  |   - platform: custom | ||||||
|  |     type: float | ||||||
|  |     lambda: |- | ||||||
|  |       auto s = new CustomFloatOutput(); | ||||||
|  |       App.register_component(s); | ||||||
|  |       return {s}; | ||||||
|  |     outputs: | ||||||
|  |       - id: custom_float | ||||||
|  |  | ||||||
| mcp23017: | mcp23017: | ||||||
|   id: mcp |   id: mcp | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user