appending "/SimpleJson" to value topics

This commit is contained in:
Patrick Haßel 2025-02-15 18:47:10 +01:00
parent 8ae044325a
commit 5b01a417c7
5 changed files with 30 additions and 30 deletions

View File

@ -45,12 +45,12 @@ public:
if (bme.remainingReadingMillis() == 0) {
if (bme.endReading()) {
const auto humidityAbsolute = calculateHumidityAbsolute(bme.temperature, bme.humidity);
mqttPublish(name + "/temperature", bme.temperature, "TEMPERATURE_C");
mqttPublish(name + "/pressure", bme.pressure / 100.0, "PRESSURE_HPA");
mqttPublish(name + "/humidity/relative", bme.humidity, "HUMIDITY_RELATIVE_PERCENT");
mqttPublish(name + "/humidity/absolute", humidityAbsolute, "HUMIDITY_ABSOLUTE_MGL");
mqttPublish(name + "/gas", bme.gas_resistance, "RESISTANCE_OHMS");
mqttPublish(name + "/altitude", bme.readAltitude(1013.25), "ALTITUDE_M");
mqttPublishValue(name + "/temperature", bme.temperature, "TEMPERATURE_C");
mqttPublishValue(name + "/pressure", bme.pressure / 100.0, "PRESSURE_HPA");
mqttPublishValue(name + "/humidity/relative", bme.humidity, "HUMIDITY_RELATIVE_PERCENT");
mqttPublishValue(name + "/humidity/absolute", humidityAbsolute, "HUMIDITY_ABSOLUTE_MGL");
mqttPublishValue(name + "/gas", bme.gas_resistance, "RESISTANCE_OHMS");
mqttPublishValue(name + "/altitude", bme.readAltitude(1013.25), "ALTITUDE_M");
} else {
Log.printf("BME680 \"%s\": Failed to complete reading\n", name.c_str());
setup();

View File

@ -62,34 +62,34 @@ void mqttLoop() {
}
}
void mqttPublish(const String& topic, const int32_t value, const char *unit) {
mqttPublish(topic, String(value), unit);
void mqttPublishValue(const String& name, const int32_t value, const char *unit) {
mqttPublishValue(name, String(value), unit);
}
void mqttPublish(const String& topic, const int64_t value, const char *unit) {
mqttPublish(topic, String(value), unit);
void mqttPublishValue(const String& name, const int64_t value, const char *unit) {
mqttPublishValue(name, String(value), unit);
}
void mqttPublish(const String& topic, const uint32_t value, const char *unit) {
mqttPublish(topic, String(value), unit);
void mqttPublishValue(const String& name, const uint32_t value, const char *unit) {
mqttPublishValue(name, String(value), unit);
}
void mqttPublish(const String& topic, const uint64_t value, const char *unit) {
mqttPublish(topic, String(value), unit);
void mqttPublishValue(const String& name, const uint64_t value, const char *unit) {
mqttPublishValue(name, String(value), unit);
}
void mqttPublish(const String& topic, const float value, const char *unit) {
mqttPublish(topic, String(value), unit);
void mqttPublishValue(const String& name, const float value, const char *unit) {
mqttPublishValue(name, String(value), unit);
}
void mqttPublish(const String& topic, const double value, const char *unit) {
mqttPublish(topic, String(value), unit);
void mqttPublishValue(const String& name, const double value, const char *unit) {
mqttPublishValue(name, String(value), unit);
}
void mqttPublish(const String& topic, const String& value, const char *unit) {
void mqttPublishValue(const String& name, const String& value, const char *unit) {
char buffer[200];
snprintf(buffer, sizeof buffer, R"({"timestamp": %lld, "value": %s, "unit": "%s"})", time(nullptr), value.c_str(), unit);
mqttPublish(topic, buffer);
snprintf(buffer, sizeof buffer, R"({"name": "%s", "timestamp": %lld, "value": %s, "unit": "%s"})", name.c_str(), time(nullptr), value.c_str(), unit);
mqttPublish(name + "/SimpleJson", buffer);
}
void mqttPublish(const String& topic, const String& payload) {

View File

@ -11,19 +11,19 @@ extern const String cmdTopic;
void mqttLoop();
void mqttPublish(const String& topic, int32_t value, const char *unit);
void mqttPublishValue(const String& name, int32_t value, const char *unit);
void mqttPublish(const String& topic, int64_t value, const char *unit);
void mqttPublishValue(const String& name, int64_t value, const char *unit);
void mqttPublish(const String& topic, uint32_t value, const char *unit);
void mqttPublishValue(const String& name, uint32_t value, const char *unit);
void mqttPublish(const String& topic, uint64_t value, const char *unit);
void mqttPublishValue(const String& name, uint64_t value, const char *unit);
void mqttPublish(const String& topic, float value, const char *unit);
void mqttPublishValue(const String& name, float value, const char *unit);
void mqttPublish(const String& topic, double value, const char *unit);
void mqttPublishValue(const String& name, double value, const char *unit);
void mqttPublish(const String& topic, const String& value, const char *unit);
void mqttPublishValue(const String& name, const String& value, const char *unit);
void mqttPublish(const String& topic, const String& payload);

View File

@ -48,7 +48,7 @@ private:
Log.printf("TSL2561 \"%s\": Failed to read.\n", name.c_str());
setup();
} else {
mqttPublish(name + "/illuminance", illuminance, "ILLUMINANCE_LUX");
mqttPublishValue(name + "/illuminance", illuminance, "ILLUMINANCE_LUX");
}
}

View File

@ -23,7 +23,7 @@ void wifiConnect() {
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
configTime(TZ_Europe_Berlin, NTP_SERVER);
ArduinoOTA.onStart([]() {
Log.printf("OTA start...\n");
Log.printf("OTA begin...\n");
});
ArduinoOTA.onError([](const ota_error_t error) {
const char *name;