Aussentemperatur ueber Webdienst

4,210 views
Skip to first unread message

UliM

unread,
Dec 23, 2011, 2:38:03 AM12/23/11
to FHEM users
Hallo allerseits,
Hat schon jemand einen Webdienst eingebunden, um die Aussentemperatur
(vielleicht sogar aktuell und 'in 6 Stunden') zu loggen und kann seine
Lösung hier posten bzw ins Wiki stellen?

Eine frohe und geruhsame Weihnachtszeit fuer alle fhem-ler samt
Mitbenutzern wuenscht
Uli

UliM

unread,
Dec 23, 2011, 10:55:18 AM12/23/11
to FHEM users
Hi,
ok, erstmal in die commandref schauen....

define <name> Weather <location> [<interval> [en|de|fr|es]]

Beispiel aus der Doku:
define MyWeather Weather "Frankfurt,HE"

Wenn ich das define im Webfrontend absetze, erscheint die Meldung:
Unknown module Weather, choose one of ...

Auch nach 'reload 59_Weather.pm' .

Muss noch dazusagen, dss fhem bei mir auf der FB7390 laeuft - leider
weiss ich nicht, ob Weather::Google Teil der AVM-Distribution ist.

Kann mir da bitte jemand weiterhelfen
- entweder mit der Nachricht, dass Weather::Google Teil der AVM-
Distribution ist und wie ich den Device-Typ Weather aktiviert bekomme
- oder mit einer Loesung ohne Weather::Google

Hab grad mal ein wenig rumgeschaut, APIs gibt's von mehreren
Anbietern, kann nicht so schwer sein die Temperatur etc aus dem
gelieferten XML oder CSV rauszuparsen...

Gruessle,
Uli

maddnz

unread,
Jan 13, 2012, 6:24:10 AM1/13/12
to fhem-...@googlegroups.com
he uli,

also ich habe genau das gleiche prob! nur bei mir läuft fhem auf einem vollwertigen server (ubuntu server lts) und nicht auf der fritte. die ursache liegt einfach an dem fehlenden modul "59_Weather.pm", was ich jedoch nirgends zum downloaden finden konnte! :( im svn scheint es wohl auch nicht drinne zu sein, da ich immer auf der aktuellsten fhem-version laufe. vielleicht könnte uns ja jemand einen tip geben oder das fehlende modul zukommen lassen...
danke!

maddnz

Rudolf Koenig

unread,
Jan 13, 2012, 6:55:35 AM1/13/12
to fhem-...@googlegroups.com
> die ursache liegt einfach an dem fehlenden modul "59_Weather.pm", was ich
> jedoch nirgends zum downloaden finden konnte!

59_Weather.pm ist sehr wohl auf dem FB dabei (versuch mal in der Eingabe mit:
{ `ls FHEM/*.pm` } aber es kann wg. dem fehlenden Weather::Google perl Modul
auf dem FB nicht geladen werden. Steht im fhem.log und im commandref.html

mad...@gmail.com

unread,
Jan 13, 2012, 7:57:09 AM1/13/12
to fhem-...@googlegroups.com

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


...uuups, hab im falschen verzeichnis (/usr/share/fhem/contrib) nach dem weather-modul gesucht. im richtigen (/usr/share/fhem/FHEM) isses natürlich drinne! mein fehler.
dann werde ich einfach mal das fehlende google-weather-perl-modul installieren...
danke!

UliM

unread,
Jan 18, 2012, 3:59:16 PM1/18/12
to FHEM users
Hi,
damit wäre also geklärt, dass fhem-weather mangels Weather::Google
auf der FB7390 nicht funktionieren kann.
Habe mir nun ein S300 bestellt, um die Aussentemperatur trotzdem zu
bekommen :-)

Dennoch hätte ich gern nen Webdienst, um zB Bewölkung abfragen und
davon abhängig Licht schalten zu können, oder um die Heizung mit der
zu erwartenden Temperatur steuern zu können.

Also:
1. Besteht die Möglichkeit, über sowas wie nen crontab ein wetter-API
anzuzapfen, das Ergebnis in ein .txt zu schreiben und dieses per fhem-
perl auszulesen und das Ergebnis als state auf nen dummy zu schreiben?
2. Falls crontab bzw Webzugriff auf der fb7390 nicht geht - ich hab
auch nen QNAP TS109 II . Kann ich besagten cron oder Ähnliches auf dem
qnap hinterlegen und wie beschrieben ein .txt in den Speicher der FB
legen, das ich dann wiederum per fhem-perl auswerten kann?

Um sachdienliche Hinweise wird gebeten :-)

Gruß, Uli

Marc

unread,
Jan 21, 2012, 12:03:53 PM1/21/12
to FHEM users
Hi,
ich verzweifel gerade am gleichen Problem auf der 7270. Wie kann ich
das Perl-Modul nachinstallieren?
In der commandref steht was von cpan -i aber wo setze ich den Befahl
ab? Können die Dateien nicht einfach bei CPAN runtergeladen und in das
entsprechende Verzeichnis auf der Fritzbox gespeichert werden?

Gruß,
Marc

UliM

