Wunderground (Testversion)

Hallo zusammen,
noch habe ich keine Symcon Lizenz, aber habe die Version 4 auf dem RPi als Demo installiert. Nun geht es ans erste Modul, um die Möglichkeiten auszuloten. Das Modul ist sehr einfach aufgebaut, aber für die ersten Schritte mit IPS bin ich sehr zufrieden.

https://github.com/tobiber/SymconWundergroundWeather.git

Funktionen
Wie soll es auch anders sein, Wetterdaten zum angegebenen Standort von Wunderground abfragen.

Installation
Im IPS im Kern Bereich eine neue Instanz anlegen, abschließend in der Konfig die Wunderground API und den Ort hinterlegen.

Viel Spaß beim Testen! Feedback ist erwünscht.

Hi,
cool, erster Beitrag und schon ein Modul…

Bei mir kommt sofort beim hinzufügen der Instanz folgende Meldung:

Dann wird die Instanz falsch angelegt. Unter Kern-Instanzen,nicht alle Variablen,kein Name…

LG
Jörg

Hallo im Forum,
und danke für das Modul. Bei mir kommt gleich beim Anlegen der gleiche Fehler wie bereits oben aufgeführt. Der Fehler kommt daher das Du zwar im Modul Variablen anlegst und diesen ein Variablenprofil zuweist, das Variablenprofil aber nicht im Modul definierst.

gelöscht: Fehler gefunden

Guten Morgen,
nachdem ich erst einmal auf dem Holzweg bzgl. der Variablenprofile war, habe ich es jetzt gefixt.

Moin ibot!

Herzlich Willkommen im IPS-Forum :slight_smile:

Und Danke für das Modul :slight_smile:

> Bitte immer, wenn du (oder auch jemand anderes) ein Modul veröffentlicht, hier in diesem Thread eintragen (oder Nall chan eine PN schicken):
Übersicht der PHP-Module
…damit keine Module verloren gehen oder in Vergessenheit geraten! Denn das wäre doch sehr Schade :slight_smile:

Grüße,
Chris

Habe das Modul jetzt dort hinterlegt.

Gruß,
Tobi

Merci :slight_smile:

Dort hast du auch gleich eine Reihe weiterer Module, bei denen du dir (bei Bedarf) das ein oder andere abschauen kannst :slight_smile:

-Chris-

Hi,
super, danke, funktioniert :slight_smile:
Wenn ich mir etwas wünschen dürfte wäre das die Integration der Vorhersage.

lg
jörg

Wer komplett frei seine Daten auslesen möchte und selbst bestimmten möchte was er auslesen will…bei Wunderground funktioniert es quasi nach der gleichen Methode (json) wie hier: IP-Symcon - Wie kann ich… 2.0

Grüße,
Chris

Und wenn Du noch mehr haben möchtest.
Ich gebs zu ist hier aus dem Forum.


$parsed_json = json_decode($json_string);
$icon        = $parsed_json->{'current_observation'}->{'icon'};
$temp_c      = $parsed_json->{'current_observation'}->{'temp_c'};
$min_temp    = $parsed_json->{'current_observation'}->{'dewpoint_c'};
$humid       = $parsed_json->{'current_observation'}->{'relative_humidity'};
$wind_speed  = $parsed_json->{'current_observation'}->{'wind_kph'};
$wind_dir    = $parsed_json->{'current_observation'}->{'wind_dir'};
$luftdruck   = $parsed_json->{'current_observation'}->{'pressure_mb'};
$wetter      = $parsed_json->{'current_observation'}->{'weather'};
$sichtweite  = $parsed_json->{'current_observation'}->{'visibility_km'};
 $latitude = $parsed_json->{'current_observation'}->{'display_location'}->{'latitude'}; 
