Inhaltsverzeichnis

IV) Konfiguration von wview

Bei der Installation von wview wurde beim abschließenden Schritt make install-env unter /var/www/ eine PHP/Java/HTML Webseite mit dem Namen wviewmgmt kopiert.

Einrichtung eines virtuellen Hosts

Für die spätere Administration richten wir uns einen eigenen V-Host ein. Hierzu ergänzen wir unsere V-Host-Konfigurationsdatei unter /etc/httpd/conf.d/vhosts.conf.

# vim /etc/httpd/conf.d/vhosts.conf
vhost.conf
#
# wviewadmin.nausch.org
#
<VirtualHost *:443>
        ServerAdmin webmaster@nausch.org
        ServerName wviewadmin.nausch.org:443
        ServerAlias wviewadmin.nausch.org www.wviewadmin.nausch.org
        ServerPath /
        DocumentRoot "/var/www/wviewmgmt"
        <Directory "/var/www/wviewmgmt">
                Options FollowSymLinks
                AllowOverride AuthConfig
                Order allow,deny
                Allow from all
        </Directory>
        AddType application/x-httpd-php .php
        DirectoryIndex login.php
        ErrorLog logs/wviewadmin_error.log
        CustomLog logs/wviewadmin_access.log combined
</VirtualHost>

Nach dieser Konfigurationsänderung aktivieren wir unseren neuen V-Host, in dem wir den Apache-Server einmal durchstarten.

 # service httpd restart

Weather View Management über den Webbrowser

wview Systemstart

Den ersten Systemstart unseres neu aufgesetzten Systems erreichen wir durch den Aufruf der Startdatei wview.

 # /etc/init.d/wview start

Im Syslog wird der erste Systemstart von wview entsprechend dokumentiert.

Aug  1 22:08:29 vml000020 radmrouted[12809]: <1343851709983> : radlib: radmrouted started as a daemon ...
Aug  1 22:08:29 vml000020 radmrouted[12809]: <1343851709983> : started on radlib system 1, workdir /usr/local/var/wview
Aug  1 22:08:29 vml000020 radmrouted[12809]: <1343851709983> : running...
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711035> : radlib: wviewd started as a daemon ...
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711035> : wview 5.20.2 starting ...
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711036> : station generates archive records
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711036> : station interface: serial ...
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711036> : Rain Season Start Month set to 1
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711036> : Rain Storm Start Trigger set to  0.05 in/hr
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711036> : Rain Storm Stop Time set to 12 hours
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711036> : Rain YTD preset set to 0.00 inches
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711036> : ET YTD preset set to 0.000 inches
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711037> : bad rain/ET YTD Year given, disabling...
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711037> : station polling interval set to 30 seconds
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711064> : HILOW metainfo table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711064> : HILOW windDir table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711064> : HILOW: inTemp table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711065> : HILOW: outTemp table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711065> : HILOW: inHumidity table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711065> : HILOW: outHumidity table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711066> : HILOW: baromPressure table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711066> : HILOW: windSpeed table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711066> : HILOW: windGust table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711066> : HILOW: dewPoint table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711067> : HILOW: rain table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711067> : HILOW: rainRate table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711067> : HILOW: windChill table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711068> : HILOW: heatIndex table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711068> : HILOW: ET table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711068> : HILOW: UV table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711069> : HILOW: solarRadiation table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711069> : HILOW: hail table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711069> : HILOW: hailRate table created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711069> : HILOW: back filling tables with ALL archive data
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711069> : HILOW: this is a one time process when tables are created
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711069> : HILOW: (this may take a while ...)
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711070> : HILOW: beginning normal LOOP operation
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711070> : -- Station Init Start --
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711071> : getNewestDateTime: radsqlitedirectGetRow failed!
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711071> : station archive interval: 5 minutes
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711071> : Starting station interface: Simulator
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711071> : Simulator station opened: 720 minute data generation period...
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711087> : running...
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711087> : station location: elevation: 751 feet
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711088> : station location: latitude: 33.6 N  longitude: 96.9 W
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711088> : initializing computed data values...
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711828> : -- Station Init Complete --
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711828> : getNewestDateTime: radsqlitedirectGetRow failed!
Aug  1 22:08:31 vml000020 wviewd[12813]: <1343851711828> : no archive records found in database!
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712044> : radlib: htmlgend started as a daemon ...
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712045> : generating to /usr/local/var/wview/img
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712045> : templates at /usr/local/etc/wview/html
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712046> : !! Dual units will be displayed !!
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712046> : Using mph as default wind units
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712046> : Tag Search red-black tree: max black node tree height: 8
Aug  1 22:08:32 vml000020 wvalarmd[12820]: <1343851712054> : radlib: wvalarmd started as a daemon ...
Aug  1 22:08:32 vml000020 wvalarmd[12820]: <1343851712055> : ALARM daemon not enabled - exiting...
Aug  1 22:08:32 vml000020 wvcwopd[12823]: <1343851712060> : radlib: wvcwopd started as a daemon ...
Aug  1 22:08:32 vml000020 wvcwopd[12823]: <1343851712061> : CWOP daemon is NOT enabled - exiting...
Aug  1 22:08:32 vml000020 wvhttpd[12826]: <1343851712068> : radlib: wvhttpd started as a daemon ...
Aug  1 22:08:32 vml000020 wvhttpd[12826]: <1343851712069> : HTTP daemon is disabled - exiting...
Aug  1 22:08:32 vml000020 wviewftpd[12829]: <1343851712075> : radlib: wviewftpd started as a daemon ...
Aug  1 22:08:32 vml000020 wviewftpd[12829]: <1343851712076> : ftp daemon disabled - exiting...
Aug  1 22:08:32 vml000020 wviewsshd[12832]: <1343851712082> : radlib: wviewsshd started as a daemon ...
Aug  1 22:08:32 vml000020 wviewsshd[12832]: <1343851712082> : sshUtilsInit: cannot locate rsync - is it installed?
Aug  1 22:08:32 vml000020 wviewsshd[12832]: <1343851712082> : sshUtilsInit failed - exiting
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712087> : radlib: wvpmond started as a daemon ...
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712163> : PMON: wviewd: 0
Aug  1 22:08:32 vml000020 radmrouted[12809]: <1343851712163> : QueueMsgHandler: removed empty MIIB for msgID 2
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712163> : PMON: wviewd process monitoring is disabled
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712164> : PMON: htmlgend: 0
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712164> : PMON: htmlgend process monitoring is disabled
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712164> : PMON: wvalarmd: 120
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712164> : PMON: pid file /usr/local/var/wview/wvalarmd.pid not present, disable monitoring...
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712164> : PMON: wvcwopd: 120
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712164> : PMON: pid file /usr/local/var/wview/wvcwopd.pid not present, disable monitoring...
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712164> : PMON: wvhttpd: 120
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712164> : PMON: pid file /usr/local/var/wview/wvhttpd.pid not present, disable monitoring...
Aug  1 22:08:32 vml000020 wvpmond[12835]: <1343851712171> : running...
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712572> : running...
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712572> : received station info from wviewd: 20120801 22:08:31
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712573> : htmlmgrInit: 52 built-in image definitions added
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712573> : htmlmgrInit: 0 user image definitions added
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712573> : htmlmgrInit: 14 templates added
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712573> : htmlmgrInit: forecast html tags are disabled - /usr/local/etc/wview/forecast.conf not found...
Aug  1 22:08:32 vml000020 radmrouted[12809]: <1343851712575> : QueueMsgHandler: removed empty MIIB for msgID 2
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712588> : initializing barometric pressure trend
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712588> : initializing historical stores (this may take some time...)
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712589> : htmlHistoryInit: DAY: samples=0
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712594> : htmlHistoryInit: DAY: samples=50
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712599> : htmlHistoryInit: DAY: samples=100
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712605> : htmlHistoryInit: DAY: samples=150
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712610> : htmlHistoryInit: DAY: samples=200
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712615> : htmlHistoryInit: DAY: samples=250
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712619> : htmlHistoryInit: DAY: samples=288
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712619> : htmlHistoryInit: WEEK: samples=0
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712625> : htmlHistoryInit: WEEK: samples=50
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712630> : htmlHistoryInit: WEEK: samples=100
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712635> : htmlHistoryInit: WEEK: samples=150
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712637> : htmlHistoryInit: WEEK: samples=168
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712637> : htmlHistoryInit: MONTH: samples=0
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712643> : htmlHistoryInit: MONTH: samples=50
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712648> : htmlHistoryInit: MONTH: samples=100
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712653> : htmlHistoryInit: MONTH: samples=150
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712658> : htmlHistoryInit: MONTH: samples=200
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712664> : htmlHistoryInit: MONTH: samples=250
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712669> : htmlHistoryInit: MONTH: samples=300
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712674> : htmlHistoryInit: MONTH: samples=350
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712680> : htmlHistoryInit: MONTH: samples=400
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712685> : htmlHistoryInit: MONTH: samples=450
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712690> : htmlHistoryInit: MONTH: samples=500
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712696> : htmlHistoryInit: MONTH: samples=550
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712701> : htmlHistoryInit: MONTH: samples=600
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712706> : htmlHistoryInit: MONTH: samples=650
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712709> : htmlHistoryInit: MONTH: samples=672
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712778> : htmlHistoryInit: YEAR: samples=0
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712800> : htmlHistoryInit: YEAR: samples=50
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712822> : htmlHistoryInit: YEAR: samples=100
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712844> : htmlHistoryInit: YEAR: samples=150
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712866> : htmlHistoryInit: YEAR: samples=200
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712888> : htmlHistoryInit: YEAR: samples=250
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712910> : htmlHistoryInit: YEAR: samples=300
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712931> : htmlHistoryInit: YEAR: samples=350
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712938> : htmlHistoryInit: YEAR: samples=365
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712939> : HILOW: OK
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712939> : NOAA DB: noaaHistory table created
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712940> : NOAA DB: Archive table is empty - starting with new station...
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712940> : NOAA: initializing reports (this may take some time...)
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712940> : noaaGenerateInit: archive table is empty...
Aug  1 22:08:32 vml000020 htmlgend[12817]: <1343851712940> : ARCREC: initializing archive browser files (this may take some time...)
Aug  1 22:08:33 vml000020 htmlgend[12817]: <1343851713000> : starting html generation in 1 mins 37 secs
Aug  1 22:08:33 vml000020 htmlgend[12817]: <1343851713000> : doing initial html generation now...
Aug  1 22:08:33 vml000020 htmlgend[12817]: <1343851713095> : Generated: 90 ms: 52 images, 14 template files
Aug  1 22:10:04 vml000020 wviewd[12813]: <1343851804828> : storing record for 2012-08-01 22:10
Aug  1 22:10:04 vml000020 htmlgend[12817]: <1343851804889> : Adding 5 minute sample for 2012-08-01 22:10...

Aufruf im Browser

Wir erreichen nun The New Way to Manage wview über https://wviewadmin.nausch.org.

wview Management Webzugang

Das initiale Passwort wview ändern wir nach der erfolgten Anmeldung gleich als erstes mal ab! Nach Eingabe des Passwortes gelangen wir direkt zur Webadministration von wview.

wview Management "System Status"

Das initiale Passwort wview ändern wir nun erst einmal ab - hierzu tragen wir unser streng-geheimes-WeatherView-Passwort ein und speichern unsere Änderungen.

Da wview beim initialen Start wegen der fehlenden Konfigurationsfiles, wieder stoppte, wird der Status in dem oben gezeigten Bildschirmhardcopy richtig als stopped gekennzeichnet. Über die einzelnen Reiter in der WEB-GUI haben wir nun die komfortable Möglichkeit, die Änderungen am System direkt vorzunehmen, ohne großartig einzelne Konfigurationsdateien abarbeiten zu müssen.

Folgende Seite zeigt die Einstellungsmöglichkeiten zu den Services.

wview Management "Services"

Die Einstellungen zur Station erfolgt auf dieser Seite.

wview Management "Station"

Für die Generierung der einzelnen Dateien haben wir unter File Generation folgende Einstellungsmöglichkeiten.

wview Management "File Generation"

Die Definition der Alarme erfolgt im Reiter Alarms.

wview Management "Alarms"

Der Dateiupload via FTP erfolgt im gleichnamigen Reiter FTP.

wview Management "FTP"

Für die Dateiübertragung mittels scp tragen wir auf dem Reiter SSH die nötigen Daten ein.

wview Management "SSH"

Nutzen wir CWOP so geben wir im gleichnamigen Reiter CWOP unsere Daten ein.

wview Management "CWOP"

Die beiden HTTP-Services Weather For You und Weather Underground werden in Reiter HTTP-Services definiert.

wview Management "HTTP Services"

Zur Calibrierung der Messwerte steht der Reiter Calibration bereit.

wview Management "Calibration"

Wollen wir die Messwerte in einer SQL-Datenbanktabelle ablegen, so definieren wir im Reiter SQL Export die hierzu nötigen Daten.

wview Management "SQL Export"

Zu guter letzt haben wir noch die Möglichkeit uns über den Menüpunkt Logout von der Management-Web-GUI von wview abzumelden.

wview Management "Logout Bildschirm"

Grundeinstellungen

Bei der Erstinstallation und -konfiguration der Vantage Pro 2 Konsole sind einige grundlegende Angaben der Konsole und auch dem wview-/paket mitzugeben.

vpinstall

Zur initialen Konfiguration der Wetterkonsole rufen wir das Script vpinstall auf.

Der Wert für die Höhe der Wetterstation über NormalNull ist dabei in Fuss anzugeben - über ein online-Tool, wie z.B. Länge Umrechnung sollte dies kein Problem sein. Die Werte für die geographische Länge und Breite sind in „Zentelgrad“ anzugeben, so werden aus:

 # vpinstall
################################################################################
 
--> Installation Configuration for Vantage Pro(2) Console
 
--> To reset historical highs and lows, use the Vantage Pro Console
 
--> Note: values in parenthesis are used if you hit enter at a prompt...
 
################################################################################
 
 
-------------------------------------------------------------
--NOTE-- ** Serial and USB data loggers are both considered serial -
--NOTE--    examples of this are: /dev/ttyS0, /dev/ttyUSB0, /dev/cuaa0, etc.
--NOTE-- ** If your Vantage Pro is connected to a terminal or serial server,
--NOTE--    you should enter the host and port in the format host:port -
--NOTE--    examples of this are: 10.10.10.10:3001, xyplex1:2102, etc.
Serial port or host:port the VP console is connected to (i.e. /dev/ttyS0, mss1:3001)
(/dev/ttyS0): 10.0.10.9:14867
 
-------------------------------------------------------------
Desired archive interval (minutes) (5,10,15,30,60)
(5): 
 
-------------------------------------------------------------
Station elevation (feet) ((-2000) - (15000))
(0): 1654
 
-------------------------------------------------------------
Station latitude (tenths of degrees) ((-900) - (900), (-) => South)
(0): 482
 
-------------------------------------------------------------
Station longitude (tenths of degrees) ((-1799) - (1800), (-) => West)
(0): 118
 
-------------------------------------------------------------
Rain season start (month) (1 - 12)
(1): 
 
-------------------------------------------------------------
Year-to-Date Rain (inches) (0.00 - 200.00)
(0.00): 
 
-------------------------------------------------------------
Year-to-Date ET (inches) (0.00 - 200.00)
(0.00): 
 
 
-------------------------------------------------------------
Let's review your answers:
 
VP Console Device:         10.0.10.9:14867
Archive Interval:          5 (minutes)
Station Elevation:         1654 (feet)
Station Latitude:          482 (tenths of a degree)
Station Longitude:         118 (tenths of a degree)
Rain Season Start Month:   1
Year-to-Date Rain:         0
Year-to-Date ET:           0
-------------------------------------------------------------
 
WARNING: All archive records will be erased on the VP console!
Do you want to proceed with these values? (y/n)
(n): y
 
Configuring with new values (takes some time, be patient) ...
 
elevation set to 1654 feet
rain season start month set to 1
rain year-to-date set to 0.00
ET year-to-date set to 0.00
archive memory cleared and interval set to 5 minutes
latitude set to 48.2, longitude set to 11.8
 
Please wait - allowing VP console to digest new settings .....
 
 
Firmware Version:        Apr 11 2006
Station Location:        48.2 N, 11.8 E, 1654 feet
Archive Interval:        5 minutes
Rain Season Start Month: 1
Wind direction calibration: 0 degrees
Listening on channel:    1 for ISS
Listening on channel:    2 for wireless anemometer
Retransmit channel:      off
Rain collector size:     0.2 mm
Wind cup size:           large
RX Check Stats:          0 0 0 0 0 recvd:missed:resyncs:good-pkts-in-a-row:CRC errors
 
 
################################################################################
It is advisable to wait 5 minutes before starting wview for the
first time so the Vantage Pro can become consistent with the new settings...
 
In the meantime, be sure you have deleted any archive files in
/var/wview/archive if you have changed the archive interval...
 
Vantage Pro configuration complete!
 
################################################################################
# vpinstall

################################################################################

--> Installation Configuration for Vantage Pro(2) Console

--> To reset historical highs and lows, use the Vantage Pro Console

--> Note: values in parenthesis are used if you hit enter at a prompt...

################################################################################


-------------------------------------------------------------
--NOTE-- ** Serial and USB data loggers are both considered serial -
--NOTE--    examples of this are: /dev/ttyS0, /dev/ttyUSB0, /dev/cuaa0, etc.
--NOTE-- ** If your Vantage Pro is connected to a terminal or serial server,
--NOTE--    you should enter the host and port in the format host:port -
--NOTE--    examples of this are: 10.10.10.10:3001, xyplex1:2102, etc.
Serial port or host:port the VP console is connected to (i.e. /dev/ttyS0, mss1:3001)
(/dev/ttyS0): /dev/ttyS0

-------------------------------------------------------------
Desired archive interval (minutes) (5,10,15,30,60)
(5): 

-------------------------------------------------------------
Station elevation (feet) ((-2000) - (15000))
(0): 1654

-------------------------------------------------------------
Station latitude (tenths of degrees) ((-900) - (900), (-) => South)
(0): 482

-------------------------------------------------------------
Station longitude (tenths of degrees) ((-1799) - (1800), (-) => West)
(0): 118

-------------------------------------------------------------
Rain season start (month) (1 - 12)
(1): 

-------------------------------------------------------------
Year-to-Date Rain (inches) (0.00 - 200.00)
(0.00): 

-------------------------------------------------------------
Year-to-Date ET (inches) (0.00 - 200.00)
(0.00): 


-------------------------------------------------------------
Let's review your answers:

VP Console Device:         /dev/ttyS1
Archive Interval:          5 (minutes)
Station Elevation:         1654 (feet)
Station Latitude:          482 (tenths of a degree)
Station Longitude:         118 (tenths of a degree)
Rain Season Start Month:   1
Year-to-Date Rain:         0
Year-to-Date ET:           0
-------------------------------------------------------------

WARNING: All archive records will be erased on the VP console!
Do you want to proceed with these values? (y/n)
(n): n

Configuring with new values (takes some time, be patient) ...

elevation set to 1654 feet
rain season start month set to 1
rain year-to-date set to 0.00
ET year-to-date set to 0.00
archive memory cleared and interval set to 5 minutes
latitude set to 48.2, longitude set to 11.8

Please wait - allowing VP console to digest new settings .....


Firmware Version:        Apr 11 2006
Station Location:        48.2 N, 11.8 E, 1654 feet
Archive Interval:        5 minutes
Rain Season Start Month: 1
RX Check Stats:          0 0 0 0 0 recvd:missed:resyncs:good-pkts-in-a-row:CRC errors


################################################################################
It is advisable to wait 5 minutes before starting wview for the
first time so the Vantage Pro can become consistent with the new settings...

In the meantime, be sure you have deleted any archive files in
/var/wview/archive if you have changed the archive interval...

Vantage Pro configuration complete!

################################################################################

wview Management

Zum Einstellen der grundlegenden Konfiguration rund um wview bedienen wir uns am einfachsten der WEB-GUI, die wir im Kapitel Installation von wviewmgmt installiert und konfiguriert hatten.

Im Webbrowser unser Wahl rufen wir also die definierte Adresse unseres Davis Vantage Pro Weather Server and Site Generatorauf. Die Konfiguration dort ist gut beschrieben, so dass die Konfiguration schnell und einfach von statten geht.

wviewhtmlconfig

Zur Auswahl des gewünschten Skins bei der Installation, oder auch bei späteren Updates, bedienen wir uns dem script wviewhtmlconfig.

 # wviewhtmlconfig
################################################################################
 !!!!!!!!!!!!!!!!         READ THIS BEFORE PROCEEDING         !!!!!!!!!!!!!!!!
 
--> HTML Template Configuration for wview
 
--> Note: This script will save existing templates to /usr/local/etc/wview/html-YYYYMMDD.HHmmSS
          before writing the new files based on your answers here - if that
          is not what you want, hit CTRL-C now to abort this script!
 
