[gelöst] Twilight Azimuth in dummy

Begonnen von Alveole, 10 März 2015, 21:39:37

Vorheriges Thema - Nächstes Thema

Alveole

Hallo,
ich möchte gern einen Dummy erzeugen, in dem ich immer den aktuellen Sonnenstand (Azimuth) habe und anzeigen kann.
Bisher habe ich mir folgendes gebaut:


define Sonne_Azimuth dummy
attr Sonne_Azimuth room Wetter
define AzimuthSet_Timer at +*00:01:00 { my $a = fhem("get myTwilight azimuth");; fhem("set Sonne_Azimuth $a");; }


nun bekomme ich aber als Ergebnis immer:
"Sonne_Azimuth      myTwilight azimuth => 310.39"

vom Prinzip her stimmt das, aber:
- wie bekomme ich nur den Zahlenwert (so kann man ja nicht damit Vergleichen usw.)
- geht es eleganter als ich es habe?

Danke schon mal an Euch!

Dietmar63

Ich vermute, dass dein timer nur einmal kurz nach Mitternacht ausgeführt wird. Du musst entweder den * oder das + weglassen, dann wird der azimuth jede Minute gelesen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Hans Franz

Hallo,
Eleganter kann ich auch nicht ;).
+*00:01:00 { my (undef,undef,undef,$a) = split(" ",fhem("get myTwilight azimuth")); fhem("set Sonne_Azimuth $a"); }

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Dietmar63

Such mal nach Beispielen für die Funktion ReadingsVal.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Alveole

Zitat von: Dietmar63 am 10 März 2015, 22:52:22
Ich vermute, dass dein timer nur einmal kurz nach Mitternacht ausgeführt wird. Du musst entweder den * oder das + weglassen, dann wird der azimuth jede Minute gelesen.
Der Timer funktioniert und liest bis jetzt alles im Minutentakt aus.

Zitat von: Hans Franz am 11 März 2015, 00:22:24
Hallo,
Eleganter kann ich auch nicht ;).
+*00:01:00 { my (undef,undef,undef,$a) = split(" ",fhem("get myTwilight azimuth")); fhem("set Sonne_Azimuth $a"); }

Gruß
Hans

Danke für die Codezeile. Probier ich heute Abend mal aus und Berichte dann!

Dietmar63

#5

+*00:01:00 { fhem(set Sonne_Azimuth " . ReadingsVal("myTwilight","myTwilight","notFound"))}


Es gibt noch die Möglichkeit ein notify auf myTwilight:azimuth zu definierten, dann wird bei jeder Aktualisierung des azimuth in myTwilight dein dummy aktualisiert.

etwas so(ungetestet):
define xxx notify  Twilight:azimuth.* set Sonne_Azimuth %

oder:
define xxx notify  Twilight:azimuth.* set Sonne_Azimuth $EVTPART1
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Alveole

Danke Dietmar63 - das notify hat funktioniert!!!