SetValue(45610 /*[Wetter_Daten_Hahn\Wunderground\Breitengrad]*/, $latitude);
 $longitude = $parsed_json->{'current_observation'}->{'display_location'}->{'longitude'};
 SetValue(40636 /*[Wetter_Daten_Hahn\Wunderground\Längengrad]*/, $longitude);
 $elevation = $parsed_json->{'current_observation'}->{'display_location'}->{'elevation'}; 
SetValue(52913 /*[Wetter_Daten_Hahn\Wunderground\Höhe über Grund]*/, $elevation);
 $city_1 = $parsed_json->{'current_observation'}->{'display_location'}->{'city'}; SetValue(39543 /*Wetter_Daten_Hahn\Wunderground\Wetterstation]*/, $city_1);
 $city_2 = $parsed_json->{'current_observation'}->{'observation_location'}->{'city'};
// SetValue(34788 /**/, $city_2);
 $observation_time_rfc822  = $parsed_json->{'current_observation'}->{'observation_time_rfc822'}; SetValue(45853 /*[Wetter_Daten_Hahn\Wunderground\Datenabfrage ]*/, $observation_time_rfc822);
 $pressure_trend  = $parsed_json->{'current_observation'}->{'pressure_trend'}; SetValue(51794 /*[Wetter_Daten_Hahn\Wunderground\Trend Luftdruck]*/, $pressure_trend);
 $feelslike_c  = $parsed_json->{'current_observation'}->{'feelslike_c'}; SetValue(16583 /*[Wetter_Daten_Hahn\Wunderground\Temperatur gefühlt]*/, $feelslike_c);
 $wind_degrees  = $parsed_json->{'current_observation'}->{'wind_degrees'}; SetValue(53538 /*[Wetter_Daten_Hahn\Wunderground\Windrichtung]*/, $wind_degrees);
 $UV  = $parsed_json->{'current_observation'}->{'UV'};
 SetValue(38582 /*[Wetter_Daten_Hahn\Wunderground\UV-Wert]*/, $UV);
// echo "Wolken              : ${icon}
"; 
SetValue(58555 /*[Wetter_Daten_Hahn\Wunderground\Icon]*/, $icon);

// echo "aktuelle Temperatur : ${temp_c}°C
"; SetValue(59477 /*[Wetter_Daten_Hahn\Wunderground\Temperatur aktuell]*/, $temp_c);// echo "Taupunkt            : ${min_temp}°C
"; SetValue(55461 /*[Wetter_Daten_Hahn\Wunderground\Taupunkt]*/, $min_temp);// echo "Aktuelle Luftfeuchte: ${humid}
";// SetValue(43503 /*[Objekt #43503 existiert nicht]*/, $humid); $trimmed = rtrim($humid, "%"); SetValue(38624 /*[Wetter_Daten_Hahn\Wunderground\Luftfeuchte]*/, $trimmed);// echo "Windgeschwindigkeit : ${wind_speed} Km/h
"; SetValue(49724 /*[Wetter_Daten_Hahn\Wunderground\Windgeschwindigkeit]*/, $wind_speed);// echo "Windrichtung        : ${wind_dir} 
"; SetValue(25818 /*[Wetter_Daten_Hahn\Wunderground\Windrichtung]*/, $wind_dir);// echo "Aktueller Luftdruck : ${luftdruck} HPa 
"; SetValue(56655 /*[Wetter_Daten_Hahn\Wunderground\Luftdruck]*/, $luftdruck);// echo "Wettervorhersage    : ${wetter}
"; SetValue(36422 /*[Wetter_Daten_Hahn\Wunderground\Wetter aktuell]*/, $wetter);// echo "Sichtweite          : ${sichtweite} Km

"; SetValue(15433 /*[Wetter_Daten_Hahn\Wunderground\Sichtweite]*/, $sichtweite);/*echo "Vorhersage" . "
";;echo "==========" . "

