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 SPIFF Daten schreiben und zeilenweise lesen? foto2004 10 309 15.04.2021 14:26
Letzter Beitrag: hotsystems
  ESP8266 OTA - ich bin am Ende meiner Ideen miq19 11 751 02.04.2021 10:13
Letzter Beitrag: Tommy56
  NodeMCU und LUA Programmierung RaspiUser0815 2 311 29.03.2021 14:32
Letzter Beitrag: RaspiUser0815
  Libraries für ESP8266 wonk 9 877 24.03.2021 20:18
Letzter Beitrag: wonk
  vom MEGA zum ESP8266 uk1408 24 2.050 19.03.2021 13:56
Letzter Beitrag: hotsystems
  ESP8266 Zeit vom NTP Server verändert sich Kupferwurm 18 1.897 11.03.2021 11:03
Letzter Beitrag: Tommy56
  ESP8266 NTP fadeValue bob 2 503 10.03.2021 18:29
Letzter Beitrag: Tommy56
  HTML-Ausgabe von ESP8266 D1 Mini + DHT 11 Temperatursensor auf Webseite Bobo83600 3 701 10.03.2021 09:42
Letzter Beitrag: Bobo83600
  [Gelöst] ESP8266 OTA bleibt ohne Wirkung miq19 5 788 07.03.2021 18:35
Letzter Beitrag: Tommy56
  ESP8266-12E & Pullup I2C rev.antun 33 4.122 07.03.2021 01:46
Letzter Beitrag: rev.antun

Gehe zu:


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