unread,
Jan 21, 2012, 12:08:07 PM1/21/12
to FHEM users
Hi,
mW ist cpan auf der AVM-Perl-Distribution dabei, drum auf Fritzbox
perl-Module nachinstallieren: NJET :-(
Man muss bei AVM betteln dass sie das benötigte Perl-Modul in ihre
nächste Distribution aufnehmen, so zB socket und google::weather.
Mal schauen...
(So isses für die FB7390, weiss nicht woher die perl-Distribution für
die 7270 kommt?)
Gruß, Uli

Schellberg, Marc

unread,
Jan 21, 2012, 12:13:51 PM1/21/12
to fhem-...@googlegroups.com

Hi,
für die 7272 kann man einfach eine ZIP runterladen und auf einen USB Stick kopieren. Daher kann ich mir vorstellen, dass das irgendwie möglich ist...?

Viele Grüße,
Marc

Armink

unread,
Feb 23, 2012, 10:38:35 AM2/23/12
to FHEM users
Hi zusammen, da klinke ich mich doch auch noch einmal ein. Kriege das
mit Google Weather auf der Fritzbox 7390 auch nicht hin. Hab' mich bis
zum 59_Weather.pm durchgekämpt, Vorraussetzungen sind also wohl
vorhanden. Aber WIE INSTALLIERE ICH DAS GOOGLE:WEATHER MODUL? egal an
welcher Stelle ich "cpan -i Weather::Google" eintippe bekomm' ich
gesagt dass cpan nicht bekannt ist! Kann irgendjemand mir das bitte
erklären? Oder funzt es tatsächlich nicht auf einer FB 7390?

Grüße aus Heidelberg,

Armink

Prof. Dr. Peter A. Henning

unread,
Feb 23, 2012, 11:22:44 AM2/23/12
to fhem-...@googlegroups.com
Manche perl-Pakete bestehen nicht nur aus perl-Code, sondern enthalten binäre Komponenten, die speziell für die jeweilige Hardware compiliert werden müssen. perl ist nämlich keine reine interpretierte Sprache, sondern verwendet einen internen Bytecode, der von einer virtuellen Maschine abgearbeitet wird - ähnlich wie bei Java.
Andere perl-Pakete wiederum greifen auf eine Vielzahl von Bibliotheken zu, die auch erst einmal vorhanden sein müssen.

Es gilt also in der Regel: Perl-Pakete lassen sich NICHT per USB-Stick von einem Rechner auf den anderen transportieren. Ausnahmen gibt es durchaus.

CPAN, das Comprehensive Perl Archive Network hilft, diese Pakete zu verwalten - muss aber auch erst einmal installiert sein. Und daran scheitert es bei der Fritzbox, denn das zugehörige Kommando cpan gehört nicht zum AVM-Linux. Abhilfe ist hier nicht in Sicht.

Andererseits ist das Weather::Google.pm nicht sonderlich kompliziert, gerade mal 276 Zeilen - es parst einfach die XML-Daten, die es sich von Google holt. Die meisten Zeilen sind sogar nur Syntax-Checks der Eingabeparameter, z.B. der Postleitzahl Das sollte auch auf der FB möglich sein, auch das Google API ist ganz gut dokumentiert.

Leider habe ich im Moment keine Zeit mir das anzusehen - die 1-Wire Module beschäftigen mich stark.

LG

pah

UliM

unread,
Feb 23, 2012, 11:46:51 AM2/23/12
to FHEM users
Hi,
ganz kurze Frage:
- Ich kenne die URL für den Wetterdienst (zB
http://www.wetteronline.de/cgi-bin/hpweather?PLZ=80331 )
- Ich hab ne grobe Vorstellung wie man in Perl parst
-> wie kriege ich den return der URL in perl 'eingelesen' so dass ich
es parsen und das Ergebnis zB als state auf einen dummy schreiben
kann?

Einfach sowas wie
{ my $wetterhtml = gethttp("URL") } #pseudocode
oder so....

Also wie heisst das echte perl-Kommando, das ich hier 'gethttp'
genannt hab?

Wenn man das hat kann der Rest ja nich mehr so schwer sein...

Gruß, Uli

Prof. Dr. Peter A. Henning

unread,
Feb 23, 2012, 12:33:53 PM2/23/12
to fhem-...@googlegroups.com
Das stimmt schon, wenn man das LWP-Paket nutzt: http://www.perl.com/pub/2002/08/20/perlandlwp.html
Ist aber auf der FB nicht drauf :-((

Es gibt aber auf der FB das schöne Programm wget - mit dem man sich den Inhalt jeder URL holen kann :-))

Ablauf wäre also z.B.

- Ein Modul stößt in regelmäßigen Abständen ein wget der Google-Wetterdaten an (bekommt dann auch als Attribute z.B. die Postleitzahl)
- Ein zweites Modul wertet diese Daten aus, indem die gespeichert Datei geparst wird.

Oder man lässt die Rückgabe des Systemkommandos wget direkt parsen.

LG

pah

Rudolf Koenig

unread,
Feb 23, 2012, 12:55:49 PM2/23/12
to fhem-...@googlegroups.com
> Und daran scheitert es bei der Fritzbox, denn das zugeh�rige Kommando cpan
> geh�rt nicht zum AVM-Linux. Abhilfe ist hier nicht in Sicht.

Das eigentliche Problem ist nicht mal cpan direkt, sondern dass viele Module
einen C-Compiler+Make benoetigen, das wiederum auf dem Fritzbox nicht vorhanden
ist.
Bisher hat sich niemand die Muehe gemacht, einen Cross-Compiler fuer den FB7390
aufzubauen, um fuer das fhem Community die jeweils gewuenschten perl Module zu
liefern. AVM gehoert auch dazu, meine Liste der im fhem verwendeten
Perl-Module haben Sie vor etwa einem halben Jahr bekommen, jeweils mit
Begruendung und Prio.


> Also wie heisst das echte perl-Kommando, das ich hier 'gethttp'
> genannt hab?

GetHttpFile() aus 99_updatefhem.pm waere ein Versuch wert. Siehe auch

fhem> { GetHttpFile("www.wetteronline.de:80", "/cgi-bin/hpweather?PLZ=80331") }

UliM

unread,
Feb 23, 2012, 6:59:12 PM2/23/12
to FHEM users
> > Also wie heisst das echte perl-Kommando, das ich hier 'gethttp'
> > genannt hab?
> fhem> { GetHttpFile("www.wetteronline.de:80", "/cgi-bin/hpweather?PLZ=80331") }

Rudi : Jaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!
Jetzt nur noch am WE ein bischen Zeit, um die relevanten Bestandteile
zu finden, dann rausparsen und fertig.
Und damit gibt's Wetter auch auf der FB :-)

@pah: ok, wget probier ich auch mal.

@Boris: Macht eine Verheiratung mit Weather.pm Sinn? Hab mich nie
damit beschäftigt was genau weather::google zurückliefert, da ich's ja
wg Nutzung einer FB nicht sehen kann...

Gruß, Uli

Armink

unread,
Feb 24, 2012, 4:59:43 AM2/24/12
to FHEM users
@pah: vielen Dank für die ausführliche Info, jetzt weiß ich zumindest
mal warum ich das nicht hingekriegt hab. Mit Programmieren hab' ich
schon ne Weile zu tun, allerdings beschränkt sich mein Wissen
hauptsächlich auf Assembler (AVR) und Delphi (PC). Dann heißt es wohl
erst mal abwarten und hoffen dass UliM am WE nicht zu sehr gestört
wird.
Grüße aus Heidelberg
armink

On 23 Feb., 17:22, "Prof. Dr. Peter A. Henning"

UliM

unread,
Feb 24, 2012, 9:28:44 AM2/24/12
to FHEM users
Hi,
kann mir mal bitte hemand, dessen fhem nicht auf einer FB läuft, mal
nen screenshot des Ergebnisses von Weather.pm schicken? So als
Orientierungspunkt.
Gruß, Uli
> > pah- Zitierten Text ausblenden -
>
> - Zitierten Text anzeigen -

Dr. Boris Neubert

unread,
Feb 24, 2012, 12:40:31 PM2/24/12
to fhem-...@googlegroups.com
Hallo,

On 24.02.2012 00:59, UliM wrote:
> @Boris: Macht eine Verheiratung mit Weather.pm Sinn? Hab mich nie
> damit beschäftigt was genau weather::google zurückliefert, da ich's ja
> wg Nutzung einer FB nicht sehen kann...

m.E. ist es aus Gründen der Kompatibilität wünschenswert, nicht
irgendeinen Wetterdienst sondern Google-Weather direkt in 59_Weather.pm
zu integrieren. Stellt sich lediglich die Frage, welche Abhängigkeiten
über Google::Weather hinaus aufgelöst werden müssen.

Unten folgen die Readings. Sorry für die Umbrüche.

Grüße
Boris

list e.ext.Weather
Internals:
DEF XXX,XX 1800
INTERVAL 1800
LANG en
LOCATION XXX,XX
NAME e.ext.Weather
NR 151
STATE Initialized
TYPE Weather
CHANGETIME:
Readings:
2012-02-24 18:30:30 city XXX, XX
2012-02-24 18:30:30 condition Overcast
2012-02-24 18:30:30 current_date_time 1970-01-01 00:00:00 +0000
2012-02-24 18:30:30 fc0_condition Fog
2012-02-24 18:30:30 fc0_day_of_week Fri
2012-02-24 18:30:30 fc0_high_c 13
2012-02-24 18:30:30 fc0_icon /ig/images/weather/fog.gif
2012-02-24 18:30:30 fc0_low_c 5
2012-02-24 18:30:30 fc1_condition Mostly Sunny
2012-02-24 18:30:30 fc1_day_of_week Sat
2012-02-24 18:30:30 fc1_high_c 13
2012-02-24 18:30:30 fc1_icon
/ig/images/weather/mostly_sunny.gif
2012-02-24 18:30:30 fc1_low_c 0
2012-02-24 18:30:30 fc2_condition Mostly Sunny
2012-02-24 18:30:30 fc2_day_of_week Sun
2012-02-24 18:30:30 fc2_high_c 10
2012-02-24 18:30:30 fc2_icon
/ig/images/weather/mostly_sunny.gif
2012-02-24 18:30:30 fc2_low_c 0
2012-02-24 18:30:30 fc3_condition Partly Sunny
2012-02-24 18:30:30 fc3_day_of_week Mon
2012-02-24 18:30:30 fc3_high_c 11
2012-02-24 18:30:30 fc3_icon
/ig/images/weather/mostly_sunny.gif
2012-02-24 18:30:30 fc3_low_c 5
2012-02-24 18:30:30 forecast_date 2012-02-24
2012-02-24 18:30:30 humidity 75

2012-02-24 18:30:30 icon /ig/images/weather/cloudy.gif

2012-02-24 18:30:30 postal_code Maintal,HE

2012-02-24 18:30:30 temp_c 11

2012-02-24 18:30:30 temp_f 51

2012-02-24 18:30:30 temperature 11

2012-02-24 18:30:30 unit_system US

2012-02-24 18:30:30 wind 12

2012-02-24 18:30:30 wind_condition Wind: SW at 12 mph

Helper:

Internals:

interfaces temperature:humidity:wind

Attributes:

room e-Garten


UliM

unread,
Feb 24, 2012, 1:30:55 PM2/24/12
to FHEM users

> m.E. ist es aus Gründen der Kompatibilität wünschenswert, nicht
> irgendeinen Wetterdienst sondern Google-Weather direkt in 59_Weather.pm
> zu integrieren. Stellt sich lediglich die Frage, welche Abhängigkeiten
> über Google::Weather hinaus aufgelöst werden müssen.
> Grüße
> Boris

Hi,
sehe ich ebenso.
Ist (Dir) bekannt, welche URL von Google::weather abgeholt wird?
Wenn man dieselbe verwendet, kriegt man ja dieselben Werte zurück und
könnte die dann per parse auf dieselben Readings verteilen.
=8-)
PS: ...und den ganzen Zirkus nur, weil AVM google::weather nicht in
die perl-distribution aufnimmt...

Dr. Boris Neubert

unread,
Feb 24, 2012, 1:56:34 PM2/24/12
to fhem-...@googlegroups.com
On 24.02.2012 19:30, UliM wrote:

> Ist (Dir) bekannt, welche URL von Google::weather abgeholt wird?

schau hier:

http://cpansearch.perl.org/src/POSSUM/Weather-Google-0.05/lib/Weather/Google.pm


Du kannst in den Browser als URL

http://www.google.com/ig/api?weather=Erfurt

eingeben und dann bekommst Du das XML dazu zurück.

Viele Grüße
Boris

ilmtuelp0815

unread,
Feb 25, 2012, 4:58:46 AM2/25/12
to fhem-...@googlegroups.com


Am Freitag, 24. Februar 2012 15:28:44 UTC+1 schrieb UliM:
Hi,
kann mir mal bitte hemand, dessen fhem nicht auf einer FB läuft, mal
nen screenshot des Ergebnisses von Weather.pm schicken? So als
Orientierungspunkt.
Gruß, Uli



Hi UliM!
Mein fhem läuft nicht nur auf einer FRITZ!Box, sondern auch auf einer SuSe-Maschine.
Die Google Wetterdaten werden mit einer PHP-Datei geholt und im Projekt InfoFrame als Bild angezeigt. Vielleicht hilft die Plugin-Datei und das Bild als Anregung.
 
indexFhem.php.jpeg
WeatherPlugin.php

Mitch

unread,
Feb 25, 2012, 9:43:09 AM2/25/12
to fhem-...@googlegroups.com
Hallo,

Deine Oberfläche sieht ja super aus.
Magst Du sie evtl. teilen und hier einstellen?

Danke!

UliM

unread,
Feb 25, 2012, 9:50:23 AM2/25/12
to FHEM users
Hi,
also dieses Ding liefert genau die Readings zurück, die in dem
screenshot oben gelistet sind.
Sie werden abgelegt in @weather_result .
Ohne Nutzung des Perl-Moduls Google::Weather . Damit auch auf FB
einsetzbar :-)

