Diese Webseite verwendet Cookies. Durch die Nutzung der Webseite stimmst Du der Verwendung von Cookies zu. Datenschutzinformationen [x]

Sie sind nicht angemeldet.

Werbung

Boote kaufen

Windstärken

Windstärkentabelle

Andreas29

Salzbuckel

  • »Andreas29« ist der Autor dieses Themas

Beiträge: 2 403

Wohnort: OWL-zu weit weg vom Wasser

Schiffsname: Farewell

Bootstyp: Friendship 28

Rufzeichen: Gibt´s nur auf Anfrage

MMSI: die auch

  • Nachricht senden

1

Freitag, 8. November 2019, 08:51

Raspberry Systemzeit automatisch über NMEA-Datenstrom setzen. Wie?

Hi,

ich habe offenbar noch nicht die richtigen Suchbegriffe verwendet.

Gibt es ein kleines Programm oder script um aus einem NMEA-Datenstrom (mit den GPS NMEA-Datensätzen) die Systemzeit und Datum des Raspis zu setzen?
Der Raspi verliert ja nach jedem Ausschalten die Datums- und Zeitinformationen.
Bisher habe ich sie händisch eingegeben und gesetzt nach Wiedereinschalten.
Würde ich gerne automatisch machen lassen, da ja der Raspi eh am NMEA-Datennetz hängt und daher Zugriff auf Datums- und Zeitinformationen hat.

Danke.

Grüße

Andreas
Jahrzehntelang haben sie die Kriegsgeneration gefragt, wie das alles passieren konnte.
Jetzt glauben sie jeden Mist aus dem Internet, schimpfen auf die Lügenpresse, verachten das Politikerpack, pöbeln gegen Flüchtlinge,
verunglimpfen den Rechtsstaat und wählen eine "Alternative für Deutschland".
So passiert das!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Andreas29« (8. November 2019, 10:43)


34fuss

Admiral

Beiträge: 875

Schiffsname: GOTLAND

Bootstyp: HR 34

Heimathafen: Lubmin

  • Nachricht senden

2

Freitag, 8. November 2019, 09:42

der ntpd hat ein GPS-Modul. Das liest NMEA183-Sätze von einem Serial-Port. Verwende bei mir eine USB-GPS-Maus für diesen Zweck. So ist es unabhängig vom Bordnetz. Die Einrichtung war nbissl tricky, funktioniert nun seit Jahren wunderbar.

handbreit
Jürgen

columbus488

Schief-made

Beiträge: 14 827

Schiffsname: Azurit

Bootstyp: Spirit 28 ( van Heygen )

Heimathafen: Kühlungsborn

Rufzeichen: DD7917

MMSI: 211 625 930

  • Nachricht senden

3

Freitag, 8. November 2019, 11:41

