Modul für Weather Underground / Wunderground

Begonnen von Loredo, 26 Oktober 2016, 01:31:36

Vorheriges Thema - Nächstes Thema

CoolTux

Boris hatte damals damit angefangen. Er ja ein Yahoo Framework geschrieben. Die Yahoo_API.pm welche die Daten holt und dann aufbereitet an das anzeigende Modul weather.pm sendet. Peter und d ich wollte daran anknüpfen sind aber aus Zeitmangel noch nicht dazu gekommen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Loredo

Ich glaub das ist mir zu anstrengend mich jetzt darauf einzulassen. Es gibt die Module ja auch alle separat, die nochmals gesammelt zusammenzubringen ist ein ganz eigenes Unterfangen.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rtv

Hat eigentlich schon jemand etwas gebastelt um das jeweils aktuelle condition icon als Icon für das FHEM device zu übernehmen?

weini

Habe das Modul heute ausprobiert (aktuellste Version), bin dabei aber böse auf die Nase gefallen.
Funktional ist alles gut, vielen Dank an der Stelle für die tolle Arbeit.

Leider ist aber bei aktiviertem Modul ein CPU-Kern permanent auf 100% gegagen. FHEM war auch spürbar langsamer beim Seitenaufbau und mein CUL konnte die IT Steckdosen nicht mehr schalten.

Natürlich kann das an einer unglücklichen Interdependenz mit einem anderen Modul liegen. Ich bin jetzt erst mal wieder zurück auf den HTTPMOD-Ansatz.

Hier meine Installation, falls jemand nochmal ähnliche Probleme haben sollte:

Latest Revision: 12499

File                  Rev   Last Change

fhem.pl               12463 2016-10-29 08:13:52Z rudolfkoenig
96_allowed.pm         11984 2016-08-19 12:47:50Z rudolfkoenig
74_AMAD.pm            12298 2016-10-08 20:05:13Z markooldenburg
90_at.pm              12028 2016-08-21 12:08:28Z rudolfkoenig
98_autocreate.pm      11984 2016-08-19 12:47:50Z rudolfkoenig
00_CUL.pm             12027 2016-08-21 12:05:23Z rudolfkoenig
10_CUL_HM.pm          12483 2016-11-01 13:17:13Z martinp876
14_CUL_TX.pm          12387 2016-10-20 08:07:56Z rudolfkoenig
95_Dashboard.pm       12251 2016-10-03 09:45:43Z talkabout
71_DENON12_AVR.pm      4711 2016-02-11 11:11:11Z ohweh
98_DOIF.pm            12215 2016-09-26 21:02:49Z damian-s
98_dummy.pm           11984 2016-08-19 12:47:50Z rudolfkoenig
70_ENIGMA2.pm         12317 2016-10-10 23:12:02Z loredo
91_eventTypes.pm      11984 2016-08-19 12:47:50Z rudolfkoenig
72_FB_CALLLIST.pm     11987 2016-08-19 17:13:41Z markusbloch
72_FB_CALLMONITOR.pm  12393 2016-10-21 14:46:48Z markusbloch
01_FHEMWEB.pm         12416 2016-10-24 06:21:37Z rudolfkoenig
92_FileLog.pm         12378 2016-10-18 19:45:22Z rudolfkoenig
95_FLOORPLAN.pm       11443 2016-05-15 14:17:21Z ulimaass
72_FRITZBOX.pm        12221 2016-09-29 18:30:14Z grompo
10_FS20.pm            11984 2016-08-19 12:47:50Z rudolfkoenig
# $Id: 99_getstate.pm,v 1.3 2009-12-16 16:46:00 m_fischer Exp $
98_HMinfo.pm          12472 2016-10-30 15:38:10Z martinp876
00_HMUARTLGW.pm       12433 2016-10-26 08:36:40Z mgernoth
95_holiday.pm         11984 2016-08-19 12:47:50Z rudolfkoenig
74_HOMBOT.pm          11639 2016-06-10 04:54:26Z markooldenburg
98_HTTPMOD.pm         12220 2016-09-29 18:25:09Z ststrobel
49_IPCAM.pm            2626 2013-02-01 19:19:15Z mfr69bs
10_IT.pm              12179 2016-09-19 19:26:01Z dancer0705
36_LaCrosse.pm        12157 2016-09-13 11:23:02Z hcs-svn
36_LaCrosseGateway.pm 12214 2016-09-26 20:13:32Z hcs-svn
32_LedController.pm       0 2016-05-01 12:00:00Z herrmannj
82_LGTV_IP12.pm       11998 2016-08-19 21:44:37Z markusbloch
91_notify.pm          11984 2016-08-19 12:47:50Z rudolfkoenig
10_pilight_ctrl.pm    12188 2016-09-20 18:07:36Z risiko79
30_pilight_raw.pm     12478 2016-10-31 13:20:55Z risiko79
30_pilight_temp.pm    10506 2016-01-14 20:40:45Z risiko79
73_PRESENCE.pm        12344 2016-10-15 23:08:28Z markusbloch
33_readingsGroup.pm   12335 2016-10-13 19:33:58Z justme1968
# $Id: 44_ROLLO.pm 1202 2016-08-29 19:14:00Z                                         $ #
02_RSS.pm             10849 2016-02-14 19:08:31Z borisneubert
91_sequence.pm        11984 2016-08-19 12:47:50Z rudolfkoenig
No Id found for 17_SIRD.pm
98_statistics.pm      12218 2016-09-27 19:25:42Z grompo
99_SUNRISE_EL.pm      12485 2016-11-01 15:18:51Z rudolfkoenig
98_SVG.pm             12482 2016-11-01 09:25:59Z rudolfkoenig
42_SYSMON.pm          11105 2016-03-20 19:37:02Z hexenmeister
50_TelegramBot.pm     12383 2016-10-19 21:24:53Z viegener
98_telnet.pm          11984 2016-08-19 12:47:50Z rudolfkoenig
99_Utils.pm           11984 2016-08-19 12:47:50Z rudolfkoenig
98_version.pm         11987 2016-08-19 17:13:41Z markusbloch
98_weblink.pm         11984 2016-08-19 12:47:50Z rudolfkoenig
# $Id: 32_WifiLight2.pm 2016-05-29 00:30:00 ArndBaumgarten $

