Inhaltsverzeichnis

WS500 Programmpaket Kurz(installations)anleitung

Grundinstallation

Testen, ob die nötigen Kernelmodule vorhanden sind

WS500 anstecken und syslog überprüfen:

# tail -f /var/log/messages

Station mit Rechner Verbinden und Ausgabe beobachten.

Sep 17 18:21:35 server kernel: usb 1-2.1: new full speed USB device using uhci_hcd and address 32
Sep 17 18:21:35 server kernel: ftdi_sio 1-2.1:1.0: FTDI USB Serial Device converter detected
Sep 17 18:21:35 server kernel: /usr/src/linux/drivers/usb/serial/ftdi_sio.c: Detected FT8U232AM
Sep 17 18:21:35 server kernel: usb 1-2.1: FTDI USB Serial Device converter now attached to ttyUSB0

Erfolgt kein automatisches Einbinden des benötigten Moduls, so ist das notwendige Kernel-Modul zu installieren (nächster Punkt):

WS500 anstecken und syslog überprüfen

Nach dem Anstecken der WS500 an den Rechner sollte im sylog folgende Information auftauchen:

Sep 17 18:21:35 server kernel: usb 1-2.1: new full speed USB device using uhci_hcd and address 32
Sep 17 18:21:35 server kernel: ftdi_sio 1-2.1:1.0: FTDI USB Serial Device converter detected
Sep 17 18:21:35 server kernel: /usr/src/linux/drivers/usb/serial/ftdi_sio.c: Detected FT8U232AM
Sep 17 18:21:35 server kernel: usb 1-2.1: FTDI USB Serial Device converter now attached to ttyUSB0

Die WS500 kann nun über die Gerätedatei „/dev/ttyUSB0“ angesprochen werden.

Laden der FTDI-Treiber

Wird das benötigte Kernel-Modul ftdi_sio nicht automatisch geladen, erweitern wir unsere Konfiguration wie folgt. Als erstes ermitteln wir die Produkt- und Vendor-ID der Wetterstation. Entweder mittels lsusb:

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

oder via

# cat /proc/usb/devices
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 

Wie wir sehen hat die Station die IDs: 0403:e0e9. Nun können wir mittels

 # modprobe ftdi_sio vendor=0x0403 product=0xe0e9

das Kernel Modul laden. Im Syslog wird dies entsprechend quittiert:

Jan  7 20:43:17 nss kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
Jan  7 20:43:17 nss kernel: ftdi_sio 3-2:1.0: FTDI USB Serial Device converter detected
Jan  7 20:43:17 nss kernel: drivers/usb/serial/ftdi_sio.c: Detected FT8U232AM
Jan  7 20:43:17 nss kernel: usb 3-2: FTDI USB Serial Device converter now attached to ttyUSB0
Jan  7 20:43:17 nss kernel: usbcore: registered new driver ftdi_sio
Jan  7 20:43:17 nss kernel: drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver

Damit das benötigte Kernel Modul bei jedem Systemstart automatisch geladen wird, legen wir uns eine eigene udev-Regel an:

 # vim /etc/udev/rules.d/99-custom.rules
 SYSFS{idProduct}=="e0e9", SYSFS{idVendor}=="0403", RUN+="/sbin/modprobe -q ftdi_sio product=0xe0e9 vendor=0x0403"

Wir können dann die Station über das Device /dev/ttyUSB0 ansprechen.

Perl installieren

Perl wird am besten und einfachsten mit Hilfe des Distributionswerkzeuges wie z.B. yum, yast etc. pp. installiert.

Installation der Perl-Module

Folgende Perl-Modul (CPAN) sind nachzuinstallieren: Device::SerialPort, DBI, DBD::mysql, IO::File

Programmpaket entpacken, installieren und Konfigurationsdateien verschieben

cd /usr/local/src
tar xfvj ws500-0.1.2.tar.bz2 ws500-0.1.2
ln -s ws500-0.1.2 ws500
mkdir /var/log/Ws500
mkdir /etc/ws500
cp /usr/local/src/ws500/etc/ws500.conf /etc/ws500
ln -s /usr/local/src/ws500/ws500.pl /usr/local/bin

erweiterte Installation

Anpassen der Konfigurations(datei)

In der Konfigurationsdatei /etc/ws500/ws500.conf können über einzelne Variablen die Ausgabe in eine CSV-Datei, das Befüllen der MySQL-Datenbank und weitere Optionen eingestellt werden.

MySQL-Datenbank erstellen

Zuerst muss die Datenbank mit Hilfe des Datenbank Schemas von Rainer Krienke erstellt werden. Hierzu ist das beigefügte Datei „Datenbank_schema.txt“ sehr hilfreich.

Das wetter.cgi Script zum Auslesen der MySQL-Datenbank und Darstellen der Messwerte verwendet für die einzelnen Sensoren eindeutige IDs. Wie man der Datei WS500_Datenbankdefinitionen entnehmen kann, habe ich folgende Nummerierung vorgenommen:

ID  1 = Kombisensor 1
ID  2 = Kombisensor 2
ID  3 = Kombisensor 3
ID  4 = Kombisensor 4
ID  5 = Kombisensor 5
ID  6 = Kombisensor 6
ID  7 = Kombisensor 7
ID  8 = Kombisensor 8
ID  9 = Außensensor 
ID 10 = Innensensor
ID 20 = Luftdruckmesser
ID 40 = Regenmesser
ID 30 = Windmesser

Wenn eine andere Nummerierung notwendig sein sollte oder gewünscht wird, so ist im Auslesescript ws500.pl die Nummerierung entsprechend der Definition in der MySQL-Datenbank vorzunehmen.

Die entsprechende Definition erfolgt im Unterprogramm „write_MySQL“ zum Übertragen der Wetterdaten in die MySQL-Datenbank. Ebenso ist dort bei Bedarf die Anzahl der Zusatzsensoren entsprechend zu ergänzen bzw. zu löschen!

Anpassen des Wetter.CGI-Scripts

Das CGI-Script wetter.cgi ist für die Visualisierung der Messwerte den eigenen Wünschen entsprechend anzupassen. Mit Hilfe der außergewöhnlich guten Scriptdokumentation sollte dies einfach von Statten gehen.

Zum besseren Verständnis liegt dem Programmarchiv der von mir verwendeten Konfigurationsteil WS500_Wetter.cgi_Konfiguration bei.

Datenbank auslesen

Perl-Programm zum Auslesen der WS500 auf der Konsole starten:

$ ./ws500.pl

Webbrowser starten und Meßdaten der WS500 aus der MySQL auslesen und anzeigen lassen.

Anmerkung(en)

Verbesserungsvorschläge und Änderungen werden gerne angenommen, müssen jedoch zukünftig selbst vorgenommen werden! LOL Diese bitte einfach per eMail melden an: django@omni128.de bzw. an User "Django" im Wetterportal.

Inhaltsverzeichnis der WS500 Beschreibung