diff --git a/doc/mqtt.md b/doc/mqtt.md index 346968d..c76c2f3 100644 --- a/doc/mqtt.md +++ b/doc/mqtt.md @@ -32,7 +32,7 @@ Hiermit können divere Parameter des Gerätes gesetzt werden. Unterschieden werd Einstellen der Updaterate der Grafik (in Sekunden). * **{"tempoffset":ttt}** Einstellen des Offset für die Temperatur (in den Gehäuse ist es zu warm) - * **{"humoffset":hhh}**
 Einstellen des Feuchte-Offsets (der BME misst etwas zu wenig) + * **{"humoffset":hhh}** Einstellen des Feuchte-Offsets (der BME misst etwas zu wenig) Alle Wert sind Float-Werte! diff --git a/src/grafik.cpp b/src/grafik.cpp index 70883d4..2893ad1 100644 --- a/src/grafik.cpp +++ b/src/grafik.cpp @@ -1,7 +1,7 @@ // Grafik Routinen #define GRAFIK -#include "handlebme280.h" +// #include "handlebme280.h" #include "main.h" #include "grafik.h" diff --git a/src/main.cpp b/src/main.cpp index f005a3a..2d57733 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -24,9 +24,9 @@ #include "weifi.h" #include "mqtt.h" -#include "handlebme280.h" +// #include "handlebme280.h" #include "grafik.h" -#include "interpolation.h" +// #include "interpolation.h" #include "main.h" #include @@ -36,7 +36,6 @@ long bmeReadtimer = 0; long updatetimer = 0; -BME280Data bmedata; int currentSecond = -1; @@ -57,15 +56,15 @@ void setup() { delay (1000); Serial.println(LVGL_Arduino); - initBME280(); +// initBME280(); // Start LVGL setup_grafik(); Serial.println("LVGL started"); - bmedata = readBME280(); - bmedata.hum = getRelativeFeuchte(bmedata.temp, bmedata.hum); - bmedata.temp = bmedata.temp - tempOffset; +// bmedata = readBME280(); +// bmedata.hum = getRelativeFeuchte(bmedata.temp, bmedata.hum); +// bmedata.temp = bmedata.temp - tempOffset; arcTemp.value = bmedata.temp; arcHum.value = bmedata.hum; delay(1000); @@ -120,12 +119,12 @@ void loop() { } if (millis() - bmeReadtimer > bmeReadTime) { bmeReadtimer = millis(); - bmedata = readBME280(); - float tmess = bmedata.temp; - float hmess = bmedata.hum; - bmedata.hum = getRelativeFeuchte(bmedata.temp, bmedata.hum); - bmedata.temp = bmedata.temp - tempOffset; - doPublish(bmedata.temp, bmedata.hum, tmess, hmess); + // bmedata = readBME280(); + // float tmess = bmedata.temp; + // float hmess = bmedata.hum; + // bmedata.hum = getRelativeFeuchte(bmedata.temp, bmedata.hum); + // bmedata.temp = bmedata.temp - tempOffset; + // doPublish(bmedata.temp, bmedata.hum, tmess, hmess); } if (millis() - updatetimer > updateTime) { updatetimer = millis(); diff --git a/src/main.h b/src/main.h index 2e12bf8..8e57d07 100644 --- a/src/main.h +++ b/src/main.h @@ -12,6 +12,12 @@ extern "C" { //#define MAXREADINGS 224 #define MAXREADINGS 200 +typedef struct { + float temp; + float hum; + float pres; +} BME280Data; + #ifdef MAIN const char* wday[] = {"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"}; const char* month[] = {"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"}; @@ -21,6 +27,8 @@ int bmeReadTime = 10000; int updateTime = 30000; struct tm timeinfo; int oldDay = 0; +BME280Data bmedata; + #else extern const char* wday[7]; extern const char* month[12]; @@ -29,6 +37,7 @@ extern TimerHandle_t wifiReconnectTimer; extern int bmeReadTime; extern int updateTime; extern struct tm timeinfo; +extern BME280Data bmedata; #endif void setBMEreadtime(int time); diff --git a/src/mqtt.cpp b/src/mqtt.cpp index e7c4e3b..0210112 100644 --- a/src/mqtt.cpp +++ b/src/mqtt.cpp @@ -1,9 +1,10 @@ #define MQTT #include "grafik.h" +// #include "handlebme280.h" #include "main.h" #include "weifi.h" -#include "interpolation.h" +// #include "interpolation.h" #include "mqtt.h" @@ -45,13 +46,21 @@ void onmessage(char *tp, byte *msg, unsigned int length) setBMEreadtime(doc["updaterate"]); // showRate(doc["updaterate"]); } - if(doc.containsKey("tempoffset")) { - tempOffset = (float)doc["tempoffset"]; + // if(doc.containsKey("tempoffset")) { + // tempOffset = (float)doc["tempoffset"]; + // } + // if(doc.containsKey("humoffset")) { + // humOffset = (float)doc["humoffset"]; + // } + // Serial.printf("tempoffset: %.1f, humoffset: %.1f\n",tempOffset, humOffset); + } else if (topic == MQTT_TOPIC "set/messwerte") { + // aktuelle Messwerte kommen rein + if (doc.containsKey("temperature")) { + bmedata.temp = doc["temperature"]; } - if(doc.containsKey("humoffset")) { - humOffset = (float)doc["humoffset"]; - } - Serial.printf("tempoffset: %.1f, humoffset: %.1f\n",tempOffset, humOffset); + if (doc.containsKey("humidity")) { + bmedata.hum = doc["humidity"]; + } } else if (topic == MQTT_TOPIC "get") { if(doc.containsKey("send")) { if(doc["send"] == "ip") { @@ -83,6 +92,7 @@ void reconnect(void) } Serial.println("Connected"); client.subscribe(MQTT_TOPIC "set/parameter"); + client.subscribe(MQTT_TOPIC "set/messwerte"); client.subscribe(MQTT_TOPIC "get"); client.subscribe("hm/status/Aussen_Temp:1/#"); } diff --git a/src/version.h b/src/version.h index 4f6c49a..2c93992 100644 --- a/src/version.h +++ b/src/version.h @@ -1,11 +1,15 @@ // Versionsgeschichte -#define VERSION "1.6.5" -#define VDATE "2025-04-12" -#define VTIME "23:00 UTC" +#define VERSION "2.0.0" +#define VDATE "2025-06-09" +#define VTIME "09:00 UTC" /* Version Date Author +2.0.0 2025-06-09 rxf + - Messwerte werden nun vom ZigBee-Sensor per MQTT empfangen, + d.h. der BME280 wird nicht mehr verwendet + 1.6.4 2025-04-12 rxf - Neuer Versuchmit DST - täglich um 0h00 Restart