Blocking.pm           12385 2016-10-20 07:54:07Z rudolfkoenig
Color.pm              11159 2016-03-30 16:08:06Z justme1968
DevIo.pm              12397 2016-10-22 10:10:29Z rudolfkoenig
FritzBoxUtils.pm       6574 2014-09-19 17:32:48Z rudolfkoenig
HMConfig.pm           12483 2016-11-01 13:17:13Z martinp876
HttpUtils.pm          12174 2016-09-19 05:53:59Z rudolfkoenig
myUtilsTemplate.pm     7570 2015-01-14 18:31:44Z rudolfkoenig
RTypes.pm             10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm      11513 2016-05-24 17:56:05Z rudolfkoenig
TcpServerUtils.pm     11908 2016-08-06 15:09:55Z rudolfkoenig
TimeSeries.pm         10907 2016-02-21 17:38:02Z borisneubert


Viele Grüße,
weini

immigrantsong

Hast Du Logging für WU eingerichtet? Das erzeugt immense Logfiles und verlangsamt das System entsprechend.

weini

Nein, habe kein FileLog für das Modul definiert.
Das gobale "verbose" habe ich auf 3 stehen.

SFAB

Ich bin vor zwei Wochen in die Benutzung von FHEM eingestiegen und habe mir vor ein paar Tage das Modul Wunderground gemäß Anleitung im Wiki eingerichtet. Das hat bis heute auch prima funktioniert.

Seit dem FHEM-Update, das ich heute durchgeführt habe, läuft das Modul aber beim Start in einen Fehler, der anscheinend mit der Verwendung des Moduls "Unit" zusammenhängt:
2016.11.14 11:41:09 0: Featurelevel: 5.7
2016.11.14 11:41:09 0: Server started with 76 defined entities (fhem.pl:12564/2016-11-13 perl:5.020002 os:linux user:fhem pid:5361)

2016.11.14 11:48:28 1: reload: Error:Modul 59_Wunderground deactivated:
Attempt to reload Unit.pm aborted.
Compilation failed in require at ./FHEM/59_Wunderground.pm line 35.
BEGIN failed--compilation aborted at ./FHEM/59_Wunderground.pm line 35.

