Fragen zur Eigenen Wetterseite

…genau. Dort einen Ort in deiner Nähe auswählen und in $lokal eintragen.

Dann sind deine Daten auch noch nicht vom DWD.

ok, aber egal welchen Ort ich aus der Datei eintrage, die Temperaturen für die 3 Tage Vorhersage ändern sich nicht :confused:

in deinem Shot, sind doch Daten drin, wo kommen die denn her.

Zeig mal den oberen Teil deiner Wetterindex.

Das würde ich auch gerne wissen, habe sogar schon andere Region und Ort versucht, aber die Temperaturen bleiben immer gleich !?:confused:
Habe auch schon den Cache geleert !

GeTapatalk(t) mit meinem Galaxy Tab 10.1N

Eventuell bist Du hier besser aufgehoben, dann verstehe ich nur nicht warum Du das ganze umgebaut hast.

Verstehe ich jetzt nicht.:confused:

Hier der obere Teil meiner WetterIndex.

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.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="Content-Style-Type" content="text/css"> 
<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"> 
 
 
<link rel="stylesheet" type="text/css" href="wetterUser.css" /> 
 
</head><body> 
 
<?php 
require_once IPS_GetKernelDir()."scripts\\konfigurationWetter.ips.php";

$api = simplexml_load_string(utf8_decode(file_get_contents(IPS_GetKernelDir()."webfront\\user\\WetterFtpDWD\\warnungen\\vorhersage.xml")));
//print_r($api);

$wetter = array();

$i = 0;
foreach($api->data as $weather)
{
   $wetter[$i]['wochentag'] = $weather->day;
   $suchArr = array('Mon','Tue','Wed','Thu','Fri','Sat','Sun');
   $ersetzArr = array('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag');
   $wetter[$i]['wochentag'] = str_replace($suchArr, $ersetzArr, $wetter[$i]['wochentag']);
   $wetter[$i]['zustand'] = $weather->condition;
   $wetter[$i]['tiefsttemperatur'] = $weather->tempmin;
   $wetter[$i]['hoechsttemperatur'] = $weather->tempmax;
   $wetter[$i]['icon'] = $weather->icon;

   $i++;
}

if(isset($temp) && $temp !=0) $wetter[0]['temperatur'] = GetValue($temp);
if(isset($feuchte) && $feuchte !=0) $wetter[0]['luftfeuchtigkeit'] = "rel. Luftfeuchte: ".GetValueFormatted($feuchte);
if(isset($wind) && $wind !=0) $wetter[0]['wind'] = "Wind: ".GetValueFormatted($wind);

$tableAktuell = "<table>";
$tableAktuell .= "<tr><td style='width:280px;'>";
$tableAktuell .= "<b>Aktuell:</b><br/>
";
$tableAktuell .= $wetter[0]['zustand']."<br/>
";
$tableAktuell .= "Temperatur: ".$wetter[0]['temperatur']." °C<br/>
";
$tableAktuell .= "min. ".$wetter[0]['tiefsttemperatur']." °C <br/> max. ".$wetter[0]['hoechsttemperatur']." °C<br/>";
$tableAktuell .= $wetter[0]['luftfeuchtigkeit']."<br/>";
$tableAktuell .= $wetter[0]['wind']."<br/>";
if(isset($luftdruck) && $luftdruck !=0) $tableAktuell .= "Luftdruck: ".GetValueFormatted($luftdruck)."<br/>";
if(isset($hoeheNN) && $hoeheNN !=0) $tableAktuell .= "Höhe ü. NN: ".$hoeheNN." m";
$tableAktuell .= "</td>";
$tableAktuell .= "<td style='width:390px;'><img src=\"".$wetter[0]['icon']."\" alt=\"".$wetter[0]['zustand']."\" />
";
$tableAktuell .= "</td></tr></table>";

$tableTage = "<table>";
$tableTage .= "<tr><td style='width:220px;'>";
$tableTage .= "<b>".$wetter[0]['wochentag']."</b><br/>
";
$tableTage .= $wetter[0]['zustand']."<br/>
";
$tableTage .= "min. ".$wetter[0]['tiefsttemperatur']." °C <br/> max. ".$wetter[0]['hoechsttemperatur']." °C<br/><br/>";
$tableTage .= "<img src=\"".$wetter[0]['icon']."\" alt=\"".$wetter[0]['zustand']."\" />
";
$tableTage .= "</td>";

