[gelöst] RPI3 GPS Maus installieren USG SiRFIV USB GPS Receiver

Begonnen von UweUwe, 06 März 2019, 08:51:23

Vorheriges Thema - Nächstes Thema

UweUwe

pi@vagabundi:~ $ cat /opt/fhem/fhem.cfg | grep initialUsbCheck
define initialUsbCheck notify global:INITIALIZED usb create
setuuid initialUsbCheck 5c76d022-f33f-813e-ea4a-b5b2b44cc116842a
attr initialUsbCheck DbLogExclude .*

Definitiv.

Hab mich noch gar nicht bei dir bedankt für den Support, warst einfach zu schnell. Soll ich jetzt deaktivieren und reboot..?


MadMax-FHEM

#16
Dann Maus abstecken und booten und dann:

attr initialUsbCheck disable 1

EDIT: nach Boot ohne GPS-Maus kommst du ja auf fhem!?

EDIT2: wenn es mehrere Möglichkeiten gibt reicht (mir) das Ergebnis einer Variante ;)

Danach sollte (hoffentlich) fhem auch mit gesteckter Maus laufen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Hi,

leider war dies noch nicht die Lösung für GPS:
Internals:
   DEF        global:INITIALIZED usb create
   FUUID      5c76d022-f33f-813e-ea4a-b5b2b44cc116842a
   NAME       initialUsbCheck
   NOTIFYDEV  global
   NR         13
   NTFY_ORDER 50-initialUsbCheck
   REGEXP     global:INITIALIZED
   STATE      disabled
   TYPE       notify
   READINGS:
     2019-03-12 22:26:39   state           disabled
Attributes:
   DbLogExclude .*
   disable    1


pi@vagabundi:~ $ gpsd -D5 -b -n -N /dev/ttyUSB0
gpsd:INFO: launching (Version 3.16)
gpsd:IO: opening IPv4 socket
gpsd:ERROR: can't bind to IPv4 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:IO: opening IPv6 socket
gpsd:ERROR: can't bind to IPv6 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:INFO: command sockets creation failed, netlib errors -1, -1

MadMax-FHEM

#18
Zitat von: UweUwe am 12 März 2019, 22:31:25
Hi,

leider war dies noch nicht die Lösung für GPS:
Internals:
   DEF        global:INITIALIZED usb create
   FUUID      5c76d022-f33f-813e-ea4a-b5b2b44cc116842a
   NAME       initialUsbCheck
   NOTIFYDEV  global
   NR         13
   NTFY_ORDER 50-initialUsbCheck
   REGEXP     global:INITIALIZED
   STATE      disabled
   TYPE       notify
   READINGS:
     2019-03-12 22:26:39   state           disabled
Attributes:
   DbLogExclude .*
   disable    1


pi@vagabundi:~ $ gpsd -D5 -b -n -N /dev/ttyUSB0
gpsd:INFO: launching (Version 3.16)
gpsd:IO: opening IPv4 socket
gpsd:ERROR: can't bind to IPv4 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:IO: opening IPv6 socket
gpsd:ERROR: can't bind to IPv6 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:INFO: command sockets creation failed, netlib errors -1, -1


Das war auch nicht das Ziel.
Sondern nur erst mal (hoffentlich) fhem mit gesteckter Maus nutzen zu können...

Bzgl. gpsd hab ich grad keine Idee...
...außer evtl. mal beim Aufruf einen Port angeben der auf jeden Fall frei ist...

Da ich gpsd nicht wirklich kenne und auch keine GPS-Maus etc. hab kann ich auch nicht mehr viel helfen. Evtl. mal in einem Raspberry-Forum (du hast ja was verlinkt, wenn ich mich recht erinnere) nachfragen. Oder hier einen neuen Thread aber dann brauchst du Glück, dass jemand hier ist, der Ahnung hat und "drüber stolpert"...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Hi, komischerweise bekomme ich sowohl bei
gpsd -D5 -b -n -N /dev/ttyUSB0 (müsste richtig sein)
und gpsd -D5 -b -n -N /dev/ttyACM0 diesselbe Fehlermeldung.
pi@vagabundi:~ $ gpsd -D5 -b -n -N /dev/ttyUSB0
gpsd:INFO: launching (Version 3.16)
gpsd:IO: opening IPv4 socket
gpsd:ERROR: can't bind to IPv4 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:IO: opening IPv6 socket
gpsd:ERROR: can't bind to IPv6 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:INFO: command sockets creation failed, netlib errors -1, -1



UweUwe

