Neue Version im ursprünglichen Post.
Funzt… Danke!
Ich habe mal versucht, das Skript nachzuvollziehen, um bestimmte Anpassungen bzw. Ergänzungen vorzunehmen. Leider scheitere ich aber an meinen begrenzten php-Fähigkeiten.
Ich habe in der API-Beschreibung gesehen, dass stündliche Werte für die nächsten 48 Stunden zur Verfügung stehen. Diese werden, soweit ich das erkennen kann, im Grundatz auch mit dem Skript abgerufen. Wie aber komme ich daran? 2 Dinge möchte ich damit realisieren (sicherlich wird es noch mehr, wenn ich in der Lage bin, an die Werte zu gelangen):
Ich möchte die Werte in 2 Stunden darstellen sowie eine Variable erstellen, die die Uhrzeit anzeigt, wann es das nächste mal regnet.
Vielen Dank für eine Erläuterung oder sonstige Hilfe…!
Grüße, Götz
Hat sich erledigt. In diesem Teil
$hourly = $parsed_json->{'hourly'}->{'data'};
$message = array();
for($i=0;$i<48;$i++)
{
$time = utf8_decode($hourly[$i]->time);
$summary = utf8_decode($hourly[$i]->summary);
$temp = utf8_decode($hourly[$i]->temperature);
$temp2 = utf8_decode($hourly[$i]->apparentTemperature);
$humidity = utf8_decode($hourly[$i]->humidity);
@$precipType = utf8_decode($hourly[$i]->precipType);
$niederschlag = "";
if ($precipType == "rain") $niederschlag = "Regen";
if ($precipType == "snow") $niederschlag = "Schnee";
if ($precipType == "sleet") $niederschlag = "Schneeregen";
$niedr_prop = utf8_decode($hourly[$i]->precipProbability);
$wind = utf8_decode($hourly[$i]->windSpeed);
$boen = utf8_decode($hourly[$i]->windGust);
$wolken = utf8_decode($hourly[$i]->cloudCover);
$tag = date('d',intval($time));
$stunde = date('H',intval($time));
$Wochentag = $WochenTage[date('w',intval($time))];
$message[$stunde] = array(date('d.m',intval($time)),$WochenTage[date('w',intval($time))],date('H',intval($time)),$summary,$temp,$temp2,$niederschlag,$niedr_prop,$wind,$boen,$wolken,$humidity);
$box2[]="$Wochentag $stunde Uhr $summary / $niederschlag $niedr_prop % / $temp °C";
}
sind auch die Werte der nächsten 24 Stunden, wenn man die Zeile
for($i=0;$i<48;$i++)
auf
for($i=0;$i<24;$i++)
ändert, da anderenfalls die ersten durch die letzten 24 Stunden überschrieben werden. So kann man sich nun für die nächsten 24 Stunden aus dem Array bedienen…
Ich hab das Skript für mich auch mal aufbereitet und das sieht schon sehr gut aus. Nur das Einbinden der Icons in meiner html Box funktioniert irgendwie noch nicht. Am liebsten wäre mir ne URL zu den farbigen Images die Dark Sky auch selbst auf der Webseite nutzt (die auch in der Hilfe Seite unter „Was bedeuten die Icons“ aufgelistet sind) und die müssen auch nicht animiert sein aber das scheint es nicht zu geben. Hat da jemand schon was gemacht?
Hab es anders gelöst, hatte noch die XAMLStudio Icons und die hab ich mir jetzt passend gezogen und binde die ein. So soeht es fast wieder so aus wie mit Wunderground
Wobei ich es schon komisch finde, dass für die nächsten Tage nur Wind als Icon angegeben ist. Naja, muss man mal beobachten.
ich würde gerne die Bewölkungs Vorhersage abfragen über den ganzen Tag hinweg
z.B. das Ergebnis sollte sein
10 Uhr 20%
11 Uhr 30%
12 Uhr 40%
und so weiter
ist das hiermit überhaupt machbar ?
Ich bräuchte es für meine PV
Hallo Leute,
ich habe einfach keine Zeit, mein Wetterscript umzubauen. Kann man bei Wunderground bezahlen, damit der key wieder gültig wird?
Grüße Jens
Die Icons habe ich wie folgt in die HTML-Box eingefügt
$Icon = utf8_decode($days[$i]->icon);
$IconUrl = 'https://darksky.net/images/weather-icons/'.$Icon.'.png';
$html.= '<td align="center" valign="top" style="width:110px;padding-left:20px;">
'.$Wochentag.'<br>
<img width="70" height="70" src="'.$IconUrl.'" style="float:left;">
Zum Glück hat das Wetter heute zum programmieren eingeladen
Alles auf DarkSky umgebogen und gleich noch paar Sachen verbessert.
Vielen Dank für die perfekte Vorarbeit hier im Forum. Mal schauen wie lange das jetzt Bestand hat
Danke & Ciao
Heiko
Noch schöner wäre es wenn du es hier veröffentlichen würdest
Da gibt es nicht viel zu veröffentlichen. Ich habe das Script aus Post #10 genommen und entsprechend meiner Baum & Variablenstruktur angepasst.
Gruß Heiko
Hallo zusammen,
auch von meiner Seite aus vielen Dank für die mega Vorarbeit!
Ich gebe die Außentemperatur eigentlich nur über mein LCN GT10D aus und es klappt super.
Hier der Code, für LCN User:
<?php
$api = "API-Dark-Sky-key";
$latitude = "51.24";
$longitude = "6.73";
$json_string = file_get_contents("https://api.darksky.net/forecast/$api/$latitude,$longitude?exclude=minutely&lang=de&units=si");
$parsed_json = json_decode($json_string);
$current = $parsed_json->{'currently'};
$text0 = utf8_decode($current->temperature);
SetValue(56777, $text0); // Float-Variable Außentemperatur wird gesetzt
$DisplayID = 30601;
$Zeile = 4;
$Text = "Außentemp.=${text0}°C
";
DisplayText($DisplayID, $Zeile , $Text);
function DisplayText($instance, $line, $text)
{
$text = substr($text, 0, 58);
for($part = 0; $part < ceil(strlen($text) / 12); $part++)
{
if(!LCN_SendCommand($instance, 'GT',
'DT' .
$line .
($part + 1) .
substr($text, $part * 12, 12) .
"
")) return;
}// end for
}// end function DisplayText
?>
Vielen Dank!
Hallo Zusammen,
auf Grund von der Einstellung der Wunderground api bin ich jetzt auch umgestiegen auf die Dark Sky API.
Vielen Dank an die Vorberatung von someone und Buzz.
Soweit hat alles auf anhieb Funktioniert. Ich habe nur ein Problem wo ich mir grade die Zähne ausbeiße.
Mein Problem ist bei der Regenwahrscheinlichkeit. In der Variablen wir ein Prozentwert angezeigt. Sobald ich aber die
Variable in IPS-View einbinde wird mir z.B. 0,80% Regenwahrscheinlichkeit angezeigt ob wohl in der Variable 80% steht.
Weiß jemand wo ran das liegt ??
Gruß Stephan
Wenn jemand die Tatsache umgehen will einen eigenen API Key zu nutzten kann man auch einfach
Weatherwidget.io
nutzten. Das basiert auch auf den Daten von Dark Sky und da wird dann alles zentral über einen API Key des Anbieters abgerufen. Das Widget kann man dann in IP-Symcon einbinden.
Nachdem ich 3 Tage vergeblich damit zugebracht habe, bei Wunderground eine neue API zu erhalten, indem ich eine PersonalWeatherStation einrichte, meine Daten hochlade, E-Mail’s an IBM schreibe und um eine API bettele, habe ich DarkSky entdeckt!
Anmelden: 5min.
API-Key: 5min.
Script von Buzz2912 hat sofort, ohne Fehler funktioniert, und lässt sich hervorragend an die persönlichen Bedürfnisse anpassen.
Bei diesem ganzen „Modul-Hype“, wird leider schnell übersehen, dass das beste Modul wertlos ist, wenn der Service-Partner (Wunderground) hochgradig inkompetent ist!
Durch die Scriptlösung mit DarkSky, kann ich genau die Wetterdaten laden, die mir bei meiner Wetterstation fehlen, ohne ein riesen Packet (ca. 200Variablen) laden zu müssen, wobei ich nur ca. 10 Daten pro Tag zu meiner Wetterstation hinzufügen möchte!
Wie im Titel schon gesagt: DANKE für diese Arbeit, weiter so!
Hallo Leute,
ich habe Post von Wunderground.
Die Abfragen wie bisher würden mich 200 $ im Monat kosten.
Das DarkSky Script funktioniert bei mir nicht.--------------Unable to find the wrapper https//----------------
Was habe ich falsch gemacht?
IPS 3.4
Grüße aus dem Erzgebirge
200 Glocken … nicht schlecht
Schreib doch mal genau Deinen Fehler bzw. dein Script hier rein. Bei https// fehlt der Doppelpunkt
Ciao Heiko
Danke für die schnelle Antwort
Warning: file_get_contents(): Unable to find the wrapper „https“ - did you forget to enable it when you configured PHP? in C:\IP-Symcon\scripts\34253.ips.php on line 20
Warning: file_get_contents(https://api.darksky.net/forecast/a0fe08873e587700f5a296487704cab8/50.569169,12.505790?exclude=minutely&lang=de&units=si): failed to open stream: No such file or directory in C:\IP-Symcon\scripts\34253.ips.php on line 20
Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\34253.ips.php on line 22
Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\34253.ips.php on line 23
Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\34253.ips.php on line 24
Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\34253.ips.php on line 25
Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\34253.ips.php on line 26
Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\34253.ips.php on line 27
Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\34253.ips.php on line 28
Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\34253.ips.php on line 29
Abort Processing during exceed of maximal ErrorCount: Trying to get property of non-object
Error in Script C:\IP-Symcon\scripts\34253.ips.php on Line 31
Grüße aus dem Erzgebirge
Kannst Du über file_get_contents() irgendeine Seite via HTTPS einlesen. Also auch mal mit einer andernen URL probieren und Bescheid geben!?
Gruß Heiko
Guten Morgen,
da passiert genau das gleiche. Es wird wohl am https liegen. Vorher hatte ich wunderground nur mit http aufgerufen.
Grüße Jens