ESP8266-MQTT-DHT

Hallo Community,

mein Name ist Jens und ich ersuche auf beiden Knien eure Hilfe.
In meiner Wohnung sind viele ESP Sensoren mit einem DHT22 verbaut, diese haben einen Webserver welcher Luftfeuchte und Temperatur ausgibt. Über ein Curl Script rufe ich diese Daten ab und speichere diese in einer RRD Datenbank mit welcher ich später die Auswertung mache. Alles fein, aber ich wollte die Sensoren gerne umstellen.
Auf MQTT und Garafna mit InfluxDB, das Konstrukt funktioniert auch, allerdings, arbeite ich seit anbeginn mit Code Fetzen und habe von der eigentlichen LUA und Arduino Programmierung nicht viel Ahnung, ich kann vieles Interpretieren aber selber schreiben…schwierig.

Ich habe deshalb eine Bitte an euch, im Anhang befindet sich ein Sketch welcher soweit auch funktioniert, jedoch mit der Ausnahme, das sofern ich das richtig verstanden habe, der ESP nur dann an den MQTT Broker Daten übermittelt wenn sich die Werte ändern. Das macht bei mir leider nicht viel Sinn, ich hätte gerne eine Standartübermittelung alle 2 bis 5 Sekunden. Ich bin nur leider nicht in der Lage den Quellcode so zu verändern, das es auch funktioniert, wäre einer von euch so freundlich und könnte mir hier vielleicht unter die Arme greifen?

viele Grüße

Jens

Sketch_Jens.ino (2.83 KB)

Es sollte reichen, wenn Du die Loop wiefolgt umbaust:

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  long now = millis();
  if (now - lastMsg > TIMEFRAME ) {
    lastMsg = now;

    float newTemp = dht.readTemperature();
    float newHum = dht.readHumidity();

    client.publish(temperature_topic, String(newTemp).c_str(), true);

    client.publish(humidity_topic, String(newHum).c_str(), true);
    
  }
}

Zusätzlich muss am Anfang des Programms noch per

#define TIMEFRAME 2000

das Zeitinterval gesetzt werden. 2000 sind hier 2 Sekunden.

Wow,

super vielen vielen Dank, wenn ich heute abend daheim bin probiere ich es gleich aus!

Danke nochmal!

viele Grüße

Jens

Hallo mkl0815,

ich wollte nochmals danke sagen, läuft wie geschmiert, endlich kann ich alles umbauen!

Danke!

Jens