wie hast du die automatische Zeitstellung realisiert, das Problem steht nämlich auch auf meiner Winteragenda ;(

edit:
@Andreas29:; @34fuss: könnt ihr damit was anfangen ? Hab ich eben gefunden aber jetzt leider nicht die Zeit um mich da reinzulesen etc...
http://raspberry.tips/raspberrypi-tutori…ehen-zeitserver
Date Caesari quae sunt Caesaris ...

Andreas29

Salzbuckel

  • »Andreas29« ist der Autor dieses Themas

Beiträge: 2 403

Wohnort: OWL-zu weit weg vom Wasser

Schiffsname: Farewell

Bootstyp: Friendship 28

Rufzeichen: Gibt´s nur auf Anfrage

MMSI: die auch

  • Nachricht senden

4

Freitag, 8. November 2019, 11:58

Hi,

nach weiterer Recherche gibt es offenbar zwei Möglichkeiten.

Über NTP oder über GPSD und ein kleines phyton Script.

Phyton script: raspi forum

und für den Weg über NTP habe ich hier ein howto gefunden.

@34fuss: Kannst Du mal bitte Deine /etc/ntp.conf - Datei hinterlegen, dass man die sich anschauen kann? Danke.

Ich präferiere im Augenblick den Weg 1. Bis ich wieder auf dem Boot bin und GPS-Zugriff habe ist es aber noch etwas hin ;(

Grüße

Andreas
Jahrzehntelang haben sie die Kriegsgeneration gefragt, wie das alles passieren konnte.
Jetzt glauben sie jeden Mist aus dem Internet, schimpfen auf die Lügenpresse, verachten das Politikerpack, pöbeln gegen Flüchtlinge,
verunglimpfen den Rechtsstaat und wählen eine "Alternative für Deutschland".
So passiert das!

chrhartz

Kapitän

Beiträge: 585

Wohnort: München

Bootstyp: Neptun 20

Heimathafen: Bernau, Chiemsee

  • Nachricht senden

5

Freitag, 8. November 2019, 13:06

Ich habe dies hier gefunden, offenbar geht es auch ohne python script:

http://blog.petrilopia.net/linux/raspber…ime-gps-dongle/

Bei OpenPlotter ist die Funktion übrigens eingebaut. Mit Node Red sollte es auch
nicht so schwierig sein.

Grüße,
Christian
Neptun 20, Segelnummer 950, Honda 5BFU, Liegeplatz Bernau/Chiemsee

6

Freitag, 8. November 2019, 15:39

offenbar geht es auch ohne python script:


Programmiersprache ist relativ egal
Das gleiche in bash

Quellcode

1
2
3
4
5
#!/bin/bash

if [ -n $(echo $1 | grep RMC) ]
  date -s -u  +%H%M%S.%N $(echo $1 | cut -d, -f2)
fi

Problematisch ist Zeitsprung über Mitternacht. Das Datum ist nur in ZDA NMEA Satz enthalten..Oder?

Andreas29

Salzbuckel

  • »Andreas29« ist der Autor dieses Themas

Beiträge: 2 403

Wohnort: OWL-zu weit weg vom Wasser

Schiffsname: Farewell

Bootstyp: Friendship 28

Rufzeichen: Gibt´s nur auf Anfrage

MMSI: die auch

  • Nachricht senden

7

Freitag, 8. November 2019, 16:07

Hi,

Zeitsprung über Mitternacht ist ziemlich egal, wenn man die Systemzeit und Datum nur einmal nach repower über NMEA GPS setzt. Danach ist die Uhr des Raspis für die kommenden Tage genau genug.

Ja mit einem Signal-K- Server gibt es noch eine Möglichkeit, vom Opencpn Forum wurde hierauf verwiesen.

@BlackSea: Ich muss zugeben, mit den bash Kommandos habe ich mich bisher nicht weiter auseinandergesetzt. Ich verstehe das bash-Scribt noch nicht so richtig. Muss ich da nicht noch irgendwie die Quelle (dev/tty/...) definieren???

Grüße

Andreas
Jahrzehntelang haben sie die Kriegsgeneration gefragt, wie das alles passieren konnte.
Jetzt glauben sie jeden Mist aus dem Internet, schimpfen auf die Lügenpresse, verachten das Politikerpack, pöbeln gegen Flüchtlinge,
verunglimpfen den Rechtsstaat und wählen eine "Alternative für Deutschland".
So passiert das!

8

Freitag, 8. November 2019, 17:07

@andreas29

ich kenne nicht detailiert dein setup. Das war nur ein Beispiel. Angenommen OpenCPN hat ein TCP Output auf port 20220 dann kann das so aussehen

Quellcode

1
2
3
4
5
6
7
8
9
10
#!/bin/bash

exec 3<>/dev/tcp/127.0.0.1/20220
while read msg<&3
do
  if [ -n $(echo $msg | grep RMC) ]
    #hier noch prüfung für timedrift einbauen z.B. 60s
    date -s -u  +%H%M%S.%N $(echo $msg | cut -d, -f2)
  fi
done

Andreas29

Salzbuckel

  • »Andreas29« ist der Autor dieses Themas

Beiträge: 2 403

Wohnort: OWL-zu weit weg vom Wasser

Schiffsname: Farewell

Bootstyp: Friendship 28

Rufzeichen: Gibt´s nur auf Anfrage

MMSI: die auch

  • Nachricht senden

9

Freitag, 15. November 2019, 13:24

Lösung für mich gefunden

Hi,

ich habe in den letzten Tagen mal ein bisschen rumprobiert.
Damit ich testen konnte (und damit ich mal eine zweite GPS-Quelle an Bord nutzen kann) habe ich mir eine GPS-Maus besorgt.
Es handelt sich um eine Navilock NL-602U.

Einrichten habe ich unter Windows gemacht, dann an den Raspi geklemmt und sie wurde problemlos erkannt und sowohl gpsmon als auch xgps zeigten die Daten.
Entsprechende Verbindung unter Opencpn eingerichtet, damit wurden dann auch die GPS-Daten in OC erkannt und verarbeitet.
Das klappte also schon mal soweit

Dann habe ich mich mal daran gesetzt und versucht die Systemzeit des Raspis durch die GPS-Zeit setzen zu lassen.

Ich habe es ja oben schon geschrieben, für mich reicht es, wenn ich nach dem booten des Raspis die Systemzeit einmalig durch das GPS setzen lasse. Es muss nicht ständig nachjustiert werden. Daher habe ich den Weg über NTP nicht weiter verfolgt sondern mich auf die Lösung mit dem python-script fixiert.

Der in dem obigen Beitrag verlinkte Forenbeitrag führt letztlich zu einer Quelle für ein python-script welches dann nach herunterladen und Extraktion tatsächlich funktionierte.
Leider mit einem kleinen Haken. Die Systemzeit wird trotz Definition von Zeitzone immer auf UTC gesetzt und nicht auf CET (was ja UTC+1 bzw. im Sommer UTC+2 ist) ;( .
Das scheint damit zusammenzuhängen, dass die verwendeten Übergabeparameter so nicht mehr durch gpsd komplett unterstützt werden oder so.
Aber wenn man nun in dem python-script einen kleinen Trick anwendet klappt´s. Ich habe die Zeitzone erst auf UTC gesetzt, dann lasse ich die Systemzeit durch die GPS Zeit setzen und anschließend setze ich die Zeitzone wieder auf CET. Tataa schon hat der Raspi eine richtige lokale Systemzeit :)

Anschließend habe ich diese python-Datei noch dahingehend modifiziert, dass man sie mit einem Desktop-Icon aufrufen kann.

Anbei sind zwei *.txt Dateien.
Die Datei gpstime1 ist das Pythonscript. Muss auf den Raspi passend dahin wo man mag. Anschließend das Suffix ändern von .txt in .py
Dann muss diese Datei noch ausführbar gemacht werden. Dafür in dem Pfad wo die Datei liegt im Terminal eingeben: chmod +x NAME.py (NAME ist der Name der python-Datei,
Auf dem Desktop eine neue Datei erstellen und diese umbenennen in Name.desktop (Name ist dann zu wählen nach Lust und Laune)
Den Inhalt von desktopicon in diese Datei kopieren. Dabei muss dann die Pfad und Namensangabe (mit .py) bei der Exec-Anweisung vervollständigt werden.
Das Icon kann ja auch noch nach Geschmack angepasst werden, in erster schneller Suche habe ich kein anderes gefunden.

Hat man alles richtig gemacht und kann man die GPS-Daten mit gpsmon oder xgps anzeigen lassen, sollte eigentlich nach doppelklick auf das desktopicon ein Terminalfenster öffnen, ein paar Zeilen durchlaufen und anschließend das Fenster wieder schließen. Dann ist die Systemzeit passend gestellt.

Wenn man nun noch das Ganze als AutostartDatei anlegt würde der Raspi automatisch beim booten die Systemzeit herholen. Wollte ich aber nicht.

Hinweis: ggf. muss man die gpsd-Dienste installieren falls noch nicht passiert: sudo apt-get install gpsd-clients gpsd


Grüße

Andreas
»Andreas29« hat folgende Dateien angehängt:
  • gpstime1.txt (710 Byte - 8 mal heruntergeladen - zuletzt: 27. April 2020, 14:37)
  • desktopicon.txt (280 Byte - 3 mal heruntergeladen - zuletzt: 25. April 2020, 20:47)
Jahrzehntelang haben sie die Kriegsgeneration gefragt, wie das alles passieren konnte.
Jetzt glauben sie jeden Mist aus dem Internet, schimpfen auf die Lügenpresse, verachten das Politikerpack, pöbeln gegen Flüchtlinge,
verunglimpfen den Rechtsstaat und wählen eine "Alternative für Deutschland".
So passiert das!

34fuss

Admiral

Beiträge: 875

Schiffsname: GOTLAND

Bootstyp: HR 34

Heimathafen: Lubmin

  • Nachricht senden

10

Samstag, 18. Januar 2020, 17:16

Habe gerade meinen Bord-Pi vor mir und nach der Konfiguration für die GPS-Zeit gesehen.

Es muss die /etc/ntp.conf angepasst werden. Folgende 2 Zeilen sind die entscheidend:

Quellcode

1
2
server 127.127.20.1  prefer mode 17
fudge  127.127.20.1  flag1 0


Ggf. muss die Zahl hinter mode etwas angepasst werden. Hier ist die Baudrate mit 9600 angegeben.
Eine Doku, in der die Einstellwerte beschrieben sind, findet man hier: https://www.eecis.udel.edu/~mills/ntp/ht…s/driver20.html

Der Dienst ntpd sucht nach einem Gerät /dev/gps1. Da dieses nicht vorhanden ist müssen wir es anlegen. Der beste Weg hiefür ist ein udev-Script.
Der wird automatisch ausgeführt wenn das GPS-Gerät von System erkannt wird, beim Start oder auch später. Der Script im Anhang dient als Vorlage und muss auf eure GPS-Maus angepasst werden. Es muss die Vendor- u. Produkt-Id angegeben werden. Man findet die relativ einfach heraus, indem man kurz nach Anstecken am USB dmsg ausführt. In einer der letzten Zeilen stehen die Werte.

So sieht meine Konfiguration aus. Es gibt noch die Alternativemit gpsd. Hat den Vorteil, dass dann das GPS-Gerät mehreren Anwendungen zur Verfügung steht.
Das hab ich vor Jahren mal versucht und nicht zum Laufen bekommen.

Hier meine Scripte. Musste die Endung .txt dranhängen, sonst hätte ich nicht hochladen können. Kann man ja wieder entfernen...

index.php?page=Attachment&attachmentID=238255
index.php?page=Attachment&attachmentID=238256

11

Sonntag, 26. Januar 2020, 15:40

Es muss die /etc/ntp.conf angepasst werden. Folgende 2 Zeilen sind die entscheidend:


die Datei ntp.conf existiert bei mir nicht. nicht in /etc noch woanders
nutze openplotter

Andreas29

Salzbuckel

  • »Andreas29« ist der Autor dieses Themas

Beiträge: 2 403

Wohnort: OWL-zu weit weg vom Wasser

Schiffsname: Farewell

Bootstyp: Friendship 28

Rufzeichen: Gibt´s nur auf Anfrage

MMSI: die auch

  • Nachricht senden

12

Montag, 27. Januar 2020, 07:30

Hi,

@Heiko:

Das könnte daran liegen, dass der ntp-Dienst (noch) nicht installiert ist.

Etwas zu dem Thema ntp kannst Du mal hier nachlesen. Es git noch zig andere Seiten zu dem Thema.

Alternativ geht auch der von mir beschriebene Weg. Mit der node-red Anbindung geht´s auch, habe ich mich aber bis zu einem Ergebnis nicht mit auseinandergesetzt.

Grüße

Andreas
Jahrzehntelang haben sie die Kriegsgeneration gefragt, wie das alles passieren konnte.
Jetzt glauben sie jeden Mist aus dem Internet, schimpfen auf die Lügenpresse, verachten das Politikerpack, pöbeln gegen Flüchtlinge,
verunglimpfen den Rechtsstaat und wählen eine "Alternative für Deutschland".
So passiert das!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Andreas29« (27. Januar 2020, 21:06)


13

Dienstag, 28. Januar 2020, 00:30

Ich hab die Pakete für ntp nach installiert. Aber da ich hier zu Hause kein GPS Gerät habe, kann ich es nicht weiter testen. Das werde ich dann an Bord machen müssen.
Danke für deine Hilfe.

Andreas29

Salzbuckel

  • »Andreas29« ist der Autor dieses Themas

Beiträge: 2 403

Wohnort: OWL-zu weit weg vom Wasser

Schiffsname: Farewell

Bootstyp: Friendship 28

Rufzeichen: Gibt´s nur auf Anfrage

MMSI: die auch

  • Nachricht senden

14

Dienstag, 28. Januar 2020, 07:21

Moin,

@Heiko: Man kann sich hilfsweise mit einem Rechner mit seriellem Ausgang (oder mit USB/seriell Adapter) und einem NMEA-Simulationsprogramm behelfen um z.B. NMEA Datenströme am Raspi zu testen.
Das geht aber nicht bei der ntp-Geschichte, weil die dafür nötigen Daten durch die (frei erhältlichen) NMEA Simulationsprogramme nicht gesendet werden. Jedenfalls nicht von denen, die ich bisher genutzt habe.

Grüße

Andreas
Jahrzehntelang haben sie die Kriegsgeneration gefragt, wie das alles passieren konnte.
Jetzt glauben sie jeden Mist aus dem Internet, schimpfen auf die Lügenpresse, verachten das Politikerpack, pöbeln gegen Flüchtlinge,
verunglimpfen den Rechtsstaat und wählen eine "Alternative für Deutschland".
So passiert das!

34fuss

Admiral

Beiträge: 875

Schiffsname: GOTLAND

Bootstyp: HR 34

Heimathafen: Lubmin

  • Nachricht senden

15

Dienstag, 28. Januar 2020, 08:43

Noch eine Idee zum ntp : Im openplotter ist mit hoher Wahrscheinlichkeit gpsd eingerichtet. Dann empfiehlt es sich den ntp darauf zu konfigurieren und nicht auf das GPS-Gerät selbst (Serial-Port, an dem die NMEA-Daten vom GPS reinkommen).
Die Konfiguration ist hier beschrieben. Ganz nach unten scrollen, Type 46.

Was Testdaten betrifft, es sollte doch nicht soooo schwierig sein einen Shell-Sript zu bauen der jede Sekunde aus der Systemzeit einen RMS-Datensatz baut und über den Serial-Port zu Deinem Pi schickt.


handbreit
Jürgen

Andreas29

Salzbuckel

  • »Andreas29« ist der Autor dieses Themas

Beiträge: 2 403

Wohnort: OWL-zu weit weg vom Wasser

Schiffsname: Farewell

Bootstyp: Friendship 28

Rufzeichen: Gibt´s nur auf Anfrage

MMSI: die auch

  • Nachricht senden

16

Dienstag, 28. Januar 2020, 09:24


Was Testdaten betrifft, es sollte doch nicht soooo schwierig sein einen Shell-Sript zu bauen der jede Sekunde aus der Systemzeit einen RMS-Datensatz baut und über den Serial-Port zu Deinem Pi schickt.


Hi,

das hängt ja extrem von der Nerdstufe ab ;) :D

Grüße

Andreas
Jahrzehntelang haben sie die Kriegsgeneration gefragt, wie das alles passieren konnte.
Jetzt glauben sie jeden Mist aus dem Internet, schimpfen auf die Lügenpresse, verachten das Politikerpack, pöbeln gegen Flüchtlinge,
verunglimpfen den Rechtsstaat und wählen eine "Alternative für Deutschland".
So passiert das!

columbus488

Schief-made

Beiträge: 14 827

Schiffsname: Azurit

Bootstyp: Spirit 28 ( van Heygen )

Heimathafen: Kühlungsborn

Rufzeichen: DD7917

MMSI: 211 625 930

  • Nachricht senden

17

Sonntag, 26. April 2020, 21:08

@Andreas29: Moin, ich würde gern den Trööt wieder aufwärmen :D
ich hab gestern die gpstime1.txt eingespielt.... umbenannt in xxxx.py und gestartet. Allerdings bekomme ich eine Fehlermeldung: "Kindprozess »/home/Navi/gpstime1.py« konnte nicht ausgeführt werden (Datei oder Verzeichnis nicht gefunden)"

bzw sagt
Python 3.4.2 (/usr/bin/python3)
>>> %Debug gpstime1.py
File "/home/Navi/gpstime1.py", line 7
print 'Attempting to access GPS time...'
^
SyntaxError: Missing parentheses in call to 'print'

>>>

eine Idee? Ich habe derzeit keine GPS_Daten am Eingang, da der Raspi die von der Funke zieht und die ist auf dem Boot. Dann ist auch kein gpsd am laufen, ich nutze Open CPN mit seinen eigenen Werkzeugen...
wo kann ich ansetzen?
Date Caesari quae sunt Caesaris ...

wellenvogel

Kapitän

Beiträge: 665

Wohnort: Bernau

Schiffsname: Quetzal

Bootstyp: Contest 28

Heimathafen: Ueckermünde

  • Nachricht senden

18

Sonntag, 26. April 2020, 21:18

Python 3...
Script scheint noch für 2.7 zu sein.
Entweder Script Umbauen (z.B. print ordentlich mit ()) oder 2.7 verwenden.

Andreas29

Salzbuckel

  • »Andreas29« ist der Autor dieses Themas

Beiträge: 2 403

Wohnort: OWL-zu weit weg vom Wasser

Schiffsname: Farewell

Bootstyp: Friendship 28

Rufzeichen: Gibt´s nur auf Anfrage

MMSI: die auch

  • Nachricht senden

19

Sonntag, 26. April 2020, 21:39

Hi,

ich melde mich morgen nachmittag dazu nochmal. Gerade ist die Zeit knapp.

Grüße

Andreas
Jahrzehntelang haben sie die Kriegsgeneration gefragt, wie das alles passieren konnte.
Jetzt glauben sie jeden Mist aus dem Internet, schimpfen auf die Lügenpresse, verachten das Politikerpack, pöbeln gegen Flüchtlinge,
verunglimpfen den Rechtsstaat und wählen eine "Alternative für Deutschland".
So passiert das!

columbus488

Schief-made

Beiträge: 14 827

Schiffsname: Azurit

Bootstyp: Spirit 28 ( van Heygen )

Heimathafen: Kühlungsborn

Rufzeichen: DD7917

MMSI: 211 625 930

  • Nachricht senden

20

Montag, 27. April 2020, 14:13

Danke für den Tipp, jetzt meldet er zu mindestens "no GPS present" . Also wie es sein sollte. Mit der Geschichte gpsd muss ich dann mal sehen,
Date Caesari quae sunt Caesaris ...

Counter:

Gezählt seit: 4. Februar 2014, 08:39, nur eingeloggte Mitglieder
 Zugriffe:   Hits heute: 2 099   Hits gestern: 2 566   Hits Tagesrekord: 12 076   Hits gesamt: 5 550 755   Hits pro Tag: 2 402,58 
 Seitenaufrufe:   Klicks heute: 13 730   Klicks gestern: 16 200   Klicks Tagesrekord: 154 353   Klicks gesamt: 42 923 203   Klicks pro Tag: 18 578,85 

Kontrollzentrum