mirror of
https://github.com/esphome/esphome.git
synced 2024-12-22 13:34:54 +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))
|
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
|
||||||
|
|
Loading…
Reference in a new issue