Bei wem funktioniert noch google weather?

Begonnen von LuckyDay, 28 August 2012, 11:00:05

Vorheriges Thema - Nächstes Thema

UliM

                                                 

Hi,
hängt von der verwendeten Version von fhemweb ab:
In neueren Versionen wird die Angabe des icons mit logischem Pfad
(fhem/icons) und ohne Dateiendung erwartet.
In älteren Versionen mit logischem Pfad und mit Dateiendung.
In ganz alten Versionen noch mit echtem Pfad und Dateiendung.
=8-)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Mitch

                                                     

So, endlich konnte ich das Testen.

Ich habe die Icons nochmal überall hin kopiert und nun sind sie da.

Danke!

Am Dienstag, 4. September 2012 16:19:00 UTC+2 schrieb UliM:
>
> Hi,
> hängt von der verwendeten Version von fhemweb ab:
> In neueren Versionen wird die Angabe des icons mit logischem Pfad
> (fhem/icons) und ohne Dateiendung erwartet.
> In älteren Versionen mit logischem Pfad und mit Dateiendung.
> In ganz alten Versionen noch mit echtem Pfad und Dateiendung.
> =8-)
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
FHEM im Proxmox Container

Guest

Originally posted by: <email address deleted>

na super!!
jetz fehlt nur noch: Wettericons im Floorplan....

lg
neo

Am Mittwoch, 5. September 2012 11:12:16 UTC+2 schrieb Mitch:
>
> So, endlich konnte ich das Testen.
>
> Ich habe die Icons nochmal überall hin kopiert und nun sind sie da.
>
> Danke!
>
> Am Dienstag, 4. September 2012 16:19:00 UTC+2 schrieb UliM:
>>
>> Hi,
>> hängt von der verwendeten Version von fhemweb ab:
>> In neueren Versionen wird die Angabe des icons mit logischem Pfad
>> (fhem/icons) und ohne Dateiendung erwartet.
>> In älteren Versionen mit logischem Pfad und mit Dateiendung.
>> In ganz alten Versionen noch mit echtem Pfad und Dateiendung.
>> =8-)
>>
>>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

erwin

                                                   

Hi Neo, und alle die Anderen ;-)

Ein Versuch, die icons (betrifft die Function WeatherAsHtml ) im Floorplan
zu fixen. Bitte um Test und Feedback!
Ob das allerdings die finale Lösung ist (in Hinblick auf die laufenden
Änderungen in der Pfad logisch-physisch Logik) wage ich zu bezweifeln.

l.g. erwin

Am Mittwoch, 5. September 2012 13:33:53 UTC+2 schrieb neomorph:
>
> na super!!
> jetz fehlt nur noch: Wettericons im Floorplan....
>
> lg
> neo
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

--- C:/Dokumente und Einstellungen/erwin/Desktop/FHEM_testing/weather/59_Weather_orig.pm   Wed Aug 29 10:18:05 2012
+++ C:/Dokumente und Einstellungen/erwin/Desktop/FHEM_testing/weather/59_Weather.pm   Thu Sep 06 10:53:03 2012
@@ -6,6 +6,8 @@
 #
 ##############################################
 # $Id: 59_Weather.pm 1807 2012-08-18 16:19:17Z borisneubert $
+# testing yahoo weather MH 2012-08-29
+# MH20120906 fixing (temporarily) Floorplan icons
 package main;
 
 
@@ -40,6 +42,40 @@
     'zh-TW' => 'utf-8',
 );
 