2016.11.14 11:48:28 0: Attempt to reload Unit.pm aborted.
Compilation failed in require at ./FHEM/59_Wunderground.pm line 35.
BEGIN failed--compilation aborted at ./FHEM/59_Wunderground.pm line 35.

2016.11.14 11:58:54 1: reload: Error:Modul 59_Wunderground deactivated:
Attempt to reload Unit.pm aborted.
Compilation failed in require at ./FHEM/59_Wunderground.pm line 35.
BEGIN failed--compilation aborted at ./FHEM/59_Wunderground.pm line 35.

2016.11.14 11:58:54 0: Attempt to reload Unit.pm aborted.
Compilation failed in require at ./FHEM/59_Wunderground.pm line 35.
BEGIN failed--compilation aborted at ./FHEM/59_Wunderground.pm line 35.


Dazu "begrüßt" mich FHEM mit folgender Meldung:
Please define WUweather first

Kann mir bitte jemand bei der Behebung des Problems helfen? Vielen Dank!
Raspberry Pi 3
CUL v3 433 (Intertechno/Smartwares)
Jeelink v3 868 (LaCrosse)
Homematic CCU2
Philips Hue Bridge v2

Interpunktor

Hi,

auch hier gern noch der Link zu meiner Lösung dieses Teilproblems mit der Wunderground.pm.
Es fehlt bei Dir wahrscheinlich eine (bei mir nicht standardmäßig installierte) Perl-Library, die aus mir unbekannten Gründen beim Update der Unit.pm erforderlich ist.

Link: https://forum.fhem.de/index.php?topic=60696.msg521568#msg521568

Gruß
Klaus

SFAB

Vielen Dank für den Tipp!

Gibt es eine allgemeine Vorgehensweise um die Abhängigkeiten von einzelnen Modulen herauszufinden? Oder steht so etwas in Changelogs/Release Notes? Falls letzteres: wo findet man die?
Raspberry Pi 3
CUL v3 433 (Intertechno/Smartwares)
Jeelink v3 868 (LaCrosse)
Homematic CCU2
Philips Hue Bridge v2

Loredo

Diese Abhängigkeit wird wieder verschwinden.


Gruß

Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

sollte seit heute wieder ohne Perl::Clone funktionieren.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

SFAB

Raspberry Pi 3
CUL v3 433 (Intertechno/Smartwares)
Jeelink v3 868 (LaCrosse)
Homematic CCU2
Philips Hue Bridge v2

rabehd

Bei klappt es seit einiger Zeit nicht mehr.
Wenn ich "feelslike_c:FT" eingebe, dann erscheint in state: "T: 10.4 °C:FT"
Auch funktionierende Lösungen kann man hinterfragen.

hartenthaler

Ich habe mal eine ReadingsGroup gebaut. Im Anhang ein Bild wie das heute bei mir aussieht.

