ESPHome 2026.5.1
Loading...
Searching...
No Matches
gobox_protocol.h
Go to the documentation of this file.
1#pragma once
2
4#include "remote_base.h"
5
6namespace esphome::remote_base {
7
8struct GoboxData {
9 int code;
10 bool operator==(const GoboxData &rhs) const { return code == rhs.code; }
11};
12
13enum {
14 GOBOX_MENU = 0xaa55,
15 GOBOX_RETURN = 0x22dd,
16 GOBOX_UP = 0x0af5,
17 GOBOX_LEFT = 0x8a75,
18 GOBOX_RIGHT = 0x48b7,
19 GOBOX_DOWN = 0xa25d,
20 GOBOX_OK = 0xc837,
21 GOBOX_TOGGLE = 0xb847,
22 GOBOX_PROFILE = 0xfa05,
23 GOBOX_FASTER = 0xf00f,
24 GOBOX_SLOWER = 0xd02f,
25 GOBOX_LOUDER = 0xb04f,
26 GOBOX_SOFTER = 0xf807,
27};
28
29class GoboxProtocol : public RemoteProtocol<GoboxData> {
30 private:
31 void dump_timings_(const RawTimings &timings) const;
32
33 public:
34 void encode(RemoteTransmitData *dst, const GoboxData &data) override;
35 optional<GoboxData> decode(RemoteReceiveData src) override;
36 void dump(const GoboxData &data) override;
37};
38
39DECLARE_REMOTE_PROTOCOL(Gobox)
40
41template<typename... Ts> class GoboxAction : public RemoteTransmitterActionBase<Ts...> {
42 public:
43 TEMPLATABLE_VALUE(uint64_t, code);
44
45 void encode(RemoteTransmitData *dst, Ts... x) override {
46 GoboxData data{};
47 data.code = this->code_.value(x...);
48 GoboxProtocol().encode(dst, data);
49 }
50};
51
52} // namespace esphome::remote_base
void dump(const GoboxData &data) override
void encode(RemoteTransmitData *dst, const GoboxData &data) override
optional< GoboxData > decode(RemoteReceiveData src) override
std::vector< int32_t > RawTimings
Definition remote_base.h:18
bool operator==(const GoboxData &rhs) const
uint16_t x
Definition tt21100.cpp:5