Hallo zusammen,
wie einige von euch auch, nutze ich Tasker am Handy, um einige Sachen zu automatisieren. Bisher Hat der läutende Wecker an FHEM den Befehl gesendet das Licht hochzudimmen und mir das Wetter zu sagen.
Gestern bin ich auf die Tasker-erweiterung "AutoAlarm" gestoßen, die die Nächste Weckzeit in Variablen speichert.
Bei einer Änderung der Variablen (das ist entweder wenn der Alarm gerade läutet und dann der nächste Alarm dran ist oder wenn ein neuer Alarm erstellt wird) sollen dann Wochentag und Uhrzeit an FHEM gesendet werden. Das sollte ja kein Problem sein indem man mit HTTPGET einen dummy setzt.
Woran ich grade scheitere ist die Auswertung in FHEM.
Ich würde gerne 20 minuten vor der Weckzeit ein Wake-up-light starten.
Wie kann ich das FHEM so beibringen?
Viele Grüße
Kuzl
Eine Idee hab ich dazu: Man könnte doch ein at um 00:00 jeden Tag aufrufen, das überprüft, ob der Tag im dummy der aktuelle Tag ist. Wenn das der Fall ist wird ein at für die entsprechende Zeit gesetzt.
Jetzt ist nur noch das Problem wie kann man von einer Uhrzeit z.b. 20 Minuten abziehen?
Ich verwende die App "sanfter Wecker". Dieser hat einen stillen Vorwecker, dieser "klingelt" vor dem Hauptwecker (bis zu 60min). Und diesen Voralarm werte ich in tasker aus und starte die entsprechenden fhem tasks.
Zitat von: Kuzl am 12 Dezember 2014, 11:37:31
Jetzt ist nur noch das Problem wie kann man von einer Uhrzeit z.b. 20 Minuten abziehen?
Hallo,
evtl. hilft dir dieses:
http://forum.fhem.de/index.php?topic=12216.135 (http://forum.fhem.de/index.php?topic=12216.135)
Danke euch, ich wollte halt die Weckzeit direkt in FHEM haben um evtl auch andere Sachen damit machen zu können.
Hier ist mal alles einschließlich eines Wake-up-lights, das 10 minuten eher startet. Der Dummy Weckzeit wird in regelmäßigen abständen im Format "set Weckzeit <Wochentag> <Stunde> <Minute>" gesetzt
###########################
define Weckzeit dummy
###########################
define Wecker_setzen notify Weckzeit.* { my @@Weckzeit = split(/ /,Value("Weckzeit"));;\
if ($Weckzeit[2] < 10){\
fhem("modify Wecker *$Weckzeit[1]:0$Weckzeit[2]:05");;\
}else{\
fhem("modify Wecker *$Weckzeit[1]:$Weckzeit[2]:05");;\
}\
if ($Weckzeit[2] < 10) {\
$Weckzeit[2] = 60 - (10 - $Weckzeit[2]);;\
if ($Weckzeit[1] < 1){\
if ($Weckzeit[0] == 1){\
fhem("set Weckzeit 7 $Weckzeit[1] $Weckzeit[2]");;\
}else{\
fhem("set Weckzeit ($Weckzeit[0] - 1) $Weckzeit[1] $Weckzeit[2]");;\
}\
$Weckzeit[1] = 23;;\
}\
}else{\
$Weckzeit[2] = $Weckzeit[2] - 10;;\
}\
if ($Weckzeit[2] < 10){\
fhem("modify Wakeup_light *$Weckzeit[1]:0$Weckzeit[2]");;\
}else{\
fhem("modify Wakeup_light *$Weckzeit[1]:$Weckzeit[2]");;\
}\
}
###########################
define Wakeup_light at *13:14 { my @Weckzeit_state = split(/ /,Value("Weckzeit"));;\
if ($wday + 1 == $Weckzeit_state[0]) {fhem("set LEDlight_Light on;; set LEDlight_Light HSV 240,100,0;; set LEDlight_Light HSV 40,100,40 240 q;; set LEDlight_Light HSV 50,0,100 360 q;; set LEDstripe_Light on;; set LEDstripe_Light HSV 240,100,0;; set LEDstripe_Light HSV 40,100,50 240 q;; set LEDstripe_Light HSV 50,0,100 360 q;; sleep 900;; set LEDstripe_Light off;; set LEDlight_Light off");;}}
###########################
#Makro für Wecker
define Wecker at *13:29:05 { my $temp = Runden('1',Value("Aussentemperatur"));; \
my $condition = ReadingsVal("MyWeather", "condition", "none");; \
my @Weckzeit_state = split(/ /,Value("Weckzeit"));;\
if ($wday + 1 == $Weckzeit_state[0]){ \
fhem("define sagen at +00:00:40 set TTS tts Guten Morgen - Es hat $temp Grad und es ist $condition");;\
fhem("set Licht 100 240 45");;\
}\
}
wie gesagt, geht mit sanftem Wecker. Hat den Vorteil, daß ich Einschaltzeit sehr komfortabel verschieben / deaktivieren kann (wg. Urlaub bspw).
Wecker-Alarm: 7:00
Vorwecker-Alarm: 6:00
Tasker bekommt den Vorwecker um 6:00 mit, ruft meine FHEM-Routine auf und hier definiere die zu startenden Programme.
Einige Programme laufen sofort los (Heizung in der Heizungsperiode) andere Programme später, letztere definiere ich dann so:
fhem ("define temp_ein_AVR at +00:45:00 set AVR on;set AVR input tuner");
fhem ("define temp_ein_SchalterTor at +01:10:00 {Tor_auf()}");
In diesem Fall wird der Verstärker um 6:45 eingeschaltet und das Tor geht um 7:10 auf.
Blöde Frage: Ist das nicht etwas viel Aufwand für einen Wecker?
Gesendet von meinem GT-I9195 mit Tapatalk
Zitat von: matthias321 am 14 Dezember 2014, 13:23:28
Blöde Frage: Ist das nicht etwas viel Aufwand für einen Wecker?
NÖ!
@Kuzl, ich habe ein fhem Wecker modul (evtl generell Zeitschaltuhr) auf der to-do liste, vorerst ist aber ein andere modul dran. Bekommst du die Zeit vom Tasker nach fhem ?
vg
jörg
Jap bekomm ich :) ich reagiere mit Tasker auf das Intent "android.intent.action.ALARM_CHANGED" mit einer kleinen Verzögerung (da solange der Wecker noch läutet die nächste Alarmzeit die "Schlummer-Alarmzeit" ist.)
Das aktiviert dann den Task von AutoAlarm. Dieser Wiederum aktiviert dann das Profil von AutoAlarm in dem dann die Zeiten des nächsten Alarms in lokalen Variablen zur Verfügung.
Dort wird dann mit HTTPget der dummy "Weckzeit" gesetzt in dem Format wie oben angegeben.
Geht natürlich auch alles einfacher aber so bin ich halt flexibel und kann die Weckzeit beliebig verwenden, z.b. im Winter die Heizung hochfahren etc.
ZitatGeht natürlich auch alles einfacher aber so bin ich halt flexibel und kann die Weckzeit beliebig verwenden, z.b. im Winter die Heizung hochfahren etc.
Einfach ist immer genau das was funktioniert und zuverlässig in der Anwendung ist :) und das passt.
bgewehr hat hier http://forum.fhem.de/index.php/topic,30380.0.html auch gerade ein sv widget unter dem messer wofür man die Funktionalität auch braucht - ist im Detail anders aber ich sehe Schnittmengen .
vg
jörg
Das sieht ja gar nicht so schlecht aus :) so was fehlt meiner Meinung in fhem noch dass man ein at für einen Wochentag anlegen kann. Es geht zwar mit dem übweg über $wday aber schön ist das ja nicht :D
yepp, zum einen die funktionelle und zum zweiten die grafische Zusammenstellung. Wenn Du über Tasker da die Weckzeit raufschicken kannst - das wär doch so in etwa das was Du suchst ?
heute bin ich das erste mal so geweckt worden - das ist echt was nettes :D
ja das müsste gehen indem ich das dummydevice entsprechend setze
Genau das was ich suche ! :D
Wie lautet de URL mit dem ich meine Weckzeit an den Dummy übergeben kann? - Das kann ich hie leider (noch) nicht ganz rauslesen :/
Zitat von: Raven am 12 Dezember 2014, 11:53:16
Ich verwende die App "sanfter Wecker". Dieser hat einen stillen Vorwecker, dieser "klingelt" vor dem Hauptwecker (bis zu 60min). Und diesen Voralarm werte ich in tasker aus und starte die entsprechenden fhem tasks.
Hallo,
daran versuche ich mich auch schon eine ganze Zeit. Bei mir reagiert der Tasker leider überhaupt nicht auf einen Wecker. Kannst du mir vielleicht einen Tip geben ?
im lokalen netzwerk: http://HOSTNAME:8083
und Pfad:
/fhem?cmd=set%20Weckzeit%20%dayweek%20%hour%20%minute
Mitlerweile gibt es das AMAD Modul welches die Möglichkeiten bietet Androidgeräte zu steuern und Informationen in Readings fest zu halten.
Unter anderem kann man auch den Wecker eines Androidgerätes damit stellen, oder andersrum man stellt am Androidgerät eine Weckzeit und kann dann beim Reading auf die Weckzeit reagieren.
Grüße
Leon