ESPHome 2026.5.0b1
Loading...
Searching...
No Matches
coolix_protocol.h
Go to the documentation of this file.
1#pragma once
2
5#include "remote_base.h"
6
7#include <cinttypes>
8
9namespace esphome::remote_base {
10
11struct CoolixData {
15 bool operator==(const CoolixData &other) const;
16 bool is_strict() const { return this->first == this->second; }
17 bool has_second() const { return this->second != 0; }
20};
21
22class CoolixProtocol : public RemoteProtocol<CoolixData> {
23 public:
24 void encode(RemoteTransmitData *dst, const CoolixData &data) override;
25 optional<CoolixData> decode(RemoteReceiveData data) override;
26 void dump(const CoolixData &data) override;
27};
28
29DECLARE_REMOTE_PROTOCOL(Coolix)
30
31template<typename... Ts> class CoolixAction : public RemoteTransmitterActionBase<Ts...> {
32 TEMPLATABLE_VALUE(uint32_t, first)
33 TEMPLATABLE_VALUE(uint32_t, second)
34 void encode(RemoteTransmitData *dst, Ts... x) override {
35 CoolixProtocol().encode(dst, {this->first_.value(x...), this->second_.value(x...)});
36 }
37};
38
39} // namespace esphome::remote_base
void dump(const CoolixData &data) override
optional< CoolixData > decode(RemoteReceiveData data) override
void encode(RemoteTransmitData *dst, const CoolixData &data) override
uint8_t second
static void uint32_t
bool operator==(const CoolixData &other) const
CoolixData(uint32_t a, uint32_t b)
uint16_t x
Definition tt21100.cpp:5