xSnowHeadx / FakeGPS

ESP8266-WTA-timeserver for Nixie-clocks from PV Electronics
GNU General Public License v3.0
18 stars 9 forks source link

FakeGPS und die Nixie-Kits von PV Electronics #4

Closed OldTinkerer closed 9 months ago

OldTinkerer commented 10 months ago

DANKE MANN!

War genau das, was ich gesucht habe. Hatte noch 6 Stk. IN-18 (2014 direkt aus der Ukraine) herumliegen, wollte aber kein GPS-Dongle verwenden, sondern WLAN/NTP nutzen. Der Pete von denen wollte mir unbedingt das GPS-Dongle verscherbeln. Dank Deines Beitrages erspare ich mir zusätzliches Coding ;-)

Liebe Grüße Andreas

OldTinkerer commented 10 months ago

...kleiner Wermutstropfen: Kriege das mit der jüngsten Arduino IDE (2.2.1) NICHT zum Laufen, habe Compiler-Fehler, die ich nicht wegbekomme...

xSnowHeadx commented 10 months ago

Schade. Ich nutze normalerweise die sloeber-IDE. Zum testen habe ich aber mal die Arduino-IDE auf 2.2.1 upgedatet, die drei Quellfiles in den Sketch-Unterordner "fake_GPS" gepackt, fake_GPS.ino geöffnet, den "Generic ESP8266" als Board ausgewählt und den Compiler angestoßen. Der hat problemlos durchgebaut:

Screenshot

Ich kann Dir nur raten, nach Deinen Compilerfehlern zu googlen und sie Stück für Stück abzustellen.

OldTinkerer commented 10 months ago

...hab's hinbekommen, danke SnowHead. Merkwürdigerweise motzte der Compiler beim "Double Reset...", habe das über die Bibliothek nachgebügelt, IDE neu gestartet und fehlerfrei compiliert bekommen ;-) Läuft jetzt auf einem Wemos mini D1 V3 (habe davon ca. 30 Stk. herumliegen), leider noch Probleme bei POWER OFF/ON, hier springt er mir wieder in die AP-Routine und verwendet NICHT den schon eingetragenen AP...daran tüftle ich gerade ;-)

OldTinkerer commented 10 months ago

FAZIT: Bin zu alt und/oder zu doof...

Setup: Wemos mini D1 läuft wie erwartet, SSID und PW sind eingetragen, das Ding läuft wie erwartet (serieller Monitor, direkter Ausgang am Wemos)

Challenge: Stromausfall! 5V sind weg, kommen wieder...Standort unverändert, AP in unmittelbarer Nähe... => Wemos springt in die AP-Schleife und verbleibt dort. Drücke ich Reset (Taste), holt er sich die hinterlegten Werte meines AP und läuft wie erwartet...

Finde im Sketch nicht den Hinweis, das gebacken zu bekommen...mein Problem bleibt der Zustand nach einem Stromausfall...

xSnowHeadx commented 10 months ago

Ich habe noch nicht mit dem Wemos gearbeitet. Eventuell macht der keinen sauberen Power-On-Reset. Klemme doch testhalber mal einen 100nF-Kondensator über den Reset-Taster.

OldTinkerer commented 10 months ago

...das wäre viel zu einfach, das ist es nicht. Ich habe einige Wemos mit Tasmota geflasht, die werkeln schon jahrelang mit HomeAssistant zusammen, power off/on ist denen egal, die erfangen sich sauber und binden sich ordnungsgemäß wieder in WLAN u.ä. Netzen selbstständig wieder ein. Ich habe in der seriellen Ausgabe bemerkt, dass bei power off/on SINGLE RESET angezeigt wird, zuvor der AP sauber verbunden wird, aber er auf die WLAN Eingabemaske springt. Beim Betätigen des RESET-Tasters kommt der DOUBLE RESET, damit läuft er wie erwartet weiter. Ich möchte GitHub nicht überladen, aber hier einmal die serielle Ausgabe nach power off/on:

wm:connectTimeout not set, ESP waitForConnectResult... wm:AutoConnect: SUCCESS wm:STA IP Address: 192.168.0.251 connected...yeey :) SINGLE Reset Detected wm:StartAP with SSID: FakeGPS-AP wm:AP IP address: 192.168.4.1 wm:Starting Web Portal

Hier nach Betätigung der RESET-Taste:

wm:AutoConnect: ESP Already Connected wm:AutoConnect: SUCCESS wm:STA IP Address: 192.168.0.251 autoConnect returned 1 WiFi.status() = 3 IP address: 192.168.0.251 AskCurrentEpoch called time answer received, length=342 $GPRMC,123052,A,0000.0000,N,00000.0000,E,0.0,0.0,030124,0.0,E,S0A $GPRMC,123100,A,0000.0000,N,00000.0000,E,0.0,0.0,030124,0.0,E,S*0C

