Zurück   KNX-User-Forum > Öffentlicher Bereich > KNX EIB Forum > Code-Schnipsel
knx-user-forum - International KNX Award Winner 2010


Links
Kalender
Spende

Antwort
 
Themen-Optionen Ansicht
  #31  
Alt 04.11.2012, 18:01
Benutzerbild von JuMi2006
Erfahrener Benutzer
 
Registriert seit: 23.03.2011
Beiträge: 1.839
JuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle Atmosphäre
Standard

gibt es das schon im SVN?
Wäre es möglichdieSymbole mal mit hochzuladen? Würde das heute Abend gern mal umsetzen, sieht gut aus!

Gruß
__________________
Umgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #32  
Alt 05.11.2012, 22:54
Benutzerbild von jensgulow
Benutzer
 
Registriert seit: 08.02.2012
Ort: Leipzig
Beiträge: 105
jensgulow ist zur Zeit noch ein unbeschriebenes Blatt
Pfeil

@ JuMi:
Nein, im svn ist bisher nichts. Da habe ich keinen Zugang.
Habe die Version noch etwas verändert und nun auch sich anpassende Hintergründe je nach Wetterlage sowie tags und nachts unterschiedlich.
Die entsprechenden Dateien (in den Ordnern symbole und symbolebg) hätte ich hier ja gerne mit hochgeladen, leider sind die zip-Dateien zu groß.

Hier mal der aktuelle Code:

Information

Information

# ANPASSUNG an WUNDERGROUND based on
# Plugin zum Abfragen von Google Weather
# Version 0.5 2011-02-15
# Copyright: Bodo (http://knx-user-forum.de/members/bodo.html)
# License: GPL (v2)
# Aufbau möglichst so, dass man unterhalb der Definitionen nichts ändern muss!

##################
### DEFINITION ###
##################

my $city = "Leipzig"; # Meine Stadt, hier statt ü,ä,ö einfach u,a,o nehmen oder ue,ae,oe
my $country = "Germany"; # Mein Land
my $lang = "DL"; # Meine Sprache
my $api = "xxxxxxxxxxxxxxxx"; #API, muss man sich bei Wunderground besorgen

my $wunderground_temp_ga = "10/0/4"; # Gruppenadresse Temperatur (DPT9.001)
my $wunderground_hum_ga = "10/0/5"; # Gruppenadresse Luftfeuchte (DPT9.007)
my $wunderground_forecast_maxtemp_ga = "10/0/6"; # Gruppenadresse Temperatur Maximum (DPT9.001)
my $wunderground_forecast_mintemp_ga = "10/0/7"; # Gruppenadresse Temperatur Minimum (DPT9.001)
my $wunderground_clouds_ga = "10/0/8"; # Gruppenadresse Wolken (DPT16)
my $wunderground_forecast_clouds_ga = "10/0/9"; # Gruppenadresse Vorhersage Wolken (DPT16)
my $wunderground_wind_ga = "10/0/10"; # Gruppenadresse Wind (DPT16)

my $wunderground_ip = "http://api.wunderground.com/api/";
my $symbole = "/symbole/"; # Pfad zu den Wettersymbolen
my $symbolebg = "/symbolebg/"; # Pfad zu den Wetterhintergründen
my $htdocs = "/var/www/"; # Das Webverzeichnis
my $wunderground_xml = "wunderground_weather.xml"; # Der XML Datensatz
my $weather_html = "wunderground_weather.html"; # Ausgabe als HTML
my $wunderground_css = "wunderground_weather.css"; # Das Stylesheet

$plugin_info{$plugname.'_cycle'} = 1800; # Eigenen Aufruf-Zyklus setzen (Initialisierung/zyklisches prüfen)
# nicht zu klein, da die Daten sowieso in längeren Perioden refresht werden
# und das Plugin auf die CF schreibt.

#######################
### ENDE DEFINITION ###
#######################

# Hauptverarbeitung
use LWP::Simple;
use XML::Simple;
use Data:: Dumper;
use Encode qw(encode decode);
# use open ":utf8";

my $url = $wunderground_ip.$api."/conditions/forecast/astronomy/lang:".$lang."/q/".$country."\/".$city."\.xml";
#my $xml = encode("utf8",get($url));
my $xml = get($url);
die "Couldn't get it!" unless defined $xml;

my $xml_w = ">".$htdocs.$wunderground_xml;
open(XML, $xml_w); # XML Datei zum Schreiben öffnen
print XML $xml;
close(XML);

my $weather = XMLin($xml);

my $wunderground_temp = $weather->{current_observation}->{temp_c};
$wunderground_temp =~ m/(\d{1,3})(\D)(\d{1,3})/; # ($1)($2)($3)
knx_write($wunderground_temp_ga,$1,9);

my $wunderground_hum = $weather->{current_observation}->{relative_humidity};
$wunderground_hum =~ m/(\d{1,3})(\D)/; # ($1)($2)
knx_write($wunderground_hum_ga,$1,9);

my $wunderground_forecast_maxtemp = $weather->{forecast}->{simpleforecast}->{forecastdays}->{forecastday}->[0]->{high}->{celcius};
$wunderground_forecast_maxtemp =~ m/(\d{1,3})(\D)(\d{1,3})/; # ($1)($2)($3)
knx_write($wunderground_forecast_maxtemp_ga,$1,9);

my $wunderground_forecast_mintemp = $weather->{forecast}->{simpleforecast}->{forecastdays}->{forecastday}->[0]->{low}->{celcius};
$wunderground_forecast_mintemp =~ m/(\d{1,3})(\D)(\d{1,3})/; # ($1)($2)($3)
knx_write($wunderground_forecast_mintemp_ga,$1,9);

my $wunderground_clouds = $weather->{current_observation}->{weather};
if ($wunderground_clouds =~ m/(\D*)(\s)(\D*)/) { # \s findet Zwischenraum (whitspaces). ($1)($2)($3)
knx_write($wunderground_clouds_ga,$1." ".$3,16);
} else {
knx_write($wunderground_clouds_ga,$wunderground_cl ouds,16);
}

my $wunderground_forecast_clouds = $weather->{forecast}->{simpleforecast}->{forecastdays}->{forecastday}->[0]->{conditions};
if ($wunderground_forecast_clouds =~ m/(\D*)(\s)(\D*)/) { # ($1)($2)($3)
knx_write($wunderground_forecast_clouds_ga,$1." ".$3,16);
} else {
knx_write($wunderground_forecast_clouds_ga,$wunder ground_forecast_clouds,16);
}
my $wunderground_wind = $weather->{current_observation}->{wind_string};
if ($wunderground_wind =~ m/(\D*)(\s)(\D*)/) { # ($1)($2)($3)
knx_write($wunderground_wind_ga,$1." ".$3,"16");
} else {
knx_write($wunderground_wind_ga,$wunderground_wind ,16);
}

my $length = -4;
my $icontoday = substr ($weather->{current_observation}->{icon_url}, 31, $length);
my $location = substr ($weather->{current_observation}->{observation_time}, 5, $length);

my $html =
"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<html>
<head>
<title>Wetter</title>
<meta name='language' content='de'>
<meta http-equiv='content-type' content='text/html; charset=utf8'>
<link rel='stylesheet' type='text/css' href='".$wunderground_css."'>
<style type='text/css'>
<!--

table
{
border: 1px;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-o-border-radius: 10px;
overflow: hidden;
}

td
{
color: white;
font-family: Dosis, Helvetica, Arial, sans-serif;
font-size: 16px;
text-shadow:black 3px 2px;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-o-border-radius: 10px;
overflow: hidden;
padding: 10px;
margin:0;
}

h1
{
font-size: 1.4em;
text-shadow:black 3px 2px;

}

h2
{
font-size: 5.5em;
color: #FFF799;
text-shadow:black 4px 3px;
}

h3
{
font-size: 0.8em;
}



=-->
</style>
</head>
<body>
<table background=\"".$symbolebg.$icontoday."\.png\">".

