Es gibt dieses Porplanta Modul, womit man in der html die windrichtung als Grafik anzeigen lassen kann.
data-type = wind_direction ...
Jetzt würde ich aber die Windrichtung als Text in dem Falle des list S angeben statt 180 oder das icon windDirIcon. Aber statt der Grad die Richtung wie SO, No, etc. wäre auch gut.
2016-06-17 23:07:32 wind 10.8
2016-06-17 23:07:32 windDir 180
2016-06-17 23:07:32 windDirIcon http://www.proplanta.de/wetterdaten/images/symbole/w27.gif
Fhem:
LOCAL 0
modulVersion $Date: 2016-04-07 17:24:09 +0200 (Thu, 07 Apr 2016) $
Helper:
Attributes:
INTERVAL 600
forecastDays 7
group Wettervorhersage
room Wetter
Ist das machbar ?
Du kannst Dir in Deiner 99_myUtils.pm einfach eine Funktion bauen, die Gradzahlen in Text umrechnet:
sub windDirName($) {
my ($dir) = @_;
my @winddir_name=("N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW");
return $winddir_name[int((($dir + 11.25) % 360) / 22.5)];
}
dann kannst Du mit {windDirName(47)} die Windrichtung 47° als Text "NE" zurückbekommen.
Wie müsste ich das in fhem.cfg bzw in der html dann ausgeben ?
Gar nicht. Sondern die Perl-Funktion aufrufen. Siehe Anfänger-Doku.
LG
pah
Als Anfänger bin ich auch mit der Doku nicht weitergekommen. Dürfte ich denn vielleicht ein funktionierendes Coding bekommen bzw. wie ich es einbinden muss ?
Wie betateilchen schon schrieb...
In die 99_myUtils.pm den Code eintragen
sub windDirName($) {
my ($dir) = @_;
my @winddir_name=("N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW");
return $winddir_name[int((($dir + 11.25) % 360) / 22.5)];
}
Handling zu 99_myUtils.pm steht hier
http://www.fhemwiki.de/wiki/99_myUtils_anlegen (http://www.fhemwiki.de/wiki/99_myUtils_anlegen)
Damit die neue Routine erkannt wird, die 99_myUtils neu laden.
reload 99_myUtils
Dann kannst Du dir in deinem Proplanta ein neues Reading für die Text-Windrichtung anlegen.
attr <DEIN_PROPLANTA> userReadings winddirText {windDirName(ReadingsVal("<DEIN_PROPLANTA>", "windDir",""))}
<DEIN_PROPLANTA> entsprechend deiner Konfig anpassen.
Der Name ist in deinem ersten Post nicht ersichtlich.
Wenn alles passt, taucht in deinem Proplanta ein neues Reading namens windirText auf.
Edit:
ein "d" vergessen
Wenn alles passt, taucht in deinem Proplanta ein neues Reading namens winddirText auf.
Zitat von: kumue am 20 Juni 2016, 10:05:37
Damit die neue Routine erkannt wird, die 99_myUtils neu laden.
reload 99_myUtils
Wenn man die 99_myUtils.pm so editiert, wie es vorgesehen ist, nämlich über "Edit files" im fhem Frontend, wird die Datei nach dem Speichern automatisch neu geladen.
Zitat von: betateilchen am 20 Juni 2016, 10:28:56
Wenn man die 99_myUtils.pm so editiert, wie es vorgesehen ist, nämlich über "Edit files" im fhem Frontend, wird die Datei nach dem Speichern automatisch neu geladen.
Ich bin vom externen Editor ausgegangen... :) ;)
nee, wußte ich auch noch nicht... man lernt immer wieder was dazu... thx
Kumue danke für die Anleitung. Werde ich später testen und berichten. Mus eigentlich in jede eigene *.pm Datei am Ende das 1;
Zitat von: kumue am 20 Juni 2016, 10:36:48
nee, wußte ich auch noch nicht... man lernt immer wieder was dazu
Muss man nicht wissen, kann man aber nachlesen, wenn man in die Doku schaut ;)
Zitat von: en-trust am 20 Juni 2016, 11:07:28
Muss eigentlich in jede eigene *.pm Datei am Ende das 1;
Wenn Du die Datei in fhem verwenden willst: ja. Perl Grundlagen...
Zitat von: en-trust am 20 Juni 2016, 11:07:28
Mus eigentlich in jede eigene *.pm Datei am Ende das 1;
Da ich es selbst nicht weiss, ob es zwingend erforderlich ist, habe ich gegoogelt..
ZitatEingebundene Perl-Dateien müssen am Ende so etwas wie 1; enthalten. Dadurch wird sichergestellt, dass das Modul oder die Modul-Funktion korrekt ausgeführt wird.
Quelle: https://wiki.selfhtml.org/wiki/Perl/Funktionen_f%C3%BCr_Module_und_Packages (https://wiki.selfhtml.org/wiki/Perl/Funktionen_f%C3%BCr_Module_und_Packages)
Unter Attributes steht nun
userReadings winddirText {windDirName(ReadingsVal("Wetter_Pro", "windDir",""))}
Allerdings finde ich nirgends den Text.
Unter den Readings deines Proplanta findet sind kein Reading winddirText ?
Jetzt steht die neue Variable unter den Readings. Wert 180 ergibt beim Text S.
Danke an alle.