@Boris: Wie geht's weiter? Baust Du das in Weather.pm ein?

Gruß, Uli

-----------

sub
ReadGoogleWeather()
{
my $fc = undef;
my @weather_result;
my $webRead = GetHttpFile("www.google.com:80", "/ig/api?
weather=80331");
foreach my $l (split("<",$webRead)) {
next if $l =~ m/(xml|module|itude|wind)/;
$fc = 0 if ($l =~ m/\/current_conditions/);
$fc += 1 if ($l =~ m/\/forecast_conditions/);
$l =~ s/(>|data=)//g;
next if (($l !~ m/ /) && $l !~/gif/);
my $value=((defined($fc) ? ("fc$fc"."_") : "") . "$l");
$value =~ s/"//g;
$value =~ s/\/$//;
push (@weather_result, $value);
Log 1, $value;
}
}
-------------------

Rudi hätte das bestimmt in einem Drittel der Zeilen unterbekommen...
Vielleicht nicht schön, aber tut :-)

Gruß, Uli

Dr. Boris Neubert

unread,
Feb 26, 2012, 6:05:08 AM2/26/12
to fhem-...@googlegroups.com
Hallo,

On 25.02.2012 15:50, UliM wrote:
> sub
> ReadGoogleWeather()
>
ich kümmere mich darum. Es kann aber abhängig von meiner Freizeit eine
Weile dauern.

Grüße
Boris

Andreas Schaller

unread,
Mar 3, 2012, 3:40:21 AM3/3/12
to fhem-...@googlegroups.com
Hallo

Habe jetzt den Faden verloren. Gibt es schon ein angepasstes Google weather Modul für FHEM auf der Fritzbox und wenn ja wo kann ich es herunterladen ?

Danke
Andreas

Am Samstag, 25. Februar 2012 15:43:09 UTC+1 schrieb Mitch:
> Hallo,
>
> Deine Oberfläche sieht ja super aus.
> Magst Du sie evtl. teilen und hier einstellen?
>
> Danke!
>
>
> Am Freitag, 23. Dezember 2011 08:38:03 UTC+1 schrieb UliM:<blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">Hallo allerseits,
>
> Hat schon jemand einen Webdienst eingebunden, um die Aussentemperatur
>
> (vielleicht sogar aktuell und &#39;in 6 Stunden&#39;) zu loggen und kann seine
>
> Lösung hier posten bzw ins Wiki stellen?
>
>
>
> Eine frohe und geruhsame Weihnachtszeit fuer alle fhem-ler samt
>
> Mitbenutzern wuenscht
>
> Uli
>
> </blockquote>



Am Samstag, 25. Februar 2012 15:43:09 UTC+1 schrieb Mitch:
> Hallo,
>
> Deine Oberfläche sieht ja super aus.
> Magst Du sie evtl. teilen und hier einstellen?
>
> Danke!
>
>
> Am Freitag, 23. Dezember 2011 08:38:03 UTC+1 schrieb UliM:<blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">Hallo allerseits,
>
> Hat schon jemand einen Webdienst eingebunden, um die Aussentemperatur
>
> (vielleicht sogar aktuell und &#39;in 6 Stunden&#39;) zu loggen und kann seine
>
> Lösung hier posten bzw ins Wiki stellen?
>
>
>
> Eine frohe und geruhsame Weihnachtszeit fuer alle fhem-ler samt
>
> Mitbenutzern wuenscht
>
> Uli
>
> </blockquote>

puschel74

unread,
Mar 3, 2012, 7:23:56 AM3/3/12
to FHEM users
Denke nicht das Boris schon so weit fertig ist.
Wenn dann hätte er hier sicher Bescheid gegeben.

grüße

On 3 Mrz., 09:40, Andreas Schaller <andr...@andreas-schaller.de>
wrote:

tobias.faust

unread,
Apr 21, 2012, 7:27:54 AM4/21/12
to fhem-...@googlegroups.com
Hi,
wo hast du denn die hübschen Wetterbildchen her? Kannst du Sie ev. auch noch als Anhang einstellen?

UliM

unread,
Apr 21, 2012, 11:56:13 AM4/21/12
to fhem-...@googlegroups.com
Hi,
Die hingen als zip an nem anderen post - dort auch eine aktualisierte Programmversion, die eben diese Bildchen verwendet....  ah ja, hier.
Icons: https://groups.google.com/d/msg/fhem-users/iEo13uOFay8/IDE_iIPkcM8J
Prog: https://groups.google.com/d/msg/fhem-users/iEo13uOFay8/lPkOxPpOJfkJ

Hab davon auch eine nochmal weiterentwickelte Version (bei mir lokal), die
- beim ersten Aufruf automatisch nen weblink anlegt
- Bei Darstellung des aktuellen Wetters auch die _night-Version der icons nutzt

Kann ich Dir bei Bedarf mailen.

Gruß, Uli

tobias.faust

unread,
Apr 21, 2012, 12:37:39 PM4/21/12
to fhem-...@googlegroups.com
Hi Uli,
genau soetwas wollte ich schon selbst entwickeln, aber als Erweiterung von Floorplan als ein neuer Style.
Kannst du deine erweiterte Version hier mit einstellen?
Wie hast du das alles bei dir eingebunden? Bei mir soll es mit auf die Floorplanseite weil DAS das eigentliche Frontend bei mir ist

UliM

unread,
Apr 21, 2012, 12:50:24 PM4/21/12
to fhem-...@googlegroups.com
Hi,
erweiterte Version anbei.
Das Programm steckt bei mir in 99_myUtils.pm. Den zugehörigen weblink hab ich ganz normal in floorplan als device eingefügt, geht ja auch mit Plots etc - siehe screenshot.
Enjoy, Uli

WeatherAsHtmlLocal-extended.txt
WeatherTest2.jpg

Amatic

unread,
Apr 21, 2012, 4:10:14 PM4/21/12
to fhem-...@googlegroups.com
Hallo Uli,

was steckt sonst noch in Deiner 99_myUtils.pm? Habe wie bei letzten Mal die 99_Utils.pm auf 99_myUtils.pm umkopiert und den Text eingefügt.

Das fhem.cfg erweitert und jetzt kommt

Global symbol "$FW_ME" requires explicit package name at /usr/share/fhem/FHEM/99_myUtils.pm line 128, <$fh> line 3.

Wo soll ich $FW_ME einfügen?

UliM

unread,
Apr 21, 2012, 6:48:30 PM4/21/12
to fhem-...@googlegroups.com
Hallo,
Jepp, dieses Prob hab ich auch, drum hab ich dieses Progrämmchen auch bisher nicht verteilt.
$FW_ME stammt aus FHEMWEB (also pgm2), dieses Programm muss also zuvor geladen worden sein - das zu Erzwingen ist mir aber noch nicht gelungen.
Ich behelfe mir mit einem notify global:initialized at +00:02 reload 99_MyUtils.pm .
Dann gehts - unter der Annahme, dass per fhem.cfg ein fhemweb-device definiert ist und dadurch fhemweb geladen wird und mithin $FW_ME vorhanden ist.
Ist nicht sauber - vll hat ja jemand ne Idee dazu.
Gruß Uli

UliM

unread,
Apr 22, 2012, 7:27:04 AM4/22/12
to fhem-...@googlegroups.com

Am Samstag, 21. April 2012 22:10:14 UTC+2 schrieb Amatic:
Wo soll ich $FW_ME einfügen?
 
Hi,
Rudi hat die Lösung beigesteuert: In MyUtils.pm muss am Anfang (gleich nach use POSIX;) die folgende Zeile eingefügt werden:
use vars qw($FW_ME);

Damit wird myUtils sofort erfolgreich geladen.

Gruß, Uli

tobias.faust

unread,
Apr 27, 2012, 7:28:18 AM4/27/12
to fhem-...@googlegroups.com
Hi,
ich habe jetzt noch ein wenig an Uli's Utils gefeilt und mit meinem css schauts jetzt richtig schick aus :)
Bei Bedarf poste ich nochmal den Utils- und den css-Code.

ilmtuelp0815

unread,
Apr 27, 2012, 7:46:34 AM4/27/12
to fhem-...@googlegroups.com
Hi!
Bei dem Ortsnamen kommt ja Camping-Feeling aus alten Ost-Zeiten auf ;-). Warum läßt du dich erst bitten und postest nicht gleich den Code? Oder muss man wieder erst ein Jahr im Voraus in Stralsund beantragen ;-)

