\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "Aktuelle Wetterdaten\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "Aktuelle Wetterdaten

\n"; echo "\n"; // Ergebnisse in HTML ausgeben // for-Schleife für die Ausgabe-Inhalte for($wetterart=0;$wetterart<7;$wetterart++) { /////////////////////////// // 0: Temperatur // 1: Luftfeuchtigkeit // 2: Luftdruck // 3: Windgeschwindigkeit // 4: Windrichtung // 5: Sonnenscheindauer // 6: Regenmenge /////////////////////////// /////////////////////////////////// // // 1. Schritt: höchste oid holen, // mit dem dann der aktuellste Wert // selektiert wird // /////////////////////////////////// $sql="select max(oid) as oid from "; switch($wetterart) { case 0: $table = "outside_temp"; break; case 1: $table = "outside_hum"; break; case 2: $table = "airpressure"; break; case 3: $table = "windforce"; break; case 4: $table = "winddirection"; break; case 5: $table = "sunshine"; break; case 6: $table = "rainfall"; break; default: $table = ""; } $result = pg_exec($sql . $table); $nrows = pg_numrows($result); if($nrows != 0) { for($j=0;$j<$nrows;$j++) { $row = pg_fetch_array($result); $oid = $row["oid"]; } } else print "

No max(oid) Entry for " . $table; // Speicher freigeben pg_free_result($result); /////////////////////////////////// // // 2. Schritt: aktuellen Wert inkl. // Zeit holen // /////////////////////////////////// if ($wetterart != 5 && $wetterart != 6) $sql="select to_char(savetime, 'DD.MM.YYYY') as datum, to_char(savetime, 'HH24:MI') as zeit, "; else $sql = ""; if ($wetterart == 4) $rest1 = "case when degree >= 348.75 then 'N' when degree < 11.25 then 'N' when degree >= 11.25 and degree < 33.75 then 'NNO' when degree >= 33.75 and degree < 56.25 then 'NO' when degree >= 56.25 and degree < 78.75 then 'ONO' when degree >= 78.75 and degree < 101.25 then 'O' when degree >= 101.25 and degree < 123.75 then 'OSO' when degree >= 123.75 and degree < 146.25 then 'SO' when degree >= 146.25 and degree < 168.75 then 'SSO' when degree >= 168.75 and degree < 191.25 then 'S' when degree >= 191.25 and degree < 213.75 then 'SSW' when degree >= 213.75 and degree < 236.25 then 'SW' when degree >= 236.25 and degree < 258.75 then 'WSW' when degree >= 258.75 and degree < 281.25 then 'W' when degree >= 281.25 and degree < 303.75 then 'WNW' when degree >= 303.75 and degree < 326.25 then 'NW' when degree >= 326.25 and degree < 348.75 then 'NNW' end as wert, degree as grad from "; else if ($wetterart == 5 || $wetterart == 6) $rest1 = "select round(cast (cast ((max(counteramount)-min(counteramount)) as numeric) /60 as numeric),2) as wert from "; else $rest1 = "weatherdata as wert from "; if ($wetterart == 5 || $wetterart == 6) $rest2= " where savetime > date_trunc('day',now())"; else $rest2= " where oid = " . $oid; $result = pg_exec($sql . $rest1 . $table . $rest2); $nrows = pg_numrows($result); if($nrows != 0) { /////////////////////////////////// // // Schleife für Ausgabe der Daten // inkl. Tabellenheader // /////////////////////////////////// for($j=0;$j<$nrows;$j++) { $row = pg_fetch_array($result); if ($wetterart == 0) { print ""; } print "\n"; } } else print "

No Entry for " . $sql . $rest1 . $table . $rest2; /////////////////////////////////// // // 3. Schritt: Durchschnitt der // letzten 2 Stunden holen // Ausgabe der Statistiken exkl. // Windrichtung (wetterart == 4) // /////////////////////////////////// if ($wetterart != 4) { // hier kann die Anzahl der Stunden zur Differenzberechnung geändert werden // '2 hour' = 2 Stunden, '6 hour' = 6 Stunden $sql = "select savetime - interval '2 hour' as zeit from "; $rest = " where oid = " . $oid; $result = pg_exec($sql . $table . $rest); $nrows = pg_numrows($result); if($nrows != 0) { for($j=0;$j<$nrows;$j++) { $row = pg_fetch_array($result); $zeit6 = $row["zeit"]; } } else print "

No max(oid) Entry for " . $table; // Speicher freigeben pg_free_result($result); if ($wetterart == 5 || $wetterart == 6) $sql = "select round(cast (cast ((max(counteramount)-min(counteramount)) as numeric) /60 as numeric),2) as wert from "; else $sql = "select round(cast (avg(weatherdata) as numeric),2) as wert from "; $rest = " where savetime > '" . $zeit6 . "'"; $result = pg_exec($sql . $table . $rest); $nrows = pg_numrows($result); if($nrows != 0) { for($j=0;$j<$nrows;$j++) { $row = pg_fetch_array($result); $wert6 = $row["wert"]; } } else print "

No max(oid) Entry for " . $table; // Speicher freigeben pg_free_result($result); if ($wetterart == AIRPRESSURE) $wert6 = round(ConvertRelativeToAbsolutePressure(160, $wert6),2); // Differenz berechnen $differenz = $wert6 - $wert; // Differenz auf 2 Stellen runden $differenz = round($differenz,2); // Vorzeichen umkehren $differenz = - $differenz; print "

"; print "\n"; } else print "\n"; print "\n"; } echo "
Daten vom "; print $row["datum"] . " "; print $row["zeit"]; print " DifferenzØ letzte 2h
"; switch($wetterart) { case 0: print "Temperatur (° C)"; break; case 1: print "Luftfeuchtigkeit (%)"; break; case 2: print "Luftdruck (hPa)"; break; case 3: print "Windgeschwindigkeit (km/h)"; break; case 4: print "Windrichtung"; break; case 5: print "Sonnenscheindauer (h)"; break; case 6: print "Regenmenge (l/m²)"; break; default: print "undefined"; } $wert = $row["wert"]; if ($wetterart == AIRPRESSURE) $wert = round(ConvertRelativeToAbsolutePressure(160, $wert),2); print "" . $row["wert"]; if ($wetterart == 4) print " (" . $row["grad"] . "°)"; print ""; if (is_neg ($differenz)) print ""; else if ($differenz > 0) print ""; else print ""; print "" . $differenz . "" . $wert6 . "   
\n"; echo "
\n"; // footer echo "

\n"; echo "\n"; echo "\n"; // Verbindung schliessen pg_close($dbconn); ?>