[Sammlung] SensorAndSwitch: Pseudoscript: Wetter

HarryHase

Mitglied
Mitglied seit
16 Feb 2006
Beiträge
657
Punkte für Reaktionen
34
Punkte
28
thx to JL3:

Zeigt das aktuelle Wetter und die temperatur zu den in der Konfiguration hinterlegten Daten an

Erstellung/Installation: Datei mit unten stehenden Namen und Inhalt im SaS Webverzeichnis erstellen.

Dateiname: pseudowetter.php

PHP:
<?php

	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   SensorAndSwitch Automation Pro                                    |
		|   PseudoGerä-Script                                               |
		|   ===============================================================   |
		|   -> Wetter                                                         |
		|      openweathermap.org                                             |
		|      Informationen von obiger Homepage fü Ort, der             |
		|      anhand der in den Einstellungen eingelesenen Läen- und       |
		|      Breitengraden ermittelt wurde.                                 |
		|                                                                     |
		+---------------------------------------------------------------------+
	*/

	error_reporting(0);
	include "include/includedateien.php";
	include "include/includefunctions.php";
	include "include/includeconf.php";
	include "include/includeconfig.php";
	include "include/includedefine.php";
	$url="http://api.openweathermap.org/data/2.5/weather?lat=".BREITENGRAD."&lon=".LAENGENGRAD."&mode=xml&units=metric&lang=de";
	$ch = curl_init();
	$timeout = 5;
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)");
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
	curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
	$Status = curl_exec($ch);
	curl_close($ch);
	if ($Status) {
		$Cont=simplexml_load_string($Status);
		$Temp=number_format(sprintf('%.2f',$Cont->temperature->attributes()->value),2,",",".");
		$Stadt=$Cont->city->attributes()->name;
		$Symbol='<img src="http://openweathermap.org/img/w/'.$Cont->weather->attributes()->icon.'.png">';
		$Wetter=$Cont->weather->attributes()->value;
		echo "T#".sprintf('%.2f',$Cont->temperature->attributes()->value)."#P#".'<div style="font-size:14px;text-align:left;width:310px;position:relative;top:-20px;">'.$Symbol.'</div><div style="font-size:14px;text-align:left;width:310px;position:relative;top:-30px;left:0px;">'.$Wetter.'</div><div  style="text-align:right;width:310px;position:relative;top:-65px;">'.'Temperatur: '.$Temp.'°C</div>'."*HTML#";
	}
	else {
		echo "T##P##E##";
	}
	exit;
?>
 
Zuletzt bearbeitet:
Seit heute bemerkt, wird bei mir das Wetter-Icon nicht mehr angezeigt.

folgendes müsste es gerade bei mir sein:
http://openweathermap.org/img/w/10d.png

Aber das scheint nicht mehr geladen zu werden.
Eben mal auf der Webseite geschaut, da fehlen auch die Wetter-Icons. Scheinbar ein Problem dort.
Also mal abwarten.
 
Ja, die Wetterseite spinnt. Auch bei denen auf der Page fehlen die Icons und auch auf deren Server sind sie weg.
 
Moins

Siehste, da fehlt eindeutig noch ein Fallback im Fehlerfall:
"Wenn der Hahn kräht auf dem Mist, ändert sich das Wetter oder es bleibt wie es ist"
:rolleyes:
 
Es gibt wieder Wettericons, die haben ihre Page repariert. ;)
 
Ja. Auch gerade gesehen.
 
Heute ists wohl arktisch kalt brrrrrrrrrrrrrrrrrr :mrgreen:
kalt.png

Der absolute Nullpunkt
 
Zuletzt bearbeitet:
Kleine Wetterstation:

pseudodisplaywetter.php

