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).
|
Einstellen der Updaterate der Grafik (in Sekunden).
|
||||||
* **{"tempoffset":ttt}**
|
* **{"tempoffset":ttt}**
|
||||||
Einstellen des Offset für die Temperatur (in den Gehäuse ist es zu warm)
|
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!
|
Alle Wert sind Float-Werte!
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Grafik Routinen
|
// Grafik Routinen
|
||||||
#define GRAFIK
|
#define GRAFIK
|
||||||
|
|
||||||
#include "handlebme280.h"
|
// #include "handlebme280.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "grafik.h"
|
#include "grafik.h"
|
||||||
|
|
||||||
|
|||||||
25
src/main.cpp
25
src/main.cpp
@@ -24,9 +24,9 @@
|
|||||||
|
|
||||||
#include "weifi.h"
|
#include "weifi.h"
|
||||||
#include "mqtt.h"
|
#include "mqtt.h"
|
||||||
#include "handlebme280.h"
|
// #include "handlebme280.h"
|
||||||
#include "grafik.h"
|
#include "grafik.h"
|
||||||
#include "interpolation.h"
|
// #include "interpolation.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
@@ -36,7 +36,6 @@
|
|||||||
long bmeReadtimer = 0;
|
long bmeReadtimer = 0;
|
||||||
long updatetimer = 0;
|
long updatetimer = 0;
|
||||||
|
|
||||||
BME280Data bmedata;
|
|
||||||
|
|
||||||
int currentSecond = -1;
|
int currentSecond = -1;
|
||||||
|
|
||||||
@@ -57,15 +56,15 @@ void setup() {
|
|||||||
delay (1000);
|
delay (1000);
|
||||||
Serial.println(LVGL_Arduino);
|
Serial.println(LVGL_Arduino);
|
||||||
|
|
||||||
initBME280();
|
// initBME280();
|
||||||
|
|
||||||
// Start LVGL
|
// Start LVGL
|
||||||
setup_grafik();
|
setup_grafik();
|
||||||
Serial.println("LVGL started");
|
Serial.println("LVGL started");
|
||||||
|
|
||||||
bmedata = readBME280();
|
// bmedata = readBME280();
|
||||||
bmedata.hum = getRelativeFeuchte(bmedata.temp, bmedata.hum);
|
// bmedata.hum = getRelativeFeuchte(bmedata.temp, bmedata.hum);
|
||||||
bmedata.temp = bmedata.temp - tempOffset;
|
// bmedata.temp = bmedata.temp - tempOffset;
|
||||||
arcTemp.value = bmedata.temp;
|
arcTemp.value = bmedata.temp;
|
||||||
arcHum.value = bmedata.hum;
|
arcHum.value = bmedata.hum;
|
||||||
delay(1000);
|
delay(1000);
|
||||||
@@ -120,12 +119,12 @@ void loop() {
|
|||||||
}
|
}
|
||||||
if (millis() - bmeReadtimer > bmeReadTime) {
|
if (millis() - bmeReadtimer > bmeReadTime) {
|
||||||
bmeReadtimer = millis();
|
bmeReadtimer = millis();
|
||||||
bmedata = readBME280();
|
// bmedata = readBME280();
|
||||||
float tmess = bmedata.temp;
|
// float tmess = bmedata.temp;
|
||||||
float hmess = bmedata.hum;
|
// float hmess = bmedata.hum;
|
||||||
bmedata.hum = getRelativeFeuchte(bmedata.temp, bmedata.hum);
|
// bmedata.hum = getRelativeFeuchte(bmedata.temp, bmedata.hum);
|
||||||
bmedata.temp = bmedata.temp - tempOffset;
|
// bmedata.temp = bmedata.temp - tempOffset;
|
||||||
doPublish(bmedata.temp, bmedata.hum, tmess, hmess);
|
// doPublish(bmedata.temp, bmedata.hum, tmess, hmess);
|
||||||
}
|
}
|
||||||
if (millis() - updatetimer > updateTime) {
|
if (millis() - updatetimer > updateTime) {
|
||||||
updatetimer = millis();
|
updatetimer = millis();
|
||||||
|
|||||||
@@ -12,6 +12,12 @@ extern "C" {
|
|||||||
//#define MAXREADINGS 224
|
//#define MAXREADINGS 224
|
||||||
#define MAXREADINGS 200
|
#define MAXREADINGS 200
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
float temp;
|
||||||
|
float hum;
|
||||||
|
float pres;
|
||||||
|
} BME280Data;
|
||||||
|
|
||||||
#ifdef MAIN
|
#ifdef MAIN
|
||||||
const char* wday[] = {"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"};
|
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"};
|
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;
|
int updateTime = 30000;
|
||||||
struct tm timeinfo;
|
struct tm timeinfo;
|
||||||
int oldDay = 0;
|
int oldDay = 0;
|
||||||
|
BME280Data bmedata;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
extern const char* wday[7];
|
extern const char* wday[7];
|
||||||
extern const char* month[12];
|
extern const char* month[12];
|
||||||
@@ -29,6 +37,7 @@ extern TimerHandle_t wifiReconnectTimer;
|
|||||||
extern int bmeReadTime;
|
extern int bmeReadTime;
|
||||||
extern int updateTime;
|
extern int updateTime;
|
||||||
extern struct tm timeinfo;
|
extern struct tm timeinfo;
|
||||||
|
extern BME280Data bmedata;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void setBMEreadtime(int time);
|
void setBMEreadtime(int time);
|
||||||
|
|||||||
24
src/mqtt.cpp
24
src/mqtt.cpp
@@ -1,9 +1,10 @@
|
|||||||
#define MQTT
|
#define MQTT
|
||||||
|
|
||||||
#include "grafik.h"
|
#include "grafik.h"
|
||||||
|
// #include "handlebme280.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "weifi.h"
|
#include "weifi.h"
|
||||||
#include "interpolation.h"
|
// #include "interpolation.h"
|
||||||
#include "mqtt.h"
|
#include "mqtt.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -45,13 +46,21 @@ void onmessage(char *tp, byte *msg, unsigned int length)
|
|||||||
setBMEreadtime(doc["updaterate"]);
|
setBMEreadtime(doc["updaterate"]);
|
||||||
// showRate(doc["updaterate"]);
|
// showRate(doc["updaterate"]);
|
||||||
}
|
}
|
||||||
if(doc.containsKey("tempoffset")) {
|
// if(doc.containsKey("tempoffset")) {
|
||||||
tempOffset = (float)doc["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")) {
|
if (doc.containsKey("humidity")) {
|
||||||
humOffset = (float)doc["humoffset"];
|
bmedata.hum = doc["humidity"];
|
||||||
}
|
}
|
||||||
Serial.printf("tempoffset: %.1f, humoffset: %.1f\n",tempOffset, humOffset);
|
|
||||||
} else if (topic == MQTT_TOPIC "get") {
|
} else if (topic == MQTT_TOPIC "get") {
|
||||||
if(doc.containsKey("send")) {
|
if(doc.containsKey("send")) {
|
||||||
if(doc["send"] == "ip") {
|
if(doc["send"] == "ip") {
|
||||||
@@ -83,6 +92,7 @@ void reconnect(void)
|
|||||||
}
|
}
|
||||||
Serial.println("Connected");
|
Serial.println("Connected");
|
||||||
client.subscribe(MQTT_TOPIC "set/parameter");
|
client.subscribe(MQTT_TOPIC "set/parameter");
|
||||||
|
client.subscribe(MQTT_TOPIC "set/messwerte");
|
||||||
client.subscribe(MQTT_TOPIC "get");
|
client.subscribe(MQTT_TOPIC "get");
|
||||||
client.subscribe("hm/status/Aussen_Temp:1/#");
|
client.subscribe("hm/status/Aussen_Temp:1/#");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
// Versionsgeschichte
|
// Versionsgeschichte
|
||||||
|
|
||||||
#define VERSION "1.6.5"
|
#define VERSION "2.0.0"
|
||||||
#define VDATE "2025-04-12"
|
#define VDATE "2025-06-09"
|
||||||
#define VTIME "23:00 UTC"
|
#define VTIME "09:00 UTC"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Version Date Author
|
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
|
1.6.4 2025-04-12 rxf
|
||||||
- Neuer Versuchmit DST
|
- Neuer Versuchmit DST
|
||||||
- täglich um 0h00 Restart
|
- täglich um 0h00 Restart
|
||||||
|
|||||||
Reference in New Issue
Block a user