• Willkommen im Forum „Wetterstationsforum.info - Archiv“.
 

Neuigkeiten:

Dieses Forum dient ausschließlich zu Archivzwecken.
Für Fragen nutze bitte unser aktuelles Forum, welches du unter https://wetterstationsforum.info findest.

Hauptmenü

deamon für WS500 unter Linux

Begonnen von Django, 15.09.2006, 23:29:48

⏪ vorheriges - nächstes ⏩

PumpkinEater

Noch eine Frage zur Speicherung der Regenmengen in der Datenbank:

Zitat
# Regenwerte in der Datenbank ablegen
if( $regen_db == 1 ) {
  $sql="INSERT INTO $dbdatabase.rain VALUES ('','$newmysqltime','1','40','$regen','$regen_menge','1')";
               sqlquery($sql);
}
Warum werden die Regenwerte nur gespeichert, wenn sich die Werte ändern? (bei den Temperatur/Feuchte-Werten wird das ja nicht so gemacht).
Damit gibt es verschiedene Zeitmarken, an denen die einzelnen Wetterdaten gespeichert werden. Wäre es nicht besser, zu bestimmten Zeiten *alle* Wetterdaten zu speichern, unabhängig davon, ob sich die Werte geändert haben?

Gruß
Peter

Gruß
Peter

hotmaz

Hallo Leute,

@Django: Prima arbeit. Danke.
Ich habe leider mit meiner WS 500-2 massive Probleme mit der USB-Verbindung.

Das Perl-Programm fnktioniert ca 1 Minute. Danach kommt es nur noch zu der Fehlermeldung "Verbindung zur WS500 gestoert!"

Wenn ich die Station vom USB-Port trenne und neu einstöpsele, dann geht es weiter. (Wieder ca. 1 Minute).
Ab und an, ist es auch hilfreich ws500.pl abzuschiessen und neu zu starten.

Passiert das bei Euch auch? Wie geht Ihr damit um?
Ist es ein Hardware-Defekt, oder eher ein Timing-Problem?

Lieben Dank schon mal im voraus.



PS:
Hier der Log im debug Mode:
Konfiguriere USB-RS232-Port (/dev/ttyUSB0) ...


+-------------------------------------------------------+
+    Die Einstellungen zur Datenkommunikation lauten:   |
+-------------------------------------------------------+
|               Baudrate  : 19200                       |
|               Datenbits : 8                           |
|               Stopbits  : 1                           |
|               Parity    : even                        |
|               Handshake : none                        |
|               RTS       : 1                           |
+-------------------------------------------------------+


Der empfangene Datensatz lautet:

bzw.:



Der empfangene Datensatz lautet:

bzw.:



Der empfangene Datensatz lautet:

bzw.:



Der empfangene Datensatz lautet:

bzw.:



Der empfangene Datensatz lautet:

bzw.:



Der empfangene Datensatz lautet:

bzw.:



1.Warnung: Verbindung zur WS500 gestoert!
Moegliche Ursachen koennten sein:
 Â° USB Verbindung wurde unterbrochen
 Â° Station gerade in Sync-Modus
Verbindungsaufbau erfolgt automatisch erneut in einer Minute!

PumpkinEater

Hallo hotmaz,
ich bin zwar nicht einer der ewähnten Fachleute, aber ich gebe trotzdem mal meinen Senf dazu:

Werden denn überhaupt in der ersten Minute schon Daten übertragen? Ich vermute, die USB-Schittstelle wird gar nicht erst erkannt oder initialisiert.

Fragen, die vielleicht weiterhelfen:

- Gibt es ein /dev/ttyUSB0 (oder /dev/ttyUSB1)?

- Was sagt lsusb? Dort sollte etwas wie
"Future Technology Devices International, Ltd"
auftauchen.

- Was sagt "cat /proc/bus/usb/devices" ?
Dort sollte ein Eintrag zu finden sein, das auf die Wetterstation hindeutet, mit dem Hinweis "Driver=ftdi_sio"