################################################################################
 
pausing 5 seconds .....
 
 
---------------------------------------------------------------------------
Which template skin do you want to use for your site?
 
wview site skins currently supported:
    classic - default wview skin
    chrome  - classic with a chrome effect
    exfoliation - a clean implementation by Matthew Wall
(chrome): 
Site skin chrome selected...
With extended data graphics.
With metric units.
Saving old HTML directory to html-20120801.223322 ...
...done.
Saving old config files...
... done.
HTML setup complete:
you may now customize template files in /usr/local/etc/wview/html
# wviewhtmlconfig 

################################################################################
 !!!!!!!!!!!!!!!!         READ THIS BEFORE PROCEEDING         !!!!!!!!!!!!!!!!

--> HTML Template Configuration for wview

--> Note: This script will save existing templates to /usr/local/etc/wview/html-YYYYMMDD.HHmmSS
          before writing the new files based on your answers here - if that
          is not what you want, hit CTRL-C now to abort this script!

################################################################################

pausing 5 seconds .....


---------------------------------------------------------------------------
Which template skin do you want to use for your site?

wview site skins currently supported:
    classic - default wview skin
    chrome  - classic with a chrome effect
(chrome): 
Site skin chrome selected...
With extended data graphics.
With metric units.
Saving old HTML directory to html-20090608.173037 ...
...done.
Saving old config files...
... done.
HTML setup complete:
you may now customize template files in /usr/local/etc/wview/html

MySQL-Datenbankexport

Zur Langzeitarchivierung und späteren Weiterverarbeitung legen wir unsere ermittelten Wetterdaten in einer MySQL-Datenbank-(tabelle) ab. Im Reiter SQL Export bei der Konfiguration über die Web-GUI wviewmgmt haben wir bereits die Zugangsdaten für die MySQL-Datenbank definiert.

Bei der Erstellung der notwendigen Datenbank-(Tabelle) und des Datenbank-(Users) gibt es zwei Möglichkeiten:

Nachfolgend werden wir uns nun diese beiden Varianten genauer ansehen.