PHP:
<?php

	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   SensorAndSwitch Automation Pro                                    |
		|   PseudoGeräte-Script                                               |
		|   ===============================================================   |
		|   -> Wetter                                                         |
		|      openweathermap.org                                             |
		|      Informationen von obiger Homepage für den Ort, der             |
		|      anhand der in den Einstellungen eingelesenen Längen- und       |
		|      Breitengraden ermittelt wurde.                                 |
		|                                                                     |
		+---------------------------------------------------------------------+
	*/

	error_reporting(0);
	include "include/includedateien.php";
	include "include/includefunctions.php";
	include "include/includeconf.php";
	include "include/includeconfig.php";
	include "include/includedefine.php";
	$url="http://api.openweathermap.org/data/2.5/weather?lat=".BREITENGRAD."&lon=".LAENGENGRAD."&mode=xml&units=metric&lang=de";
	$Status=web($url,$post);
	if ($Status) {
		$Cont=simplexml_load_string($Status);
		$Temp=number_format(sprintf('%.1f',$Cont->temperature->attributes()->value),1,",",".");
		$Wind=$Cont->wind->speed->attributes()->name;
		$WGeschwindigkeit=number_format(sprintf('%.2f',$Cont->wind->speed->attributes()->value*6),0,",",".");
		$WRichtung=$Cont->wind->direction->attributes()->code;
		$Luftdruck=number_format(sprintf('%.0f',$Cont->pressure->attributes()->value),0,",",".");
		$Feuchtigkeit=number_format(sprintf('%.0f',$Cont->humidity->attributes()->value),0,",",".");
		$Stadt=$Cont->city->attributes()->name;
		$Symbol='<img src="http://openweathermap.org/img/w/'.$Cont->weather->attributes()->icon.'.png" width="50" height="50">';
		$Wetter=$Cont->weather->attributes()->value;
		echo "T#".sprintf('%.2f',$Cont->temperature->attributes()->value)."#P#".'<div style="font-size:13px;text-align:right;width:60px;position:absolute;top:-12px;">'.$Luftdruck.' hPa</div><div style="font-size:12px;text-align:right;width:60px;position:absolute;top:12px;"><img src="'.picdesign("wind.png").'" border="0" height="12"> '.$WRichtung.'</div><div style="font-size:13px;text-align:right;width:60px;position:absolute;top:26px;">'.$WGeschwindigkeit.' km/h</div><div style="font-size:14px;text-align:right;width:310px;position:absolute;top:-20px;">'.$Symbol.'</div><div style="font-size:14px;text-align:right;width:310px;position:absolute;top:25px;left:0px;">'.$Wetter.'</div><div style="font-size:14px;text-align:left;width:30px;position:absolute;top:-20px;left:70px;"><img class="block" src="'.picdesign("temp.png").'" border="0"></div><div style="font-size:14px;text-align:right;width:100px;position:absolute;top:-12px;left:70px;"><img src="'.picdesign("feucht.png").'" border="0" height="12"> '.$Feuchtigkeit."%%".'</div><div style="font-size:22px;text-align:right;width:100px;position:absolute;top:2px;left:70px;">'.$Temp."°C".'</div>'."*HTML#";
	}
	else {
		echo "T##P##E##";
	}
	exit;
	
?>

Und das Icon für Luftfeuchte: feucht.png feucht.png und wind.png wind.png muss unter images/

Viel Spaß damit. :)
 
Zuletzt bearbeitet:
Oben ists nochmal überarbeitet. ;)
 
Hallo,
Hmmm :gruebel: irgendwas fehlt offenbar: Anhang anzeigen 80007




... Das Symbol für den Wind...


:blonk: :doof:
 
Zuletzt bearbeitet von einem Moderator:
Offensichtlich, weil du Post #9 nochmal genau lesen musst. :mrgreen:
 
Hallo,
;) Siehe meinen Post :lach: ... :oops:

@JL3: Kann man die Windhose ein wenig größer darstellen? Oder muss man nur eine andere Grafik hochladen?
 
Code:
        .
        .
        .
        echo "T#".sprintf('%.2f',$Cont->temperature->attributes()->value)."#P#".'<div style="font-size:13px;text-align:right;width:60px;position:absolute;top:-12px;">'.$Luftdruck.' hPa</div><div style="font-size:12px;text-align:right;width:60px;position:absolute;top:[COLOR="#008000"][B][SIZE=4]12[/SIZE][/B][/COLOR]px;"><img src="'.picdesign("wind.png").'" border="0" height="[B][COLOR="#FF0000"][SIZE=4]12[/SIZE][/COLOR][/B]"> '.$WRichtung.'</div><div style="font-size:13px;text-align:right;width:60px;position:absolute;top:26px;">'.$WGeschwindigkeit.' km/h</div><div style="font-size:14px;text-align:right;width:310px;position:absolute;top:-20px;">'.$Symbol.'</div><div style="font-size:14px;text-align:right;width:310px;position:absolute;top:25px;left:0px;">'.$Wetter.'</div><div style="font-size:14px;text-align:left;width:30px;position:absolute;top:-20px;left:70px;"><img class="block" src="'.picdesign("temp.png").'" border="0"></div><div style="font-size:14px;text-align:right;width:100px;position:absolute;top:-12px;left:70px;"><img src="'.picdesign("feucht.png").'" border="0" height="12"> '.$Feuchtigkeit."%%".'</div><div style="font-size:22px;text-align:right;width:100px;position:absolute;top:2px;left:70px;">'.$Temp."°C".'</div>'."*HTML#";
        .
        .
        .

