mirror of
https://github.com/esphome/esphome.git
synced 2024-12-22 05:24:53 +01:00
Fix custom output, add test
Fixes https://github.com/esphome/issues/issues/346
This commit is contained in:
parent
510e53de70
commit
dac624231f
3 changed files with 27 additions and 0 deletions
|
@ -1092,6 +1092,7 @@ def typed_schema(schemas, **kwargs):
|
|||
key_v = key_validator(value.pop(key))
|
||||
value = schemas[key_v](value)
|
||||
value[key] = key_v
|
||||
return value
|
||||
|
||||
return validator
|
||||
|
||||
|
|
|
@ -26,3 +26,13 @@ class CustomComponent : public PollingComponent {
|
|||
void setup() override { ESP_LOGD("custom_component", "Setup"); }
|
||||
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
|
||||
pin: D3
|
||||
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:
|
||||
id: mcp
|
||||
|
|
Loading…
Reference in a new issue