";;$json_fc_string = file_get_contents("http://api.wunderground.com/api/$api/forecast/langL/q/Switzerland/$ort.json");$parsed_fc_json = json_decode($json_fc_string);$prognose = $parsed_fc_json->{'forecast'}->{'simpleforecast'}->{'forecastday'};echo "Heute:" . "
";;echo $icon0 = ($prognose[0]->icon) . "
";;echo $high0 = ($prognose[0]->high->celsius) . "
";;echo $low0 = ($prognose[0]->low->celsius) . "
";;echo $conditions0 = utf8_decode($prognose[0]->conditions) . "

";;echo "Morgen" . "
";;echo $icon1 = ($prognose[1]->icon) . "
";;echo $high1 = ($prognose[1]->high->celsius) . " % 
";;echo $low1 = ($prognose[1]->low->celsius) . " % 
";;echo $conditions1 = utf8_decode($prognose[1]->conditions) . "

";;echo "Übermorgen" . "
";;echo $icon2 = ($prognose[2]->icon) . "
";;echo $high2 = ($prognose[2]->high->celsius) . "
";;echo $low2 = ($prognose[2]->low->celsius) . "
";;echo $conditions2 = utf8_decode($prognose[2]->conditions) . "
";;*/

Danke Chris für den Input.

Habe das Konfigurationsform erweitert, sodass jeder für sich auswählen kann, welche Eigenschaften abgefragt / gespeichert werden sollen. Es werden auch nur für die aktiven Optionen Variablen angelegt.

Allgemein Wetterdaten

  • Akt. Bedindungen (Heiter,…)
  • Luftdruck
  • Feuchtigkeit
  • Temperatur
  • Taupunkt
  • Sichtweite

Windchill

  • Windchill Temperatur

Wind

  • Richtung in Grad
  • Richtung als String
  • Geschwindigkeit
  • Geschwindigkeit in Böen

UV

  • UV Index

Wettervorhersage

  • Nur Vorbereitet

Screenshot
wunderground_update.PNG

Gruß,
Tobi

Hi Tobi!

Das mit den Checkboxen und der Aufteilung der Werte ist praktisch…gute Idee :slight_smile: Man muss ja immer auch die Variablensparfüchse denken :smiley:

Weiter so :cool:

Grüße,
Chris

Gibt es einen Trick die Instanz zu verschieben, geht das nur per script oder bin ich heute einfach nur unfähig.
Unter Kern-Instanz finde ich es auch nicht passend angesiedelt.
Vielen Dank für das Modul.

Wo eine Modul-Instanz erstellt wird, kann im Modul fest einprogrammiert werden. Wenn man ein Modul erstellen können soll, egal wo der User es möchte, dann muss als Type die „3“ einprogrammiert werden.
>>> (0: Kern, 1: I/O, 2: Splitter, 3: Gerät, 4: Konfigurator)

Grüße,
Chris

Vielen Dank für die Erleuchtung - hat funktioniert.

Hallo Squirell,
wo hast du das Modul jetzt hingeschoben? Hast du in deinem Gerätebereich eine extra Kategorie für allgemeine Eigenschaften, wie beispielsweise das Wetter oder die Anwesenheit?

Gruß,
Tobi

Setz den Type auf 3 und dann liegt es bei Dir, ob Du eine Gruppe „Wetter“ anlegst und es dahin verschiebst.
Ich gruppiere nach Themen/Geräten - da ich gerade neu strukturiere ist es noch in „root“. Vermutlch packe ich alle Wetterdaten zusammen.
Gruß, Thomas

Ich persönlich fände die beste Lösung Du setzt es auf Typ Gerät im Modul und baust im Formular ein Kategorieselektor ein unter der Kategorie wird das Gerät dann abgelegt.
SelectCategory — IP-Symcon :: Automatisierungssoftware

Das ist Unfug.
Instanzen kann man selber schnell verschieben.
Das hat in der Konfig einer Instanz nichts zu suchen.
Der logische Baum ist dem User vorbehalten und diese Zuordnung ist eh in der settings von IPS gespeichert.
Michael