ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
pipsolar_output.h
Go to the documentation of this file.
1#pragma once
2
3#include "../pipsolar.h"
6
7#include <vector>
8
9namespace esphome {
10namespace pipsolar {
11
12class Pipsolar;
13
15 public:
17 void set_parent(Pipsolar *parent) { this->parent_ = parent; }
18 void set_set_command(const char *command) { this->set_command_ = command; }
20 void set_set_command(const std::string &command) = delete;
21 void set_possible_values(std::vector<float> possible_values) { this->possible_values_ = std::move(possible_values); }
22 void set_value(float value) { this->write_state(value); }
23
24 protected:
25 void write_state(float state) override;
26 const char *set_command_{nullptr};
28 std::vector<float> possible_values_;
29};
30
31template<typename... Ts> class SetOutputAction : public Action<Ts...> {
32 public:
34
35 TEMPLATABLE_VALUE(float, level)
36
37 void play(const Ts &...x) override { this->output_->set_value(this->level_.value(x...)); }
38
39 protected:
41};
42
43} // namespace pipsolar
44} // namespace esphome
virtual void play(const Ts &...x)=0
Base class for all output components that can output a variable level, like PWM.
void set_parent(Pipsolar *parent)
void set_set_command(const char *command)
void set_possible_values(std::vector< float > possible_values)
void write_state(float state) override
void set_set_command(const std::string &command)=delete
Prevent accidental use of std::string which would dangle.
std::vector< float > possible_values_
TEMPLATABLE_VALUE(float, level) void play(const Ts &...x) override
SetOutputAction(PipsolarOutput *output)
bool state
Definition fan.h:2
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
uint16_t x
Definition tt21100.cpp:5