INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
NTP- tägliche Aktion
17.12.2018, 22:25
Beitrag #1
NTP- tägliche Aktion
Hallo,

Ich versuche mit Hilfe der NTP Zeit für beispielsweise 20 Sekunden am Tag ein Relais an und aus zu schalten.

Aktuell funktioniert das leider nicht immer sehr zuverlässig, daher meine Frage: wie würdet ihr das lösen?

Code:
timeClient.update();
  String hourstr = getValue((timeClient.getFormattedTime()), ':', 0);
  String minutestr = getValue((timeClient.getFormattedTime()), ':', 1);
  String secondstr = getValue((timeClient.getFormattedTime()), ':', 2);

  int hour = hourstr.toInt();
  int minute = minutestr.toInt();
  int second = secondstr.toInt();

if (hour == 22) {
    if (minute == 15) {
        if (second == 00 | 01) {
        digitalWrite(pinRelais, 255);
        delay(20000);
        digitalWrite(pinRelais, 0);
        timeClient.update();
        }
    }
  }
NTP Bibliothek: https://github.com/SensorsIot/NTPtimeESP
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2018, 22:34
Beitrag #2
RE: NTP- tägliche Aktion
Wenn Du Hilfe willst, dann poste einen kompilierfähigen Sketch und nicht nur ein Fragment. Es gibt mehrere Möglichkeiten NTP zu nutzen und daraus Zeitinformationen abzuleiten.
Nutzt Du localTime (incl. Sommer-/Winterzeit) oder UTC?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2018, 22:39
Beitrag #3
RE: NTP- tägliche Aktion
(17.12.2018 22:25)maxm18 schrieb:  Hallo,

Ich versuche mit Hilfe der NTP Zeit für beispielsweise 20 Sekunden am Tag ein Relais an und aus zu schalten.

Aktuell funktioniert das leider nicht immer sehr zuverlässig, daher meine Frage: wie würdet ihr das lösen?

Code:
timeClient.update();
  String hourstr = getValue((timeClient.getFormattedTime()), ':', 0);
  String minutestr = getValue((timeClient.getFormattedTime()), ':', 1);
  String secondstr = getValue((timeClient.getFormattedTime()), ':', 2);

  int hour = hourstr.toInt();
  int minute = minutestr.toInt();
  int second = secondstr.toInt();

if (hour == 22) {
    if (minute == 15) {
        if (second == 00 | 01) {
        digitalWrite(pinRelais, 255);
        delay(20000);
        digitalWrite(pinRelais, 0);
        timeClient.update();
        }
    }
  }
NTP Bibliothek: https://github.com/SensorsIot/NTPtimeESP

Auf alle Fälle ohne delay(20000);
Welcher Esp?
Welche Arduino Core Version?

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2018, 22:42
Beitrag #4
RE: NTP- tägliche Aktion
(17.12.2018 22:39)Fips schrieb:  
(17.12.2018 22:25)maxm18 schrieb:  Hallo,

Ich versuche mit Hilfe der NTP Zeit für beispielsweise 20 Sekunden am Tag ein Relais an und aus zu schalten.

Aktuell funktioniert das leider nicht immer sehr zuverlässig, daher meine Frage: wie würdet ihr das lösen?

Code:
timeClient.update();
  String hourstr = getValue((timeClient.getFormattedTime()), ':', 0);
  String minutestr = getValue((timeClient.getFormattedTime()), ':', 1);
  String secondstr = getValue((timeClient.getFormattedTime()), ':', 2);

  int hour = hourstr.toInt();
  int minute = minutestr.toInt();
  int second = secondstr.toInt();

if (hour == 22) {
    if (minute == 15) {
        if (second == 00 | 01) {
        digitalWrite(pinRelais, 255);
        delay(20000);
        digitalWrite(pinRelais, 0);
        timeClient.update();
        }
    }
  }
NTP Bibliothek: https://github.com/SensorsIot/NTPtimeESP

Auf alle Fälle ohne delay(20000);
Welcher Esp?
Welche Arduino Core Version?

Gruß Fips

Ich hatte das zeitweise auch noch mit einer zweiten Zeit Aktion (Zeit = 20 Sek statt 0 sek beispielsweise), hielt es aber anfangs für besser eine mögliche Fehlerquelle auszuschließen.

Es wird ein Wemos D1 Mini verwendet, meine Arduino Version ist 1.8.8
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2018, 22:44
Beitrag #5
RE: NTP- tägliche Aktion
Nimm die Sekundenabfrage raus.
Das wird sicherlich dazu beitragen das es besser läuft, wenn es wichtig ist die Sekunden zu wissen, dann mach eine Abfrage mit etwas mehr als 1 Sekunde, d Sketch braucht evtl so lange, das manche Sekunden nicht ausgewertet werden...

also sekunden >= wunschsekunde && sekunden <= wunschsekunden + 2


So etwa


Gruß

Nicht denken,...
...nachdenken... Rolleyes

Smarter - LiveData - KLAMM.de
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2018, 22:45
Beitrag #6
RE: NTP- tägliche Aktion
(17.12.2018 22:44)Hilgi schrieb:  Nimm die Sekundenabfrage raus.
Das wird sicherlich dazu beitragen das es besser läuft, wenn es wichtig ist die Sekunden zu wissen, dann mach eine Abfrage mit etwas mehr als 1 Sekunde, d Sketch braucht evtl so lange, das manche Sekunden nicht ausgewertet werden...

also sekunden >= wunschsekunde && sekunden <= wunschsekunden + 2


So etwa


Gruß

okay, danke! Probiere ich mal (wieder)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2018, 22:49
Beitrag #7
RE: NTP- tägliche Aktion
(17.12.2018 22:42)maxm18 schrieb:  Es wird ein Wemos D1 Mini verwendet, meine Arduino Version ist 1.8.8
Nicht die Arduino Version meine ich sondern die ESP8266 core for Arduino Version.
Da gibt es 2.3.0 oder 2.4.2 und ganz neu 2.5.0 beta2

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2018, 22:51
Beitrag #8
RE: NTP- tägliche Aktion
(17.12.2018 22:49)Fips schrieb:  
(17.12.2018 22:42)maxm18 schrieb:  Es wird ein Wemos D1 Mini verwendet, meine Arduino Version ist 1.8.8
Nicht die Arduino Version meine ich sondern die ESP8266 core for Arduino Version.
Da gibt es 2.3.0 oder 2.4.2 und ganz neu 2.5.0 beta2

Gruß Fips

Sorry, mein Fehler!
Verwende die 2.4.2.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste