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!
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.
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
Such mal nach Beispielen für die Funktion ReadingsVal.
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!
+*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
Danke Dietmar63 - das notify hat funktioniert!!!