xSnowHeadx commented 10 months ago

Ich sehe gerade, daß die Reaktionen auf Double-Reset in WTA-Client.cpp ab Zeile 70 vertauscht sind. Das Portal soll ja bei Double-Reset geöffnet werden. Tausche testhalber mal die beiden Reaktionen aus (serielle Meldungen mit anpassen).

OldTinkerer commented 9 months ago

That's it! Up & running ;-)

Big THX!

xSnowHeadx commented 9 months ago

Danke für die Rückmeldung. Als ich es auf dem Computer fixen wollte stellte ich fest, daß das schon lange gefixt war. Ich hatte nur vergessen, es zu committen. Sorry!

xSnowHeadx commented 9 months ago

committed Kann geschlossen werden.

xSnowHeadx commented 9 months ago

Da WorldTimeApi.org seinen kostenlose Dienst am 1. Februar 2024 beendet und irrwitzige $468 pro Jahr für die einfache tägliche Korrektur einer Wohnzimmeruhr verlangt, wurde dieser Service aus der Software entfernt. Stattdessen werden jetzt die API -Dienste von Abstract verwendet.

OldTinkerer commented 9 months ago

Hi SnowHead, habe das jetzt mal so auf die Schnelle compiliert, kommen zwar keine Fehler, aber im seriellen Monitor sieht das NICHT gut aus. Komme gar nicht mehr, dazu das reinzukopieren, da läuft etwas noch nicht ganz sauber...

xSnowHeadx commented 9 months ago

@OldTinkerer Hast Du die zwei API-Keys (siehe README.md) eingefügt? Anderenfalls schlagen die API-Aufrufe fehl und werden häufig und schnell wiederholt. Bei mir läuft es sauber. Habe inzwischen auch Lixie, HollowClock, MinimalClock und SegmentedClock umgestellt und erfolgreich getestet. Werde die dann auch noch vor dem 1. Februar committen.

OldTinkerer commented 9 months ago

Danke für den Tipp, setzte ich gleich um! Was mir noch einfällt, das habe ich noch im "alten" Code eingebaut:

Bender gab den Tipp mit dem Datum, damit sieht der String wieder so aus, wie aus der Spec. vom GPS-Chip ;-)


Hi ! For PV Electronics string -

sprintf(tstr, "$GPRMC,%02d%02d%02d,A,0000.0000,N,00000.0000,E,0.0,0.0,%02d%02d%02d,0.0,E,S", tmtime->tm_hour, tmtime->tm_min, tmtime->tm_sec, tmtime->tm_mday, tmtime->tm_mon + 1, tmtime->tm_year - 100);


OldTinkerer commented 9 months ago

SO, läuft wie gewohnt, habe meine Keys eingetragen. Hoffentlich bleibt der API von Abstract etwas länger kostenfrei, wenn nicht, dann muss ich mir etwas mit NTP-Servern und automatischer DST-Korrektur einfallen lassen...

Danke nochmals SnowHead!!!

Liebe Grüße OldTinkerer

xSnowHeadx commented 9 months ago

Hast Recht. Das mit den APIs ist zu umständlich. Wie vorgeschlagen wird jetzt wieder NTP verwendet und der Timezone-Offset automatisch ermittelt. Es ist keine Registrierung irgendwo mehr notwendig.

OldTinkerer commented 9 months ago

...ich hatte mit dem Pete von PV-Electronics eine Diskussion darüber, der bietet jetzt nämlich ebenfalls eine Lösung basierend auf einem kleinen 8266er an, allerdings muss man hier die DST noch manuell nachjustieren und das nervt...

xSnowHeadx commented 9 months ago

... und kostet "bloß" 40€. :scream: :-o

OldTinkerer commented 9 months ago

...coole neue NTP-Lösung (läuft bereits an meine Nixie)! By the way, evtl. könntest Du noch die NTPtime-Elemente dazukopieren ;-)

regards, OltTinkerer

xSnowHeadx commented 9 months ago

Welche Elemente meinst Du und wohin sollen die kopiert werden?

OldTinkerer commented 9 months ago

Compiler suchte bei mir nach "NTPClient.h", hab's auf GitHub gefunden, reinkopiert, passt! ;-)

xSnowHeadx commented 9 months ago

Ah, danke. Reinkopieren wäre nicht sauber aber ich werde den Link zur Git-Library mit in die README.md nehmen.

OldTinkerer commented 9 months ago

Perfekt! ;-)