Jan-Hinrich Fessel

unread,
Apr 27, 2012, 8:03:27 AM4/27/12
to fhem-...@googlegroups.com, Jan-Hinrich Fessel
Bedarf!

tobias.faust

unread,
Apr 27, 2012, 8:17:33 AM4/27/12
to fhem-...@googlegroups.com
bin gerade im Urlaub in Prerow ;)
hier mal alles komplett....

define Wetter Weather Prerow 600 de
define weblink_Wetter weblink htmlCode {WeatherAsHtmlLocal("Wetter",$hour, "/fhem/icons/images/weather")}
attr weblink_Wetter room Weather


weather_icons.zip
myUtils.pm
mydarkstyle.css

ilmtuelp0815

unread,
Apr 27, 2012, 11:12:00 AM4/27/12
to fhem-...@googlegroups.com
Danke und noch einen schönen Urlaub!


Volker

unread,
Apr 28, 2012, 7:26:44 AM4/28/12
to fhem-...@googlegroups.com
Hallo Tobias,
ich habe das mal auf meiner Fritzbox installiert. Sieht super aus, vielen Dank dafür.
Es stört mich nur eine kleine Sache und zwar habe ich anstelle des ° Zeichens ein ?.
Kann man hier noch irgendwo dran drehen oder liegt das an der Fritzbox?

MfG

Volker

Volker

unread,
Apr 28, 2012, 9:02:29 AM4/28/12
to fhem-...@googlegroups.com
Hallo,

habs grad selbst gefunden im Code kann mann das ? durch &deg ersetzen, dann wird bei mir das °-Zeichen dargestellt.

MfG

Volker

UliM

unread,
Apr 28, 2012, 2:57:33 PM4/28/12
to fhem-...@googlegroups.com


Am Freitag, 27. April 2012 14:17:33 UTC+2 schrieb tobias.faust:
hier mal alles komplett....

Sehr schick! Danke!
Und weiter schönen Urlaub,
Gruß, Uli

Uwe Pelz

unread,
May 1, 2012, 12:52:49 PM5/1/12
to fhem-...@googlegroups.com
@Volker

