Digitum/src/infra/mqtt.h
2023-12-11 17:52:41 +03:00

37 lines
1.0 KiB
C

#pragma once
#include <Arduino.h>
#include <ArduinoJson.h>
#include <ETH.h>
#include <HTTPClient.h>
#include <AsyncMqttClient.h>
void onMqttConnect(bool sessionPresent);
void onMqttDisconnect(AsyncMqttClientDisconnectReason reason);
void onMqttSubscribe(uint16_t packetId, uint8_t qos);
void onMqttUnsubscribe(uint16_t packetId);
void onMqttPublish(uint16_t packetId);
void publishToMQTT(const char* topic, const char* message);
void publishToMQTT(const char* topic, int message);
void publishToMQTT(const char* topic, float message);
void publishToMQTT(const char* topic, bool message);
void initMQTT();
AsyncMqttClient& getMqttClient();
AsyncMqttClientDisconnectReason& getMqttDisconnectReason();
bool getMqttConnected();
bool getMqttEnabled();
bool configureMqtt(
bool enabled,
String host,
uint16_t port,
String username,
String password,
String clientId,
uint16_t keepAlive,
bool cleanSession,
uint16_t maxTopicLength
);
void getDefaultMqttConf(JsonVariant& root);
bool configureMqtt(JsonVariant& root);
void reconnectMQTTIfNeeded();