diff --git a/RX_FSK/src/mqtt.cpp b/RX_FSK/src/mqtt.cpp index 8ee0d78..d041737 100644 --- a/RX_FSK/src/mqtt.cpp +++ b/RX_FSK/src/mqtt.cpp @@ -3,6 +3,7 @@ #include #include #include +#include "RS41.h" TimerHandle_t mqttReconnectTimer; @@ -86,8 +87,7 @@ void MQTT::publishPacket(SondeInfo *si) "\"launchKT\": %d," "\"burstKT\": %d," "\"countKT\": %d," - "\"crefKT\": %d" - "}", + "\"crefKT\": %d", (int)si->active, si->freq, s->id, @@ -117,6 +117,23 @@ void MQTT::publishPacket(SondeInfo *si) s->countKT, s->crefKT ); + if ( !isnan( s->temperature ) ) { + snprintf(payload, 1024, "%s%s%.1f", payload, ",\"temperature\": ", s->temperature ); + } + if ( !isnan( s->relativeHumidity ) ) { + snprintf(payload, 1024, "%s%s%.1f", payload, ",\"relativeHumidity\": ", s->relativeHumidity ); + } + if ( !isnan( s->pressure ) ) { + snprintf(payload, 1024, "%s%s%.1f", payload, ",\"pressure\": ", s->pressure ); + } + if ( !isnan( s->batteryVoltage && s->batteryVoltage > 0 ) ) { + snprintf(payload, 1024, "%s%s%.1f", payload, ",\"batteryVoltage\": ", s->batteryVoltage ); + } + char subtype[11]; + if ( RS41::getSubtype( subtype, 11, si) == 0 ) { + snprintf(payload, 1024, "%s%s%s%s", payload, ",\"subtype\": \"", subtype, "\"" ); + } + snprintf(payload, 1024, "%s%s", payload, "}" ); // terminate payload string char topic[128]; snprintf(topic, 128, "%s%s", this->prefix, "packet"); diff --git a/RX_FSK/src/mqtt.h b/RX_FSK/src/mqtt.h index 0ccd377..a24a8b1 100644 --- a/RX_FSK/src/mqtt.h +++ b/RX_FSK/src/mqtt.h @@ -4,6 +4,7 @@ #include #include #include "Sonde.h" +#include "RS41.h" class MQTT {