+
+# Mapping / translation of current weather codes 0-47
+my @YahooCodes_us = (
+       'tornado', 'tropical storm', 'hurricane', 'severe thunderstorms', 'thunderstorms', 'mixed rain and snow',
+       'mixed rain and sleet', 'mixed snow and sleet', 'freezing drizzle', 'drizzle', 'freezing rain' ,'showers',
+       'showers', 'snow flurries', 'light snow showers', 'blowing snow', 'snow', 'hail',
+       'sleet', 'dust', 'foggy', 'haze', 'smoky', 'blustery',
+       'windy', 'cold', 'cloudy', 'mostly cloudy (night)', 'mostly cloudy (day)', 'partly cloudy (night)',
+       'partly cloudy (day)', 'clear (night)', 'sunny', 'fair (night)', 'fair (day)', 'mixed rain and hail',
+       'hot', 'isolated thunderstorms', 'scattered thunderstorms', 'scattered thunderstorms', 'scattered showers', 'heavy snow',
+       'scattered snow showers', 'heavy snow', 'partly cloudy', 'thundershowers', 'snow showers', 'isolated thundershowers');
+
+my @YahooCodes_de = (
+       'Tornado', 'schwerer Sturm', 'Sturm', 'schwere Gewitter', 'Gewitter', 'Regen und Schnee',
+       'Regen und Schnee', 'Schnee und Regen', 'Eisregen', 'Graupelschauer', 'gefrierender Regen' ,'Regen',
+       'Regen', 'Schneegestöber', 'leichter Scneeschauer', 'Schneeverwehungen', 'Schnee', 'Hagel',
+       'Schnee und Regen', 'Dunst', 'neblig', 'Staub oder Rauch', 'Smog', 'blustery',
+       'windig', 'kalt', 'wolkig', 'überwiegend wolkig (night)', 'überwiegend wolkig (day)', 'teilweise wolkig (night)',
+       'teilweise wolkig (day)', 'Klar (night)', 'sonnig', 'bewölkt (night)', 'bewölkt (day)', 'Regen und Hagel',
+       'heiss', 'einzelne Gewitter', 'vereinzelt Gewitter', 'vereinzelt Gewitter', 'vereinzelt Regen', 'heftiger Schneefall',
+       'vereinzelt Schneeschauer', 'heftiger Schneefall', 'teilweise wolkig', 'Gewitterregen', 'Schneeschauer', 'vereinzelt Gewitter');
+
+my %wdayXlate = ('Mon' => 'Mo.', 'Tue' => 'Di.', 'Wed'=> 'Mi.', 'Thu' => 'Do.', 'Fri' => 'Fr.', 'Sat' => 'Sa.', 'Sun' => 'So.');
+
+my @iconlist = (
+       'storm', 'storm', 'storm', 'thunderstorm', 'thunderstorm', 'rainsnow',
+       'sleet', 'snow', 'drizzle', 'drizzle', 'icy' ,'chance_of_rain',
+       'chance_of_rain', 'snowflurries', 'chance_of_snow', 'heavysnow', 'snow', 'heavyrain',
+       'sleet', 'dust', 'fog', 'haze', 'smoke', 'flurries',
+       'windy', 'icy', 'cloudy', 'mostlycloudy_night', 'mostlycloudy', 'partly_cloudy_night',
+       'partly_cloudy', 'clear', 'sunny', 'mostly_clear_night', 'overcast', 'heavyrain',
+       'clear', 'scatteredthunderstorms', 'scatteredthunderstorms', 'scatteredthunderstorms', 'scatteredshowers', 'heavysnow',
+       'chance_of_snow', 'heavysnow', 'partly_cloudy', 'heavyrain', 'chance_of_snow', 'scatteredshowers');
+
 #####################################
 sub Weather_Initialize($) {
 
@@ -113,7 +149,7 @@
 }
 
 ###################################
-sub Weather_RetrieveDataDirectly($)
+sub Weather_RetrieveDataDirectly_old($)
 {
   my ($hash)= @_;
   my $location= $hash->{LOCATION};
@@ -143,6 +179,124 @@
   }
 }
 
+### mh begin change #####################################################################################
+#calc windrose from  kompasswert 0-360
+sub KompassToWdir($) {
+   my ($kompass) = @_;
+   my @mydirs = ('N', 'NNO', 'NO', 'ONO', 'O', 'OSO', 'SO', 'SSO', 'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW');
+   my $mod = int((($kompass + 11.25) % 360) / 22.5);
+   return $mydirs[$mod];
+}
+
+################################### based on sub Weather_RetrieveDataDirectly($)
+#sub Weather_RetrieveDataYahoo($)
+sub Weather_RetrieveDataDirectly($)
+{
+  my ($hash)= @_;
+  my $location= $hash->{LOCATION}; ### this must be the WOEID now
+#  my $units= $hash->{UNITS}; ### hardcode to c ?
+  my $units= "c";     #just for testing
+#  my $location= "541963"; #just for testing
+
+  my $fc = undef;
+  my $xml = GetFileFromURL("http://weather.yahooapis.com/forecastrss?w=" . $location . "&u=" . $units, 3);
+  return 0 if( ! defined $xml || $xml eq "");
+
+  foreach my $l (split("<",$xml)) {
+          #Log 1, "DEBUG WEATHER: line=\"$l\"";
+          next if($l eq "");                   # skip empty lines
+          $l =~ s/(\/|\?)?>$//;                # strip off /> and >
+          my ($tag,$value)= split(" ", $l, 2); # split tag data=..... at the first blank
+          next if(!defined($tag) || ($tag !~ /^yweather:/));
+          $fc= 0 if($tag eq "yweather:condition");
+          $fc++ if($tag eq "yweather:forecast");
+          my $prefix= $fc ? "fc" . $fc ."_" : "";
+  
+          ### location
+          if ($tag eq "yweather:location" ) {
+            $value =~/city="(.*?)" .*country="(.*?)".*/;
+            my $loc = "";
+            $loc = $1 if (defined($1));
+            $loc .= ", $2" if (defined($2));
+            readingsUpdate($hash, "city", $loc);
+          }
+        
+          ### current condition and forecast
+          if (($tag eq "yweather:condition" ) || ($tag eq "yweather:forecast" )) {
+             my $code = (($value =~/code="([0-9]*?)".*/) ? $1 : undef);
+             if (defined($code)) {
+               readingsUpdate($hash, $prefix . "code", $code);
+               my $text = $YahooCodes_de[$code];  
+               if ($text) { readingsUpdate($hash, $prefix . "condition", $text); }
+               #### add icon logic here - generate from code
+               $text = $iconlist[$code];
+               readingsUpdate($hash, $prefix . "icon", $text) if ($text);
+             }  
+          }
+
+          ### current condition
+          if ($tag eq "yweather:condition" ) {
+             my $temp = (($value =~/temp="([0-9.]*?)".*/) ? $1 : undef);
+             if ($temp) {
+                readingsUpdate($hash, "temperature", $temp);
+                readingsUpdate($hash, "temp_c", $temp); # compatibility
+                $temp = ( $temp * 9  / 5 ) + 32;  # Celsius to Fahrenheit
+                readingsUpdate($hash, "temp_f", $temp); # compatibility
+             }  
+
+             my $datum = (($value =~/date=".*? ([0-9].*)".*/) ? $1 : undef);  
+             readingsUpdate($hash, "current_date_time", $datum) if (defined($1));
+
+             my $day = (($value =~/date="(.*?), .*/) ? $1 : undef);  
+             if ($day) {  
+                my $day_de = $wdayXlate{$day};            
+                readingsUpdate($hash, "day_of_week", $day_de);
+             }          
+          }
+
+          ### forecast
+          if ($tag eq "yweather:forecast" ) {
+             my $low_c = (($value =~/low="([0-9.]*?)".*/) ? $1 : undef);
+             if ($low_c) { readingsUpdate($hash, $prefix . "low_c", $low_c); }  
+             my $high_c = (($value =~/high="([0-9.]*?)".*/) ? $1 : undef);
+             if ($high_c) { readingsUpdate($hash, $prefix . "high_c", $high_c); }  
+             my $day1 = (($value =~/day="(.*?)" .*/) ? $1 : undef); # forecast
+             if ($day1) {
+                my $day1_de = $wdayXlate{$day1};            
+                readingsUpdate($hash, $prefix . "day_of_week", $day1_de);
+             }  
+          }
+
+          ### humidiy / Pressure
+          if ($tag eq "yweather:atmosphere" ) {
+            $value =~/humidity="([0-9.]*?)" .*visibility="([0-9.]*?|\s*?)" .*pressure="([0-9.]*?)"  .*rising="([0-9.]*?)" .*/;
+
+            if ($1) { readingsUpdate($hash, "humidity", $1); }
+            my $vis = (($2 eq "") ? " " : $2);   # clear visibility field
+            readingsUpdate($hash, "visibility", $vis);
+            if ($3) { readingsUpdate($hash, "pressure", $3); }
+            if ($4) { readingsUpdate($hash, "pressure-trend", $4); }    
+          }
+
+          ### wind
+          if ($tag eq "yweather:wind" ) {
+            $value =~/chill="([0-9.]*?)" .*direction="([0-9.]*?)" .*speed="([0-9.]*?)" .*/;
+            readingsUpdate($hash, "wind_chill", $1) if (defined($1));
+            readingsUpdate($hash, "wind_direction", $2) if (defined($2));
+            readingsUpdate($hash, "wind_speed", $3) if (defined($3));
+            readingsUpdate($hash, "wind", $3) if (defined($3)); # duplicate for compatibility
+            if (defined($2) & defined($3)) {
+              my $wdir = KompassToWdir($2);
+              readingsUpdate($hash, "wind_condition", "Wind: $wdir mit $3 km/h"); # compatibility
+            }
+          }  
+  }
+}  #end sub
+
+### end MH change #########################################################################
+
+
+
 ###################################
 sub Weather_RetrieveDataViaWeatherGoogle($)
 {
@@ -326,18 +480,21 @@
 
   my $url;
   my $style= "";
-  
+  $uselocal= 1; ## MH
+
   if($uselocal) {
     # strip off path and extension
     $icon =~ s,^/ig/images/weather/(.*)\.gif$,$1,;
 
-    if($isday) {
-      $icon= "weather/${icon}"
-    } else {
-      $icon= "weather/${icon}_night"
-    }
+## MH this is handled by Yahoo code
+#    if($isday) {
+#     $icon= "weather/${icon}";
+#    } else {
+#      $icon= "weather/${icon}_night"
+#    }
 
-    $url= "fhem/icons/$icon";
+#    $url= "fhem/icons/$icon";
+    $url= "/fhem/icons/weather/$icon";  ##MH temp fix for floorplan
     $style= " height=".SIZE." width=".SIZE;
   } else {
     $url= GOOGLEURL . $icon;
@@ -373,6 +530,9 @@
         ReadingsVal($d, "wind_condition", ""));
 
   for(my $i=1; $i<=4; $i++) {
+    ### MH - Yahoo provides only 2 days.
+    next if (ReadingsVal($d, "fc${i}_code", "") eq ""); # MH skip non existent entries
+
     $ret .= sprintf('%s%s: %s
min %s max %s',
         WeatherIconIMGTag(ReadingsVal($d, "fc${i}_icon", ""),$uselocal,$isday),
         ReadingsVal($d, "fc${i}_day_of_week", ""),
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Guest

Originally posted by: <email address deleted>

Hallo Erwin,

leider bin ich erst gestern dazu gekommen das zu testen. Mein Ergebnis:

ES KLAPPT!!!

super, und vielen Dank für die Mühe!!

lg
neo

Am Donnerstag, 6. September 2012 11:07:16 UTC+2 schrieb Erwin:
>
> Hi Neo, und alle die Anderen ;-)
>
> Ein Versuch, die icons (betrifft die Function WeatherAsHtml ) im Floorplan
> zu fixen. Bitte um Test und Feedback!
> Ob das allerdings die finale Lösung ist (in Hinblick auf die laufenden
> Änderungen in der Pfad logisch-physisch Logik) wage ich zu bezweifeln.
>
> l.g. erwin
>
> Am Mittwoch, 5. September 2012 13:33:53 UTC+2 schrieb neomorph:
>>
>> na super!!
>> jetz fehlt nur noch: Wettericons im Floorplan....
>>
>> lg
>> neo
>>
>>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hi Leute,

wo habt ihr denn die Wettericons für die Ablage im fhem-Verzeichnis
herbekommen?

Grüße
Oliver

Am Donnerstag, 6. September 2012 11:07:16 UTC+2 schrieb Erwin:
>
> Hi Neo, und alle die Anderen ;-)
>
> Ein Versuch, die icons (betrifft die Function WeatherAsHtml ) im Floorplan
> zu fixen. Bitte um Test und Feedback!
> Ob das allerdings die finale Lösung ist (in Hinblick auf die laufenden
> Änderungen in der Pfad logisch-physisch Logik) wage ich zu bezweifeln.
>
> l.g. erwin
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

guck mal hier:
https://groups.google.com/forum/#!msg/fhem-users/iEo13uOFay8/IDE_iIPkcM8J

Am 14. September 2012 13:48 schrieb Oliver Völker :

> Hi Leute,
>
> wo habt ihr denn die Wettericons für die Ablage im fhem-Verzeichnis
> herbekommen?
>
> Grüße
> Oliver
>
> Am Donnerstag, 6. September 2012 11:07:16 UTC+2 schrieb Erwin:
>>
>> Hi Neo, und alle die Anderen ;-)
>>
>> Ein Versuch, die icons (betrifft die Function WeatherAsHtml ) im
>> Floorplan zu fixen. Bitte um Test und Feedback!
>> Ob das allerdings die finale Lösung ist (in Hinblick auf die laufenden
>> Änderungen in der Pfad logisch-physisch Logik) wage ich zu bezweifeln.
>>
>> l.g. erwin
>>
>  --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

danke :) trotz suche nicht gefunden.

Am Freitag, 14. September 2012 14:09:21 UTC+2 schrieb neomorph:
>
> guck mal hier:
> https://groups.google.com/forum/#!msg/fhem-users/iEo13uOFay8/IDE_iIPkcM8J
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Dr. Boris Neubert

                                             

Hallo,

ich habe jetzt 59_Weather.pm auf der Basis von Erwins Änderungen fertig
zum Einchecken.

Als Weblink in fhem funktioniert es und sieht gut aus.

Wie kann ich das im FLOORPLAN ausprobieren?

Grüße
Boris

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

UliM

                                                 

Am Sonntag, 16. September 2012 14:10:26 UTC+2 schrieb Boris:
>
> Wie kann ich das im FLOORPLAN ausprobieren?
>
> Der Weblink erscheint im Arrange-Menü in der Liste der einfügbaren devices.
Kann man genau so einfügen und positionieren wie jedes andere device auch.
Gruß, Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Guest

Originally posted by: <email address deleted>

Moin!

Am Freitag, 31. August 2012 10:20:54 UTC+2 schrieb Erwin:
>
> 3) Das Ganze ist eine einmalige Geschichte und zwar beim define, und es
> ist gut im commandref (Twilight Module) beschrieben, wie man zu der WOEID
> kommt.
> Was  noch ins define hineingehört ist ein check, ob die WOEID valid ist!
>

Ich finde ja diese Seite ganz praktisch um die WOEID heraus zu bekommen:
http://woeid.rosselliot.co.nz/  
(keine Ahnung ob das noch in die Docs kann)

Schöne Grüße,
Ralf

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com