Hi, das erste Ziel hast du erreicht, auch bei gesteckter Maus funktionieren FHEM Zugriffe. Merci. Danke.
Vielleicht widerhole ich mich:
1. Maus hat fix und liefert fleissig mit
pi@vagabundi:~ $ stty -F /dev/ttyUSB0 4800
pi@vagabundi:~ $ cat /dev/ttyUSB0
Daten.. weiterhin. USB0 müsste korrekt sein.




MadMax-FHEM

Zitat von: UweUwe am 12 März 2019, 22:41:07
Hi, das erste Ziel hast du erreicht, auch bei gesteckter Maus funktionieren FHEM Zugriffe. Merci. Danke.
Vielleicht widerhole ich mich:
1. Maus hat fix und liefert fleissig mit
pi@vagabundi:~ $ stty -F /dev/ttyUSB0 4800
pi@vagabundi:~ $ cat /dev/ttyUSB0
Daten.. weiterhin. USB0 müsste korrekt sein.

Ja, denke auch, dass /dev/ttyUSB0 richtig ist...

Habe hier etwas gefunden was (zu Beginn) ähnlich deinem Problem ist: https://www.raspberrypi.org/forums/viewtopic.php?t=138711

Habs aber nicht wirklich zu Ende verfolgt...

Und wie geschrieben: ab jetzt gehen mir die Ideen aus und probieren testen kann ich mangels HW nicht...

Viel Erfolg!!

Gruß und sorry, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Hallo Mad.Max, das war ein guter Schritt weiter. gpsd lässt sich jetzt starten und bringt folgende Daten an den Bildschirm nach Eingabe von:
6,M,,0000*50
gpsd:PROG: GPGGA sentence timestamped 220026.00.
gpsd:PROG: GPGGA starts a reporting cycle.
gpsd:PROG: NTP: ntpshm_put(/dev/ttyUSB0 clock)  1552428026.000000000 @  1552428023.274300906
gpsd:IO: <= GPS: $GPGSA,A,3,27,08,10,20,18,16,21,,,,,,2.1,1.4,1.6*30
gpsd:PROG: GPGSA sets mode 3
gpsd:IO: <= GPS: $GPRMC,220026.000,A,5036.2023,N,00617.5791,E,0.00,303.64,120319,,,A*69
gpsd:PROG: GPRMC sentence timestamped 220026.00.
gpsd:PROG: GPRMC ends a reporting cycle.
gpsd:IO: <= GPS: $GPGGA,220027.000,5036.2023,N,00617.5791,E,1,07,1.4,543.4,M,47.6,M,,0000*51
gpsd:PROG: GPGGA sentence timestamped 220027.00.
gpsd:PROG: GPGGA starts a reporting cycle.
gpsd:PROG: NTP: ntpshm_put(/dev/ttyUSB0 clock)  1552428027.000000000 @  1552428024.274661574
gpsd:IO: <= GPS: $GPGSA,A,3,27,08,10,20,18,16,21,,,,,,2.1,1.4,1.6*30
gpsd:PROG: GPGSA sets mode

Der Hinweis war:
ZitatHi,
...
Try to change /lib/systemd/system/gpsd.socket
from ListenStream=127.0.0.1:2947
which listens to localhost only to
ListenStream=0.0.0.0:2947
Leider zeigt
cgps -s immer noch keine Daten an, alles nur mit Platzhaltern.

MadMax-FHEM

Startest du cgps in einem neuen/weiteren Terminal!?

Oder läuft jetzt gpsd als service nach dem Booten!?

Ansonsten: nicht wirklich hilfreiche weitere Ideen...

gpxlogger oder gpsmon probiert!?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Hallo Mad-Max,
ZitatStartest du cgps in einem neuen/weiteren Terminal!?
==> nach dem Booten starte ich manuell:
stty -F /dev/ttyUSB0 4800
cat /dev/ttyUSB0  # dann sehe ich, dass Daten kommen, dies breche ich dann ab.
sudo gpsd -D5 -b -N /dev/ttyUSB0    # das läuft auch weiter bis ich es abbreche
cgps -s  # dann bekomme ich die korrekte cgps Anzeige, jedoch mit Platzhaltern.


es bringt dasselbe, wenn ich  anstatt
sudo gpsd -D5 -b -N /dev/ttyUSB0 nur
sudo gpsd -b /dev/ttyUSB0 mache  und dann
cgps -s


MadMax-FHEM

Was heißt bis du abbrichst!?

Läuft nun gpsd weiterhin!?
Weil wenn du gpsd manuell startest/starten musst ist dann das Terminal "frei", also siehst du einen "prompt"!?

Oder erst wieder, wenn du gpsd wieder "beendest"/"abbrichst"!?

