Über einen Arduino mit Mysensors DHT22 Werte einsammeln

Begonnen von tfriedrich85, 24 Oktober 2022, 13:11:27

Vorheriges Thema - Nächstes Thema

tfriedrich85

Hallo,

ich verwende einen Arduino um die Temperaturwerte von DHT 22 Sensoren einzusammeln und per MQTT an Fhem zu schicken. Grundsätzlich funktioniert mein Sketch auch. Allerdings hängt sich der Arudino regelmäßig alle 2-3 Monate mal auf und sendet keine Werte mehr an Fhem. Tritt der Fall ein, muss ich den Arudino kurz vom Strom nehmen und dann gehts weiter.

1. Frage:  Kann man den Arduino im Sketch täglich oder stündlich neu booten?
2. Frage: Gibts Fehler im Sketch? https://github.com/tfriedrich85/temperature-Sensors-to-MQTT/blob/main/temepratureMQTT.ino
3. Frage: Kann ich in Fhem ein Notify setzen, welches bescheid gibt, falls der Arduino keine Werte mehr sendet?

Hier der alte Beitrag zur Erstellung des Sketches
https://forum.fhem.de/index.php/topic,126226.15.html

Danke

xenos1984

Eine Möglichkeit wäre, in setup() einen Watchdog zu setzen und in loop() zurückzusetzen. Wenn sich etwas aufhängt, sollte das den Neustart auslösen.

frober

Wieso steht im Betreff Mysensors?
Dein Sketch benutzt doch Mysensors überhaupt nicht.

Das delay(300000) am Ende ist Mist. Dadurch blockierst du alles. Evtl. kommt daher dein Problem.
Erhöhe lieber weiter oben dein Intervall.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

tfriedrich85


tfriedrich85

#4
Zitat von: xenos1984 am 24 Oktober 2022, 14:34:43
Eine Möglichkeit wäre, in setup() einen Watchdog zu setzen und in loop() zurückzusetzen. Wenn sich etwas aufhängt, sollte das den Neustart auslösen.

cool, das könnte abhilfe schaffen! Ich hab das mal diesem Vorbild integriert
https://electric-junkie.de/2020/08/arduino-millis-anstatt-von-delay/

Update: Der Watchdog kann auf max 8 Sekunden gestellt werden, dass heißt wenn ich die Temperaturwerte nur alle 5 Minuten haben will, muss ich nach dem Reset des Watchdogs doch ein Delay von 300 Sekunden einbauen.