define rg_WUweather readingsGroup WUweather:<>,fc0_title,fc0_title_night,fc1_title,fc1_title_night,fc2_title,fc2_title_night,fc3_title,fc3_title_night\
WUweather:<>,fc0_icon,fc0_icon_night,fc1_icon,fc1_icon_night,fc2_icon,fc2_icon_night,fc3_icon,fc3_icon_night\
WUweather:<>,fc0_condition,fc1_condition,fc2_condition,fc3_condition \
WUweather:<Vorhersage>,fc0_text,fc0_text_night,fc1_text,fc1_text_night,fc2_text,fc2_text_night,fc3_text,fc3_text_night\
WUweather:<Temperatur&nbsp;;min|max>,fc0_low_c,fc1_low_c,fc2_low_c,fc3_low_c\
WUweather:<rel.&nbsp;;Luftfeuchtigkeit>,fc0_humidity,fc1_humidity,fc2_humidity,fc3_humidity\
WUweather:<Wind&nbsp;;(Böen)>,fc0_wind_speed,fc1_wind_speed,fc2_wind_speed,fc3_wind_speed  \
WUweather:<Regenwahrscheinlichkeit/-menge>,fc0_pop,fc0_pop_night,fc1_pop,fc1_pop_night,fc2_pop,fc2_pop_night,fc3_pop,fc3_pop_night\
WUweather:<Schnee>,fc0_snow_day,fc0_snow_night,fc1_snow_day,fc1_snow_night,fc2_snow_day,fc2_snow_night,fc3_snow_day,fc3_snow_night
attr rg_WUweather group Wettervorhersage
attr rg_WUweather nonames 1
attr rg_WUweather nostate 1
attr rg_WUweather room Wetter
attr rg_WUweather sortby 51
attr rg_WUweather style style="border:0px;;background:none;;box-shadow:none"
attr rg_WUweather valueColumns { 'fc0_condition' => 'colspan="2"', 'fc1_condition' => 'colspan="2"', 'fc2_condition' => 'colspan="2"', 'fc3_condition' => 'colspan="2"', 'fc0_low_c' => 'colspan="2"', 'fc1_low_c' => 'colspan="2"', 'fc2_low_c' => 'colspan="2"', 'fc3_low_c' => 'colspan="2"', 'fc0_humidity' => 'colspan="2"', 'fc1_humidity' => 'colspan="2"', 'fc2_humidity' => 'colspan="2"', 'fc3_humidity' => 'colspan="2"', 'fc0_wind_speed' => 'colspan="2"', 'fc1_wind_speed' => 'colspan="2"', 'fc2_wind_speed' => 'colspan="2"', 'fc3_wind_speed' => 'colspan="2"' }
attr rg_WUweather valueFormat {\
fc0_low_c => "{'$VALUE °C | ' . ReadingsVal('WUweather','fc0_high_c',0) .  ' °C'}" , fc1_low_c => "{'$VALUE °C | ' . ReadingsVal('WUweather','fc1_high_c',0) .  ' °C'}" , fc2_low_c => "{'$VALUE °C | ' . ReadingsVal('WUweather','fc2_high_c',0) .  ' °C'}" , fc3_low_c => "{'$VALUE °C | ' . ReadingsVal('WUweather','fc3_high_c',0) .  ' °C'}" ,\
fc0_humidity => '%.0f %%' , fc1_humidity => '%.0f %%' , fc2_humidity => '%.0f %%' , fc3_humidity => '%.0f %%' ,\
fc0_wind_speed => "{'$VALUE km/h (' . ReadingsVal('WUweather','fc0_wind_speed_max','') . ' km/h) ' . grad2himmelsrichtung(ReadingsVal('WUweather','fc0_wind_direction',''))}" , fc1_wind_speed => "{'$VALUE km/h (' . ReadingsVal('WUweather','fc1_wind_speed_max','') . ' km/h) ' . grad2himmelsrichtung(ReadingsVal('WUweather','fc1_wind_direction',''))}" , fc2_wind_speed => "{'$VALUE km/h (' . ReadingsVal('WUweather','fc2_wind_speed_max','') . ' km/h) ' . grad2himmelsrichtung(ReadingsVal('WUweather','fc2_wind_direction',''))}" , fc3_wind_speed => "{'$VALUE km/h (' . ReadingsVal('WUweather','fc3_wind_speed_max','') . ' km/h) ' . grad2himmelsrichtung(ReadingsVal('WUweather','fc3_wind_direction',''))}" , \
fc0_pop => "{'$VALUE % | ' . ReadingsVal('WUweather','fc0_rain_day','') . ' mm'}" , fc0_pop_night => "{'$VALUE % | ' . ReadingsVal('WUweather','fc0_rain_night','') . ' mm'}" , fc1_pop => "{'$VALUE % | ' . ReadingsVal('WUweather','fc1_rain_day','') . ' mm'}" , fc1_pop_night => "{'$VALUE % | ' . ReadingsVal('WUweather','fc1_rain_night','') . ' mm'}"  , fc2_pop => "{'$VALUE % | ' . ReadingsVal('WUweather','fc2_rain_day','') . ' mm'}" , fc2_pop_night => "{'$VALUE % | ' . ReadingsVal('WUweather','fc2_rain_night','') . ' mm'}"  , fc3_pop => "{'$VALUE % | ' . ReadingsVal('WUweather','fc3_rain_day','') . ' mm'}" , fc3_pop_night => "{'$VALUE % | ' . ReadingsVal('WUweather','fc3_rain_night','') . ' mm'}" ,\
fc0_snow_day => '%.0f mm' , fc0_snow_night => '%.0f mm' , fc1_snow_day => '%.0f mm' , fc1_snow_night => '%.0f mm'  , fc2_snow_day => '%.0f mm' , fc2_snow_night => '%.0f mm'  , fc3_snow_day => '%.0f mm' , fc3_snow_night => '%.0f mm' ,\
}
attr rg_WUweather valueIcon { 'fc0_icon' => 'wunderground/black/svg/%VALUE' , 'fc1_icon' => 'wunderground/black/svg/%VALUE' , 'fc2_icon' => 'wunderground/black/svg/%VALUE' , 'fc3_icon' => 'wunderground/black/svg/%VALUE' , 'fc0_icon_night' => 'wunderground/black/svg/%VALUE' , 'fc1_icon_night' => 'wunderground/black/svg/%VALUE' , 'fc2_icon_night' => 'wunderground/black/svg/%VALUE' , 'fc3_icon_night' => 'wunderground/black/svg/%VALUE' }
attr rg_WUweather valueStyle style="text-align:center"