Dort die Höhe in Pixel für wind.png ändern ;)

Nachtrag: Man muss ein bisschen nach rechts scrollen, bis die rot markierte Zahl kommt... und man muss die Pixel von der grün markierten abziehen, sonst rutscht die Anzeige ja nach unten.
 
Zuletzt bearbeitet:
*seufz*

Neue wind.png wind.png

PHP:
<?php

	/*
		+---------------------------------------------------------------------+
		|                                                                     |
		|   SensorAndSwitch Automation Pro                                    |
		|   PseudoGeräte-Script                                               |
		|   ===============================================================   |
		|   -> Wetter                                                         |
		|      openweathermap.org                                             |
		|      Informationen von obiger Homepage für den Ort, der             |
		|      anhand der in den Einstellungen eingelesenen Längen- und       |
		|      Breitengraden ermittelt wurde.                                 |
		|                                                                     |
		+---------------------------------------------------------------------+
	*/

	error_reporting(0);
	include "include/includedateien.php";
	include "include/includefunctions.php";
	include "include/includeconf.php";
	include "include/includeconfig.php";
	include "include/includedefine.php";
	$url="http://api.openweathermap.org/data/2.5/weather?lat=".BREITENGRAD."&lon=".LAENGENGRAD."&mode=xml&units=metric&lang=de";
	$Status=web($url,$post);
	if ($Status) {
		$Cont=simplexml_load_string($Status);
		$Temp=number_format(sprintf('%.1f',$Cont->temperature->attributes()->value),1,",",".");
		$Wind=$Cont->wind->speed->attributes()->name;
		$WGeschwindigkeit=number_format(sprintf('%.2f',$Cont->wind->speed->attributes()->value*6),0,",",".");
		$WRichtung=$Cont->wind->direction->attributes()->code;
		$Luftdruck=number_format(sprintf('%.0f',$Cont->pressure->attributes()->value),0,",",".");
		$Feuchtigkeit=number_format(sprintf('%.0f',$Cont->humidity->attributes()->value),0,",",".");
		$Stadt=$Cont->city->attributes()->name;
		$Symbol='<img src="http://openweathermap.org/img/w/'.$Cont->weather->attributes()->icon.'.png" width="50" height="50">';
		$Wetter=$Cont->weather->attributes()->value;
		echo "T#".sprintf('%.2f',$Cont->temperature->attributes()->value)."#P#".'<div style="font-size:13px;text-align:right;width:60px;position:absolute;top:-12px;">'.$Luftdruck.' hPa</div><div style="font-size:12px;text-align:left;width:60px;position:absolute;top:14px;"><img src="'.picdesign("wind.png").'" border="0" height="24"></div><div style="font-size:12px;text-align:right;width:60px;position:absolute;top:12px;">'.$WRichtung.'</div><div style="font-size:13px;text-align:right;width:60px;position:absolute;top:26px;">'.$WGeschwindigkeit.' km/h</div><div style="font-size:14px;text-align:right;width:310px;position:absolute;top:-20px;">'.$Symbol.'</div><div style="font-size:14px;text-align:right;width:310px;position:absolute;top:25px;left:0px;">'.$Wetter.'</div><div style="font-size:14px;text-align:left;width:30px;position:absolute;top:-20px;left:70px;"><img class="block" src="'.picdesign("temp.png").'" border="0"></div><div style="font-size:14px;text-align:right;width:100px;position:absolute;top:-12px;left:70px;"><img src="'.picdesign("feucht.png").'" border="0" height="12"> '.$Feuchtigkeit."%%".'</div><div style="font-size:22px;text-align:right;width:100px;position:absolute;top:2px;left:70px;">'.$Temp."°C".'</div>'."*HTML#";
	}
	else {
		echo "T##P##E##";
	}
	exit;
	
?>

Besser? :mrgreen:
 
Hallo,:shock: wieso? Ich hoffe, ich nerve nicht mit den Fragen (sonst gerne PN)
Nein, ich war nur gerade fertig damit gewesen, die vorherige Fassung vorbereitend für die nächste Version in die einzelnen Pakete zu stecken. Und dann hieß dies halt: nochmal das Ganze. :) Da seufzt man schon mal :mrgreen:
Jipp :D, perfekt

Franky
Okay :)
 
Moin

Dann will ich mal vermuten, dass feucht-, und wind.png mit dabei sind. :mrgreen:
 
Bei der nächsten Version sowieso. :)
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,840
Beiträge
2,219,268
Mitglieder
371,543
Neuestes Mitglied
Brainbanger
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.