Zeit Abfrage

Hallo zusammen, ich bin gerade dabei mir eine Steuerung für meine Fußbodenheizung zu bauen, als Controller habe ich einen wemos d1 Mini. Die aktuelle Zeit bekommt der wemos über einen NTP Server. Ich suche noch nach einer Lösung um die Zeit richtig anfragen zu können.

Die Steuerung soll in einem Zeitraum von z.b. 16:30 bis 20:30 Uhr die von mir eingestellte Regelung durchlaufen.

Bisher habe ich nur die Parameter für die Zeitabfrage

if (timeClient.getHours () == 16){
if (timeClient.getMinutes () == 30){

Hier dann die Regelung }} usw...

Demnach schaltet das ganze dann leider nur für die eine Minute und jetzt alle Zwischenwerte mit Komma aufzählen ist mir leider zu aufwendig und erlaubt mir auch nicht die Anbindung an mein noch geplantes Webinterface

bool started=false;
if (timeClient.getHours () == 16&&!started){
  if (timeClient.getMinutes () == 30&&!started){
started=true;
}
}
if (timeClient.getHours () == 20&&started){
  if (timeClient.getMinutes () == 30&&started){
started=false;
}
}
if(started)
{
Hier dann die Regelung usw...
}

Vielen Dank!!! Ich Versuche es heute Abend Zuhause direkt mal.

ich würde die Uhrzeit in ein einfacheres Format bringen:

in etwa so (ungetestet)

uint16_t readable=timeClient.getHours()*100 + timeClient.getMinutes();

if (readable >=1630 && readable<2030)
{
  doRegelung();
}

Das wäre auf jeden Fall schon etwas weniger Code. Versuche ich auch mal. Danke!!!

noiasca:
ich würde die Uhrzeit in ein einfacheres Format bringen:

in etwa so (ungetestet)

uint16_t readable=timeClient.getHours()*100 + timeClient.getMinutes();

if (readable >=1630 && readable<2030)
{
  doRegelung();
}

Wieso multiplizierst Du die Stunden mit 100 und nicht mit 60?

Grüße Uwe

Ich vermute, weil sich dann aus z.B. 20:30 der einfach zu lesende Wert 2030 ergibt.

Gruß Tommy

Ok, aber dann sind Werte zB von 2060 bis 2099 keine gültigen Werte.
Relative Zeiten zb von 16:30 zwei Stunden wären kompliziert.

Ja, ich würde auch eher die Stunden mit 60 multiplizieren, aber Du wolltest ja wissen, weshalb es noiasca wohl so gemacht hat.

Gruß Tommy

tommy hats richtig erkannt. es geht um
readable = lesbar.

Alternativ:
1660+30=990
und
20
60+30=1230

jetzt hab ich zwar die Tagminuten, aber

bei einem vergleich

if (tagminuten>=990 && tagminuten<1230)

das ist für mich nicht mehr einfach erkennbar. dass das eigentlich 16:30 und 20:30 sein soll.

Die temporäre Variable ist sicher auch nicht schön, vieleicht hat da wer eine bessere Variante?

ok.... ich hab nun irgendwie ein neues problem -_- direkt zuhause wollte ich erst etwas anderes testen und habe ein altes simples skript auf meinen D1 mini gespielt, jedoch habe ich auch nach mehrmaligen übertragen nichts im Serial Monitor gehabt und auch nach drücken des Reset Tasters nichts. Später bekamm ich nicht mal mehr irgendwas überspielt. Der Port wird noch erkannt. Ich habe es jetzt schon an zwei PCs versucht immer das selbe. Meinen Uno bekomme ich ohne probleme Programmiert

Der Sketch verwendet 247944 Bytes (23%) des Programmspeicherplatzes. Das Maximum sind 1044464 Bytes.
Globale Variablen verwenden 28032 Bytes (34%) des dynamischen Speichers, 53888 Bytes für lokale Variablen verbleiben. Das Maximum sind 81920 Bytes.
Uploading 252096 bytes from C:\Users\CHRIST~1\AppData\Local\Temp\arduino_build_708883/Blink.ino.bin to flash at 0x00000000
warning: espcomm_send_command: didn't receive command response
warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

... jetzt liest noch mal deine Fehlerbeschreibung und stellst dir bitte selber die Frage wie man dir nun helfen soll...

Ich habe noch den Text aus der Übertragung angehangen.
Mit einem TTL Adapter bekomme ich nun einen Sync fehler:

warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

Habe es gelöst! Pin D3, D8 gemeinsam auf GND oder die beiden zusammen schlaten und drücken des Reset Tasters oder trennen der Spannungsversorgung haben es gelöst. Eine Übertragung ist nun wieder möglich =)