Messwerte nun von ZigBee-Sensor per MQTT
This commit is contained in:
@@ -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!
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Grafik Routinen
|
||||
#define GRAFIK
|
||||
|
||||
#include "handlebme280.h"
|
||||
// #include "handlebme280.h"
|
||||
#include "main.h"
|
||||
#include "grafik.h"
|
||||
|
||||
|
||||
25
src/main.cpp
25
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 <locale.h>
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
22
src/mqtt.cpp
22
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"];
|
||||
if (doc.containsKey("humidity")) {
|
||||
bmedata.hum = doc["humidity"];
|
||||
}
|
||||
Serial.printf("tempoffset: %.1f, humoffset: %.1f\n",tempOffset, humOffset);
|
||||
} 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/#");
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user