Sunrise und Sunset mit TimeLoard berechnen

Hi,
hat das schon mal jemand getestet?

Im loop ist die erste Zeile:
byte day = {0, 0, 0, 21, 2, 2012};
Da spinnt schon mal der Compiler, weil 2012 für den Datentyp zu groß ist.
byte day = {0, 0, 0, 21, 2, 21};
funktioniert.

So tief bin ich noch nicht in die Materie vorgedrungen, um herauszufinden ob 21 das gleiche Jahr wie 2021 ist.
Scheint aber zu funktionieren.
Ich bekomme SA und SU aus dem Sketch im Serial Monitor, so wie es der Wetterbericht auch anzeigt.

Mein Hintergrund: Fehler beim BH1750 ausschließen. Der zeigt mitten in der Nacht plötzlich 22573lx an.
Wahrscheinlich ist da wieder ein Auto vorbei gefahren und hat mit seinen Scheinwerfern meinen Sensor durcheinander gebracht.
Wenn aber die Uhrzeit nach Sunset ist, darf der Sensor keine so hohen Werte an die Datenbank liefern.

Immer wieder gibt es neue Ungereimtheiten mit Sensoren bei der Datenerfassung über lange Zeiträume.

Alles klar!

@combie
wie soll ich das deuten?

freddy64:
hat das schon mal jemand getestet?

Ich denke ja. Und nicht nur jemand.

Im loop ist die erste Zeile:
byte day = {0, 0, 0, 21, 2, 2012};
Da spinnt schon mal der Compiler,

NEIN!
Du hast die Größe eines Datentypes nicht verstanden!

Wahrscheinlich ist da wieder ein Auto vorbei gefahren und hat mit seinen Scheinwerfern meinen Sensor durcheinander gebracht.
Wenn aber die Uhrzeit nach Sunset ist, darf der Sensor keine so hohen Werte an die Datenbank liefern.

Dann sage dem Stück Software - die Du hier nicht bekannt gegeben hast - das sie das nicht darf. Fertig.

Nur um das einzuordnen: Ein irgendwie geartetes wiederkehrendes Ereignis, dessen Herkunft bekannt ist, verleitet Dich zu der Aussage:

Immer wieder gibt es neue Ungereimtheiten mit Sensoren bei der Datenerfassung über lange Zeiträume.

Ich helfe gerne und das auch manchmal unkonventionell, aber das geht eindeutig zu weit.
Wenn DU nicht in der Lage bist einen Messwert mit dem vorhergehenden oder/und nachfolgenden zu vergleichen und/oder Grenzwerte festzulegen, dann ist da was ganz anderes faul.

freddy64:
hat das schon mal jemand getestet?

Wieso sollte ich testen, ob 2012 in ein Byte passt?!

Ich bekomme SA und SU aus dem Sketch im Serial Monitor, so wie es der Wetterbericht auch anzeigt.

SA='s schifft abends?
SU='s schifft untertags?

Mal im Ernst: Wenn es funktioniert, benutze es. Wenn nicht, dann nicht. Zudem könntest Du Sachen wie TimeLoard verlinken oder erklären, denn was das ist, weiß ich genauso wenig wie ich den BH1750 kenne.

Vielleicht funktioniert Dein Projekt ja besser, wenn Du in den Wald umziehst, wo keine Autos fahren.

Gruß

Gregor

@my_xy_projekt
Dann teste mal das Original.
Was sagt dein Kompiler?
Und ewig alte Messwerte speichern, um sie dann mit den Aktuellen zu vergleichen, ist doch auch keine Lösung.
Irgendwann sagt der Speicher: "leck mich"
Das kann man vll. auf einem PC machen, aber nicht auf einem µC.

freddy64:
Dann teste mal GitHub - probonopd/TimeLord: Arduino library with many time and date related functions... Daylight Savings, Moon Phase, Sidereal time, with the SunRise library rolled in.
Was sagt dein Kompiler?

Das brauch ich nicht. In einer der ersten Zeilen steht:

// Example by Nick Gammon

Das nächste Problem ist, das Du einen TimeLoard angibst, aber einen TimeLord benutzt. Das ist essentiell!

Irgendwann sagt der Speicher: "leck mich"

Das erinnert mich an die Antworten auf die Frage:
"Nennen Sie mir den Vorgänger und Nachfolger von X"

Kannst Du? Dann jetzt - bevor ich heute in den Sack haue.

Das erinnert mich an die Antworten auf die Frage:
“Nennen Sie mir den Vorgänger und Nachfolger von X”

42

Hier eine Anleitung für TimeLord. Ich habe TimeLord im Einsatz für ein Arduino ESP8266 Zeitschaltuhr Projekt.

Ich hätte auch gedacht dass, in diesem Fall, eine Abweichung vom Durchschnitt Ansatz wäre besser.

TimeLord Arduino Library.pdf (90.6 KB)

Hallo,

schau mal bei Fips nach da findest Du auch was. Ein bisschen angepasst, auf einem eigenen Tab schon läuft´s im eigenen Projekt.

Heinz