Deep Slept, gesteuert vom Openhab über MQTT

Hallo Leute,
ich hätte da mal eine Frage, ich versuche schon seit Tagen das selbst hinzubekommen,… aber ich komme nicht so recht an die Lösung.

Ich setze einen Openhab at home + MQTT Broker für die Steuerung aller meiner SmartHome ein. Nun möchte ich gerne einen Lolin32 (mit MQTT Client <AsyncMqttClient.h>) in DeepSleep versetzen und zwar nach vorgabe des openhab.
Dafür habe ich 3 DateTime Items auf Openhab erzeugt welche per MQTT übertragen werden.

Auf dem Lolin liegen diese uns als Char* im Format 2018-09-29T16:09:0016:09:00 vor. Leider wird der String nicht immer komplett richtig übertragen,hier müsste der String auch noch gepürft und ggf abgeschnitten werden.
Somit habe ich 3 Zeit, Ein und Auschaltdauer + aktuelle Zeit per MQTT vom Openhab

Nun müsste ich diese Werte umrechnen als Zeit und damit die DeepSleep Zeit zu berechnen.

Leider bekomme ich es in Moment nich hin, aus dem String die Zeiten zu berechnen…

Hat jemand von euch schon mal so einen Steuerung realisiert??

Dank euch
Gruss

Thomas

Leider wird der String nicht immer komplett richtig übertragen

-->wie kommst Du darauf, wie sieht ein fehlerhafter string denn aus?

Werden die Daten falsch gesendet oder falsch empfangen? (lässt sich mit MQTTSpy austesten)

Hallo,

MQTT empfängt auch auf dem ESP32 normalerweise was ihm jemad schickt, daß mußt Du wohl selbst klären.

Ansonsten ist auch beim ESP32 wie auch schon beim ESP8266 die time-Posix-Lib dabei.

#include <time.h>
Achtung time.h ist alles kleingeschreiben nicht mit irgendwelchen anderen Time-Libs verwechseln.

Für die Funktionen mußt Du Dir die BEschreibung der POSIX-Time-Lib im Netz suchen.
Die kann dann auch Deinen String (passend formatiert) in einen Unix-Timestamp umrechnen, Zeitdirfferenzen bilden usw.
Außerdem bringt sie eine komplette NTP-Anbindung mit und die Korrektur der freilaufenden Systemauhr anhand der Prozessorzyklen ist verblüffend ganggenau.

Gruß aus Berlin
Michael

Ich habe das nun erstmal verworfene.. ich habe mal den Stromverbrauch gemessen.. der ist so gering...
Da lohnt sich das programmieren nicht..
Danke..