brmesh/components/brmesh/output.h
Jonas Rabenstein e797cdb349 wip
2026-01-04 19:19:00 +01:00

35 lines
878 B
C++

#pragma once
namespace esphome {
namespace brmesh {
class Output : public Component, public light::LightOutput
{
public:
virtual const char *kind() const = 0;
virtual uint8_t id() const = 0;
virtual std::span<uint8_t> command(const std::span<uint8_t> &output) const = 0;
virtual void advertise(bool advertise) const;
// interface: Component
void dump_config() override;
float get_setup_priority() const override {
return setup_priority::AFTER_BLUETOOTH;
}
void setup() override;
void loop() override;
// interface: LightOutput
light::LightTraits get_traits() override;
void setup_state(light::LightState *state) override;
void update_state(light::LightState *state) override;
void write_state(light::LightState *state) override;
private:
Network &network_;
};
} // namespace brmesh
} // namespace esphome