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
Variablen NodeMCU ESP8266-E Speicher Sparen
16.12.2020, 16:38 (Dieser Beitrag wurde zuletzt bearbeitet: 16.12.2020 17:15 von Tommy56.)
Beitrag #41
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
Irgendwie fehlt mir zu dem setSyncIntervall ein setSyncProvider, falls das nicht in einer der Blync-Libs abgefrühstückt wird.

In der Variante der alten NTP-Nutzung mit TimeLib von Paul Stoffregen und setSyncProvider / setSyncIntervall musste man da eine spezielle Funktion einbinden, die die UNIX-Time oder 0 zurückgibt.
Für kombinierte RTC/NTP musste man das dann wohl aufteilen 1. NTP, wenn ok - RTC nachstellen UNIX-Time zurück. Wenn nicht ok, UNIX-Time von RTC holen.

Beim neuen NTP macht vieles der Core selbst, davon sehe ich aber bei Dir auch nichts.

Da ich nicht weiß, was der Blync-Kram und RTCWidget dabei tun, kann ich da nicht viel mehr dazu sagen.

Ohne Blync hätte ich es bei der alten Variante mit TimeLib und der DS3231-Lib gebaut.

Gruß Tommy

Edit: Das WidgetRTC.h enthält ein setSyncProvider, ich glaube aber nicht, dass der NTP berücksichtigt. Da werde ich aber nicht weiter in Blynk hinab steigen, da ich dafür keine Verwendung habe.

"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
16.12.2020, 21:17
Beitrag #42
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
Ich habe mir Deinen Code nochmal angeschaut. Am Anfang hatte ich nur nach Fehlern geschaut, aber irgendwas im Hinterkopf maulte, artikulierte sich aber nicht richtig.

Jetzt kam es nach vorn: Du hast ja überhaupt keinerlei Code für NTP in Deinem Sketch. Der läuft nur mit RTC.

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
16.12.2020, 21:49
Beitrag #43
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
(16.12.2020 21:17)Tommy56 schrieb:  Ich habe mir Deinen Code nochmal angeschaut. Am Anfang hatte ich nur nach Fehlern geschaut, aber irgendwas im Hinterkopf maulte, artikulierte sich aber nicht richtig.

Jetzt kam es nach vorn: Du hast ja überhaupt keinerlei Code für NTP in Deinem Sketch. Der läuft nur mit RTC.

Gruß Tommy

Servus Tommy!

Der NTP -> Blynk. Habe jetzt aber so gelöst wie du vorgeschlagen. NTP (Blynk) ist jetzt die Hauptzeitquelle, sollte dieser nicht erreichbar - warum auch immer - dann gilt RTC. Und RTC wird alle 3h, sofern möglich aktualisiert.

Gruß aus Wiener Neustadt
Toni

=================================================================
Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr.

Wer Rechtschreibfehler findet darf sie behalten Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.12.2020, 21:54
Beitrag #44
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
Warum veröffentlichst Du den Code nicht?

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
16.12.2020, 22:24 (Dieser Beitrag wurde zuletzt bearbeitet: 16.12.2020 22:25 von rev.antun.)
Beitrag #45
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
Servus Tommy!

Nur mit der Ruhe Big Grin Hab mir noch schnell einen Cafe gemacht, bevor ich das ganze in den Hauptsketch Einbau Wink

So hier nur, meine Lösung mit der ich Leben kann - falls noch etwas auffällt nur here damit. && Danke!

Code:
#include "R:\ArduinoSketches\Prototyping\wwcfg.h"
#define BLYNK_PRINT Serial
#include <Wire.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <TimeLib.h>
#include <WidgetRTC.h>

const int RTC_I2C_ADDRESS = 0x68;
WidgetRTC rtc;
int RTCsekunde, RTCminute, RTCstunde, RTCtag, RTCmonat, RTCjahr;
long RTCunix;

unsigned long localtimeMillis = 0;
const uint16_t localtimeinterval = 1000;

BLYNK_CONNECTED() {
  rtc.begin();
}

void setup()
{
  Wire.begin();
  Serial.begin(115200);
  while (!Serial);
  
  wifion();
  Blynk.begin(AUTH, STASSID, STAPSK);
}

void loop()
{
  Blynk.run();

  unsigned long currentMillis = millis();
  if (currentMillis - localtimeMillis >= localtimeinterval) {
    localtimeMillis = currentMillis;
    varioout();
  }
}

void syncTIME() {

  if (timeStatus() == 0) {      //timeNotSet
    rtcReadTime();
    setTime(unixzeit());
  }
  else if (timeStatus() == 1) { //timeNeedsSync
    // Funktion folgt später
  }
}

