pull/42/head
SH 2020-12-01 09:45:47 +01:00
rodzic 2a43004b71
commit b268754b66
4 zmienionych plików z 14 dodań i 11 usunięć

Wyświetl plik

@ -478,7 +478,7 @@ struct st_configitems config_list[] = {
/* MQTT */ /* MQTT */
{"mqtt.active", "MQTT Active (needs reboot)", 0, &sonde.config.mqtt.active}, {"mqtt.active", "MQTT Active (needs reboot)", 0, &sonde.config.mqtt.active},
{"mqtt.id", "MQTT client ID", 63, &sonde.config.mqtt.id}, {"mqtt.id", "MQTT client ID", 63, &sonde.config.mqtt.id},
{"mqtt.host", "MQTT server IP address", 63, &sonde.config.mqtt.host}, {"mqtt.host", "MQTT server hostname", 63, &sonde.config.mqtt.host},
{"mqtt.port", "MQTT Port", 0, &sonde.config.mqtt.port}, {"mqtt.port", "MQTT Port", 0, &sonde.config.mqtt.port},
{"mqtt.username", "MQTT Username", 63, &sonde.config.mqtt.username}, {"mqtt.username", "MQTT Username", 63, &sonde.config.mqtt.username},
{"mqtt.password", "MQTT Password", 63, &sonde.config.mqtt.password}, {"mqtt.password", "MQTT Password", 63, &sonde.config.mqtt.password},

Wyświetl plik

@ -101,10 +101,10 @@ tcp.idformat=0
# data not sanitized / quality checked, outliers not filtered out # data not sanitized / quality checked, outliers not filtered out
mqtt.active=0 mqtt.active=0
mqtt.id=rdz_sonde_server mqtt.id=rdz_sonde_server
mqtt.ip=/0 mqtt.ip=
mqtt.port=1883 mqtt.port=1883
mqtt.username=/0 mqtt.username=
mqtt.password=/0 mqtt.password=
mqtt.prefix=rdz_sonde_server/ mqtt.prefix=rdz_sonde_server/
#-------------------------------# #-------------------------------#
# EOF # EOF

Wyświetl plik

@ -2,6 +2,9 @@
#include "mqtt.h" #include "mqtt.h"
#include <WiFi.h> #include <WiFi.h>
#include <AsyncMqttClient.h> #include <AsyncMqttClient.h>
#include <ESPmDNS.h>
TimerHandle_t mqttReconnectTimer;
void mqttCallback(char* topic, byte* payload, unsigned int length) { void mqttCallback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived ["); Serial.print("Message arrived [");
@ -13,10 +16,9 @@ void mqttCallback(char* topic, byte* payload, unsigned int length) {
Serial.println(); Serial.println();
} }
void MQTT::init(const char* host, uint16_t port, const char* id, const char *username, const char *password, const char *prefix)
void MQTT::init(const char* ip, uint16_t port, const char* id, const char *username, const char *password, const char *prefix)
{ {
this->ip = this->ip.fromString(ip); WiFi.hostByName(host, this->ip);
this->port = port; this->port = port;
this->username = username; this->username = username;
this->password = password; this->password = password;
@ -32,9 +34,6 @@ void MQTT::init(const char* ip, uint16_t port, const char* id, const char *usern
if (strlen(password) > 0) { if (strlen(password) > 0) {
mqttClient.setCredentials(username, password); mqttClient.setCredentials(username, password);
} }
mqttClient.connect();
//mqttReconnectTimer = xTimerCreate("mqttTimer", pdMS_TO_TICKS(2000), pdFALSE, (void*)0, connectToMqtt);
} }
void MQTT::connectToMqtt() { void MQTT::connectToMqtt() {
@ -44,6 +43,8 @@ void MQTT::connectToMqtt() {
void MQTT::publishUptime() void MQTT::publishUptime()
{ {
mqttClient.connect(); // ensure we've got connection
Serial.println("[MQTT] writing"); Serial.println("[MQTT] writing");
char payload[12]; char payload[12];
snprintf(payload, 12, "%lu", millis()); snprintf(payload, 12, "%lu", millis());
@ -54,6 +55,8 @@ void MQTT::publishUptime()
void MQTT::publishPacket(SondeInfo *s) void MQTT::publishPacket(SondeInfo *s)
{ {
mqttClient.connect(); // ensure we've got connection
char payload[1024]; char payload[1024];
snprintf(payload, 1024, "{" snprintf(payload, 1024, "{"
"\"active\": %d," "\"active\": %d,"

Wyświetl plik

@ -18,7 +18,7 @@ public:
const char *password; const char *password;
const char *prefix; const char *prefix;
void init(const char *ip, uint16_t port, const char *id, const char *username, const char *password, const char *prefix); void init(const char *host, uint16_t port, const char *id, const char *username, const char *password, const char *prefix);
void publishPacket(SondeInfo *s); void publishPacket(SondeInfo *s);
void publishUptime(); void publishUptime();
private: private: