Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
wetter:wview:config [04.08.2012 21:04. ] – [Datenbank anlegen] djangowetter:wview:config [31.10.2023 18:27. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== 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
 +<code apache 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>
 +</code>
 +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.
 +
 +<code>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...
 +</code>
 +==== Aufruf im Browser ====
 +Wir erreichen nun **__The New Way to Manage wview__** über https://wviewadmin.nausch.org.
 +
 +{{ :wetter:wview:wviewmgmt_login.png?350 |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**.
 +
 +{{ :wetter:wview:wviewmgmt_01.png?650 |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**//.
 +
 +{{ :wetter:wview:wviewmgmt_02.png?650 |wview Management "Services"}}
 +
 +Die Einstellungen zur //**Station**// erfolgt auf dieser Seite.
 +
 +{{ :wetter:wview:wviewmgmt_03.png?650 |wview Management "Station"}}
 +
 +Für die Generierung der einzelnen Dateien haben wir unter //**File Generation**// folgende Einstellungsmöglichkeiten.
 +
 +{{ :wetter:wview:wviewmgmt_04.png?650 |wview Management "File Generation"}}
 +
 +Die Definition der Alarme erfolgt im Reiter //**Alarms**//.
 +
 +{{ :wetter:wview:wviewmgmt_05.png?650 |wview Management "Alarms"}}
 +
 +Der Dateiupload via FTP erfolgt im gleichnamigen Reiter //**FTP**//.
 +
 +{{ :wetter:wview:wviewmgmt_06.png?650 |wview Management "FTP"}}
 +
 +Für die Dateiübertragung mittels **scp** tragen wir auf dem Reiter //**SSH**// die nötigen Daten ein.
 +
 +{{ :wetter:wview:wviewmgmt_07.png?650 |wview Management "SSH"}}
 +
 +Nutzen wir **CWOP** so geben wir im gleichnamigen Reiter //**CWOP**// unsere Daten ein.
 +
 +{{ :wetter:wview:wviewmgmt_08.png?650 |wview Management "CWOP"}}
 +
 +Die beiden HTTP-Services **Weather For You** und **Weather Underground** werden in Reiter //**HTTP-Services**// definiert.
 +
 +{{ :wetter:wview:wviewmgmt_09.png?650 |wview Management "HTTP Services"}}
 +
 +Zur Calibrierung der Messwerte steht der Reiter //**Calibration**// bereit.
 +
 +{{ :wetter:wview:wviewmgmt_10.png?650 |wview Management "Calibration"}}
 +
 +Wollen wir die Messwerte in einer SQL-Datenbanktabelle ablegen, so definieren wir im Reiter //**SQL Export**// die hierzu nötigen Daten.
 +
 +{{ :wetter:wview:wviewmgmt_11.png?650 |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.
 +
 +{{ :wetter:wview:wviewmgmt_12.png?600 |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. [[https://metricconversion.biz/de/laenge-umrechnung.html|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
 +<code bash>################################################################################
 +
 +--> 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!
 +
 +################################################################################
 +
 +</code>
 +
 +<code># 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!
 +
 +################################################################################</code>
 +==== wview Management ====
 +Zum Einstellen der grundlegenden Konfiguration rund um **wview** bedienen wir uns am einfachsten der **WEB-GUI**, die wir im Kapitel [[:wetter:wview:config#weather_view_management_ueber_den_webbrowser|Installation von wviewmgmt]] installiert und konfiguriert hatten.
 +
 +Im Webbrowser unser Wahl rufen wir also die definierte Adresse unseres [[https://wviewadmin.nausch.org/|Davis Vantage Pro Weather Server and Site Generator]]auf. 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
 +
 +<code bash>################################################################################
 + !!!!!!!!!!!!!!!!         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
 +</code>
 +
 +
 +<code># 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</code>
 +===== 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 [[https://wviewadmin.nausch.org)|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**. <code> # mysql -h 127.0.0.1 -u root -p</code> <code>Enter password:</code><code>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)
 +</code>
 +  - **neuen Benutzer anlegen** \\ Mit folgendem Befehl legen wir uns einen neuen Nutzer an:<code>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)]> </code> sowie <code>
 +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)]> </code>
 +  - **Benutzerprivilegien setzen und zuweisen** \\ Anschließend setzen wir die Benutzerrechte unseres gerade angelegten Datenbanknutzers. <code>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)]></code> und <code>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)]></code>
 +  - **Rechte des Nutzers in der Datenbank neu laden** \\ Im letzten Schritt laden wir nun die Rechte unseres neuen Datenbankusers.<code>MariaDB [(none)]> FLUSH PRIVILEGES;
 +Query OK, 0 rows affected (0.00 sec)
 +
 +MariaDB [(none)]></code>
 +  - **mySQL-Datenbankverbindung beenden** \\ Unsere Konfiguration unseres neuen Datenbanknutzers ist hiermit beendet und wir können die Verbindung zur Datenbank wieder schliessen.<code>mysql> exit
 +Bye
 +</code>
 +  - **mySQL-Datenbanktabellen anlegen** \\ Als nächstes legen wir die notwendigen Datenbanktabellen an. Hierzu nutzen wir folgende Konfigurationsdatei. <file sql 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;
 +
 +</file> Diese Datei übergeben wir nun unserem mySQL-Server. <code> # mysql -D wviewDB -u wview-user -h 10.0.0.37 -p < mysql-database-create</code> <code>Enter password: </code>
 +
 +/*
 +<code>MariaDB [(none)]> CREATE USER 'wviewuser'@'vml000147.dmz.nausch.org' IDENTIFIED BY '0j4n90_1$_4_G33k';
 +Query OK, 0 rows affected (0.04 sec)
 +
 +MariaDB [(none)]> CREATE USER 'wviewuser'@'10.0.0.147' IDENTIFIED BY '0j4n90_1$_4_G33k';
 +Query OK, 0 rows affected (0.01 sec)
 +
 +MariaDB [(none)]> GRANT ALL PRIVILEGES ON wviewDB.* TO 'wviewuser'@'vml000147.dmz.nausch.org' IDENTIFIED BY '0j4n90_1$_4_G33k' 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.03 sec)
 +
 +MariaDB [(none)]> GRANT ALL PRIVILEGES ON wviewDB.* TO 'wviewuser'@'10.0.0.147' IDENTIFIED BY '0j4n90_1$_4_G33k' 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)]> FLUSH PRIVILEGES;
 +Query OK, 0 rows affected (0.05 sec)
 +
 +MariaDB [(none)]> exit
 +Bye
 +</code>
 +*/
 +
 +==== 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**//.
 +<file bash>#!/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      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
 +
 +</file>
 +Rufen wir das script ohne Optionen auf, wird eine kurze Hilfe ausgegeben
 +   # /usr/local/src/wview/dbexport/wview-mysql-create
 +
 +<code>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.
 +</code>
 +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:
 +<code>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
 +</code>
 +
 +=== 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:
 +<code>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:
 +</code>
 +=== 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.
 +<code>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</code>
 +
 +
 +==== 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/
 +<code>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</code>
 +=== hilowcreat ===
 +Anschließend erstellen wir noch die **HI/LO-Datenbanktabelle**. 
 +   # hilowcreate /usr/local/var/wview/archive/ /usr/local/var/wview/archive/
 +
 +<code>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...
 +</code>
 +
 +Zum Schluß starten wir wview neu:
 +   # service wview start
 +===== Erweiterungen und Ergänzungen =====
 +==== AWEKAS ====
 +
 +{{ws:ws:awekas-bm1.jpg}}
 +
 +AWEKAS ist eine Abkürzung für "**A**utomatisches **WE**tter**KA**rten **S**ystem" 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.
 +<code># vim /usr/local/etc/wview/html-templates.conf
 +
 +###############################################################################
 +### AWEKAS Data Submission Template
 +###############################################################################
 +
 +awekas_wl.htx</code>
 +Anschließend starten wir **wview** einmal durch.
 +   # service wview stop
 +   # service wview start
 +Aus der Muster-Vorlage
 +<code>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></code>
 +wir so das von [[https://www.awekas.at|AWEKAS]] benötigte Datenpaket.
 +<code>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</code>
 +
 +----
 +
 +==== CWOP ====
 +
 +{{:wetter:wview:cwop-logo_gross.png?125|CWOP Logo}}
 +
 +Das **C**itizen **W**eather **O**bserver **P**rogram [[https://www.wxqa.com/|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 [[https://findu.com|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 [[https://www-sdd.fsl.noaa.gov/MADIS/index.html|NOAA MADIS Program]] weitergeleitet um dort von der [[https://www.noaa.gov/|NOAA]], dem **N**ational **O**ceanic and **A**tmospheric **A**dministration (NOAA) der Wetter- und Ozeanbehörde der USA, vergleichbar mit dem [[https://www.dwd.de/|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 [[https://www.findu.com/citizenweather/signup.html|URL]]. Die Anmeldung dort erreichen wir über den [[https://www.findu.com/citizenweather/cw_form.html|link]]. Dort tragen wir dann unsere Daten entsprechend ein:
 +Beispiel:
 +
 +{{ :wetter:wview:cwop_account_1.png?600 |CWOP Account Anmeldung}}
 +
 +Nach Anwahl der Schaltfläche **Send my CW Number!** erhalten wir dann die erste Bestätigung.
 +
 +{{ :wetter:wview:cwop_account_2.png?525 |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 [[https://wviewadmin.nausch.org/|wviewmgmt]] vor. Beim Reiter **//CWOP//** tragen wir nun unsere Stationsdaten nach.
 +
 +{{ :wetter:wview:cwop_account_3.png?600 |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:
 +  * DD = Grad
 +  * MM = Minuten
 +  * hh = Hundertstel Minuten (Nachkommastellen)
 +  *  d = Angabe **N**ord 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 **E**ast (Ost) oder **W**est
 +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 [[https://www.directionsmag.com/latlong.php|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.
 +<code>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</code>
 +Sobald die ersten Daten übertragen werden, erfolgt auch hier ein Eintrag im zentralen **syslog**:
 +<code>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</code>
 +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.
 +
 +{{ :wetter:wview:cwop_account_4.png?600 |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 [[https://nausch.org/ws500/VP2_ISS_Inst_Euro.pdf|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 [[https://nausch.org/ws500/VP2_Console_Euro.pdf|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.
 +
 +{{ :wetter:wview:wviewmgmt_04.png?600 |wview Management "File Generation"}}
 +
 +==== 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 [[https://repository.nausch.org/public/wview/wview-5.20.2.de_patch|Patches]] bedienen.
 +
 +Wir wechseln hierzu in unser Programmverzeichnis:
 +  # cd /usr/local/src/wview
 +Als nächstes holen wir uns den Patch((erstellt via:\\ diff -NaurwB wview-5.20.2/ wview-5.20.2_de/ > wview-5.20.2.de_patch)) 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:
 +<code># 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;
 +}</code>
 +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
 +<code>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"
 +};
 +</code>
 +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
 +<code>
 +    //  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;</code>
 +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 [[https://de.wikipedia.org/wiki/Celsius|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
 +
 +<file bash /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"                                   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
 +dew.png                 "Taupunkt"                      °C          1   2
 +wchill.png              "Windchill"                     °C          1   3
 +hindex.png              "Hitzeindex"                    °C          1   4
 +barom.png               "Barometer"                     hPa           5
 +dayrain.png             "Regen (Tag)"                   mm          1   6
 +stormrain.png           "Regen (Schauer)"               mm          1   7
 +rainrate.png            "Regen (Rate)"                  mm/Std.       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"                               15
 +wspeeddaycomp.png       "Wind (Böe)"                     km/       0   137
 +wspeedday.png           "Wind"                          km/h        0   21
 +wdirday.png             "Wind (Richtung)"               Grad        0   24
 +hiwspeedday.png         "Wind (max.)"                   km/       0   27
 +baromday.png            "Luftdruck"                     hPa           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)"                   118
 +wspeedweekcomp.png      "Wind (Böe)"                    km/h        0   138
 +wspeedweek.png          "Wind (Avg. / Stunde)"                 km/       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           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)"              %             16
 +wspeedmonthcomp.png     "Wind (Böe)"                     km/       0   139
 +wspeedmonth.png         "Wind (Avg. / Stunde)"                 km/       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           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)"                       17
 +dewyear.png             "Taupunkt (Avg. / Tag)"              C             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/       0   29
 +baromyear.png           "Luftdruck (Avg. / Tag)"             hPa           32
 +wchillyear.png          "Windchill (Avg. / Tag)"                         38
 +hindexyear.png          "Hitzeindex (Avg. / Tag)"            C             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         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         49
 +UVWeek.png              "UV Index (Avg. / Stunde"        index         131
 +UVMonth.png             "UV Index (Avg. / Stunde)"       index         50
 +UVYear.png              "UV Index (Avg. / Tag)"          index         51
 +ETDay.png               "Verdunstung/Stunde"             mm/hr         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             55
 +leafTemp1Month.png      "LeafTemp1 (Avg. / Stunde)"      °C             56
 +## leafTemp1Year.png       "LeafTemp1 (Daily Avg)"                     57
 +## leafTemp2Day.png        "LeafTemp2"                                 58
 +## leafTemp2Month.png      "LeafTemp2 (Hourly Avg)"        C             59
 +## leafTemp2Year.png       "LeafTemp2 (Daily Avg)"                     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"                                 67
 +## soilTemp1Month.png      "SoilTemp1 (Hourly Avg)"        C             68
 +## soilTemp1Year.png       "SoilTemp1 (Daily Avg)"                     69
 +## soilTemp2Day.png        "SoilTemp2"                                 70
 +## soilTemp2Month.png      "SoilTemp2 (Hourly Avg)"        C             71
 +## soilTemp2Year.png       "SoilTemp2 (Daily Avg)"                     72
 +## soilTemp3Day.png        "SoilTemp3"                                 73
 +## soilTemp3Month.png      "SoilTemp3 (Hourly Avg)"        C             74
 +## soilTemp3Year.png       "SoilTemp3 (Daily Avg)"                     75
 +## soilTemp4Day.png        "SoilTemp4"                                 76
 +## soilTemp4Month.png      "SoilTemp4 (Hourly Avg)"        C             77
 +## soilTemp4Year.png       "SoilTemp4 (Daily Avg)"                     78
 +## extraHumid1Day.png      "ExtraHumidity1"                %             79
 +## extraHumid1Month.png    "ExtraHumidity1 (Hourly Avg)"               80
 +## extraHumid1Year.png     "ExtraHumidity1 (Daily Avg)"    %             81
 +## extraHumid2Day.png      "ExtraHumidity2"                %             82
 +## extraHumid2Month.png    "ExtraHumidity2 (Hourly Avg)"               83
 +## extraHumid2Year.png     "ExtraHumidity2 (Daily Avg)"    %             84
 +## extraTemp1Day.png       "ExtraTemp1"                    C             85
 +## extraTemp1Month.png     "ExtraTemp1 (Hourly Avg)"                   86
 +## extraTemp1Year.png      "ExtraTemp1 (Daily Avg)"        C             87
 +## extraTemp2Day.png       "ExtraTemp2"                    C             88
 +## extraTemp2Month.png     "ExtraTemp2 (Hourly Avg)"                   89
 +## extraTemp2Year.png      "ExtraTemp2 (Daily Avg)"        C             90
 +## extraTemp3Day.png       "ExtraTemp3"                    C             91
 +## extraTemp3Month.png     "ExtraTemp3 (Hourly Avg)"                   92
 +## extraTemp3Year.png      "ExtraTemp3 (Daily Avg)"        C             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"                           111
 +
 +</file>
 +
 +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 [[wetter:wview:pimp|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  {{:wetter:wview:forecast.conf|forecast.conf}} hinterlegt sind.
 +
 +====== Links ======
 +  * **[[wetter:start|Zurück zum Kapitel >>Wetterbeobachtung und -datenerfassung bei der Wetterstation Pliening<<]]**
 +  * **[[wetter:wview:start|Zurück zum Kapitel >>Software - wview<<]]**
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
 +  * **[[https://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
 +