aboutsummaryrefslogtreecommitdiff
path: root/platformio/common/libs/mqtt_module_relay/homekit/mqtt/module/relay.h
blob: e245527f3023e250b9785306996b8258a0854936 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef HOMEKIT_LIB_MQTT_MODULE_RELAY_H
#define HOMEKIT_LIB_MQTT_MODULE_RELAY_H

#include <homekit/mqtt/module.h>

namespace homekit::mqtt {

struct MqttRelaySwitchPayload {
    char secret[12];
    uint8_t state;
} __attribute__((packed));

struct MqttRelayStatusPayload {
    uint8_t opened;
} __attribute__((packed));

class MqttRelayModule : public MqttModule {
public:
    MqttRelayModule() : MqttModule(0) {}
    void onConnect(Mqtt& mqtt) override;
    void onDisconnect(Mqtt& mqtt, espMqttClientTypes::DisconnectReason reason) override;
    void tick(Mqtt& mqtt) override;
    void handlePayload(Mqtt& mqtt, String& topic, uint16_t packetId, const uint8_t *payload, size_t length, size_t index, size_t total) override;
};

}

#endif //HOMEKIT_LIB_MQTT_MODULE_RELAY_H