"<tr height=380px>\n".
"<td width=250px align=left>\n".
"<h2 align=center>".$weather->{current_observation}->{temp_c}."°</h2><h3><br/>\n".
"Gefühlt: ".$weather->{current_observation}->{feelslike_c}."° C<br/>\n".
"Bewölkung: ".$weather->{current_observation}->{weather}."<br/>\n".
"Luftfeuchte: ".$weather->{current_observation}->{relative_humidity}."<br/>\n".
"Niederschlag heute: ".$weather->{current_observation}->{precip_today_metric}." mm"."<br/>\n".
"Windrichtung: ".$weather->{current_observation}->{wind_dir}."<br/>\n".
"Windgeschwindigkeit: ".$weather->{current_observation}->{wind_kph}." km/h"."<br/>\n"."<br/>\n".
$location."</h3><br/>\n".
"</td>\n".
"<td>\n".
"<img width=250px height=250px src=\"".$symbole.$icontoday."\.png\" alt=\"".
$weather->{current_observation}->{icon}."\" /><br/>\n".
"</td>\n";

for(my $j=0;$j<4;$j++) {
$html = $html."<td align=center>\n".
"<strong>".$weather->{forecast}->{simpleforecast}->{forecastdays}->{forecastday}->[$j]->{date}->{weekday}."</strong><br/>\n"."<h3>".
$weather->{forecast}->{simpleforecast}->{forecastdays}->{forecastday}->[$j]->{conditions}."</h3><br/>\n<h1><font color=\"FFF799\">".
$weather->{forecast}->{simpleforecast}->{forecastdays}->{forecastday}->[$j]->{high}->{celsius}."° C</font><br/>\n".
$weather->{forecast}->{simpleforecast}->{forecastdays}->{forecastday}->[$j]->{low}->{celsius}."° C</h1><h3><br/>\n".
"Niederschlagsrisiko ".$weather->{forecast}->{simpleforecast}->{forecastdays}->{forecastday}->[$j]->{pop}."%<br/>\n</h3>".
"<img width=150px height=150px src=\"".$symbole.$weather->{forecast}->{simpleforecast}->{forecastdays}->{forecastday}->[$j]->{icon}."\.png\" alt=\"".
$weather->{forecast}->{simpleforecast}->{forecastdays}->{forecastday}->[$j]->{conditions}."\" /><br/>\n".
"</td>\n";
}
$html = $html."</tr>
</table>
</body>";


my $html_datei = $htdocs.$weather_html;

open(HTML, ">:utf8", $html_datei); # HTML Datei zum Schreiben öffnen
print HTML $html;
close(HTML);





Vielleicht gibt es ja noch eine Möglichkeit das alles mehreren Leuten zur Verfügung zu stellen.

Jens
Angehängte Grafiken
Dateityp: jpg snapshot.jpg (63,4 KB, 193x aufgerufen)
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #33  
Alt 05.11.2012, 23:57
Benutzer
 
Registriert seit: 21.03.2011
Ort: Graz
Beiträge: 201
Werner V ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi!

Das würd mich auch brennend interessieren

Eventuell mit kurzem HowTo?

Danke!

lg Werner

EDIT: Im Zweifelsfall kannst mir alles schicken und ich schieb es auf meinen Server und stells zum Download bereit

Geändert von Werner V (06.11.2012 um 00:00 Uhr)
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #34  
Alt 06.11.2012, 00:16
Benutzer
 
Registriert seit: 29.12.2007
Ort: Nahe Linz/Östereich
Beiträge: 386
Robert_Mini ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sieht super aus!
Kannst du dazu eventuell noch die Config xml posten, die das plugin verwendet (inkl. gruppe außen herum etc.).

Danke und lg
Robert
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #35  
Alt 06.11.2012, 06:57
Benutzerbild von jensgulow
Benutzer
 
Registriert seit: 08.02.2012
Ort: Leipzig
Beiträge: 105
jensgulow ist zur Zeit noch ein unbeschriebenes Blatt
Reden

Mach ich sobald ich dazu komme - die liebe Arbeit, ihr wisst schon !

Jens
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #36  
Alt 06.11.2012, 08:41
Benutzerbild von mclb
Benutzer
 
Registriert seit: 07.04.2009
Beiträge: 398
mclb befindet sich auf einem aufstrebenden Ast
Standard

Hast du vor das ins SVN zu stellen? Ich find nämlich, dass es genau dort hin gehört.
__________________
LG Marcus
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #37  
Alt 06.11.2012, 10:00
Benutzer
 
Registriert seit: 21.03.2011
Ort: Graz
Beiträge: 201
Werner V ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat von jensgulow Beitrag anzeigen
@ JuMi:
Nein, im svn ist bisher nichts. Da habe ich keinen Zugang.
Ansonsten mal kurz makki anschreiben ob ers ins SVN stellen kann

lg
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #38  
Alt 06.11.2012, 10:46
Benutzerbild von mclb
Benutzer
 
Registriert seit: 07.04.2009
Beiträge: 398
mclb befindet sich auf einem aufstrebenden Ast
Standard

Oder SourceForge User anlegen, makki schicken und er schaltet dich fürs Wiregate SVN frei.
__________________
LG Marcus
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #39  
Alt 06.11.2012, 20:31
Benutzerbild von makki
Erfahrener Benutzer
 
Registriert seit: 07.07.2007
Beiträge: 11.779
makki sorgt für eine eindrucksvolle Atmosphäremakki sorgt für eine eindrucksvolle Atmosphäremakki sorgt für eine eindrucksvolle Atmosphäremakki sorgt für eine eindrucksvolle Atmosphäremakki sorgt für eine eindrucksvolle Atmosphäremakki sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat von mclb Beitrag anzeigen
Oder SourceForge User anlegen, makki schicken und er schaltet dich fürs Wiregate SVN frei.
(oder Chris M.)

Was das beste und einfachste ist, weil es sonst schwer ist alle Entwicklungen zu verfolgen, testen was mal selbst evtl. garnicht verwendet etc..

Zitat von jensgulow
..
wird favorisiert das von mir angepasste plugin für das Wetter mal ins svn zu stellen.

wie gehe ich denn nun vor?
Ich antworte mal gleich hier: s.o. am besten selbst.
+ mit SVN vertraut machen
- Unter dem Stichwort "subversion" finden sich hier einige Threads/Posts mit Anleitungen (und natürlich im Internet zu tausenden); unter Windows ist TortoiseSVN ein Einstiegs-Stichwort.
- Wenns garnicht anders geht: mir schicken, aber dann bitte mit exakter Beschreibung *wo*, *was* (inkl. ggfs. Beispiel-config etc) weil ich kann das wenn nicht aus Seitenlangen Threads rausfieseln / testen.
(aber ich sage: wer Perl-Plugins schreiben kann, kann auch SVN bedienen )
Wenns z.B. eine Beispielconfig für die CV braucht, einfach als Kommentar ("#") ins Plugin..

Edit: Ein subversion (SVN) Tutorial von Usern für User im Lexikon oder cometvisu.de-Wiki wäre mal was (Zaunpfahl-wink-wink )

Und final: google wetter ist nachhhaltig tot, kann man also ersetzen/löschen.. (gilt ebenso für das lose verwandte CV-Plugin von mir)

Makki
__________________
EIB/KNX & HS3(+Lüfter+picoPSU80), Multiroom-AV mit Russound,mpd,vdr,DM8000, Profilux II+, N141 DALI, DMX, dez. Lüfter (RS485), Wärmepumpe (RS422), 30+ 1-Wire Temp,Luft&Bodenfeuchte,IRTrans
WireGate - Supportforum - bitte keine PN's!

Geändert von makki (06.11.2012 um 20:46 Uhr)
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort

Stichworte
google, plugin, weather, wiregate

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[WireGate-Plugin] Plugin CUL für KS300, FS20, FHT/HMS&Co lbau WireGate 152 20.01.2013 23:21
[Featurewunsch] Plugin: Aufrufzeiten (crontab...) Chris M. WireGate 13 16.02.2012 07:21
Plugin Fragen tjakobi WireGate 1 18.12.2010 02:25
- √ - Plugin Update - Gira Info Terminal Touch troth KNX EIB Forum 7 26.06.2010 14:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:39 Uhr.



SEO by vBSEO