$tableTage .= "<td style='width:220px;'>";
$tableTage .= "<b>".$wetter[1]['wochentag']."</b><br/>
";
$tableTage .= $wetter[1]['zustand']."<br/>
";
$tableTage .= "min. ".$wetter[1]['tiefsttemperatur']." °C <br/> max. ".$wetter[1]['hoechsttemperatur']." °C<br/><br/>";
$tableTage .= "<img src=\"".$wetter[1]['icon']."\" alt=\"".$wetter[1]['zustand']."\" />
";
$tableTage .= "</td>";

$tableTage .= "<td style='width:220px;'>";
$tableTage .= "<b>".$wetter[2]['wochentag']."</b><br/>
";
$tableTage .= $wetter[2]['zustand']."<br/>
";
$tableTage .= "min. ".$wetter[2]['tiefsttemperatur']." °C <br/> max. ".$wetter[2]['hoechsttemperatur']." °C<br/><br/>";
$tableTage .= "<img src=\"".$wetter[2]['icon']."\" alt=\"".$wetter[2]['zustand']."\" />
";
$tableTage .= "</td></tr></table>";

 
$imgKarte = Sys_GetURLContent("http://www.dwd.de/dyn/app/ws/maps/".$warnung); 
$imagePfad = IPS_GetKernelDir()."webfront/user/WetterFtpDWD/warnungen/".$warnung; 
 
$fp = fopen($imagePfad, "wb+"); 
fwrite($fp, $imgKarte); 
fclose($fp); 
 
$image = imagecreatefromgif($imagePfad); 
list($width, $height) = getimagesize($imagePfad); 
$newWidth = $width * $factorWetterwarnung; 
$newHeight = $height * $factorWetterwarnung; 
 