Ich versuche die "?" durch "&deg" zu ersetzen, mir ist es aber nicht gelungen. Kannst Du mal bitte beschreiben (Zeilennummer bzw. kopierte Zeile(n) welche(s) "?" ersetzt werden muss? Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht oder es liegt an Leerstellen?

init

unread,
May 1, 2012, 3:27:10 PM5/1/12
to fhem-...@googlegroups.com

Hallo Uwe,

einfach die 99_myUtils.pm editieren:

Zeile 96
vorher
$ret .= sprintf('<tr><td colspan=2 class="weathericon_act"><img src="%s%s" class="weathericon_act"></tr><tr><td colspan=2 class="weather_act"><span class="weathertemp_act">%s &C</span><br><span class="weathertext_act"><a href="'."$FW_ME?detail=weblink_$d".'">Aktuell: %s</a><br>Feuchtigkeit: %s%<br>%s</span></td></tr>'."\n",
nachher
$ret .= sprintf('<tr><td colspan=2 class="weathericon_act"><img src="%s%s" class="weathericon_act"></tr><tr><td colspan=2 class="weather_act"><span class="weathertemp_act">%s &deg;C</span><br><span class="weathertext_act"><a href="'."$FW_ME?detail=weblink_$d".'">Aktuell: %s</a><br>Feuchtigkeit: %s%<br>%s</span></td></tr>'."\n",
  

Zeile 112
vorher
$ret .= sprintf('<tr><td class="weathericon"><img src="%s%s" class="weathericon"></td><td class="weathertext"><span class="weather_dayname">%s:</span><br>%s<br>Min: %s?C | Max: %s?C</td></tr>'."\n",
nachher   
$ret .= sprintf('<tr><td class="weathericon"><img src="%s%s" class="weathericon"></td><td class="weathertext"><span class="weather_dayname">%s:</span><br>%s<br>Min: %s&deg;C | Max: %s&deg;C</td></tr>'."\n",


Ob die Zeilenangaben stimmen kann ich dir nicht genau sagen, da ich das File schon geändert habe und Dinge hinzugefügt habe.

VG
Marc
 
 

Mitch

unread,
May 2, 2012, 10:28:34 AM5/2/12
to fhem-...@googlegroups.com
erstmal Danke für eure tolle Arbeit!!

Stehe gerade etwas auf dem Schlauch, wie kann ich das ganze in FHEM einbinden, d.h. was muss in die fhem.cfg?

Tausend Dank
Markus

UliM

unread,
May 2, 2012, 12:00:12 PM5/2/12
to fhem-...@googlegroups.com
Hi,
steht doch im Programmcode?

# call as {WeatherAsHtmlLocal("<WeatherDevice>", $hour, "<IconSourcePath>")}
# e.g.    {WeatherAsHtmlLocal("MunichWeather", $hour, "/FHEM/weathericons")}

# If desired, store weathericons in new subdir FHEM/weathericons and hand over source = "FHEM/weathericons"
# Automatically defines a device with: define weblink_<WeatherDevice> weblink htmlCode { WeatherAsHtmlLocal("MyWeatherName", $hour, "SourcePath") }
# define w_MucWeather weblink htmlCode { WeatherAsHtmlLocal("MunichWeather", $hour) }
# attr w_MucWeather room Wetter

In diesem Beispiel heisst das Weather-device MunichWeather, musst Du an den Namen des Deinigen anpassen :)

Gruß, Uli

Message has been deleted

Uwe Pelz

unread,
May 2, 2012, 4:09:23 PM5/2/12
to fhem-...@googlegroups.com
@Marc

Habs hinbekommen, danke für die Codezeilen.

Uwe


Am Dienstag, 1. Mai 2012 21:27:10 UTC+2 schrieb init:

Mitch

unread,
May 3, 2012, 8:58:13 AM5/3/12
to fhem-...@googlegroups.com
Hi Uli,

und genau das habe ich in die fhem.cfg eingetragen, aber es kommt immer Fehlermeldung?

Wenn ich {WeatherAsHtmlLocal("<WeatherDevice>", $hour, "<IconSourcePath>")}
in das Eigabefeld oben eingebe, kommt folgende Fehlermeldung:
Too many arguments for main::WeatherAsHtmlLocal at (eval 1317) line 1, near ""<IconSourcePath>")"

UliM

unread,
May 3, 2012, 1:50:54 PM5/3/12
to fhem-...@googlegroups.com


Am Donnerstag, 3. Mai 2012 14:58:13 UTC+2 schrieb Mitch:
und genau das habe ich in die fhem.cfg eingetragen, aber es kommt immer Fehlermeldung?

Wenn ich {WeatherAsHtmlLocal("<WeatherDevice>", $hour, "<IconSourcePath>")}
in das Eigabefeld oben eingebe, kommt folgende Fehlermeldung:
Too many arguments for main::WeatherAsHtmlLocal at (eval 1317) line 1, near ""<IconSourcePath>")"


Wenn Du den Programmcode aus dem oben angehängten file (tobias, 27. April) genommen hast:
Das fiel oben ist so nicht lauffähig, es fehlt am Ende eine Zeile
1;
Die musst Du ggf hinzufügen.
Danach reload myUtils.pm (bzw die Programmdatei, in die Du's eingebaut hast) nicht vergessen und ggf auftretende Fehlermeldungen hier posten.

Außerdem erwartet das Programm beimn Aufruf exakt 3 Parameter.
Du hast aber schon <WeatherDevice> und <IconSourcePath> durch die richtigen Angaben ersetzt?
Nimm mal Deine Eingabe in die Zwischenablage (strg+C). Dann pastest Du das einmal ins fhem-Kommandofeld und außerdem als Antwort in diesen Fred hier. Wenn ne Fehlermeldung kommt, dann auch die dazu.
Das muss doch hinzubekommen sein....
Gruß, Uli

Mitch

unread,
May 3, 2012, 4:46:08 PM5/3/12
to fhem-...@googlegroups.com
ok, das mit der 1; hatte ich nicht mitbekommen, Danke.

Wenn ich jetzt ins Eingabefeld {WeatherAsHtmlLocal("MunichWeather", $hour, "/FHEM/weathericons")} eingebe kommt folgende Fehlermeldung:
MunichWeather is not a Weather instance<br>

UliM

unread,
May 4, 2012, 1:20:02 AM5/4/12
to fhem-...@googlegroups.com
Wie sieht denn die Definition Deines MunichWeather vom Typ Weather aus?
Kannst Du mal die Zeile aus Deiner fhem.cfg posten.
=8-)

ilmtuelp0815

unread,
May 4, 2012, 4:30:23 AM5/4/12
to fhem-...@googlegroups.com
Hi!
Die Definition des "Weather" hat Mitch sicherlich noch garnicht gemacht. Der Zusammenhang kommt bei der Definition wohl nicht so klar rüber. Ich wäre auch beinahe darüber gestolpert.

Mitch

unread,
May 4, 2012, 4:26:06 PM5/4/12
to fhem-...@googlegroups.com
Stimmt habe keine Definition.
Wie und wo muss ich denn da was definieren?

puschel74

unread,
May 5, 2012, 1:20:15 AM5/5/12
to fhem-...@googlegroups.com
Hallo,

define Wetter Weather PLZ Intervall Sprache

in fhem.cfg hab ichs zumindest so

define SteinenWetter Weather 79585 300 de
define Wetter_Anzeige weblink htmlCode { WeatherAsHtmlLocal("SteinenWetter") }
attr Wetter_Anzeige room 00_Bedienung

gelöst.
Lässt sich aber auch per include aus einer eigenen weather.cfg einbinden.

Grüße


Am Freitag, 4. Mai 2012 22:26:06 UTC+2 schrieb Mitch:
Stimmt habe keine Definition.
Wie und wo muss ich denn da was definieren?

Mitch

unread,
May 5, 2012, 8:13:34 AM5/5/12
to fhem-...@googlegroups.com
Habs jetzt hinbekommen, danke.
Hatte einen Fehler im Define bzw. hatte das falsch verstanden mit dem Autocreate des define

neomorph

unread,
Jul 18, 2012, 7:10:38 AM7/18/12
to fhem-...@googlegroups.com
Hallo,

vielen Dank zuerst einmal an die fleißigen Helfer. Ich habe schon sehr viel mitgelesen und habe auch trotz fehlender Programmierkenntnisse soweit alles im Griff. Allerdings beisse ich mir gerade die Zähne an der Google-Wettervorschau aus. Ich hatte es gestern kurz hinbekommen nach einem Update kriege ich es allerdings nicht mehr zum Laufen und bekomme folgende

Fehlermeldung: "Too many arguments for main::WeatherAsHtmlLocal at (eval 223) line 1, near ""/FHEM/weathericons") " "

Momentan Sieht der Teil meiner fhem.cfg so aus:

define Wetter_Potsdam Weather Potsdam 685783 de
attr Wetter_Potsdam event-on-change-reading forecast_date,fc0_condition
attr Wetter_Potsdam event-on-update-reading wind,humidity,temperature

define w_Wetter_Potsdam weblink htmlCode { WeatherAsHtmlLocal("Wetter_Potsdam", $hour, "/FHEM/weathericons") }
attr w_Wetter_Potsdam htmlattr width_"220" height="330" frameborder="0" marginheight="0" marginwidth="0"
attr w_Wetter_Potsdam room Wetter-Potsdam

define TotalWetter FileLog /var/tmp/TotalWetter-%Y.log Wetter_Potsdam
attr TotalWetter archivedir /var/fhemarchive
attr TotalWetter logtype temp4hum4:wind|humidity|temperature,text:Werte
attr TotalWetter nrarchive 1
attr TotalWetter room AlleTemp

define weblink_Potsdam weblink fileplot TotalWetter:temp4hum4:CURRENT
attr weblink_Potsdam label "Google Wetter in Potsdam Min $data{min1} C, Max $data{max1} C, Last $data{currval1} C"
attr weblink_Potsdam room AlleGrafiken

meine 99_Utils.pm sieht so aus:

##############################################
# $Id: 99_Utils.pm 1099 2011-11-12 07:53:34Z rudolfkoenig $
package main;

use strict;
use warnings;
use POSIX;

use vars qw($FW_ME);

sub
MyUtils_Initialize($$)
{
  my ($hash) = @_;
}

###################################################################################
# Adapted WeatherOutput from FHEMWEB
# Store weathericons in new subdir FHEM/weathericons
# Check comment 10 lines below to switch between google icons and local icons
# Include into fhem using
# define MyWeatherWeblink weblink htmlCode { WeatherAsHtmlLocal("MyWeatherName") }
sub
WeatherAsHtmlLocal($)
{
  my ($d) = @_;
  $d = "<none>" if(!$d);
  return "$d is not a Weather instance<br>"
        if(!$defs{$d} || $defs{$d}{TYPE} ne "Weather");

  my $imgHome="http://www.google.com";
 
##########################
# to use google icons, comment line below and reload this program
#  $imgHome="/fhem/WWW/pgm2/weathericons";            #turn this line into a comment to use google icons, uncomment it to use local icons
##########################

  my $ret = "<table>";
  my $icon = ReadingsVal($d, "icon", "na.png");
  $icon =~ s,/ig/images/weather(.*)\.gif,$1\.png, if ($imgHome =~ m/fhem/);
 
  $ret .= sprintf('<tr><td><span id="weathericon"><img src="%s%s"></span></td><td><span id="weathertext">%s<br>temp %s, hum %s, %s</span></td></tr>',
        $imgHome, $icon,
        ReadingsVal($d, "condition", ""),
        ReadingsVal($d, "temp_c", ""), ReadingsVal($d, "humidity", ""),
        ReadingsVal($d, "wind_condition", ""));

  for(my $i=1; $i<=4; $i++) {
    my $icon = ReadingsVal($d, "fc${i}_icon", "na.png");
    $icon =~ s,/ig/images/weather(.*)\.gif,$1\.png,  if ($imgHome =~ m/fhem/);
    $ret .= sprintf('<tr><td><span id="weathericon"><img src="%s%s"></span></td><td><span id="weathertext">%s: %s<br>min %s max %s</span></td></tr>',
        $imgHome, $icon,
        ReadingsVal($d, "fc${i}_day_of_week", ""),
        ReadingsVal($d, "fc${i}_condition", ""),
        ReadingsVal($d, "fc${i}_low_c", ""), ReadingsVal($d, "fc${i}_high_c", ""));
  }

  $ret .= "</table></div>";
  return $ret;
}
 
Ich habe die verschiedenen Anleitungen gelesen, komme aber irgendwie nicht weiter.....
Kann mir vielleicht jemand helfen??

Vielen Dank und schöne Grüße
neo

UliM

unread,
Jul 18, 2012, 7:55:15 AM7/18/12
to fhem-...@googlegroups.com
Hi,
in der Definition der Routine ist eine Variable vorgesehen (EIN Dollarzeichen als Platzhalter):
sub
WeatherAsHtmlLocal($)
Im Aufruf werden jedoch drei Variablen übergeben:
define w_Wetter_Potsdam weblink htmlCode { WeatherAsHtmlLocal("Wetter_Potsdam", $hour, "/FHEM/weathericons") }
Wenn ich perl wäre, würde ich damit auch nicht klarkommen ;-)
 
Die Definition muss 3 Parameter aufnehmen können, oder der Aufruf darf nur einen Parameter übergeben - so hatte ich's auch irgendwann mal gebaut - k.A. wo Du diese Version her hast...
 
Gruß, Uli

puschel74

unread,
Jul 18, 2012, 10:47:01 AM7/18/12
to fhem-...@googlegroups.com
Hallo,

was Uli damit sagen möchte ;-)

Entweder das aktuelle Weather-Modul inkl. richtiger Aufruf einbauen oder in der Definition der
Routine einfach noch 2 $ dranhängen damit alle 3 Parameter akzeptiert werden.

Grüße

neomorph

unread,
Jul 18, 2012, 1:19:34 PM7/18/12
to fhem-...@googlegroups.com
Hallo Uli & Puschel

vielen Dank, das hat jetzt - wie nicht anders erwartet - geklappt!!
Leider bin ich, wie gesagt, mit dem ganzen "gecode" etwas  überfordert und habe mir aus verschiedenen Anleitungen hier aus der Group das so zusammengesammelt - ohne wirklich genau zu wissen was ich tue.....

Ich wäre auch dafür, soetwas vielleicht mal als kleines How-To ins Wiki aufzunehmen, damit solche Leute wie ich das auch verstehen, denn streckenweise kann ich den Diskussionen hier auch nur sehr schwer folgen.

vielen Dank noch einmal, jetzt kann ich weiterbasteln :)

lg
neo

UliM

unread,
Jul 18, 2012, 2:08:47 PM7/18/12
to fhem-...@googlegroups.com
Hi,,
Gut dass es nun geklappt hat.
Wenn Du nur google-icons verwenden willst, kannst Du das Originalprogramm WeatherAsHtml verwenden, siehe.commandref - weblink
Das von Dir.verwendete WeatherAsHtmlLocal soll mittelfristig Bestandteil von 59_Weather.pm werden.

Ein Wiki wird's wohl erst geben, wenn der zweite o.g. Schritt fertig ist.

Gruß Uli

Dr. Boris Neubert

unread,
Jul 18, 2012, 2:25:35 PM7/18/12
to fhem-...@googlegroups.com
Hallo,

Am 18.07.2012 20:08, schrieb UliM:
> Das von Dir.verwendete WeatherAsHtmlLocal soll mittelfristig Bestandteil von 59_Weather.pm werden.

