Files
smart-rgb-esp32/lib/communication/mqtt.h
2025-08-29 19:17:09 +02:00

27 lines
980 B
C++

#pragma once
#include <string>
#include <functional>
#include <map>
typedef std::function<void(uint8_t*, int)> MqttCallback;
class Mqtt {
public:
static void connect(std::string brokerIp, uint16_t brokerPort, std::string clientId, std::string username="mqtt", std::string password="mqtt");
static void poll();
static void checkConnection();
static void publish(const std::string& topic, const std::string& payload, bool retain = false);
static void subscribe(const std::string& topic, MqttCallback callback);
static void unsubscribe(const std::string& topic);
static void mqttCb(char* topic, uint8_t* payload, unsigned int length);
private:
static std::string brokerIp;
static uint16_t brokerPort;
static std::string clientId;
static std::string username;
static std::string password;
static bool initialized;
static bool isConnected;
static std::map<std::string, MqttCallback> callbacks;
};