ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
dyson_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::remote_base {
8
9static constexpr uint8_t IGNORE_INDEX = 0xFF;
10
11struct DysonData {
12 uint16_t code; // the button, e.g. power, swing, fan++, ...
13 uint8_t index; // the rolling index counter
14 bool operator==(const DysonData &rhs) const {
15 if (IGNORE_INDEX == index || IGNORE_INDEX == rhs.index) {
16 return code == rhs.code;
17 }
18 return code == rhs.code && index == rhs.index;
19 }
20};
21
22class DysonProtocol : public RemoteProtocol<DysonData> {
23 public:
24 void encode(RemoteTransmitData *dst, const DysonData &data);
25 optional<DysonData> decode(RemoteReceiveData src);
26 void dump(const DysonData &data);
27};
28
29DECLARE_REMOTE_PROTOCOL(Dyson)
30
31} // namespace esphome::remote_base
optional< DysonData > decode(RemoteReceiveData src)
void dump(const DysonData &data)
void encode(RemoteTransmitData *dst, const DysonData &data)
const void * src
Definition hal.h:68
bool operator==(const DysonData &rhs) const