ist es schon ;-)

Nur noch nicht freigeschaltet... Geht nur mit der neuen
Verzeichnisstruktur und den Icons in www/images/default/weather.

Das kommt erst offiziell, wenn FHEMWEB und FLOORPLAN vollständig gefixt
sind und es ein OK in fhem-devel für housekeeping per update gab.

Grüße
Boris

puschel74

unread,
Jul 18, 2012, 2:41:21 PM7/18/12
to fhem-...@googlegroups.com
Hallo,

naja, dieses Wiki ist schon gut.
Das Problem ist nur das man lernen muss zwischen Perl-Programmierung und "Fhem"-Programmierung zu unterscheiden.
Auf der einen Seite soll mal Perl zumindest rudimentär beherrschen und auf der anderen Seite den Syntax von Fhem mit
einbeziehen (oder umgekehrt).
Gerade für "Neulinge" (ich bezeichne mich in dieser Hinsicht auch noch als Neuling - fhem.cfg-teile lauffähig in 99_MyUtils.pm überführen)
ist dieser Wechsel nicht immer auf Anhieb einfach.

Es fehlen einfach noch Wiki-Einträge mit genaueren Erklärungen für Fhem-Befehle (Kommandos) und Perl-Befehle (Kommandos) und das Zusammenspiel
der beiden.

Klar. Über kurz oder lang sollte man sich auch ein Perl-Buch zulegen und den Syntax lernen.
Aber es fehlen im Wiki immer noch Einträge mit genauer Erklärung was welche Zeile macht/auslöst/verarbeitet.

Frage: Ist es möglich Wiki-Beiträge editieren "zu lassen"? Wenns auch nur vorübergehend ist?

Ich denke mal man könnte den einen oder anderen Beitrag im Wiki, gerade für Neulinge, neu/anders kommentieren damit die Zusammenhänge leichter
verständlich werden.

Soweit es mir möglich ist würde ich mich gerne dazu bereit erklären den einen oder anderen, für mich verständlichen, Teil im Wiki mit Kommentaren
zu versehen damit auch Neulinge die Zusamenhänge leichter verstehen.

Grüße

neomorph

unread,
Jul 19, 2012, 4:04:16 AM7/19/12
to fhem-...@googlegroups.com
Hallo, guten Morgen,

ja, genau das ist mein Problem - zu unterscheiden was ist Perl-Code und was ist FHEM-"Code". Mir ist auch meistens nicht ganz das Zusammenspiel der einzelnen Komponenten klar.
Jetzt sitzte ich gerade da und versuche meine eigenen Icons einzublenden. Die goolge-Icons sind ja eher so mäßig vom Aussehen. Allerdings bekomme ich diese einfach nicht angezeigt. Ich habe sie sowohl ins Verzeichnis "/usr/share/fhem/FHEM/weathericons" als auch ins Verzeichnis "/usr/share/fhem/www/pgm2/weathericons" kopiert. Ändere ich in der 99_myUtils den Pfad und nehme den # vor der Zeile raus, werden gar keine Icons mehr angezeigt. Den Pfad hab ich so angegeben: "  $imgHome="/www/pgm2/weathericons/";   ".
Ich werd mich am Wochenende noch einmal ein wenig intensiver damit beschäftigen, da offensichtlich auch mein Graph (den ich eigentlich nicht brauch) nicht mehr befüllt wird. Mein eigentliches Ziel ist eigentlich nur nette Forecast-Icons auf meinem Floorplan darzustellen...

LG
neo

Guido

unread,
Jul 19, 2012, 5:19:07 AM7/19/12
to fhem-...@googlegroups.com
Hallo neo,

das gleiche Problem hatte ich auch, nach viel probieren funktioniert es mit diesen Einstellungen obwohl es keinen Ordner icons gibt, die icons selber liegen direkt im Ordner /www/pgm2

$imgHome="/fhem/icons";

Ausgabe in Firebug:
<img src="/fhem/icons/mostly_sunny.png">

Gruß

Patrick Cornelius

unread,
Jul 19, 2012, 5:55:54 AM7/19/12
to fhem-...@googlegroups.com
Hallo Guido,

danke für den Tipp....da wär ich nie drauf gekommen. Aber jetzt klappts!!! Super!!

Schöne Grüße
neo

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

neomorph

unread,
Jul 23, 2012, 11:24:40 AM7/23/12
to fhem-...@googlegroups.com
Hallo,

ich bin korrekt nach der Anweisung vorgegangen und habe die Vorhersage und den aktuellen Wetterstand ausgegeben. Allerdings habe ich 2 kleine Probleme:

1. Die Icons werden nicht angezeigt. Diese liegen sowohl im Verzeichnis "fhem/FHEM/weathericons" als auch wie unten beschrieben "fhem/www/pgm2" (dort ohne Unterordner) und zur Sicherheit noch einmal unter "fhem/icons/images/weather/".

In meiner fhem.conf ist das so definiert:

define Wetter Weather Potsdam 685783 de
define weblink_Wetter weblink htmlCode {WeatherAsHtmlLocal("Wetter",$hour, "fhem/icons/images/weather")}
attr weblink_Wetter room Weather

In die 99_myUtils.conf habe ich die Daten aus der 99_myUtils von tobias.faust (siehe oben) genommen. Allerdings bekomme ich dort die Fehlermeldung im fhem.log:

"Invalid conversion in sprintf: "%<" at /usr/share/fhem/FEHEM/99_myUtils.pm line 94"

Zeile 94 sieht bei mir so  aus:


   $ret .= sprintf('<tr><td colspan=2 class="weathericon_act"><img src="%s%s" class="weathericon_act"></tr><tr><td colspan=2 class="weather_act"><span class="weathertemp_act">%s &deg;C</span><br><span class="weathertext_act"><a href="'."$FW_ME?detail=weblink_$d".'">Aktuell: %s</a><br>Feuchtigkeit: %s%<br>%s</span></td></tr>'."\n",

Wahrscheinlich bin ich nur zu blöd, den Fehler zu sehen, aber vielleicht kann ja nocheinmal jemand gucken???

vielen Dank
neo








Am Dienstag, 1. Mai 2012 21:27:10 UTC+2 schrieb init:

Mitch

unread,
Jul 23, 2012, 3:29:40 PM7/23/12
to fhem-...@googlegroups.com
Nach einem komplette "Neuaufbau" von fhem in Version 5.2 wollte ich auch wieder "mein" Wetter.

Folgendes habe ich in der fhem.cfg:
define Eichenau Weather "Eichenau" 3600 de
attr Eichenau fm_order 2
attr Eichenau room Wetter

define Wetter_Eichenau weblink htmlCode { WeatherAsHtmlLocal("Eichenau", $hour, "/FHEM/weathericons") }
attr Wetter_Eichenau htmlattr width_"220" height="330" frameborder="0" marginheight="0" marginwidth="0"
attr Wetter_Eichenau room Wetter


Leider bekomme ich aber keine graphísche Ausgabe?

Die Daten werden aber richtig abgeholt.
Gebe ich oben {WeatherAsHtmlLocal("Eichenau", $hour, "/FHEM/weathericons")} ein, bekomme ich folgende Ausgabe:
<table class='weather'><tr><td colspan=2 class="weather_cityname">Eichenau, Bayern</td></tr>
<tr><td colspan=2 class="weathericon_act"><img src="/FHEM/weathericons/sunny.png" class="weathericon_act"></tr><tr><td colspan=2 class="weather_act"><span class="weathertemp_act">19 ?C</span><br><span class="weathertext_act"><a href="/fhem?detail=weblink_Eichenau">Aktuell: Klar</a><br>Feuchtigkeit: Luftfeuchtigkeit: 52�%%<br>Wind: O mit 21 km/h</span></td></tr>
<tr><td class="weathericon"><img src="/FHEM/weathericons/sunny.png" class="weathericon"></td><td class="weathertext"><span class="weather_dayname">Heute:</span><br>Klar<br>Min: 14?C | Max: 27?C</td></tr>
<tr><td class="weathericon"><img src="/FHEM/weathericons/chance_of_storm.png" class="weathericon"></td><td class="weathertext"><span class="weather_dayname">Morgen:</span><br>Vereinzelt st�rmisch<br>Min: 16?C | Max: 26?C</td></tr>
<tr><td class="weathericon"><img src="/FHEM/weathericons/chance_of_storm.png" class="weathericon"></td><td class="weathertext"><span class="weather_dayname">Do.:</span><br>Vereinzelt st�rmisch<br>Min: 16?C | Max: 30?C</td></tr>
<tr><td class="weathericon"><img src="/FHEM/weathericonsna.png" class="weathericon"></td><td class="weathertext"><span class="weather_dayname">:</span><br><br>Min: ?C | Max: ?C</td></tr>
</table>

UliM

unread,
Jul 23, 2012, 3:44:16 PM7/23/12
to fhem-...@googlegroups.com


Am Montag, 23. Juli 2012 21:29:40 UTC+2 schrieb Mitch:
Leider bekomme ich aber keine graphísche Ausgabe?


Bei mir dasselbe.  Habe den gesamten Satz icons an mittlerweile  ca 5 Stellen in meiner Verzeichnisstruktur kopiert, angezeigt wird leider nix davon.

Boris schrieb mal, dass er WeatherAsHtmlLocal in Weather.pm aufgenommen hat - hab's dort aber nicht gefunden.
Vll kann uns Boris ja erleuchten?  :)

