ESPHome 2025.5.0
Loading...
Searching...
No Matches
nexa_protocol.h
Go to the documentation of this file.
1#pragma once
2
3#include "remote_base.h"
4
5#include <cinttypes>
6
7namespace esphome {
8namespace remote_base {
9
10struct NexaData {
11 uint32_t device;
12 uint8_t group;
13 uint8_t state;
14 uint8_t channel;
15 uint8_t level;
16 bool operator==(const NexaData &rhs) const {
17 return device == rhs.device && group == rhs.group && state == rhs.state && channel == rhs.channel &&
18 level == rhs.level;
19 }
20};
21
22class NexaProtocol : public RemoteProtocol<NexaData> {
23 public:
24 void one(RemoteTransmitData *dst) const;
25 void zero(RemoteTransmitData *dst) const;
26 void sync(RemoteTransmitData *dst) const;
27
28 void encode(RemoteTransmitData *dst, const NexaData &data) override;
30 void dump(const NexaData &data) override;
31};
32
33DECLARE_REMOTE_PROTOCOL(Nexa)
34
35template<typename... Ts> class NexaAction : public RemoteTransmitterActionBase<Ts...> {
36 public:
37 TEMPLATABLE_VALUE(uint32_t, device)
38 TEMPLATABLE_VALUE(uint8_t, group)
39 TEMPLATABLE_VALUE(uint8_t, state)
40 TEMPLATABLE_VALUE(uint8_t, channel)
41 TEMPLATABLE_VALUE(uint8_t, level)
42 void encode(RemoteTransmitData *dst, Ts... x) override {
43 NexaData data{};
44 data.device = this->device_.value(x...);
45 data.group = this->group_.value(x...);
46 data.state = this->state_.value(x...);
47 data.channel = this->channel_.value(x...);
48 data.level = this->level_.value(x...);
49 NexaProtocol().encode(dst, data);
50 }
51};
52
53} // namespace remote_base
54} // namespace esphome
void dump(const NexaData &data) override
void zero(RemoteTransmitData *dst) const
void encode(RemoteTransmitData *dst, const NexaData &data) override
void one(RemoteTransmitData *dst) const
optional< NexaData > decode(RemoteReceiveData src) override
bool state
Definition fan.h:0
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
bool operator==(const NexaData &rhs) const
uint16_t sync
Definition sun_gtil2.cpp:0
uint16_t x
Definition tt21100.cpp:5