Weil gpsd muss nat. laufen, sonst gibts auch mit cgps keine Ausgaben!

Also ohne laufenden gpsd "Deamon" keine GPS-Daten...

Drum ja auch die Frage, ob du schon mal in einem Terminal gpsd gestartet hast und laufen lässt und dann in einem weiteren Terminal cgps gestartet hast...

Ist unnötig, wenn gpsd als Service nach dem Boot selber laufen würde...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

UweUwe

Hallo, Guten Morgen.
ich starte gpsd in einem Terminal und bekomme dann folgenden Output:
pi@vagabundi:~ $ sudo gpsd -D5 -b -N /dev/ttyUSB0
gpsd:INFO: launching (Version 3.16)
gpsd:IO: opening IPv4 socket
gpsd:IO: opening IPv6 socket
gpsd:ERROR: can't bind to IPv6 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:INFO: listening on port gpsd
gpsd:PROG: NTP: shmat(0,0,0) succeeded, segment 0
gpsd:PROG: NTP: shmat(32769,0,0) succeeded, segment 1
gpsd:PROG: NTP: shmat(65538,0,0) succeeded, segment 2
gpsd:PROG: NTP: shmat(98307,0,0) succeeded, segment 3
gpsd:PROG: NTP: shmat(131076,0,0) succeeded, segment 4
gpsd:PROG: NTP: shmat(163845,0,0) succeeded, segment 5
gpsd:PROG: NTP: shmat(196614,0,0) succeeded, segment 6
gpsd:PROG: NTP: shmat(229383,0,0) succeeded, segment 7
gpsd:PROG: successfully connected to the DBUS system bus
gpsd:PROG: shmget(0x47505344, 8928, 0666) for SHM export succeeded
gpsd:PROG: shmat() for SHM export succeeded, segment 262152
gpsd:INFO: stashing device /dev/ttyUSB0 at slot 0
gpsd:INFO: running with effective group ID 20
gpsd:INFO: running with effective user ID 110
gpsd:INFO: startup at 2019-03-13T06:16:16.000Z (1552457776)
was auf den ersten Blick nicht schlecht aussieht, wobei IPv6 scheitert, was das immer heisst.
Dann wechsle ich das Terminal, schaue mir nochmals die einkommenden Daten an:
$GPGSA,A,3,07,09,30,02,05,06,23,16,,,,,2.3,1.1,2.0*3B
$GPRMC,062100.000,A,5036.2133,N,00617.5674,E,0.00,317.93,130319,,,A*6E
$GPGGA,062101.000,5036.2133,N,00617.5674,E,1,08,1.1,544.7,M,47.6,M,,0000*54
$GPGSA,A,3,07,09,30,02,05,06,23,16,,,,,2.3,1.1,2.0*3B
$GPRMC,062101.000,A,5036.2133,N,00617.5674,E,0.00,317.93,130319,,,A*6F
$GPGGA,062102.000,5036.2133,N,00617.5674,E,1,08,1.1,544.7,M,47.6,M,,0000*57
und starte dann
cgps -s ohne Daten, nur Platzhalter.

UweUwe

Hallo, bin jetzt schon weiter gekommen, sehr durch die Hinweise von MadMax und folgende Seite:
https://www.raspberrypi.org/forums/viewtopic.php?t=138711
Problem lag in der unvollständigen Konfiguration. Ich hatte erwartet, dass dies mit der Installation geschieht:
1. Thema: hat man in FHEM das attr initialUsbCheck aktiviert, so blockiert die angeschlossene GPS-Maus den Zugang zu FHEM:
ZitatDann Maus abstecken und booten und dann:

Code: [Auswählen]

attr initialUsbCheck disable 1

2. Folgende Änderungen in der /lib/systemd/system/gpsd/socket durchführen:
Try to change /lib/systemd/system/gpsd.socket
from ListenStream=127.0.0.1:2947
which listens to localhost only to
ListenStream=0.0.0.0:2947


3. Folgende Änderungen in /etc/default/gpsd durchführen:
# /etc/default/gpsd
START_DAEMON="true"
GPSD_OPTIONS="-n"
DEVICES="/dev/ttyAMA0"
USBAUTO="false"
GPSD_SOCKET="/var/run/gpsd.sock"


Reboot

pi@vagabundi:~ $ stty -F /dev/ttyUSB0 4800
pi@vagabundi:~ $ sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
pi@vagabundi:~ $ cgps -s
bringt dann korrekte Daten in der cgps.

Jetzt gilt es die Daten in FHEM zu bringen. Für Tips bin ich sehr offen und sehr interessiert.



UweUwe