Gruß, Uli

Mitch

unread,
Jul 23, 2012, 3:55:00 PM7/23/12
to fhem-...@googlegroups.com
Also die Icons findet er bei mir schon, siehe die Ausgabe:
...img src="/FHEM/weathericons/sunny.png"...
aber es wird quasi kein Weblink generiert?

Patrick Cornelius

unread,
Jul 24, 2012, 7:51:41 AM7/24/12
to fhem-...@googlegroups.com
Also, meinen Fehler hab ich inzwischen gefunden, offensichtlich hatte Perl in Zeile 94 (siehe mein Post) ein Problem damit, dass mit "%s%" die Luftfeuchtigkeit angezeigt werden sollte. Ich habe einfach "%s Prozent" geschrieben und der Fehler im Log war weg.....nicht schön, aber hilft. Oder weiss einer wie man das %-Zeichen quotet?

Wenn wir jetzt noch die Wettericons wiederbeleben könnten, dann ist doch die Welt wieder in Ordnung.
Hat es schon jemand geschafft??

LG

--

Rudolf Koenig

unread,
Jul 24, 2012, 8:53:29 AM7/24/12
to fhem-...@googlegroups.com
> Oder weiss einer wie man das %-Zeichen quotet?

%%
Ist im C auch so.
Siehe "man 3 printf"
Oder http://lmgtfy.com/?q=printf+prozent-zeichen :)

Patrick Cornelius

unread,
Jul 24, 2012, 8:59:41 AM7/24/12
to fhem-...@googlegroups.com
vielen Dank, das hat geklappt!!!

neomorph

unread,
Jul 24, 2012, 10:20:56 AM7/24/12
to fhem-...@googlegroups.com
Das kann ich so bestätigen, bei mir sieht es genauso aus:

<table class='weather'><tr><td colspan=2 class="weather_cityname">Potsdam, Brandenburg</td></tr>
<tr><td colspan=2 class="weathericon_act"><img src="/FHEM/weathericons/sunny.png" class="weathericon_act"></tr><tr><td colspan=2 class="weather_act"><span class="weathertemp_act">27 °</span><br><span class="weathertext_act"><a href="/fhem?detail=weblink_Wetter">Aktuell: Klar</a><br>Feuchtigkeit: 37 %<br>Wind: O mit 19 km/h</span></td></tr>
<tr><td class="weathericon"><img src="/FHEM/weathericons/mostly_sunny.png" class="weathericon"></td><td class="weathertext"><span class="weather_dayname">Heute:</span><br>Meist sonnig<br>Min: 17 °| Max: 27 °</td></tr>
<tr><td class="weathericon"><img src="/FHEM/weathericons/sunny.png" class="weathericon"></td><td class="weathertext"><span class="weather_dayname">Morgen:</span><br>Klar<br>Min: 19 °| Max: 32 °</td></tr>
<tr><td class="weathericon"><img src="/FHEM/weathericons/mostly_sunny.png" class="weathericon"></td><td class="weathertext"><span class="weather_dayname">Do.:</span><br>Meist sonnig<br>Min: 18 °| Max: 30 °</td></tr>
<tr><td class="weathericon"><img src="/FHEM/weathericons/mostly_sunny.png" class="weathericon"></td><td class="weathertext"><span class="weather_dayname">Fr.:</span><br>Meist sonnig<br>Min: 20 °| Max: 32 °</td></tr>
</table>

Inzwischen liegen auch bei mir die weathericons an vielen stellen, allerdings auch ohne Erfolg.

Mein Logfile sagt bei Aufruf der FHEM-Wetterseite:

WEB:  redirecting /FHEM/weathericons/sunny.png to / fhem




Am Montag, 23. Juli 2012 21:29:40 UTC+2 schrieb Mitch:

Guido

unread,
Jul 24, 2012, 11:13:09 AM7/24/12
to fhem-...@googlegroups.com
Hallo,


mein Code in 99_MyUtils.pm sieht so aus:



###################################################################################
# Adapted WeatherOutput from FHEMWEB
# Store weathericons in www/pgm2/

# Check comment 10 lines below to switch between google icons and local icons
# Include into fhem using
# define MyWeatherWeblink weblink htmlCode { WeatherAsHtmlLocal("MyWeatherName") }
sub
WeatherAsHtmlLocal($)
{
  my ($d) = @_;
  $d = "<none>" if(!$d);
  return "$d is not a Weather instance<br>"
        if(!$defs{$d} || $defs{$d}{TYPE} ne "Weather");

  my $imgHome="http://www.google.com";
 
##########################
# to use google icons, comment line below and reload this program
  $imgHome="/fhem/icons";            #turn this line into a comment to use google icons, uncomment it to use local icons

##########################

  my $ret = "<table>";
  my $icon = ReadingsVal($d, "icon", "na.png");
  $icon =~ s,/ig/images/weather(.*)\.gif,$1\.png, if ($imgHome =~ m/fhem/);
 
  $ret .= sprintf('<tr><td><span id="weathericon"><img src="%s%s"></span></td><td><span id="weathertext">%s<br>temp %s, hum %s, %s</span></td></tr>',
        $imgHome, $icon,
        ReadingsVal($d, "condition", ""),
        ReadingsVal($d, "temp_c", ""), ReadingsVal($d, "humidity", ""),
        ReadingsVal($d, "wind_condition", ""));

  for(my $i=1; $i<=4; $i++) {
    my $icon = ReadingsVal($d, "fc${i}_icon", "na.png");
    $icon =~ s,/ig/images/weather(.*)\.gif,$1\.png,  if ($imgHome =~ m/fhem/);
    $ret .= sprintf('<tr><td><span id="weathericon"><img src="%s%s"></span></td><td><span id="weathertext">%s: %s<br>min %s max %s</span></td></tr>',
        $imgHome, $icon,
        ReadingsVal($d, "fc${i}_day_of_week", ""),
        ReadingsVal($d, "fc${i}_condition", ""),
        ReadingsVal($d, "fc${i}_low_c", ""), ReadingsVal($d, "fc${i}_high_c", ""));
  }

  $ret .= "</table></div>";
  return $ret;
}


die Icons liegen direkt in www/pgm2/   | siehe mein posting oben

damit werden die Icons ohne Probleme angezeigt.



define Wetter_Eichenau weblink htmlCode { WeatherAsHtmlLocal("Eichenau", $hour, "/FHEM/weathericons") }

wofür $hour und Pfadangabe im define ?


puschel74

unread,
Jul 24, 2012, 2:31:19 PM7/24/12
to fhem-...@googlegroups.com
Hi Guido,

ich hab grad deinen Eintrag in der 99_MyUtils.pm mit meinem verglichen:


###################################################################################
# Adapted WeatherOutput from FHEMWEB
# Store weathericons in new subdir FHEM/weathericons

# Check comment 10 lines below to switch between google icons and local icons
# Include into fhem using
# define MyWeatherWeblink weblink htmlCode { WeatherAsHtmlLocal("MyWeatherName") }
sub WeatherAsHtmlLocal($) {
  my ($d) = @_;
  $d = "<none>" if(!$d);
  return "$d is not a Weather instance<br>"
        if(!$defs{$d} || $defs{$d}{TYPE} ne "Weather");
  my $imgHome="http://www.google.com";
##########################
# to use google icons, comment line below and reload this program
# $imgHome="/fhem/weathericons";            #turn this line into a comment to use google icons

##########################
  my $ret = "<table>";
  my $icon = ReadingsVal($d, "icon", "na.png");
  $icon =~ s,/ig/images/weather(.*)\.gif,$1\.png, if ($imgHome =~ m/fhem/);
  $ret .= sprintf('<tr><td><span id="weathericon"><img src="%s%s"></span></td><td><span id="weathertext">%s<br>temp %s, hum %s, %s</span></td></tr>',
        $imgHome, $icon,
        ReadingsVal($d, "condition", ""),
        ReadingsVal($d, "temp_c", ""), ReadingsVal($d, "humidity", ""),
        ReadingsVal($d, "wind_condition", ""));
  for(my $i=2; $i<=4; $i++) {

    my $icon = ReadingsVal($d, "fc${i}_icon", "na.png");
    $icon =~ s,/ig/images/weather(.*)\.gif,$1\.png,  if ($imgHome =~ m/fhem/);
    $ret .= sprintf('<tr><td><span id="weathericon"><img src="%s%s"></span></td><td><span id="weathertext">%s: %s<br>min %s max %s</span></td></tr>',
        $imgHome, $icon,
        ReadingsVal($d, "fc${i}_day_of_week", ""),
        ReadingsVal($d, "fc${i}_condition", ""),
        ReadingsVal($d, "fc${i}_low_c", ""), ReadingsVal($d, "fc${i}_high_c", ""));
  }
  $ret .= "</table></div>";
  return $ret;
}

