esmp3/src/mqtt_client.cpp

37 lines
883 B
C++

#include "mqtt_client.h"
MQTTClient::MQTTClient() {
_wifi_client = new WiFiClient();
_mqtt = new PubSubClient(*_wifi_client);
_mqtt->setServer("10.10.2.1", 1883);
_last_reconnect_attempt = 0;
}
void MQTTClient::loop() {
if (!_mqtt->connected()) {
unsigned long now = millis();
if (now - _last_reconnect_attempt > 5000) {
DEBUG("Connecting to MQTT server...\n");
_last_reconnect_attempt = now;
_reconnect();
}
} else {
_mqtt->loop();
}
}
void MQTTClient::_reconnect() {
_mqtt->connect("esmp3", "esmp3", "pairugp598hpknfblaaagvaie58oh", "esmp3/state", 0, true, "OFFLINE");
_mqtt->publish("esmp3/state", "ONLINE", true);
}
void MQTTClient::publish_status(String s) {
_mqtt->publish("esmp3/status", s.c_str(), true);
}
void MQTTClient::publish_rfid_uid(uint32_t uid) {
String s = String(uid, HEX);
_mqtt->publish("esmp3/rfid_uid", s.c_str(), true);
}