mirror of https://github.com/esphome/esphome.git
33 lines
789 B
C++
33 lines
789 B
C++
#pragma once
|
|
|
|
#include "esphome/core/component.h"
|
|
#include "esphome/components/output/binary_output.h"
|
|
#include "esphome/components/light/light_output.h"
|
|
|
|
namespace esphome {
|
|
namespace binary {
|
|
|
|
class BinaryLightOutput : public light::LightOutput {
|
|
public:
|
|
void set_output(output::BinaryOutput *output) { output_ = output; }
|
|
light::LightTraits get_traits() override {
|
|
auto traits = light::LightTraits();
|
|
traits.set_supports_brightness(false);
|
|
return traits;
|
|
}
|
|
void write_state(light::LightState *state) override {
|
|
bool binary;
|
|
state->current_values_as_binary(&binary);
|
|
if (binary)
|
|
this->output_->turn_on();
|
|
else
|
|
this->output_->turn_off();
|
|
}
|
|
|
|
protected:
|
|
output::BinaryOutput *output_;
|
|
};
|
|
|
|
} // namespace binary
|
|
} // namespace esphome
|