- Was steht in der /var/log/messages? Gibt es dort Einträge zur ftdi_sio mit einer Medlung "FTDI USB Serial Device converter now attached to ttyUSB0" (wobei statt ttyUSB0 auch ttyUSB1 o.ä. möglich wären, falls Du schon andere Geräte am USB-Port hast, die einen FTDI-Chip beherbergen.

Gruß
Peter

hotmaz

Hi Peter,

In der ca. ersten Minute werden die Daten korrekt gelesen und auch im csv-Datei abgelegt.
Dann kommt es zu der erwähnten Fehlermeldungen.

syslog sieht soweit so gut aus. Das Gerät wird zuverlässig als WS 500 erkannt und an /dev/ttyUSB0 gebunden.

(Aber ich will ja nicht alle paar Minuten am Kabel rütteln :) )

Gruß,
hotmaz

PumpkinEater

Hi hotmaz,
hmm, dann habe ich auch keine Idee mehr. Unter Windows (möglichst am selben Rechner) funkioniert die Station einwandfrei, oder?

Hast Du unter Linux evt. "brltty" installiert? Diese Software versteht sich scheinbar nicht so gut mit FTDI:

https://bugs.launchpad.net/ubuntu/+source/hal/+bug/175182

Falls es also installiert ist, könntest Du es evt. mal deinstallieren - aber so richtig glaube ich nicht daran, dass dies die Ursache ist. Hast Du noch anderen USB-Geräte am Rechner angeschlossen, die evt. das ttyUSB0-Device "feindlich" übernehmen?

WIe auch immer, viel Erfolg bei der weiteren Fehlersuche.

Gruß
Peter

Django

Griasde,

Zitat von: "PumpkinEater"Warum werden die Regenwerte nur gespeichert, wenn sich die Werte ändern?
Datenökonomie. Wenn ich mich richt erinnere hatte ich das ganz am Anfang so gemacht, aber die Geeks hier überzeugten mich dann, dass das so besser wäre. Was ich dann auch so übernommen hatte, Denn warum in der Datenbank 'n Haufen NULL-Werte anhäufen?

Kannst das Script ja jederzeit bei Bedarf abändern, ist ja sozusagen "Deins". ;)

Pfiade,
Django
:-x Nichts ist wahr, alles ist erlaubt!  :-x

Django

HI!

Zitat von: "hotmaz"@Django: Prima arbeit. Danke.
Bittschön! :D
ZitatIch habe leider mit meiner WS 500-2 massive Probleme mit der USB-Verbindung.
Das ist natürlich ärgerlich. Das die USB-Verbindung ab und an abriss hatte ich damals auch, aber das Ganze fing sich dann binnen ein paar Minuten wieder. Warum? Wenn ich ehrlich sein darf, ich hatte es aufgegeben.
Ich hatte das Timingverhalten des FTDI-Treibers in Verdacht.
Da mir die Sensoren der WS500 aber seinerzeit mehr als suspekt waren, hatte ich diese schließlich verkauft und mir 'was G'scheids geholt. Leider kann ich so weder das Script noch den treiber weiter testen oder gar entwickeln, leider.
ZitatIst es ein Hardware-Defekt, oder eher ein Timing-Problem?
Ich tippe da auf letzteres.

Pfiade,
Django
:-x Nichts ist wahr, alles ist erlaubt!  :-x

Django

Griaseich,

bin gerade dabei die Doku von ws500.pl etwas zu ergänzen.

Dazu bräuchte ich noch 'n bisserl Input. Könnte mir einer mal sagen, wie die Station "erkannt" wird?

Ausgabe der Station bei cat /proc/bus/usb/devices?

und lsusb?

muchos gracias!

Pfiadseich!
Django
:-x Nichts ist wahr, alles ist erlaubt!  :-x

hotmaz

Hi Django,

cat /proc/usb/devices liefert folgendes:

T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0403 ProdID=e0e9 Rev= 2.00
S:  Manufacturer=ELV AG
S:  Product=ELV WS 500
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms




und lsusb:

Bus 003 Device 004: ID 0403:e0e9 Future Technology Devices International, Ltd


VG

Django

:-x Nichts ist wahr, alles ist erlaubt!  :-x