Unterschied konnte ich keinen erkennen.
Bei dir werden die Icons angezeigt bei mir nicht :-(

Wenn ich diese Zeile


$imgHome="/fhem/icons";            #turn this line into a comment to use google icons, uncomment it to use local icons

auskommentiere dann werden die Google-Icons angezeigt.
Nur die Weather-Icons klappen nicht (und ich hab die mittlerweile in JEDEN Ordner auf der FB kopiert!!).

Hast du noch ne Idee woran ich schrauben könnte?

Grüße

Dr. Boris Neubert

unread,
Jul 24, 2012, 2:43:33 PM7/24/12
to fhem-...@googlegroups.com
Hallo,

Am 23.07.2012 21:44, schrieb UliM:
> Boris schrieb mal, dass er WeatherAsHtmlLocal in Weather.pm aufgenommen
> hat - hab's dort aber nicht gefunden.
> Vll kann uns Boris ja erleuchten? :)

siehe mein Post vom 23.07.2012 21:54.

Etwas ausführlicher: WeatherAsHtmlLocal gibt es nicht mehr.
WeatherAsHtml liefert die Icons von Google aus, oder, wenn $uselocal= 1
(künftiger Standard) und die Icons an der richtigen Stelle liegen, dann
geht das von selbst.

Grüße
Boris

puschel74

unread,
Jul 24, 2012, 3:08:35 PM7/24/12
to fhem-...@googlegroups.com
Hallo,

naja, ich hab in der 59_Weather.pm auf Zeile 337 uselocal auf 1 und die Icons in JEDEM Ordner --
Aber sie werden nicht angezeigt resp. es werden die Icons von Goggle angezeigt wenn ich in der
99_MyUtils.pm die entsprechende Zeile auskommentiere.
Dass hängt bei mir aber, vermute ich, mit meinem FritzBox-Update mit der fhem-Version vom Februar
zusammen (siehe anderer Post  von mir).
Ich werd morgen mal die gesamte Ordnerstruktur der FB sichern und dann mal ein updatefhem wagen
und schauen wo ich lande.

Grüße

Dr. Boris Neubert

unread,
Jul 24, 2012, 3:34:59 PM7/24/12
to fhem-...@googlegroups.com
Am 24.07.2012 21:08, schrieb puschel74:
> Icons in JEDEM Ordner --

es genügt in ..../www/images/default/weather

Der logische Pfad zu den Icons ist nämlich weather/sunny und das wird im
Unterverzeichnis weather gesucht.

Grüße
Boris
Message has been deleted

Guido

unread,
Jul 24, 2012, 4:55:52 PM7/24/12
to fhem-...@googlegroups.com
Hallo Boris,
bein letzten strukturwechsel auf die interim Version gab es eine Anleitung sodass mit updatefhem houskeeping clean yes die neuen Ordner erstellt wurden und die Dateien entsprechend verschoben wurden .

Ist das jetzt mit der neuen Struktur auch so ?

Vieleicht ist das ja der Grund für das ganze durcheinander weil keiner weiß wie auf die neue Struktur umgestellt wird.

Steffen

unread,
Jul 25, 2012, 3:30:28 AM7/25/12
to fhem-...@googlegroups.com, uli....@googlemail.com
Hallo!

versuche nun auch schon seit stunden aber bekomme die Icons nicht Richtig angezeigt:
Klar
temp 20, hum 68, Wind: O mit 11 km/h
Mi.: Klar
min 18 max 30
Do.: Meist sonnig
min 17 max 31
Fr.: Meist sonnig
min 20 max 32
Sa.: Vereinzelt st�rmisch
min 18 max 28

99_myUtils.pm ist die von Guido und die Icons liegen direkt in www/pgm2/ mein cfg: define MyWeatherWeblink weblink htmlCode { WeatherAsHtmlLocal("Ragow") }
Vielleicht hat jemand einen Rat???
Mfg Steffen

neomorph

unread,
Jul 25, 2012, 4:10:01 AM7/25/12
to fhem-...@googlegroups.com, uli....@googlemail.com
Hallo Steffen,

ich habe auch lang rumprobiert und habe es endlich geschafft. Ich habe es geschafft indem ich einfach die neue Verzeichnisstruktur per Hand aufgebaut habe - siehe: http://fhemwiki.de/wiki/DevelopmentDirectoryStructure
Dann habe ich sämtliche Icons in den Unterordner "default" gelegt (kopiert) - auch die normalen Icons, wie Logo usw. und die Wettericons. Wichtig ist, dass in der 59_weather.pm die Zeile "uselocal =1" gesetzt ist.
Klappen denn die Icons von google, oder die auch nicht?

lg
neo

Steffen

unread,
Jul 25, 2012, 6:00:37 AM7/25/12
to fhem-...@googlegroups.com, uli....@googlemail.com
Hallo!

Vielen danke, genau das war es die Icons in ordner default zu verschieben und ich hatte die Icons schon überall verschoben nur nicht dahin;-)...
mfg Steffen

Mitch

unread,
Jul 25, 2012, 9:57:13 AM7/25/12
to fhem-...@googlegroups.com, uli....@googlemail.com
Vielen Dank, die Icons sind wieder da, aber jetzt hab ich eun neues Problem.

Mir zerschiesst es die Webseite. Die Plots, die ich in diesem Raum habe fangen links oben über dem fhem Logo an und somit passt alles nicht mehr?

Patrick Cornelius

unread,
Jul 25, 2012, 11:17:22 AM7/25/12
to fhem-...@googlegroups.com
Ja, das ist bei mir leider momentan auch so, allerdings liegt bei mir nur ein Graph hinter dem FHEM Logo....

Von meinem iPhone gesendet

puschel74

unread,
Jul 25, 2012, 11:42:20 AM7/25/12
to fhem-...@googlegroups.com, corn...@googlemail.com
Hallo,

also irgendwie will mich fhem wohl veräppeln :-((

Ich hab händisch unter fhem/www/images/default die Wetter-Icons hineinkopiert und in
59_Weather.pm in Zeile 337 ein
my $uselocal= 1;
stehen.
Es werden keine Icons angezeigt.
Ich habe die Icons auch nach
fhem/default
fhem/weathericons
fhem/www/images/weather
fhem/www/images/dark
fhem/www/images/dark/weather
fhem/www/pgm2
kopiert aber nüscht.
Wenn ich in 99_myUtils.pm die Zeile 24

 $imgHome="/fhem/weathericons";            #turn this line into a comment to use google icons
auskommentiere werden die Google-Icons angezeigt.

Jemand eine Idee wo ich die Icons noch hinkopieren kann/soll/muss?

Grüße

puschel74

unread,
Jul 25, 2012, 11:51:16 AM7/25/12
to fhem-...@googlegroups.com, corn...@googlemail.com
Nachtrag:

Ein Reload 59_Weather.pm und auch ein shutdown restart habe ich durchgeführt.

Grüße

Fladdy

unread,
Jul 25, 2012, 11:55:50 AM7/25/12
to fhem-...@googlegroups.com, corn...@googlemail.com

Ich habe sie hier:


fhem/www/pgm2/weather/

puschel74

unread,
Jul 25, 2012, 12:05:39 PM7/25/12
to fhem-...@googlegroups.com, corn...@googlemail.com
Hallo,

auch dort werden die Icons nicht angezeigt .-(

Grüße

Am Mittwoch, 25. Juli 2012 17:55:50 UTC+2 schrieb Fladdy:

Ich habe sie hier:


fhem/www/pgm2/weather/

Mitch

unread,
Jul 25, 2012, 12:32:13 PM7/25/12
to fhem-...@googlegroups.com
Seit ich sie in www/images/default habe geht es.
Musste auch kein reload oder restart machen.

neomorph

unread,
Jul 25, 2012, 12:33:54 PM7/25/12
to fhem-...@googlegroups.com, corn...@googlemail.com
nein, wie von mir beschrieben:

am besten per hand die neue dateistruktur anlegen und dann die wetter-bilder in:

/fhem/www/images/default/

kopieren. dann sollte es gehen.

nwo

puschel74

unread,
Jul 25, 2012, 2:27:24 PM7/25/12
to fhem-...@googlegroups.com, corn...@googlemail.com
Hallo,

tja, wie schon geschrieben habe ich die Ordnerstruktur aus dem verlinkten Posting auf
meienr FB7390 von Hand nachgebaut und die Dateien in die oben beschriebene Ordner
kopiert und die uselocal auf 1 gesetzt aber es tut sich einfach nüscht.
Nach einem beherzten updatefhem housekeeping clean yes hat sich fhem erst nach gut
10 Minuten bemüht nach einem shutdown restart zu bitten (fhem.pl wurde erneuert) um sich
dann allerdings nur über ein startfhem über telnet mit jeder Menge Meldungen zu "bedanken"
und dann doch nicht zu starten.
Wohl dem der vorher ein Backup gezogen hat ;-)
Ich kann auf die Icons noch verzichten bis alles fertig umgebaut ist.

Grüße
Reply all
Reply to author
Forward
0 new messages