Das Device selbst sieht bei mir so aus

defmod WUweather Wunderground xxxxxxxxxxxx IBERLIN563
attr WUweather alias 4-Tages-Wetter
attr WUweather group Wetter
attr WUweather room Wetter
attr WUweather sortby 90
attr WUweather stateFormat condition;;<br>Temperatur: temp_c °C, Taupunkt dewpoint °C, relative Luftfeuchtigkeit: humidity %, Luftdruck: pressure hPa,<br>Wind (Böen): wind_speed km/h (wind_gust km/h) aus wind_direction°, Sichtweite visibility km,<br>Sonnenauf-/-untergang: sunrise/sunset Uhr, UV-Index: UV,<br>Mondauf-/-untergang: moonrise/moonset Uhr, Mondphase: moon_phase (moon_pct %)
attr WUweather stateReadings temp_c humidity
attr WUweather stateReadingsFormat 1
attr WUweather wu_lang de


Die Funktion grad2himmelsrichtung kommt in 99_myUtils.pm (wäre das nicht auch eine sinnvolle Funktion für Unit.pm?)

#---------------------------------------------------------------------------
# grad2himmelsrichtung(Grad) liefert bei Grad=0 oder =360 als Ergebnis "N"; Grad sollte zwischen 0 und 360 liegen
#---------------------------------------------------------------------------
sub grad2himmelsrichtung($) {
  my ($value) = @_;
  my $hr = "N";
 
  if (!defined $value or $value == -1) { $hr = "aus undefinierter Richtung"; }
  else {
    $value = abs($value) % 360;
 
    if ($value < 22.5)      { $hr = "aus N"; }
    elsif ($value < 67.5)   { $hr = "aus NO"; }
    elsif ($value < 112.5)  { $hr = "aus O"; }
    elsif ($value < 157.5)  { $hr = "aus SO"; }
    elsif ($value < 202.5)  { $hr = "aus S"; }
    elsif ($value < 247.5)  { $hr = "aus SW"; }
    elsif ($value < 292.5)  { $hr = "aus W"; }
    elsif ($value < 337.5)  { $hr = "aus NW"; }
  }

  return $hr;
}


Die Icons habe ich von https://www.npmjs.com/package/weather-underground-icons genommen, allerdings sind da keine Versionen für die Nacht dabei, deshalb habe ich einfach die Tag-Icons kopiert und diese dann einfach mit dem Vorsatz nt_ versehen. Vielleicht hat da jemand von Euch eine bessere Lösung?

Was mich noch stört: Die API liefert bei der Vorhersage, also etwa im Feld fc0_text folgendes zurück: "Tiefsttemperatur 7C"; das müsste aber korrekterweise anders geschrieben werden "Tiefsttemperatur 7 °C", denn Temeperaturen werden nicht in Coulomb gemessen. Wie kann man dort "C" durch " °C" ersetzen?
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

Loredo

Zitat von: rabehd am 21 November 2016, 13:46:59
Bei klappt es seit einiger Zeit nicht mehr.
Wenn ich "feelslike_c:FT" eingebe, dann erscheint in state: "T: 10.4 °C:FT"


Die Funktion dafür in Unit.pm war noch nicht fertig :-)
Ist nun entsprechend erweitert.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER