Fragen zur Eigenen Wetterseite

hier: http://www.ip-symcon.de/forum/84112-post12.html

die neuen Seiten sind noch in der mache.

Hallo,

als php-Dummi habe ich mal eine Frage wie bekomme ich das Grad Symbol :confused:

Da ich die Tageswerte durch die aktuellen Werte der Wetterstation verwende ist das Problem aufgetaucht.


<!--
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-->

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

<style type="text/css">html, body { margin: 0; padding: 30; font: normal 14px verdana; color: #FFFFFF; background: #27292b; }</style>
<style type="text/css"> body { -moz-user-select: none; -khtml-user-select: none; user-select: none; }</style>
<style type="text/css">div { position:absolute; width:700px; height:100px; }</style>


</head><body>

<?php
//Funktionsaufruf z.B.: $wetter = website_wetter("95447", "Germany", "/user/WetterIcons/", "de");

function website_wetter($plz, $land, $icons_src="/", $sprache="de", $ort="")
{
    $icons_google = "/ig/images/weather/";

    if($ort != "")
    {
        $station = $ort;
    }
    else
    {
        $station = $plz."-".$land;
    }

    $api = simplexml_load_string(utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=".$station."&hl=".$sprache)));
   //print_r($api);
    $wetter = array();

    // Allgemeine Informationen
    $wetter['stadt'] = $api->weather->forecast_information->city->attributes()->data;
    $wetter['datum'] = $api->weather->forecast_information->forecast_date->attributes()->data;
    $wetter['zeit'] = $api->weather->forecast_information->current_date_time->attributes()->data;

    // Aktuelles Wetter
    $wetter[0]['zustand'] = $api->weather->current_conditions->condition->attributes()->data;
    $wetter[0]['temperatur'] = $api->weather->current_conditions->temp_c->attributes()->data;
    $wetter[0]['luftfeuchtigkeit'] = $api->weather->current_conditions->humidity->attributes()->data;
    $wetter[0]['luftfeuchtigkeit'] = str_replace("Feuchtigkeit", "rel.Luftfeuchte", $wetter[0]['luftfeuchtigkeit']);
    $wetter[0]['wind'] = $api->weather->current_conditions->wind_condition->attributes()->data;
    $wetter[0]['icon'] = str_replace($icons_google, $icons_src, $api->weather->current_conditions->icon->attributes()->data);

    if(($wetter[0]['zustand'] == "Bewölkt") || ($wetter[0]['zustand'] == "Bedeckt"))
    {
        $wetter[0]['icon'] = "<img src='/user/WetterIcons/Weather4_128.png'>";
    }
    if(($wetter[0]['zustand'] == "Meistens bewölkt") || ($wetter[0]['zustand'] == "Teils bewölkt"))
    {
        $wetter[0]['icon'] = "<img src='/user/WetterIcons/Weather3_128.png'>";
    }
    if($wetter[0]['zustand'] == "Klar")
    {
        $wetter[0]['icon'] = "<img src='/user/WetterIcons/Weather1_128.png'>";
    }
    if($wetter[0]['zustand'] == "Regen")
    {
        $wetter[0]['icon'] = "<img src='/user/WetterIcons/Weather2_128.png'>";
    }
    if(($wetter[0]['zustand'] == "Vereinzelt Regen") || ($wetter[0]['zustand'] == "Leichter Regen"))
    {
        $wetter[0]['icon'] = "<img src='/user/WetterIcons/Weather7_128.png'>";
    }
    if($wetter[0]['zustand'] == "Vereinzelt stürmisch")
    {
        $wetter[0]['icon'] = "<img src='/user/WetterIcons/Weather17_128.png'>";
    }
    else
    {
        $wetter[0]['icon'] = $wetter[0]['icon'];
    }
    
    
    // Wettervorhersage heute, morgen, in zwei und in drei Tagen ($wetter[1] bis $wetter[4])
    $i = 1;
    foreach($api->weather->forecast_conditions as $weather)
    {
        $wetter[$i]['wochentag'] = $weather->day_of_week->attributes()->data;
        $wetter[$i]['zustand'] = $weather->condition->attributes()->data;
        $wetter[$i]['tiefsttemperatur'] = $weather->low->attributes()->data;
        $wetter[$i]['hoechsttemperatur'] = $weather->high->attributes()->data;
        $wetter[$i]['icon'] = str_replace($icons_google, $icons_src, $weather->icon->attributes()->data);

        $i++;
    }
    return $wetter;
}

$wetter = website_wetter("Bayreuth", "Germany"); 

echo "<table>";
echo "<tr><td style='width:220px;'>";
echo "<strong>Aktuell:</strong><br/>
";
echo $wetter[0]['zustand']."<br/>
";
//echo "Temperatur: ".$wetter[0]['temperatur']." °C<br/>
";
echo "Temperatur: ".GetValueFormatted(16959)."<br/>"; //Daten von 1-wire Sensor West (im Schatten)
echo "min. ".$wetter[1]['tiefsttemperatur']." °C <br/> max. ".$wetter[1]['hoechsttemperatur']." °C<br/>";
//echo $wetter[0]['luftfeuchtigkeit']."<br/>";
echo "rel. Luftfeuche: ".GetValueFormatted(54463)."<br/>"; //Daten von der WMRS 200
//echo $wetter[0]['wind']."<br/>";
echo "Windgeschw.: ".GetValueFormatted(49106)."<br/>"; //Daten von der WMRS 200
echo "Luftdruck: ".GetValueFormatted(49269); //Daten von der WMRS 200
echo "</td>";
echo "<td style='width:300px;'>".$wetter[0]['icon']."</td>";

echo "<td style='width:180px;'>";
echo "<strong>".$wetter[2]['wochentag']."</strong><br/>
";
echo $wetter[2]['zustand']."<br/>
";
echo "min. ".$wetter[2]['tiefsttemperatur']." °C <br/> max. ".$wetter[2]['hoechsttemperatur']." °C<br/><br/>";
echo "<img src=\"http://www.google.com/ig/images/weather".$wetter[2]['icon']."\" alt=\"".$wetter[2]['zustand']."\" />
";  
echo "</td>";

echo "<td style='width:180px;'>";
echo "<strong>".$wetter[3]['wochentag']."</strong><br/>
";
echo $wetter[3]['zustand']."<br/>
";
echo "min. ".$wetter[3]['tiefsttemperatur']." °C <br/> max. ".$wetter[3]['hoechsttemperatur']." °C<br/><br/>";
echo "<img src=\"http://www.google.com/ig/images/weather".$wetter[3]['icon']."\" alt=\"".$wetter[3]['zustand']."\" />
";
echo "</td>";

echo "<td style='width:180px;'>";
echo "<strong>".$wetter[4]['wochentag']."</strong><br/>
";
echo $wetter[4]['zustand']."<br/>
";
echo "min. ".$wetter[4]['tiefsttemperatur']." °C <br/> max. ".$wetter[4]['hoechsttemperatur']." °C<br/><br/>";
echo "<img src=\"http://www.google.com/ig/images/weather".$wetter[4]['icon']."\" alt=\"".$wetter[4]['zustand']."\" />
";
echo "</td></tr>";
echo "</table>";

$imgKarte = Sys_GetURLContent("http://www.dwd.de/dyn/app/ws/maps/MS_x_x_0.gif");
$imagepfad = IPS_GetKernelDir()."webfront/user/WetterIcons/MS_x_x_0.gif";
$fp = fopen($imagepfad, "wb+");
fwrite($fp, $imgKarte);
fclose($fp);

$factor = 0.8;
list($width, $height) = getimagesize($imagepfad);
$new_width = $width * $factor;
$new_height = $height * $factor;
$image_p = imagecreatetruecolor($new_width, $new_height);
$img = imagecreatefromgif($imagepfad); 
imagecopyresampled($image_p, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
ImageGif($image_p, $imagepfad);

$berichtHeute = file_get_contents("../user/WetterFtpDWD/berichte/berichtHeute.txt");
if($berichtHeute == "") 
{
    $berichtHeute = "Der Wetterbericht steht momentan nicht zur Verfügung!";
    $berichtMorgen = ""; 
}


?>

<div style="left:30px; top:0px;"><h1>Wetter Bayreuth</h1></div>
<div style="left:30px; top:230px;"><h1>Wetterwarnung Bayern</h1></div>
<div style="left:550px; top:230px;"><h1>Wetterbericht für heute und morgen</h1></div>
<div style="left:550px; top:0px;"><h1>Wettervorhersage für die nächsten 3 Tage</h1></div>
<div style="left:30px; top:300px;"><img src='/user/WetterIcons/MS_x_X_0.gif'></div>
<div style="left:30px; top:300px;"><img src='/user/WetterIcons/hintergrundKarte.png'></div>
<div style="left:225px; top:550px;"><img src='/user/WetterIcons/warnungHellblau.png'></div> 
<div style="left:250px; top:550px; font: normal 11px verdana;">Keine Warnungen</div>
<div style="left:225px; top:575px;"><img src='/user/WetterIcons/warnungGelb.png'></div> 
<div style="left:250px; top:575px; font: normal 11px verdana;">Wetterwarnungen</div>
<div style="left:225px; top:600px;"><img src='/user/WetterIcons/warnungOrange.png'></div> 
<div style="left:250px; top:600px; font: normal 11px verdana;">Warnung vor markantem Wetter</div>
<div style="left:225px; top:625px;"><img src='/user/WetterIcons/warnungRot.png'></div> 
<div style="left:250px; top:625px; font: normal 11px verdana;">Unwetterwarnung</div>
<div style="left:225px; top:650px;"><img src='/user/WetterIcons/warnungLila.png'></div> 
<div style="left:250px; top:650px; font: normal 11px verdana;">Warnung vor extremem Unwetter</div>
<div style="left:550px; top:290px;"><?php echo $berichtHeute?></div>


</body></html>

Lukky

Sollte eigentlich sichtbar sein da es drin ist.

°C

Test mal statt dem oben stehenden ein ALT-248, also ALT-Taste gedrückt halten und nacheinander 248 auf dem Nummernblock

Hallo Werner,

danke für die Rückantwort.

Bei der Hitze in Ofr. stehe ich irgendwie auf dem Schlauch
Komme mit GetValueFormatted nicht zurecht. Kann man da nichts formatieren :confused:


//echo "Temperatur: ".$wetter[0]['temperatur']." °C<br/>
";
$ATemp = GetValueFloat(16959); // Wert holen
$ATemp = sprintf("%+5.1f", $ATemp); // Wert formatieren (String verkürzen)
echo "Temperatur: ".$ATemp."°C<br/>"; // Daten + °C anhängen [Daten von 1-wire Sensor West (im Schatten)]

hab´s jetzt so gelöst.

Ist wahrscheinlich grauslich, aber es geht :stuck_out_tongue:

Wie macht´s der Profi?

Danke

Andreas

Hallo Andreas,

GetValueFormatted liefert dir den Wert der Variable inkl. der im Profil eingestellten Suffix und Prefix.

Hast Du also im Webfront eine Temperaturanzeige in der auch das °C angehängt ist liefert Dir GetValueFormatted auch genau diese Anzeige.

Aber wenn es anders funktioniert ist es ja auch Recht.

Hallo Werner,

was ich nur nicht raffe als PHP-Dummi das trotz charset=utf-8 das ° Zeichen nicht richtig dargestellt wird. :rolleyes:

Andreas

Hallo Rainer,

ich mach mal den Anfang für deine neue Wetterseite

Einfach genial !!

Eine kleine Optimierungsmöglichkeit:
im Script:WetterIndex.php sind am Ende noch Fest deine Werte"Nidda" und „Hessen“. Kann man das aus der Konfiguration auslesen und dort einfügen. Ansonsten müsste jeder manuell seinen Ort eintragen.

Eine Frage habe ich auch noch.
Ich habe für NRW eine eigene hintergrundKarte.png erstellt. Wie bekomme ich es hin, dass der Rahmen die gleiche Hintergrundfarbe hat, wie die Webseite.
Und bei mir ist es auch nicht im Hintergrund. Es liegt über der Schrift.

Gruß Jogel

Ich habe mich heute mal an deine „Eigene Wetterseite“ vom 1.7.10 heran gewagt.
Bei Ausführung des Scripts ftpServerDWD wird in Zeile 78 eine fehlende Variable 34779 (Datenheute) moniert. Muss ich sie erstellen oder sollte es das Script machen?
Dann habe ich 2 Variablen für PW + username bei DWD erstellt, aber die sind doch nicht mehr nötig? Reicht nicht dass im Konfigurations Script?
Du hast dir viel vorgenommen mit der Wetterseite aber irgendwann wird sie laufen wenn DWD nicht alles wieder umwirft. :wink:

Hintergrundkarten erstelle ich alle noch diese werden dann automatisch zugeordnet.

im Script:WetterIndex.php sind am Ende noch Fest deine Werte"Nidda" und „Hessen“.
Die Namen kann man dann auch einstellen im Konfigscript.

Bei Ausführung des Scripts ftpServerDWD wird in Zeile 78 eine fehlende Variable 34779 (Datenheute) moniert.
Hab ich rausgenommen. Wird nicht benötigt.

Dann habe ich 2 Variablen für PW + username bei DWD erstellt, aber die sind doch nicht mehr nötig? Reicht nicht dass im Konfigurations Script?

sind nicht mehr nötig.

Beide Scripts wurden erweitert.

[ul]
[li]Tageskarte jetzt aktuell[/li][li]diverse Einstellungen für Überschrift[/li][li]Bildscalierung Schilder Wetterwarnungen[/li][/ul]

Html Seiten wurden entsprechen angepasst.

Bitte alles neu downloaden und das FTP Script ausführen. Die Zeit kann auf 1h gesetzt werden.
Die Erweiterung im Konfigscript kann auch einfach unten angehängt werden!

Ich denke im laufe der Woche werde ich die Hintergründe und Deutschland noch machen.

Hallo Rainer,
super Arbeit. Habe eben mal deine Wetterseite installiert. Bis auf ein paar Kleinigkeiten läuft es super.
Danke
immergut

Html Seiten Update

[ul]
[li]diverse Bugs beseitigt[/li][li]Hintergrund Hessen, Sachsen, Bayern[/li][li]style etwas geändert[/li][/ul]
nach Update, Script FTP ausführen.

hallo,

hier der Hintergrund für Niedersachsen.

DWHG_.png

irgendwie erkennt das script „vereinzelt stürmisch“ nur teilweise. mal geht es mal bekomme ich den wunsch nach einem cloudy.gif.

gibt es da abhilfe?

Script wurde um einen Fehlerzähler erweitert. Dieser greift, wenn warum auch immer der Zugriff auf den FTP nicht möglich ist. Es wird dann 10 mal versucht innerhalb von 10 minuten ein Login zumachen, ist dieses nicht möglich wird abgebrochen und der nächste Versuch erfolgt erst wieder mit der normalen Updatezeit.

Habe die Wetterseite erfolgreich installiert, jedoch sehe ich bei der Wettervorhersage für die nächsten 3 Tage keine Icons. Finde auch in der WetterIndex.php nichts, welche Grafikdateien es sein sollen. Wo und wie kann ich das einstellen, dass dort die Icons angezeigt werden?

$wetter = website_wetter($ortGoogle, "Germany", "/user/WetterFtpDWD/icons/");

da sollten die Icon liegen. Die Endung ist normal .gif mit dem Originalnamen. Wenn Du die Umwandlung aktiv hast, muss die Endung .png sein auch mit Originalnamen.

hi,
ich habe mir einmal einfach die Icons von DWD Wettermodul - Joomla! Extensions Directory gezogen. Das sieht passend aus und sollte keine Lizenzprobleme mit sich bringen.
Gruß Imho

Habe verschiedene Icons im Ordner liegen. Damit werden jedoch nur die Icons im Webfront auf der linken Seite neben „Wetter Zemmer“ angezeigt. Welche Icons fehlen denn da noch? Was meinst du mit "Originalnamen?

Danke für eure Hilfe
immergut

die Originalnamen sind auf english. z.B. sunny.gif usw…