Hallo, möchte noch einen weiteren Update geben, der führt mich jetzt in das FHEM zurück.

Ich fasse nochmals zusammen:

1. attr initialUsbCheck disable 1 (wichtig).
2.
Zitat2. Folgende Änderungen in der /lib/systemd/system/gpsd/socket durchführen:[/u][/u]
Code: [Auswählen]

Try to change /lib/systemd/system/gpsd.socket
from ListenStream=127.0.0.1:2947
which listens to localhost only to
ListenStream=0.0.0.0:2947
kann und muss man leider wieder rückgängig machen. Ansonsten läuft das Umsetzprogramm nach FHEM nicht.
3.
Zitat
3. Folgende Änderungen in /etc/default/gpsd durchführen:
Code: [Auswählen]

# /etc/default/gpsd
START_DAEMON="true"
GPSD_OPTIONS="-n"
DEVICES="/dev/ttyAMA0"
USBAUTO="false"
GPSD_SOCKET="/var/run/gpsd.sock"
genau so ändern
4. Folgendes Programm installieren:
sudo cpan install GPSD::Parse
5. Test durchführen, ob cprs läuft:
pi@vagabundi:~ $ stty -F /dev/ttyUSB0 4800
pi@vagabundi:~ $ sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
pi@vagabundi:~ $ cgps -s

6. Subprogramm aus dem Forum nachladen und definieren:
https://forum.fhem.de/index.php/topic,75736.msg711208.html#msg711208
ZitatDann das angehängte FHEM-Modul laden. Läuft gpsd lokal, braucht man nix weiter einstellen:

Code: [Auswählen]

define meinGPS GPSD


- fertig. Ansonsten mit:

Code: [Auswählen]

define meinGPS GPSD host=192.168.77.88 port=2947


Nach einigen Sekunden kriegt man dann diverse Readings. Das Update-Intervall lässt sich per Attribut gpsd_PollInterval einstellen.

Erfolgreich dauergetestet auf einem Raspi Pi 3 (unter Raspbian Stretch Lite) mit einem Navilock NL-8002U 62523 USB-GPS-Empfänger (Ublox UBX-M8030-KT Chip) und frischem FHEM. Knownbugs sind ein paar Perl-Warnings im FHEM-Log durch die GPSD::Parse Bibliothek.
* 49_GPSD.pm (4.94 kB - runtergeladen 26 Mal.)

==> und man kommt in FHEM die readings:

Internals:
   CFGFN     
   FUUID      5c88df62-f33f-813e-674c-e2c2ebdc26cb0a2e
   NAME       meinGPS
   NR         86
   STATE      Connected
   TYPE       GPSD
   gpsdHost   127.0.0.1
   gpsdPort   2947
   pollInterval 600
   Helper:
     DBLOG:
       altitude:
         DBLogging:
           TIME       1552474374.45812
           VALUE      545.89
       lat:
         DBLogging:
           TIME       1552474374.45812
           VALUE      50.603580056
       lon:
         DBLogging:
           TIME       1552474374.45812
           VALUE      6.292890721
       state:
         DBLogging:
           TIME       1552473954.14298
           VALUE      Connected
   READINGS:
     2019-03-13 11:52:54   altitude        545.89
     2019-03-13 11:52:54   climbRate       0
     2019-03-13 11:52:54   direction       N
     2019-03-13 11:52:54   errorAltitude   10.11
     2019-03-13 11:52:54   errorClimbRate  20.22
     2019-03-13 11:52:54   errorLonLat     4.36
     2019-03-13 11:52:54   errorSpeed      8.72
     2019-03-13 11:52:54   heading         0
     2019-03-13 11:52:54   lat             50.603580056
     2019-03-13 11:52:54   lon             6.292890721
     2019-03-13 11:52:54   speed           0
     2019-03-13 11:45:54   state           Connected
     2019-03-13 11:52:54   time_utc        2019-03-13T10:52:54.000Z
     2019-03-13 11:52:54   usedGpsDevice   /dev/ttyUSB0
   helper:
     GPSDparams:
       host       127.0.0.1
       port       2947
Attributes:
   DbLogExclude .*
   DbLogInclude lat,lon,altitude
   gpsd_pollInterval 600
   userattr   gpsd_pollInterval


8. Ich habe dblog aktiv und schreibe nun alle 10 Minuten lat,lon und altitude weg.

----------------------------------------------------------------------------------------------  soweit ok -----------------------------

Frage und Bitte noch an die Linux Experten: wie erreiche ich es jetzt, dass diese gesamte Prozedure immer bei Neustart des Raspberry gestartet wird?  8) 8) 8)