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.
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.
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.
Die Einstellungen zur Station erfolgt auf dieser Seite.
Für die Generierung der einzelnen Dateien haben wir unter File Generation folgende Einstellungsmöglichkeiten.
Die Definition der Alarme erfolgt im Reiter Alarms.
Der Dateiupload via FTP erfolgt im gleichnamigen Reiter FTP.
Für die Dateiübertragung mittels scp tragen wir auf dem Reiter SSH die nötigen Daten ein.
Nutzen wir CWOP so geben wir im gleichnamigen Reiter CWOP unsere Daten ein.
Die beiden HTTP-Services Weather For You und Weather Underground werden in Reiter HTTP-Services definiert.
Zur Calibrierung der Messwerte steht der Reiter Calibration bereit.
Wollen wir die Messwerte in einer SQL-Datenbanktabelle ablegen, so definieren wir im Reiter SQL Export die hierzu nötigen Daten.
Zu guter letzt haben wir noch die Möglichkeit uns über den Menüpunkt Logout von der Management-Web-GUI von wview abzumelden.
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:
- 48,2° Nord und 11,8° Ost
- latitude = 482 und longitude = 118
# 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.
- SQL Server = localhost
- SQL Server User Name = wview-user
- SQL server Password = Django_is_a_Geek
- SQL Datebase name = wviewDB
Bei der Erstellung der notwendigen Datenbank-(Tabelle) und des Datenbank-(Users) gibt es zwei Möglichkeiten:
- I die benutzerindividuelle manuelle Konfiguration
- II die Nutzung von wview-mysql-export aus dem Programmpaket wview, oder
Nachfolgend werden wir uns nun diese beiden Varianten genauer ansehen.
I) benutzerindividuelle Konfiguration
- 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)
- 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)]>
- 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)]>
- 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)]>
- mySQL-Datenbankverbindung beenden
Unsere Konfiguration unseres neuen Datenbanknutzers ist hiermit beendet und wir können die Verbindung zur Datenbank wieder schliessen.mysql> exit Bye
- 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 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
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:
- Erfassen von Wetterdaten privater Wetterstationen
- Bereitstellen der Wetterdaten für weitere Wetterservices
- Ü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:
Nach Anwahl der Schaltfläche Send my CW Number! erhalten wir dann die erste 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.
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:
- DD = Grad
- MM = Minuten
- hh = Hundertstel Minuten (Nachkommastellen)
- d = Angabe Nord oder S
Ensprechend gilt bei Longitude das Format DDDMM.hhd (Achtung die Gradangabe wird hier 3-stellig angegeben, also ggf. eine führende Null verwenden!)
- DDD = Grad
- MM = Minuten
- hh = Hundertstel Minuten (Nachkommastellen)
- d = Angabe East (Ost) oder West
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.
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.
Anpassungen für deutsche Meldungen
Alternative zu der nachfolgend beschriebenen manuellen Patchung der beiden wview-Dateien:
- /usr/local/src/wview/common/wvutils.c
- /usr/local/src/wview/htmlgenerator/htmlGenerate.c
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
diff -NaurwB wview-5.20.2/ wview-5.20.2_de/ > wview-5.20.2.de_patch