FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Kuzl am 12 Dezember 2014, 08:00:39

Titel: Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: Kuzl am 12 Dezember 2014, 08:00:39
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
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: Kuzl am 12 Dezember 2014, 11:37:31
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?
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag 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.
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: Hans Franz am 12 Dezember 2014, 11:58:44
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)
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: Kuzl am 13 Dezember 2014, 13:41:32
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");;\
        }\
}
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: Raven am 14 Dezember 2014, 09:43:33
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.
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: matthias321 am 14 Dezember 2014, 13:23:28
Blöde Frage: Ist das nicht etwas viel Aufwand für einen Wecker?

Gesendet von meinem GT-I9195 mit Tapatalk

Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: herrmannj am 14 Dezember 2014, 14:24:13
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
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: Kuzl am 14 Dezember 2014, 17:24:18
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.
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: herrmannj am 14 Dezember 2014, 17:49:34
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
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: Kuzl am 14 Dezember 2014, 18:48:41
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
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: herrmannj am 14 Dezember 2014, 18:58:51
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 ?
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: Kuzl am 15 Dezember 2014, 07:46:07
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
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: Pr3mut05 am 05 Januar 2016, 20:36:22
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 :/
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: bm7777 am 05 Januar 2016, 21:35:46
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 ?
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: Kuzl am 08 Januar 2016, 11:07:04
im lokalen netzwerk: http://HOSTNAME:8083

und Pfad:
/fhem?cmd=set%20Weckzeit%20%dayweek%20%hour%20%minute
Titel: Antw:Android Weckzeit an FHEM senden und darauf reagieren
Beitrag von: CoolTux am 08 Januar 2016, 11:31:07
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