I) benutzerindividuelle Konfiguration

  1. Datenbank anlegen
    Als erstes legen wir die Datenbank an. MySQL frägt uns bei den nachfolgenden Definitionen nach dem Passwort unseres mysql-Superusers root.
     # mysql -h 127.0.0.1 -u root -p
    Enter password:
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 63465
    Server version: 5.5.52-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> create database wviewDB;
    Query OK, 1 row affected (0.01 sec)
  2. neuen Benutzer anlegen
    Mit folgendem Befehl legen wir uns einen neuen Nutzer an:
    MariaDB [(none)]> CREATE USER 'wviewuser'@'vml000127.dmz.nausch.org' IDENTIFIED BY 'Django_is_a_Geek';
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> 

    sowie

    MariaDB [(none)]> CREATE USER 'wviewuser'@'10.0.0.127' IDENTIFIED BY 'Django_is_a_Geek';
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> 
  3. Benutzerprivilegien setzen und zuweisen
    Anschließend setzen wir die Benutzerrechte unseres gerade angelegten Datenbanknutzers.
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON wviewDB.* TO 'wview-user'@'vml000127.dmz.nausch.org' IDENTIFIED BY 'Django_is_a_Geek' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
    Query OK, 0 rows affected (0.01 sec)
    
    MariaDB [(none)]>

    und

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON wviewDB.* TO 'wview-user'@'10.0.0.127' IDENTIFIED BY 'Django_is_a_Geek' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
    Query OK, 0 rows affected (0.01 sec)
    
    MariaDB [(none)]>
  4. Rechte des Nutzers in der Datenbank neu laden
    Im letzten Schritt laden wir nun die Rechte unseres neuen Datenbankusers.
    MariaDB [(none)]> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]>
  5. mySQL-Datenbankverbindung beenden
    Unsere Konfiguration unseres neuen Datenbanknutzers ist hiermit beendet und wir können die Verbindung zur Datenbank wieder schliessen.
    mysql> exit
    Bye
  6. mySQL-Datenbanktabellen anlegen
    Als nächstes legen wir die notwendigen Datenbanktabellen an. Hierzu nutzen wir folgende Konfigurationsdatei.
    mysql-database-create
    -- phpMyAdmin SQL Dump
    -- version 2.11.11.3
    -- https://www.phpmyadmin.net
    --
    -- Host: localhost
    -- Erstellungszeit: 03. August 2012 um 17:31
    -- Server Version: 5.0.95
    -- PHP-Version: 5.1.6
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    --
    -- Datenbank: `wviewDB`
    --
     
    USE wviewDB;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `archive`
    --
     
    CREATE TABLE IF NOT EXISTS `archive` (
      `dateTime` INT(11) NOT NULL,
      `usUnits` INT(11) NOT NULL,
      `arcInt` INT(11) NOT NULL,
      `barometer` DOUBLE DEFAULT NULL,
      `pressure` DOUBLE DEFAULT NULL,
      `altimeter` DOUBLE DEFAULT NULL,
      `inTemp` DOUBLE DEFAULT NULL,
      `outTemp` DOUBLE DEFAULT NULL,
      `inHumidity` DOUBLE DEFAULT NULL,
      `outHumidity` DOUBLE DEFAULT NULL,
      `windSpeed` DOUBLE DEFAULT NULL,
      `windDir` DOUBLE DEFAULT NULL,
      `windGust` DOUBLE DEFAULT NULL,
      `windGustDir` DOUBLE DEFAULT NULL,
      `rainRate` DOUBLE DEFAULT NULL,
      `rain` DOUBLE DEFAULT NULL,
      `dewpoint` DOUBLE DEFAULT NULL,
      `windchill` DOUBLE DEFAULT NULL,
      `heatindex` DOUBLE DEFAULT NULL,
      `ET` DOUBLE DEFAULT NULL,
      `radiation` DOUBLE DEFAULT NULL,
      `UV` DOUBLE DEFAULT NULL,
      `extraTemp1` DOUBLE DEFAULT NULL,
      `extraTemp2` DOUBLE DEFAULT NULL,
      `extraTemp3` DOUBLE DEFAULT NULL,
      `soilTemp1` DOUBLE DEFAULT NULL,
      `soilTemp2` DOUBLE DEFAULT NULL,
      `soilTemp3` DOUBLE DEFAULT NULL,
      `soilTemp4` DOUBLE DEFAULT NULL,
      `leafTemp1` DOUBLE DEFAULT NULL,
      `leafTemp2` DOUBLE DEFAULT NULL,
      `extraHumid1` DOUBLE DEFAULT NULL,
      `extraHumid2` DOUBLE DEFAULT NULL,
      `soilMoist1` DOUBLE DEFAULT NULL,
      `soilMoist2` DOUBLE DEFAULT NULL,
      `soilMoist3` DOUBLE DEFAULT NULL,
      `soilMoist4` DOUBLE DEFAULT NULL,
      `leafWet1` DOUBLE DEFAULT NULL,
      `leafWet2` DOUBLE DEFAULT NULL,
      `rxCheckPercent` DOUBLE DEFAULT NULL,
      `txBatteryStatus` DOUBLE DEFAULT NULL,
      `consBatteryVoltage` DOUBLE DEFAULT NULL,
      `hail` DOUBLE DEFAULT NULL,
      `hailRate` DOUBLE DEFAULT NULL,
      `heatingTemp` DOUBLE DEFAULT NULL,
      `heatingVoltage` DOUBLE DEFAULT NULL,
      `supplyVoltage` DOUBLE DEFAULT NULL,
      `referenceVoltage` DOUBLE DEFAULT NULL,
      `windBatteryStatus` DOUBLE DEFAULT NULL,
      `rainBatteryStatus` DOUBLE DEFAULT NULL,
      `outTempBatteryStatus` DOUBLE DEFAULT NULL,
      `inTempBatteryStatus` DOUBLE DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `baromPressure`
    --
     
    CREATE TABLE IF NOT EXISTS `baromPressure` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `dewPoint`
    --
     
    CREATE TABLE IF NOT EXISTS `dewPoint` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `ET`
    --
     
    CREATE TABLE IF NOT EXISTS `ET` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `hail`
    --
     
    CREATE TABLE IF NOT EXISTS `hail` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `hailRate`
    --
     
    CREATE TABLE IF NOT EXISTS `hailRate` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `heatIndex`
    --
     
    CREATE TABLE IF NOT EXISTS `heatIndex` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `inHumidity`
    --
     
    CREATE TABLE IF NOT EXISTS `inHumidity` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `inTemp`
    --
     
    CREATE TABLE IF NOT EXISTS `inTemp` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `noaaHistory`
    --
     
    CREATE TABLE IF NOT EXISTS `noaaHistory` (
      `dateTime` INT(11) NOT NULL,
      `meanTemp` DOUBLE DEFAULT NULL,
      `highTemp` DOUBLE DEFAULT NULL,
      `highTempTime` INT(11) DEFAULT NULL,
      `lowTemp` DOUBLE DEFAULT NULL,
      `lowTempTime` INT(11) DEFAULT NULL,
      `heatDegDays` DOUBLE DEFAULT NULL,
      `coolDegDays` DOUBLE DEFAULT NULL,
      `rain` DOUBLE DEFAULT NULL,
      `avgWind` DOUBLE DEFAULT NULL,
      `highWind` DOUBLE DEFAULT NULL,
      `highWindTime` INT(11) DEFAULT NULL,
      `domWindDir` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `outHumidity`
    --
     
    CREATE TABLE IF NOT EXISTS `outHumidity` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `outTemp`
    --
     
    CREATE TABLE IF NOT EXISTS `outTemp` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `rain`
    --
     
    CREATE TABLE IF NOT EXISTS `rain` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `rainRate`
    --
     
    CREATE TABLE IF NOT EXISTS `rainRate` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `solarRadiation`
    --
     
    CREATE TABLE IF NOT EXISTS `solarRadiation` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `UV`
    --
     
    CREATE TABLE IF NOT EXISTS `UV` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `windChill`
    --
     
    CREATE TABLE IF NOT EXISTS `windChill` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `windDir`
    --
     
    CREATE TABLE IF NOT EXISTS `windDir` (
      `dateTime` INT(11) NOT NULL,
      `bin0` INT(11) DEFAULT NULL,
      `bin1` INT(11) DEFAULT NULL,
      `bin2` INT(11) DEFAULT NULL,
      `bin3` INT(11) DEFAULT NULL,
      `bin4` INT(11) DEFAULT NULL,
      `bin5` INT(11) DEFAULT NULL,
      `bin6` INT(11) DEFAULT NULL,
      `bin7` INT(11) DEFAULT NULL,
      `bin8` INT(11) DEFAULT NULL,
      `bin9` INT(11) DEFAULT NULL,
      `bin10` INT(11) DEFAULT NULL,
      `bin11` INT(11) DEFAULT NULL,
      `bin12` INT(11) DEFAULT NULL,
      `bin13` INT(11) DEFAULT NULL,
      `bin14` INT(11) DEFAULT NULL,
      `bin15` INT(11) DEFAULT NULL,
      `bin16` INT(11) DEFAULT NULL,
      `bin17` INT(11) DEFAULT NULL,
      `bin18` INT(11) DEFAULT NULL,
      `bin19` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `windGust`
    --
     
    CREATE TABLE IF NOT EXISTS `windGust` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `windSpeed`
    --
     
    CREATE TABLE IF NOT EXISTS `windSpeed` (
      `dateTime` INT(11) NOT NULL,
      `low` DOUBLE DEFAULT NULL,
      `timeLow` INT(11) DEFAULT NULL,
      `high` DOUBLE DEFAULT NULL,
      `timeHigh` INT(11) DEFAULT NULL,
      `whenHigh` DOUBLE DEFAULT NULL,
      `cumulative` DOUBLE DEFAULT NULL,
      `samples` INT(11) DEFAULT NULL,
      PRIMARY KEY  (`dateTime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    Diese Datei übergeben wir nun unserem mySQL-Server.

     # mysql -D wviewDB -u wview-user -h 10.0.0.37 -p < mysql-database-create
    Enter password: 

II) wview-mysql-create

Hat man keine besonderen Ansprüche rund um den mySQL-Datenbankserver kann man auch auf das mitgelieferte Bash-Script wview-mysql-create zurückgreifen. Dieses Script finden wir im Verzeichnis /usr/local/src/wview/dbexport.

#!/bin/sh
################################################################################
#
# File:           wview-mysql-create.sh
#
# Description:    Provide a script to create the wview database for MySQL.
#
# Usage:          wview-mysql-create <db_admin> <db_admin_passwd> <db_user> <db_passwd> <db_name>
#                 Arguments:
#                   db_admin       MySQL server admin with create and grant
#                                  privileges.
#                   db_admin_passwd MySQL server admin password.
#                   db_user        MySQL server user with create and grant
#                                  privileges.
#                   db_passwd      MySQL server password.
#                   db_name        MySQL database name to create and grant on.
#
# History:
# Engineer	  Date	    Ver   Comments
# MS Teel	  03/28/09   1    Original
#
################################################################################
 
show_usage()
{
    echo "USAGE:"
    echo "wview-mysql-create <db_admin> <db_admin_passwd> <db_user> <db_passwd> <db_name>"
    echo ""
    echo "    db_admin             - MySQL server admin with create and grant privileges."
    echo ""
    echo "    db_admin_passwd      - MySQL server admin password."
    echo ""
    echo "    db_user              - MySQL server user for export acivity (can be same as db_admin)."
    echo ""
    echo "    db_passwd            - MySQL server password."
    echo ""
    echo "    db_name              - MySQL database name to create and grant privileges for."
    echo ""
    echo "REQUIRES: mysql CLI utility for database creation."
    echo "MUST: be executed on the MySQL server."
    echo ""
}
 
################################################################################
#################################  M A C R O S  ################################
################################################################################
 
## DO NOT CHANGE ANY DEFS IN THIS BLOCK!
 
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 
## The defaults match the SQLite table names: 
SQL_ARCHIVE_TABLE=archive
SQL_HILOW_TABLE_INTEMP=inTemp
SQL_HILOW_TABLE_OUTTEMP=outTemp
SQL_HILOW_TABLE_INHUMIDITY=inHumidity
SQL_HILOW_TABLE_OUTHUMIDITY=outHumidity
SQL_HILOW_TABLE_BP=baromPressure
SQL_HILOW_TABLE_WINDSPEED=windSpeed
SQL_HILOW_TABLE_WINDGUST=windGust
SQL_HILOW_TABLE_DEWPOINT=dewPoint
SQL_HILOW_TABLE_RAIN=rain
SQL_HILOW_TABLE_RAINRATE=rainRate
SQL_HILOW_TABLE_WINDCHILL=windChill
SQL_HILOW_TABLE_HEATINDEX=heatIndex
SQL_HILOW_TABLE_ET=ET
SQL_HILOW_TABLE_UV=UV
SQL_HILOW_TABLE_SOLARRAD=solarRadiation
SQL_HILOW_TABLE_HAIL=hail
SQL_HILOW_TABLE_HAILRATE=hailRate
SQL_HILOW_TABLE_WINDDIR=windDir
SQL_NOAA_TABLE=noaaHistory
 
## Test command line arguments:
if [ "$1" = "help" ]; then
    show_usage
    exit 0
fi
 
## Check arguments:
if [ x"$1" = x ]; then
    echo "You must specify the MySQL admin username to create export database - use 'wview-mysql-create help' for details"
    show_usage
    exit 1
elif [ x"$2" = x ]; then
    echo "You must specify the MySQL admin password to create export database - use 'wview-mysql-create help' for details"
    show_usage
    exit 1
elif [ x"$3" = x ]; then
    echo "You must specify the MySQL username to create export database - use 'wview-mysql-create help' for details"
    show_usage
    exit 1
elif [ x"$4" = x ]; then
    echo "You must specify the MySQL password to create export database - use 'wview-mysql-create help' for details"
    show_usage
    exit 1
elif [ x"$5" = x ]; then
    echo "You must specify the MySQL database name to create export database - use 'wview-mysql-create help' for details"
    show_usage
    exit 1
else
    MYSQL_ADMIN_USERNAME=$1
    MYSQL_ADMIN_PASSWORD=$2
    MYSQL_USERNAME=$3
    MYSQL_PASSWORD=$4
    MYSQL_DBNAME=$5
fi
 
################################################################################
#######################  D E F I N E  F U N C T I O N S  #######################
################################################################################
syslog()
{
    logger -t WV_EXPORT $1 $2
}
 
syslog_error()
{
    logger -t WV_EXPORT_ERROR $1 $2
}
 
mysql_create()
{
    echo "create database $MYSQL_DBNAME;" > /tmp/commands.sql
    echo "grant all privileges on $MYSQL_DBNAME.* to $MYSQL_USERNAME@\"localhost\" identified by '$MYSQL_PASSWORD';" >> /tmp/commands.sql
    echo "grant all privileges on $MYSQL_DBNAME.* to $MYSQL_USERNAME@\"%\" identified by '$MYSQL_PASSWORD';" >> /tmp/commands.sql
    echo "use $MYSQL_DBNAME;" >> /tmp/commands.sql
 
    echo "create table $SQL_ARCHIVE_TABLE (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	usUnits INTEGER NOT NULL," >> /tmp/commands.sql
    echo "	arcInt INTEGER NOT NULL," >> /tmp/commands.sql
    echo "	barometer REAL," >> /tmp/commands.sql
    echo "	pressure REAL," >> /tmp/commands.sql
    echo "	altimeter REAL," >> /tmp/commands.sql
    echo "	inTemp REAL," >> /tmp/commands.sql
    echo "	outTemp REAL," >> /tmp/commands.sql
    echo "	inHumidity REAL," >> /tmp/commands.sql
    echo "	outHumidity REAL," >> /tmp/commands.sql
    echo "	windSpeed REAL," >> /tmp/commands.sql
    echo "	windDir REAL," >> /tmp/commands.sql
    echo "	windGust REAL," >> /tmp/commands.sql
    echo "	windGustDir REAL," >> /tmp/commands.sql
    echo "	rainRate REAL," >> /tmp/commands.sql
    echo "	rain REAL," >> /tmp/commands.sql
    echo "	dewpoint REAL," >> /tmp/commands.sql
    echo "	windchill REAL," >> /tmp/commands.sql
    echo "	heatindex REAL," >> /tmp/commands.sql
    echo "	ET REAL," >> /tmp/commands.sql
    echo "	radiation REAL," >> /tmp/commands.sql
    echo "	UV REAL," >> /tmp/commands.sql
    echo "	extraTemp1 REAL," >> /tmp/commands.sql
    echo "	extraTemp2 REAL," >> /tmp/commands.sql
    echo "	extraTemp3 REAL," >> /tmp/commands.sql
    echo "	soilTemp1 REAL," >> /tmp/commands.sql
    echo "	soilTemp2 REAL," >> /tmp/commands.sql
    echo "	soilTemp3 REAL," >> /tmp/commands.sql
    echo "	soilTemp4 REAL," >> /tmp/commands.sql
    echo "	leafTemp1 REAL," >> /tmp/commands.sql
    echo "	leafTemp2 REAL," >> /tmp/commands.sql
    echo "	extraHumid1 REAL," >> /tmp/commands.sql
    echo "	extraHumid2 REAL," >> /tmp/commands.sql
    echo "	soilMoist1 REAL," >> /tmp/commands.sql
    echo "	soilMoist2 REAL," >> /tmp/commands.sql
    echo "	soilMoist3 REAL," >> /tmp/commands.sql
    echo "	soilMoist4 REAL," >> /tmp/commands.sql
    echo "	leafWet1 REAL," >> /tmp/commands.sql
    echo "	leafWet2 REAL," >> /tmp/commands.sql
    echo "	rxCheckPercent REAL," >> /tmp/commands.sql
    echo "	txBatteryStatus REAL," >> /tmp/commands.sql
    echo "	consBatteryVoltage REAL," >> /tmp/commands.sql
    echo "	hail REAL," >> /tmp/commands.sql
    echo "	hailRate REAL," >> /tmp/commands.sql
    echo "	heatingTemp REAL," >> /tmp/commands.sql
    echo "	heatingVoltage REAL," >> /tmp/commands.sql
    echo "	supplyVoltage REAL," >> /tmp/commands.sql
    echo "	referenceVoltage REAL," >> /tmp/commands.sql
    echo "	windBatteryStatus REAL," >> /tmp/commands.sql
    echo "	rainBatteryStatus REAL," >> /tmp/commands.sql
    echo "	outTempBatteryStatus REAL," >> /tmp/commands.sql
    echo "	inTempBatteryStatus REAL" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_INTEMP (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_OUTTEMP (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_INHUMIDITY (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_OUTHUMIDITY (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_BP (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_WINDSPEED (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_WINDGUST (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_DEWPOINT (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_RAIN (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_RAINRATE (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_WINDCHILL (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_HEATINDEX (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_ET (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_UV (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_SOLARRAD (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_HAIL (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_HAILRATE (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	low REAL," >> /tmp/commands.sql
    echo "	timeLow INTEGER," >> /tmp/commands.sql
    echo "	high REAL," >> /tmp/commands.sql
    echo "	timeHigh INTEGER," >> /tmp/commands.sql
    echo "	whenHigh REAL," >> /tmp/commands.sql
    echo "	cumulative REAL," >> /tmp/commands.sql
    echo "	samples INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_HILOW_TABLE_WINDDIR (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	bin0 INTEGER," >> /tmp/commands.sql
    echo "	bin1 INTEGER," >> /tmp/commands.sql
    echo "	bin2 INTEGER," >> /tmp/commands.sql
    echo "	bin3 INTEGER," >> /tmp/commands.sql
    echo "	bin4 INTEGER," >> /tmp/commands.sql
    echo "	bin5 INTEGER," >> /tmp/commands.sql
    echo "	bin6 INTEGER," >> /tmp/commands.sql
    echo "	bin7 INTEGER," >> /tmp/commands.sql
    echo "	bin8 INTEGER," >> /tmp/commands.sql
    echo "	bin9 INTEGER," >> /tmp/commands.sql
    echo "	bin10 INTEGER," >> /tmp/commands.sql
    echo "	bin11 INTEGER," >> /tmp/commands.sql
    echo "	bin12 INTEGER," >> /tmp/commands.sql
    echo "	bin13 INTEGER," >> /tmp/commands.sql
    echo "	bin14 INTEGER," >> /tmp/commands.sql
    echo "	bin15 INTEGER," >> /tmp/commands.sql
    echo "	bin16 INTEGER," >> /tmp/commands.sql
    echo "	bin17 INTEGER," >> /tmp/commands.sql
    echo "	bin18 INTEGER," >> /tmp/commands.sql
    echo "	bin19 INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    echo "create table $SQL_NOAA_TABLE (" >> /tmp/commands.sql
    echo "	dateTime INTEGER NOT NULL PRIMARY KEY," >> /tmp/commands.sql
    echo "	meanTemp REAL," >> /tmp/commands.sql
    echo "	highTemp REAL," >> /tmp/commands.sql
    echo "	highTempTime INTEGER," >> /tmp/commands.sql
    echo "	lowTemp REAL," >> /tmp/commands.sql
    echo "	lowTempTime INTEGER," >> /tmp/commands.sql
    echo "	heatDegDays REAL," >> /tmp/commands.sql
    echo "	coolDegDays REAL," >> /tmp/commands.sql
    echo "	rain REAL," >> /tmp/commands.sql
    echo "	avgWind REAL," >> /tmp/commands.sql
    echo "	highWind REAL," >> /tmp/commands.sql
    echo "	highWindTime INTEGER," >> /tmp/commands.sql
    echo "	domWindDir INTEGER" >> /tmp/commands.sql
    echo ");" >> /tmp/commands.sql
 
    mysql --user=$MYSQL_ADMIN_USERNAME --password=$MYSQL_ADMIN_PASSWORD < /tmp/commands.sql > /tmp/mysql_create.log
    rm -rf /tmp/commands.sql
}
 
################################################################################
##################  S C R I P T  E X E C U T I O N  S T A R T  #################
################################################################################
 
mysql_create
 
## Done!
exit 0

Rufen wir das script ohne Optionen auf, wird eine kurze Hilfe ausgegeben

 # /usr/local/src/wview/dbexport/wview-mysql-create
You must specify the MySQL admin username to create export database - use 'wview-mysql-create help' for details
USAGE:
wview-mysql-create <db_admin> <db_admin_passwd> <db_user> <db_passwd> <db_name>

    db_admin             - MySQL server admin with create and grant privileges.

    db_admin_passwd      - MySQL server admin password.

    db_user              - MySQL server user for export acivity (can be same as db_admin).

    db_passwd            - MySQL server password.

    db_name              - MySQL database name to create and grant privileges for.

REQUIRES: mysql CLI utility for database creation.
MUST: be executed on the MySQL server.

Zum Anlegen der Tabellen und des Datenbanknutzers rufen wir das Programm wview-mysql-create wie folgt auf:

 # /usr/local/src/wview/dbexport/wview-mysql-create root sogened! wview-user Django_is_a_Geek wviewDB

Datenbank Verbindung testen

Anschliessend testen wir, ob wir mit den genannten Daten auch eine Verbindung zur Datenbank bekommen.

 # mysql -D wviewDB -u wview-user -h 10.0.0.37 -p
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 63806
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [wviewDB]> show tables;
+-------------------+
| Tables_in_wviewDB |
+-------------------+
| ET                |
| UV                |
| archive           |
| baromPressure     |
| dewPoint          |
| hail              |
| hailRate          |
| heatIndex         |
| inHumidity        |
| inTemp            |
| noaaHistory       |
| outHumidity       |
| outTemp           |
| rain              |
| rainRate          |
| solarRadiation    |
| windChill         |
| windDir           |
| windGust          |
| windSpeed         |
+-------------------+
20 rows in set (0.00 sec)

MariaDB [wviewDB]> quit
Bye

manuell Daten in die MySQL-Tabelle(n) einfügen

Bevor wir regelmäßig die Datenbank befüllen, testen wir dies, ob auch von der Konsole aus, der Datenbank-Export richtig funktioniert. Wir rufen also wview-mysql-export mit der Option debug auf.

 # wview-mysql-export debug

Im syslog wird uns der probelauf entsprechend positiv quittiert:

Aug  3 18:33:39 vml000020 WV_EXPORT: Exporting databases after: 1344011375
Aug  3 18:33:39 vml000020 WV_EXPORT: Exporting to: /usr/local/etc/wview/export/archive.csv
Aug  3 18:33:39 vml000020 WV_EXPORT: Exporting HILOW tables:
Aug  3 18:33:39 vml000020 WV_EXPORT: Exporting with: vml000030.dmz.nausch.org:wview-user:<password omitted>:wviewDB
Aug  3 18:33:39 vml000020 WV_EXPORT: Importing: /usr/local/etc/wview/export/archive.csv
Aug  3 18:33:39 vml000020 WV_EXPORT: Importing HILOW tables:

automatische Datenbankexport

Für den fortlaufenden Ex-/Import in die MySQL-Datenbank legen wir uns nun einen cronjob an, der uns alle 5 Minuten die Datensätze aus der sqlite-Datei/-Datenbank ausliest und in unsere mySQL-Datenbank schreibt.

vim /etc/crontab/

# wview Datenbankexport nach mysql aus der sqlite
# eingefügt durch Django am 08.06.2009
1,6,11,16,21,26,31,36,41,46,51,56 * * * * root /usr/local/bin/wview-mysql-export

MySQL-Datenbank-Import aus alten wview-Installationen

wlk2sqlite

Möchte man bereits bestehende Archivdaten im alten .WLK Format mit in eine neue Installation mit übernehmen, importieren wir diese mit Hilfe des Scriptes wlk2sqlite.

Der Aufruf erfolgt dabei wie gewohnt befehl quelle ziel:

 # wlk2sqlite /usr/local/var/wview-3.9.0/archive/ /usr/local/var/wview/archive/
Converting...(this takes a while, longer on small devices)...
Conversion Stats:
    Time      : 1:0 minutes
    Recs/sec  : 1001
    Inserts   : 60090
    Duplicates: 0
    Errors    : 0
Conversion Stats:
    Time      : 2:0 minutes
    Recs/sec  : 1028
    Inserts   : 123361
    Duplicates: 0
    Errors    : 0
Conversion Stats:
    Time      : 2:59
    Recs/sec  : 1040
    Inserts   : 183683
    Duplicates: 2555
    Errors    : 0

hilowcreat

Anschließend erstellen wir noch die HI/LO-Datenbanktabelle.

 # hilowcreate /usr/local/var/wview/archive/ /usr/local/var/wview/archive/
Creating HILOW database...(this takes ~ 30 seconds to 30 minutes per month of data according to your server platform)...
/usr/local/var/wview/archive//wview-hilow.sdb created successfully!
Now copy /usr/local/var/wview/archive//wview-hilow.sdb to /usr/local/var/wview/archive and restart wview 5.1.0 or newer...

Zum Schluß starten wir wview neu:

 # service wview start

Erweiterungen und Ergänzungen

AWEKAS

awekas-bm1.jpg

AWEKAS ist eine Abkürzung für „Automatisches WEtterKArten System“ und ist wie der Name schon sagt ein System das aus Messdaten privater Wetterstationen automatisch Übersichtskarten erstellt. Die Werte werden auf den jeweiligen Webseiten der Teilnehmer als Datei zur Verfügung gestellt und vom AWEKAS Server abgeholt.

wview liefert uns mittlerweile ein passendes Template-File mit. Wir kopieren dies in unseren Template-Pfad.

 # cp  /usr/local/etc/wview/html/awekas_wl.htx-metric /usr/local/etc/wview/html/awekas_wl.htx

In der html-templates.conf aktivieren wir nun die entsprechende vorgefertigte Konfigurationszeiel für die Bereitstellung unserer AWEKAS-wetterdaten.

# vim /usr/local/etc/wview/html-templates.conf

###############################################################################
### AWEKAS Data Submission Template
###############################################################################

awekas_wl.htx

Anschließend starten wir wview einmal durch.

 # service wview stop
 # service wview start

Aus der Muster-Vorlage

AWEKAS_Template_start<br>
<!--outsideTemp--><br>
<!--outsideHumidity--><br>
<!--barometer--><br>
<!--dailyRainMM--><br>
<!--windSpeed--><br>
<!--windDirectionDegrees--><br>
<!--stationTime--><br>
<!--stationDateMetric--><br>
<!--baromtrend--><br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
<!--windGustSpeed--><br>
<!--solarRad--><br>
<!--UV--><br>
<!--rainRate--><br>
<!--SoilTemp1--><br>
<!--tempUnit--><br>
<!--humUnit--><br>
<!--windUnit--><br>
<!--barUnit--><br>
<!--rainUnit--><br>
w/m^2<br>
<!--rateUnit--><br>
index<br>
Template_V1.5<br>

wir so das von AWEKAS benötigte Datenpaket.

AWEKAS_Template_start
15.4
77
1008.5
0.6
1.6
72
21:49:10
20090608
+
-
-
-
-
-
-
-
5
0
0.0
0.00

C
%
km/h
mb
mm
w/m^2
mm/h
index
Template_V1.5

CWOP

CWOP Logo

Das Citizen Weather Observer Program CWOP ist ein Zusammenschluß vieler privater und öffentlicher Wetterstationsbetreibern. Das Projekt CWOP steht für Zuverlässigkeit der gemeldeten Wetterdaten, da das Projekt folgende Haupziele verfolgt:

  1. Erfassen von Wetterdaten privater Wetterstationen
  2. Bereitstellen der Wetterdaten für weitere Wetterservices
  3. Überprüfen der gesammelten Wetterdaten auf Plausibilität, um so Betreibern bei der Verbesserung ihre Datenqualität und Genauigkeit zu helfen.

Die Wetterdaten werden im Gegensatz von AWEKAS nicht von einem zentralen Server abgeholt, sondern von den einzelnen Stationen via „telnet“ übertragen. Der Server speichert diese Daten der registrierten COWP-Stationen in einer Datenbank und stellt diese im Internet anderen zur Verfügung. Ferner werden die Stationsdaten an das NOAA MADIS Program weitergeleitet um dort von der NOAA, dem National Oceanic and Atmospheric Administration (NOAA) der Wetter- und Ozeanbehörde der USA, vergleichbar mit dem deutschen DWD, für Wettervorhersagen und Wetterwarnungen verwendet zu werden.

CWOP-Anmledung

Sofern wir noch keinen Account haben, legen wir uns einen neuen an. Hierzu gehen wir mit unserem Browser der Wahl zur URL. Die Anmeldung dort erreichen wir über den link. Dort tragen wir dann unsere Daten entsprechend ein: Beispiel:

CWOP Account Anmeldung

Nach Anwahl der Schaltfläche Send my CW Number! erhalten wir dann die erste Bestätigung.

CWOP#s Account-Bestätigung

Diese Nummer benötigen wir für die weitere Konfiguration von wview. Die Konfiguration von wview nemen wir am einfachsten über die WEB-GUI wviewmgmt vor. Beim Reiter CWOP tragen wir nun unsere Stationsdaten nach.

wview CWOP Einstellungen

Im Feld CWOP Call Sign tragen wir nun die zuvor erhaltene Account-Nummer ein. Bei Location geben wir die geographischen Daten unserer Station an. Bei Latitude ist das Format DDMM.hhd, wobei folgendes Format gilt:

Ensprechend gilt bei Longitude das Format DDDMM.hhd (Achtung die Gradangabe wird hier 3-stellig angegeben, also ggf. eine führende Null verwenden!)

Für die Station DW2996 ergeben sich bei Nord 48,19870 = 48° 11,92' sowie Ost 11,79800 = 11° 47,88'. Bei der Umrechnung hilft folgende Seite weiter!

Nach dem Sicher der daten, starten wir wview einmal neu.

 # service wview stop && service wview start

Im Syslog wird der erfolgreiche Start entsprechend dokumentiert.

Jun  9 13:02:22 nss wvcwopd[8074]: <1244545342160> : CWOP: Primary:   cwop.aprs.net:23
Jun  9 13:02:22 nss wvcwopd[8074]: <1244545342160> : CWOP: Secondary: cwop.aprs.net:23
Jun  9 13:02:22 nss wvcwopd[8074]: <1244545342160> : CWOP: Tertiary:  cwop.aprs.net:23
Jun  9 13:02:22 nss wvcwopd[8074]: <1244545342160> : CWOP: Submitting every 10 minutes at offset minute: 6

Sobald die ersten Daten übertragen werden, erfolgt auch hier ein Eintrag im zentralen syslog:

Jun  9 13:06:24 nss wvcwopd[8074]: <1244545584920> : CWOP-send: DW2996>APRS,TCPXX*,qAX,DW2996:@091106z4811.92N/01147.88E_271/006g010t063P000h67b10120.wview550
Jun  9 13:16:24 nss wvcwopd[8074]: <1244546184954> : CWOP-send: DW2996>APRS,TCPXX*,qAX,DW2996:@091116z4811.92N/01147.88E_310/006g013t063P000h66b10120.wview550
Jun  9 13:26:25 nss wvcwopd[8074]: <1244546785035> : CWOP-send: DW2996>APRS,TCPXX*,qAX,DW2996:@091126z4811.92N/01147.88E_271/010g013t064P000h65b10120.wview550
Jun  9 13:36:24 nss wvcwopd[8074]: <1244547384965> : CWOP-send: DW2996>APRS,TCPXX*,qAX,DW2996:@091136z4811.92N/01147.88E_314/010g013t065P000h63b10119.wview550
Jun  9 13:46:25 nss wvcwopd[8074]: <1244547985069> : CWOP-send: DW2996>APRS,TCPXX*,qAX,DW2996:@091146z4811.92N/01147.88E_288/002g007t065P000h64b10119.wview550
Jun  9 13:56:25 nss wvcwopd[8074]: <1244548585083> : CWOP-send: DW2996>APRS,TCPXX*,qAX,DW2996:@091156z4811.92N/01147.88E_279/007g013t065P000h62b10121.wview550

Im nächsten Schritt überprüfen wir, ob die Station richtig erkant wird und ob die Ortsangaben passten. Hierzu nutzen wir, die in der Status-eMAil benannte Zieladresse findu.com/cgi-bin/find.cgi?call=STATIONSNUMMER, also z.B.: https://www.findu.com/cgi-bin/find.cgi?call=DW2996 Sowohl die erkannten Daten und auch die Ortsangabe wird in der Karte angezeigt.

Karte mit Stationskennzeichnung

Sofern die Daten stimmen, senden wir, wie in der Status-eMail benannt, eine Nachricht an den CWOP Maintainer.

Anpassung für die metrische Regenmengenerfassung

Von Haus aus, wird die ISS der Vantage Pro 2 als „nicht metrische“ Version ausgeliefert. Damit nun die Erfassung und Anzeige der erfassten Regenmenge richtig klappt sind an der ISS sowie an wview ein paar Änderungen / Einstellungen vorzunehmen.

Einbau des metrischen Adapters in die ISS

Die integrierte Sensoreinheit enthält einen metrischen Adapter, mit Hilfe dessen das Gewicht des Mechanismus des Kippbehälters so einstellt wird, dass dieser 0,2 mm Niederschlag pro Leeren des Kippbehälters misst. Der Einbau erfolgt gemäß den Angaben auf Seite 31 der Installationsanleitung der ISS.

Kalibrierung des Kippmechanismusses der ISS

Für die Kalibrierung des Regenmessers verwenden wir am besten eine Messpipette oder eine 10ml Kunsstoffspritze aus der Apotheke. Nach dem Einbau des metrischen Adapters müssen wir nun dafür sorgen, dass exakt ein Wippenschlag erfolgt, sobald 0,2 mm Regen erfasst wurden. Das Wichtigste dabei ist, die waagerechte Ausrichtung der ISS, mit einer schief montierten ISS wird auch die spätere Kalibrierung fehlschlagen!. Ebenso sollte die Kalibrierung nur bei absoluter Windstille erfolgen, da sonst die Wippe unkontrolliert umschlagen wird!

Nachdem wir die ISS möglichst genau „in's Wasser“ gebracht haben, machen wir uns daran, die Kippwaage zu justieren. Hat man den metrischen Adapter installiert, sollte die Waage genau bei 0.2mm kippen. Dieser Kipppunkt lässt sich mit Hilfe der Schrauben unterhalb der Spitzen der Kippwaage einstellen. Je höher diese geschraubt werden, desto früher, d.h. bei geringerer Wassermenge kippt die Waage. Wichtig ist dabei vor allem, dass die Waage symmetrisch kippt, damit jeder Kippvorgang genau der gleichen Wassermenge entspricht.

Für die Bestimmung der Wassermenge, die 0.2mm und somit einem Kippen entspricht, müssen wir ein wenig rechnen:

Das Wasservolumen, das durch den Regenmesser fliesst berechnet sich aus der Regenhöhe mal der Auffangfläche A. Diese ist bei einem Radius des Regenmessers von 82 mm gemäss A=pi*r2=211 cm2. Somit fliesst eine Wassermenge von V=A*0.02cm= 4.2 cm3 (ml) pro 0.2mm Niederschlag durch den Regenmesser. Wir justieren also nun den Kippmechanismus so, dass exakt bei einer Wassermenge von 4,2 ml die Waage kippt. Dabei unbedingt auf Windstille achten!

Einstellung Vantage Pro2 Konsole

Für die Korrekte Anzeige der erfassten Regenmenge (Wippenschläge) muss nun noch die Messwertanzeige konfiguriert werden. Die Einstellung erfolgt, wie in der Bedienungsanleitung der Konsole auf Seite 28/29 beschrieben.

Einstellungn bei wviewmgmt

Im Gegensatz zu früheren Version bedarf es keines Pachen mehr an den wview-Sourcen! Unter dem Reiter File Generation setzen wir nun noch bei Metric Rain Use Millimeters? das Häkchen und speichern unsere Änderung ab.

wview Management "File Generation"

Anpassungen für deutsche Meldungen

Alternative zu der nachfolgend beschriebenen manuellen Patchung der beiden wview-Dateien:

können wir uns folgenden Patches bedienen.

Wir wechseln hierzu in unser Programmverzeichnis:

# cd /usr/local/src/wview

Als nächstes holen wir uns den Patch1) via wget:

# wget https://repository.nausch.org/public/wview/wview-5.20.2.de_patch

Zum Schluß wenden wir diesen an:

# patch -p1 < wview-5.20.2.de_patch 
patching file common/wvutils.c
patching file htmlgenerator/htmlGenerate.c

bzw. für die aktuelle Version:

# patch -p1 < wview-5.20.2.de_patch 
patching file common/wvutils.c
patching file htmlgenerator/htmlGenerate.c

Anschließend stoppen wir kurz wview, sofern es bereits gestartet wurde und läuft.

# service wview stop

Dann stoßen wir die Übersetzung des Quellcodes neu an und installieren die neu erstellte Version:

# make clean && make && make install

Zum Schluß wird wview neu gestartet.

# service wview start

deutsche Beaufort-Meldungen

Für die Ausgabe der deutschen Beaufortmeldungen ändern/patchen wir den Quellcode von wview.

Folgende Änderungen an der wvutils.c im Verzeichnis /usr/local/src/wview/common sind vorzunehmen:

# vim /usr/local/src/wview/common/wvutils.c

char *wvutilsConvertToBeaufortScale (int windSpeed)
{
    static char         beaufortBfr[32];

    if (windSpeed == Beaufort_Calm)
    {
//        sprintf (beaufortBfr, "Calm");
        sprintf (beaufortBfr, "Windstille");
    }
    else if (windSpeed <= Beaufort_LightAir)
    {
//        sprintf (beaufortBfr, "Light Air");
        sprintf (beaufortBfr, "leichter Zug");
    }
    else if (windSpeed <= Beaufort_LightBreeze)
    {
//        sprintf (beaufortBfr, "Light Breeze");
        sprintf (beaufortBfr, "leichte Brise");
    }
    else if (windSpeed <= Beaufort_GentleBreeze)
    {
//        sprintf (beaufortBfr, "Gentle Breeze");
        sprintf (beaufortBfr, "schwache Brise");
    }
    else if (windSpeed <= Beaufort_ModerateBreeze)
    {
//        sprintf (beaufortBfr, "Moderate Breeze");
        sprintf (beaufortBfr, "mäßige Brise");
    }
    else if (windSpeed <= Beaufort_FreshBreeze)
    {
//        sprintf (beaufortBfr, "Fresh Breeze");
        sprintf (beaufortBfr, "frische Brise");
    }
    else if (windSpeed <= Beaufort_StrongBreeze)
    {
//        sprintf (beaufortBfr, "Strong Breeze");
        sprintf (beaufortBfr, "starker Wind");
    }
    else if (windSpeed <= Beaufort_NearGale)
    {
//        sprintf (beaufortBfr, "Near Gale");
        sprintf (beaufortBfr, "steifer Wind");
    }
    else if (windSpeed <= Beaufort_Gale)
    {
//        sprintf (beaufortBfr, "Gale");
        sprintf (beaufortBfr, "stürmischer Wind");
    }
    else if (windSpeed <= Beaufort_SevereGale)
    {
//        sprintf (beaufortBfr, "Severe Gale");
        sprintf (beaufortBfr, "Sturm");
    }
    else if (windSpeed <= Beaufort_Storm)
    {
//        sprintf (beaufortBfr, "Storm");
        sprintf (beaufortBfr, "schwehrer Sturm");
    }
    else if (windSpeed <= Beaufort_ViolentStorm)
    {
//        sprintf (beaufortBfr, "Violent Storm");
        sprintf (beaufortBfr, "orkanartiger Sturm");
    }
    else // if (windSpeed <= Beaufort_Hurricane)
    {
//        sprintf (beaufortBfr, "Hurricane");
        sprintf (beaufortBfr, "Orkan");
    }

    return beaufortBfr;
}

Anschließend stoppen wir kurz wview, sofern es bereits gestartet wurde und läuft.

 # service wview stop

Dann stoßen wir die Übersetzung des Quellcodes neu an und installieren die neu erstellte Version:

 # make clean && make && make install

Zum Schluß wird wview neu gestartet.

 # service wview start

deutsche Himmelsrichtungen

Die Himmelsrichtungen, die und wview von Haus aus zur Verfügung stellt, sind „international. Das E für den Osten verwirrt unter Umständen Besucher der Wetterhomepage. Ein O für Osten ist in unseren Breitengraden da schon ein wenig aussagekräftiger.

Mit nachfolgendem Patch werden die Himmelsrichtungen dann unseren Ansprüchen nach korrigiert. Wir bearbeiten dieses mal die Datei htmlGenerate.c im Verzeichnis /usr/local/src/wview/htmlgenerator/.

 # vim /usr/local/src/wview/htmlgenerator/htmlGenerate.c
static char                 winddir[16][4] =
{
        "N",
//        "NNE",
        "NNO",
//        "NE",
        "NO",
//        "ENE",
        "ONO",
//        "E",
        "O",
//        "ESE",
        "OSO",
//        "SE"
        "SO",
//        "SSE",
        "SSO",
        "S",
        "SSW",
        "SW",
        "WSW",
        "W",
        "WNW",
        "NW",
        "NNW"
};

Diese nachfolgenden drei Schritte können wir uns aber eventuell auch sparen, wenn die nachfolgende Änderung zu den europäische Maßeinheiten auch noch gemacht werden. Wenn nicht, dann stoppen wir kurz wview, sofern es bereits gestartet wurde und läuft.

 # service wview stop

Dann stoßen wir die Übersetzung des Quellcodes neu an und installieren die neu erstellte Version:

 # make clean && make && make install

Zum Schluß wird wview neu gestartet.

 # service wview start

Anpassung für europäische Maßeinheiten

Damit für unsere Breitenangaben der Luftdruck in hPa und die Temperatur in °C angezeigt wird, müssen wir noch ein paar Änderungen am Quellcode vornehmen.

Wie schon zuvor bei den deutsche Himmelsrichtungen ändern wir (nochmals) die Datei htmlGenerate.c im Verzeichnis /usr/local/src/wview/htmlgenerator/.

 # vim /usr/local/src/wview/htmlgenerator/htmlGenerate.c
    //  now "tagIndex" is the index for the matched tag:
    switch (tagIndex)
    {
    case 0:
        if (id->isMetricUnits)
//            strcpy (store, " C");
            strcpy (store, " °C");
        else
//            strcpy (store, " F");
            strcpy (store, " °F");
        break;
    case 1:
        strcpy (store, " %");
        break;
    case 2:
        if (id->isMetricUnits)
            strcpy (store, " km/h");
        else
            strcpy (store, " mph");
        break;
    case 3:
        if (id->isMetricUnits)
//            strcpy (store, " mb");
            strcpy (store, " hPa");
        else
            strcpy (store, " in");
        break;

Anschließend stoppen wir kurz wview, sofern es bereits gestartet wurde und läuft.

 # service wview stop

Dann stoßen wir die Übersetzung des Quellcodes neu an und installieren die neu erstellte Version:

 # make clean && make && make install

Zum Schluß wird wview neu gestartet.

 # service wview start

Graphiken mit Einheitenbezeichnung = °C

Damit unsere erstellten Graphiken bei der Angabe der Temperaturwerte mit der bei uns übliche Bezeichnung °C (siehe Wikipedia-Artikel) versehen werden, müssen dir die mitgelieferte Konfigurationsdatei /usr/local/etc/wview/images.conf von UTF-8 nach ISO 8859-1 konvertieren.

Zuvor sicher wir noch die originale Datei images.conf, damit wir später ggf. wieder auf diese zurückgreifen zu können und tragen dann noch bei den betreffenden Werten die Einheit °C ein.

 # cp /usr/local/etc/wview/images.conf /usr/local/etc/wview/images.conf.orig
 # vim /usr/local/etc/wview/images.conf
/usr/local/etc/wview/images.conf
#
# images-metric.conf - configure what images wview will generate
#
 
# File Format
#
# -> lines beginning with '#' or <blank> are ignored
# -> columns are whitespace delimited
#
 
# Column Format
#
# 1) image filename
# 2) image label (can be translated as desired)
# 3) image unit label (can be translated as desired)
# 4) decimal places
# 5) image generator function index (see images.c)
#
 
# Enabling/Disabling Image Generation
#
# -> To enable the generation of an image, uncomment it (remove any '#'
     characters in front of the image definition)
# -> To disable the generation of an image, comment it out by placing one or
     more '#' characters in front of it
 
 
#################  D I A L S                             #################
 
# Filename              Label                           Units       DP  FNIndex
#---------------------  ------------------------------  ----------  --  -------
tempdial.png            "Temp"                          °C          0   109
humiddial.png           "Feuchte"                       %           0   110
wind.png                "Wind"                          none        0   11
 
 
#################  B U C K E T S                         #################
 
# Filename              Label                           Units       DP  FNIndex
#---------------------  ------------------------------  ----------  --  -------
temp.png                "Temperatur"                    °C          1   0
humid.png               "Feuchte"                       %           1   1
dew.png                 "Taupunkt"                      °C          1   2
wchill.png              "Windchill"                     °C          1   3
hindex.png              "Hitzeindex"                    °C          1   4
barom.png               "Barometer"                     hPa         1   5
dayrain.png             "Regen (Tag)"                   mm          1   6
stormrain.png           "Regen (Schauer)"               mm          1   7
rainrate.png            "Regen (Rate)"                  mm/Std.     1   8
monthrain.png           "Regen (Monat)"                 mm          1   9
yearrain.png            "Regen (Jahr)"                  mm          1   10
 
 
#################  C H A R T S                           #################
 
# Filename              Label                           Units       DP  FNIndex
#---------------------  ------------------------------  ----------  --  -------
#### DAY VALUES ####
tempdaycomp.png         "Temperatur/Taupunkt"           °C          0   42
heatchillcomp.png       "Windchill/Hitzeindex"          °C          0   43
intempdaycomp.png       "Temp./Luftfeuchte (Innen)"     °C/%        0   115
humidday.png            "Luftfeuchte"                   %           0   15
wspeeddaycomp.png       "Wind (Böe)"                     km/h        0   137
wspeedday.png           "Wind"                          km/h        0   21
wdirday.png             "Wind (Richtung)"               Grad        0   24
hiwspeedday.png         "Wind (max.)"                   km/h        0   27
baromday.png            "Luftdruck"                     hPa         0   30
 
tempday.png             "Temperatur"                    °C          0   12
dewday.png              "Taupunkt"                      °C          0   18
wchillday.png           "Windchill"                     °C          0   36
hindexday.png           "Hitzeindex"                    °C          0   39
 
#### WEEK VALUES ####
tempweekcomp.png        "Temperatur/Taupunkt"           °C          0   127
heatchillweekcomp.png   "Windchill/Hitzeindex"          °C          0   128
intempweekcomp.png      "Temp./Luftfeuchte (Innen)"     °C/%        0   129
humidweek.png           "Feuchte (Avg. / Stunde)"       %           0   118
wspeedweekcomp.png      "Wind (Böe)"                    km/h        0   138
wspeedweek.png          "Wind (Avg. / Stunde)"                 km/h        0   120
wdirweek.png            "Windrichtung (Avg. / Stunde)"         Grad        0   121
hiwspeedweek.png        "Wind max. (Avg. / Stunde)"            km/h        0   122
baromweek.png           "Luftdruck (Avg. / Stunde)"            hPa         0   123
 
tempweek.png            "Temperatur (Avg. / Stunde)"           °C          0   117
dewweek.png             "Taupunkt (Avg. / Stunde)"             °C          0   119
wchillweek.png          "Windchill (Avg. / Stunde)"            °C          0   125
hindexweek.png          "Hitzindex (Avg. / Stunde)"            °C          0   126
 
#### MONTH VALUES ####
tempmonthcomp.png       "Temperatur/Taupunkt"           °C          0   44
heatchillmonthcomp.png  "Windchill/Hitzeindex"          °C          0   45
intempmonthcomp.png     "Temp./Luftfeuchte (Innen)"     °C/%        0   116
humidmonth.png          "Feuchte (Avg. / Stunde)"              %           0   16
wspeedmonthcomp.png     "Wind (Böe)"                     km/h        0   139
wspeedmonth.png         "Wind (Avg. / Stunde)"                 km/h        0   22
wdirmonth.png           "Windrichtung (Avg. / Stunde)"         Grad        0   25
hiwspeedmonth.png       "Wind max. (Avg. / Stunde)"            km/h        0   28
barommonth.png          "Luftdruck (Avg. / Stunde)"            hPa         0   31
 
tempmonth.png           "Temperatur (Avg. / Stunde)"           °C          0   13
dewmonth.png            "Taupunkt (Avg. / Stunde)"             °C          0   19
wchillmonth.png         "Windchill (Avg. / Stunde)"            °C          0   37
hindexmonth.png         "Hitzeindex (Avg. / Stunde)"           °C          0   40
 
#### YEAR VALUES ####
tempyear.png            "Temperatur (Avg. / Tag)"            °C          0   14
humidyear.png           "Luftfeuchte (Avg. / Tag)"           %           0   17
dewyear.png             "Taupunkt (Avg. / Tag)"              C           0   20
wspeedyear.png          "Wind (Avg. / Tag)"                  km/h        0   23
wdiryear.png            "Windrichtung (Avg. / Tag)"          Grad        0   26
hiwspeedyear.png        "Wind max. (Avg. / Tag)"             km/h        0   29
baromyear.png           "Luftdruck (Avg. / Tag)"             hPa         0   32
wchillyear.png          "Windchill (Avg. / Tag)"             C           0   38
hindexyear.png          "Hitzeindex (Avg. / Tag)"            C           0   41
 
 
#################  B A R  C H A R T S                    #################
 
# Filename              Label                           Units       DP  FNIndex
#---------------------  ------------------------------  ----------  --  -------
rainday.png             "Regen / Stunde"                mm          0   33
rainweek.png            "Regen / Tag"                     mm          0   124
rainmonth.png           "Regen / Tag"                     mm          0   34
rainyear.png            "Regen / Woche"                   mm          0   35
 
 
#################  W I N D  R O S E S                    #################
 
# Filename              Label                           Units       DP  FNIndex
#---------------------  ------------------------------  ----------  --  -------
windroseday.png         "Windr. Tag"                    none        0   133
windroseweek.png        "Windr. Woche"                  none        0   134
windrosemonth.png       "Windr. Monat"                  none        0   135
windroseyear.png        "Windr. Jahr"                   none        0   136
 
 
#################  V P  P L U S  D A T A  B U C K E T S  #################
 
# Filename              Label                           Units       DP  FNIndex
#---------------------  ------------------------------  ----------  --  -------
UV.png                  "UV Index"                      index       1   106
radiation.png           "Solarstrahlung"                Watt/m^2    1   107
ET.png                  "Verdunstung (Tag)"             mm          1   108
 
 
#################  V P  P L U S  D A T A  C H A R T S    #################
 
# Filename              Label                            Units       DP  FNIndex
#---------------------  ------------------------------   ----------  --  -------
radiationDay.png        "Solarstrahlung"                 Watt        0   46
radiationWeek.png       "Solarstrahlung (Avg. / Stunde)" Watt        0   130
radiationMonth.png      "Solarstrahlung (Avg. / Tag)"    Watt        0   47
radiationYear.png       "Solarstrahlung (Avg. / Tag)"    Watt        0   48
UVDay.png               "UV Index"                       index       0   49
UVWeek.png              "UV Index (Avg. / Stunde"        index       0   131
UVMonth.png             "UV Index (Avg. / Stunde)"       index       0   50
UVYear.png              "UV Index (Avg. / Tag)"          index       0   51
ETDay.png               "Verdunstung/Stunde"             mm/hr       1   52
ETWeek.png              "Verdunstung/Tag"                mm/Tag      0   132
ETMonth.png             "Verdunstung/Tag"                mm/Tag      0   53
ETYear.png              "Verdunstung/Woche"              mm/Woche    0   54
leafTemp1Day.png        "LeafTemp1"                      °C           0   55
leafTemp1Month.png      "LeafTemp1 (Avg. / Stunde)"      °C           0   56
## leafTemp1Year.png       "LeafTemp1 (Daily Avg)"         C           0   57
## leafTemp2Day.png        "LeafTemp2"                     C           0   58
## leafTemp2Month.png      "LeafTemp2 (Hourly Avg)"        C           0   59
## leafTemp2Year.png       "LeafTemp2 (Daily Avg)"         C           0   60
## leafWetness1Day.png     "LeafWet1 Index"                (0-15)      0   61
## leafWetness1Month.png   "LeafWet1 Index (Hourly Avg)"   (0-15)      0   62
## leafWetness1Year.png    "LeafWet1 Index (Daily Avg)"    (0-15)      0   63
## leafWetness2Day.png     "LeafWet2 Index"                (0-15)      0   64
## leafWetness2Month.png   "LeafWet2 Index (Hourly Avg)"   (0-15)      0   65
## leafWetness2Year.png    "LeafWet2 Index (Daily Avg)"    (0-15)      0   66
## soilTemp1Day.png        "SoilTemp1"                     C           0   67
## soilTemp1Month.png      "SoilTemp1 (Hourly Avg)"        C           0   68
## soilTemp1Year.png       "SoilTemp1 (Daily Avg)"         C           0   69
## soilTemp2Day.png        "SoilTemp2"                     C           0   70
## soilTemp2Month.png      "SoilTemp2 (Hourly Avg)"        C           0   71
## soilTemp2Year.png       "SoilTemp2 (Daily Avg)"         C           0   72
## soilTemp3Day.png        "SoilTemp3"                     C           0   73
## soilTemp3Month.png      "SoilTemp3 (Hourly Avg)"        C           0   74
## soilTemp3Year.png       "SoilTemp3 (Daily Avg)"         C           0   75
## soilTemp4Day.png        "SoilTemp4"                     C           0   76
## soilTemp4Month.png      "SoilTemp4 (Hourly Avg)"        C           0   77
## soilTemp4Year.png       "SoilTemp4 (Daily Avg)"         C           0   78
## extraHumid1Day.png      "ExtraHumidity1"                %           0   79
## extraHumid1Month.png    "ExtraHumidity1 (Hourly Avg)"   %           0   80
## extraHumid1Year.png     "ExtraHumidity1 (Daily Avg)"    %           0   81
## extraHumid2Day.png      "ExtraHumidity2"                %           0   82
## extraHumid2Month.png    "ExtraHumidity2 (Hourly Avg)"   %           0   83
## extraHumid2Year.png     "ExtraHumidity2 (Daily Avg)"    %           0   84
## extraTemp1Day.png       "ExtraTemp1"                    C           0   85
## extraTemp1Month.png     "ExtraTemp1 (Hourly Avg)"       C           0   86
## extraTemp1Year.png      "ExtraTemp1 (Daily Avg)"        C           0   87
## extraTemp2Day.png       "ExtraTemp2"                    C           0   88
## extraTemp2Month.png     "ExtraTemp2 (Hourly Avg)"       C           0   89
## extraTemp2Year.png      "ExtraTemp2 (Daily Avg)"        C           0   90
## extraTemp3Day.png       "ExtraTemp3"                    C           0   91
## extraTemp3Month.png     "ExtraTemp3 (Hourly Avg)"       C           0   92
## extraTemp3Year.png      "ExtraTemp3 (Daily Avg)"        C           0   93
## soilMoist1Day.png       "SoilMoist1"                    cb          0   94
## soilMoist1Month.png     "SoilMoist1 (Hourly Avg)"       cb          0   95
## soilMoist1Year.png      "SoilMoist1 (Daily Avg)"        cb          0   96
## soilMoist2Day.png       "SoilMoist2"                    cb          0   97
## soilMoist2Month.png     "SoilMoist2 (Hourly Avg)"       cb          0   98
## soilMoist2Year.png      "SoilMoist2 (Daily Avg)"        cb          0   99
## soilMoist3Day.png       "SoilMoist3"                    cb          0   100
## soilMoist3Month.png     "SoilMoist3 (Hourly Avg)"       cb          0   101
## soilMoist3Year.png      "SoilMoist3 (Daily Avg)"        cb          0   102
## soilMoist4Day.png       "SoilMoist4"                    cb          0   103
## soilMoist4Month.png     "SoilMoist4 (Hourly Avg)"       cb          0   104
## soilMoist4Year.png      "SoilMoist4 (Daily Avg)"        cb          0   105
 
 
#################  V P  P L U S  D I A L S               #################
 
# Filename              Label                            Units       DP  FNIndex
#---------------------  ------------------------------   ----------  --  -------
netRainDay.png          "Precip Tag"                      mm          0   112
netRainMonth.png        "Precip Monat"                    mm          0   113
netRainYear.png         "Precip Jahr"                     mm          0   114
 
 
#################  D I A G N O S T I C S                 #################
 
# Filename              Label                           Units       DP  FNIndex
#---------------------  ------------------------------  ----------  --  -------
rxcheck.png             "Empfangsqualität"               %           0   111

Anschließend konvertieren wir die bearbeitete images.conf, mit dem Befehl iconv.

 # iconv -f UTF-8 -t ISO-8859-1 images.conf > images.conf.neu-ISO-8859-1

Anschließend löschen wir die images.conf und setzen einen symbolischen link auf die neu erstellte Datei, damit htmlgend die Vorlagedatei finden kann.

 # rm -f /usr/local/etc/wview/images.conf
 # ln -s /usr/local/etc/wview/images.conf.neu-8859-1 /usr/local/etc/wview/images.conf

Zum Schluß starten wir wview einmal neu und erfreuen uns der neuen Graphiken.

 # service wview start

Bei Bedarf pimpen wir noch abschließend die Bildschirmausgaben noch ein wenig - wie das geht, steht im letzten Kapitel V) Chrome-Style Graphiken für wview.

deutsche Wettervorhersagemeldungen

Für die Wettervorhersagen mit deutschen Meldungen nutzen wir die Übersetzung von Tobias Ferrari, die in der Konfigurationsdatei forecast.conf hinterlegt sind.

Links

1)
erstellt via:
diff -NaurwB wview-5.20.2/ wview-5.20.2_de/ > wview-5.20.2.de_patch