$imageResized = ImageCreateTrueColor($newWidth, $newHeight); 
$transparenz = ImageColorTransparent($image, imagecolorexact($image, 255, 255, 255)); 
for($i=0; $i<$height; $i++) 
{ 
    for($j=0; $j<$width; $j++) 
    { 
        $pos = imagecolorat($image, $j, $i); 
        $index = imagecolorsforindex($image, $pos); 
        $rgb = $index["red"] + $index["green"] + $index["blue"]; 
        if($rgb == "0") 
        { 
            $weiss = imagecolorresolve($image, 255, 255, 255); 
            imagesetpixel($image, $j, $i, $weiss); 
        } 
    } 
} 
ImageColorTransparent($imageResized, $transparenz); 
ImageCopyResampled($imageResized, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); 
/* 

Passt doch alles. Zeig mir mal deine vorhersage.xml aus dem Ordner warnungen.

<<?xml version="1.0"?>
<wetterinformationen>
    <info>
        <zeit>31.08.2012 - 18:00:10</zeit>
        <ort>Bremen</ort>
    </info>
    <data>
       <day>Sat</day>
       <condition>bewölkt</condition>
        <tempmin>9</tempmin>
        <tempmax>19</tempmax>
        <icon>/user/WetterFtpDWD/icons/bewölkt.png</icon>
     </data>
     <data>
       <day>Sun</day>
       <condition>bewölkt</condition>
        <tempmin>10</tempmin>
        <tempmax>21</tempmax>
        <icon>/user/WetterFtpDWD/icons/bewölkt.png</icon>
     </data>
     <data>
       <day>Mon</day>
       <condition>Nebel</condition>
        <tempmin>12</tempmin>
        <tempmax>22</tempmax>
        <icon>/user/WetterFtpDWD/icons/Nebel.png</icon>
     </data>
</wetterinformationen>

OK. Die xml wird nicht geschrieben, deswegen ändert sich nichts. Er liest die alten Daten ein.

mögliche Fehler bei dir:

[ol]
[li]$parentID = IPS_GetCategoryIDByName(„WetterDatenDWD“, 0); im konfigscript [/li][li]IPS_RunScript(IPS_GetScriptIDByName(„XmlApi“, $parentID)); im Vorhersagescript [/li][/ol]

wenn es nicht so ist, bitte anpassen. Wenn nicht, sehen wir weiter. Besteht die Möglichkeit per Teamviewer.

[/li]Da hatte ich schon auf ScriptID geändert.

und nachdem ich das

[ol]
[li]IPS_RunScript(IPS_GetScriptIDByName(„XmlApi“, $parentID)); im Vorhersagescript
[/li]> [/ol]

auch auf ScriptID geändert habe klappt es alle Temperaturen sind richtig.

Besteht die Möglichkeit per Teamviewer.

Ja, wäre auch gegangen, ist jetzt ja aber nicht mehr nötig.

Muss dann mal sehen warum es damit

IPS_RunScript(IPS_GetScriptIDByName("XmlApi", $parentID));

und

$parentID = IPS_GetCategoryIDByName("WetterDatenDWD", 0);

nicht geklappt hat.

Für heute bin ich weg, muss morgen früh raus.

Vielen Dank für die umfangreiche Hilfe :smiley:

Muss dann mal sehen warum es damit PHP-Code:
IPS_RunScript(IPS_GetScriptIDByName(„XmlApi“, $parentID));

und
PHP-Code:
$parentID = IPS_GetCategoryIDByName(„WetterDatenDWD“, 0);

nicht geklappt hat.

Wichtig, ist, dass die Namen identisch sind.

Bei mir sieht es ähnlich chaotisch aus wie bei Horst. Schon das ausführen des Config Scripts per Hand bringt mir die Warnung Objekt WetterDatenDWD wurde nicht gefunden in … on line 98
Ich will hier nicht alles durcheinander bringen daher nur eine Frage: kann das auch mit der IPS Version zusammenhängen? Ich bin noch auf V2.5 #2252

Das hat nix mit der 2.5 zutun, eher das er den Namen nicht findet. Vielleicht heißt ja deine Kategorie anderst, warum auch immer. Der Name muss genauso geschrieben werden wie der Kategoriename. Groß/klein beachten.

Oder Du hast die Kategorie noch in einer anderen Kategorie.

WetterDatenDWD gab es schon vorher und XmlApi x-mal kontrolliert. Merkwürdig ist auch das bei mir keine vorhersage.xml in dem Ordner warnungen existiert.
Ich glaube ich mache für heute erst mal Schluss. Mir schwirrt der Kopf vom Installieren und mitlesen.

Dann trag halt im Vorhersagescript, bei IPS_RunScript die ScriptID vonXmlApi ein.

Das hab ich alles nur wegen dir gemacht, dass Du nicht wieder suchen musst, wo Du eine ID eintragen musst. :eek:

$parentID= 31864; & IPS_RunScript (21001);
und alles sieht schon viel besser aus. Wobei $parendID dann nicht mehr gebraucht wird, oder?
Aber irgend etwas stimmt doch dann mit den Befehlen nicht.

Hi, RWN

hier auf diesen Wege einfach mal Danke gesagt für deine super Arbeit bzw. Unterstützung.

Gruß und weiter so…
:o
my

@Rainer

Schließe mich meinem Vorredner an: nochmals ganz fettes DANKE!!!

Es läuft jetzt ohne Fehler! Der „WetterDatenDWD“-Fehler trat auf weil die Kategorie unter einer anderen hing. Man lernt ständig dazu als php-Mantafahrer … :smiley:

@Horst

Sorry, der versprochene Post war ja jetzt überholt. Es hat doch länger gedauert als erwartet. Nach Stau, Kind, Frau und Nahrungsaufnahme musste ich dann noch die HomeMatic-Voodoo-Puppe bearbeiten. Ich sag nur UP-Schaltaktor-für-Markenschalter und Wechselschaltung. Aber dazu an anderer Stelle mehr …

Eine schöne Nacht Euch allen!
/Jens

@Jens,
ist doch alles gut, es gibt ja noch andere Sachen als IPS.
Rainer hat sich ja netterweise viel zeit für mich genommen.

GeTapatalk(t) mit meinem Galaxy Tab 10.1N

Und schon wieder ist er an der Arbeit.
Rainer, vielen Dank auch von mir für die unermüdliche Arbeit (nicht nur an der Wetterseite).
Es gab hier mal einen Super User der hatte eine Amazon Wunschliste. Hast du so etwas auch? :wink:

Bei mir läuft jetzt, mit der festen ObjektID der XmlApi, alles wie es soll.