long unixzeit() {

  const short tage_seit_jahresanfang[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
  int schaltjahre = ((RTCjahr - 1) - 1968) / 4 - ((RTCjahr - 1) - 1900) / 100 + ((RTCjahr - 1) - 1600) / 400;
  long tage_seit_1970 = (RTCjahr - 1970) * 365 + schaltjahre + tage_seit_jahresanfang[RTCmonat - 1] + RTCtag - 1;

  if ( (RTCmonat > 2) && (RTCjahr % 4 == 0 && (RTCjahr % 100 != 0 || RTCjahr % 400 == 0)) )tage_seit_1970 += 1;

  return RTCsekunde + 60 * (RTCminute + 60 * (RTCstunde + 24 * tage_seit_1970) );
}

void rtcReadTime() {
  Wire.beginTransmission(RTC_I2C_ADDRESS);
  Wire.write(0);
  Wire.endTransmission();
  Wire.requestFrom(RTC_I2C_ADDRESS, 7);

  RTCsekunde   = bcdToDec(Wire.read() & 0x7f);
  RTCminute    = bcdToDec(Wire.read());
  RTCstunde    = bcdToDec(Wire.read() & 0x3f);
  bcdToDec(Wire.read());
  RTCtag       = bcdToDec(Wire.read());
  RTCmonat     = bcdToDec(Wire.read());
  RTCjahr      = bcdToDec(Wire.read()) + 2000;
  RTCunix      = unixzeit();
}

void rtcWriteTime() {
  Wire.beginTransmission(RTC_I2C_ADDRESS);
  Wire.write(0);
  Wire.write(decToBcd((int)second()));
  Wire.write(decToBcd((int)minute()));
  Wire.write(decToBcd((int)hour()));
  Wire.write(decToBcd(0));
  Wire.write(decToBcd((int)day()));
  Wire.write(decToBcd((int)month()));
  Wire.write(decToBcd((int)year() - 2000));
  Wire.endTransmission();
}

//Convertiert Dezimalzeichen in binäre Zeichen.
byte decToBcd(byte val) {
  return ( (val / 10 * 16) + (val % 10) );
}

//Convertiert binäre Zeichen in Dezimal Zeichen.
byte bcdToDec(byte val) {
  return ( (val / 16 * 10) + (val % 16) );
}

void varioout() {

  Serial.print(F("START==============================\n"));
  Serial.print("TimeStatus  "); Serial.println(timeStatus());
  Serial.print("Unix epoch  "); Serial.println(now());
  Serial.print("Tag         "); Serial.println(day());
  Serial.print("Monat       "); Serial.println(month());
  Serial.print("Jahr        "); Serial.println(year());
  Serial.print("Stunde      "); Serial.println(hour());
  Serial.print("Minute      "); Serial.println(minute());
  Serial.print("Sekunde     "); Serial.println(second());
  Serial.print("Wochentag   "); Serial.println(timeDayOfWeek_t());
  Serial.print("Monat short "); Serial.println(monthShortStr(month()));
  Serial.print("Monat       "); Serial.println(monthStr(month()));  
  Serial.println("END===============================");  
}

void wifion() {

  uint8_t versuche;

  WiFi.persistent(false);
  WiFi.mode(WIFI_STA);
  WiFi.begin(STASSID, STAPSK);
  while (WiFi.status() != WL_CONNECTED) {
    delay(200);
    if (versuche++ == 20) {
      break;
    }
  }

  if (WiFi.status() == WL_CONNECTED) {
    syncTIME();
    rtcWriteTime();
    setSyncInterval(180 * 60);
  }
}

void wifioff() {

  WiFi.disconnect();

}

Gruß aus Wiener Neustadt
Toni

=================================================================
Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr.

Wer Rechtschreibfehler findet darf sie behalten Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.12.2020, 22:46
Beitrag #46
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
Ich sehe immer noch keinen Abruf der NTP-Zeit.

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.2020, 00:54
Beitrag #47
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
(16.12.2020 22:46)Tommy56 schrieb:  Ich sehe immer noch keinen Abruf der NTP-Zeit.

Gruß Tommy

Servus Tommy!

Zitat:#include <WidgetRTC.h>

BLYNK_CONNECTED() {
rtc.begin();

Blynk.run();
}

Das macht den NTP Sync - geht wie gesagt über die Blynk LIB - RTC hinkt zwar um knapp 2 Sekunden nach, aber das ist jetzt eine andere Baustelle, und nicht ganz so Wichtig Confused

Für weitere Fragen stehe ich gerne bereit Exclamation

Gruß aus Wiener Neustadt
Toni

=================================================================
Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr.

Wer Rechtschreibfehler findet darf sie behalten Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2020, 00:58
Beitrag #48
RE: Variablen NodeMCU ESP8266-E Speicher Sparen
Nachtrag, hier noch kurzer Überblick wie es in der NEXION Simulation läuft.    

Gruß aus Wiener Neustadt
Toni

=================================================================
Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr.

Wer Rechtschreibfehler findet darf sie behalten Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ESP8266-12E & Pullup I2C rev.antun 19 548 Heute 06:19
Letzter Beitrag: N1d45
  Abgespeckter Sketch für ESP8266 -WLAN Anbindung / Anfänger mizieg 7 202 Gestern 17:45
Letzter Beitrag: N1d45
  NodeMCU -KNX ak68 16 2.616 24.02.2021 17:06
Letzter Beitrag: matty67
  ESP8266 OTA und Verwendung von TXD0/RXD0 rev.antun 27 710 22.02.2021 19:43
Letzter Beitrag: hotsystems
  GPS-Synchronisierung mit NodeMCU-ESP8266 Floke4 3 166 22.02.2021 19:33
Letzter Beitrag: rev.antun
  NodeMCU: zyklisch WDT reset miq19 1 114 21.02.2021 16:30
Letzter Beitrag: miq19
  esp8266 zu html gk_1 9 332 19.02.2021 19:41
Letzter Beitrag: Tommy56
  ESP8266 SD CSV Datei Zeilen rückwärtz RobertHQ 7 365 14.02.2021 19:29
Letzter Beitrag: Corvus
  ESP8266 Webserver nach Zeit nicht mehr verfügbar. ESPWolf 21 1.846 02.02.2021 17:54
Letzter Beitrag: Tommy56
  ESP8266 - DLNA, Chromecast, Firestick & YouTube rev.antun 8 702 27.01.2021 21:31
Letzter Beitrag: nbk83

Gehe zu:


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