Weckzeit einstellen

Begonnen von wfas303, 27 Januar 2013, 21:37:30

Vorheriges Thema - Nächstes Thema

wfas303

Hallo LaLeLu,

ich benutze deine Weckfunktion mittlerweile täglich und würde diese gerne mit der Anwesenheitsfunktion (über WLAN) verknüpfen.

Wenn ich um e.g. 2h nachts zu Hause bin soll der Wecker , wie in der Fritzbox programmiert, wecken und somit Strom und Heizung anwerfen.
Wenn ich aber NICHT zu Hause bin ( WLAN Abwesenheit ) würde ich gerne den Morgenwecker auf der Fritzbox für diesen Tag "deaktivieren" und erst um Mitternacht wieder scharf stellen.

Was wäre deiner Meinung nach hier die beste Lösung ?

Gibt es so was wir eine Weckzeit einstellen light "http://www.fhemwiki.de/wiki/FritzBox:_Weckzeit_einstellen" welche den Weckalarm nur ein/ausschaltet ?

Danke
Andreas
 

LaLeLu

Hi Andreas,

ich denke, ich würde an der Funktion gar nichts machen.
Nutze doch einfach die normalen Möglichkeiten.

Ich würde das in etwa so machen (ungetestet):

In einen ersten  Dummy   WLANAnwesenheitDummy  schreibst Du die Info über die Anwesenheit mit Ja oder Nein.
In einen zweiten Dummy  FBWeckzeit  schreibst Du die Weckzeit. Dadurch kann Du diese variabel befüllen, z.B. auch durch das Auslesen eines Google-Kalenders oder eben auch einfach nur fix hineingeschrieben.


##############################################################################################
## Das Einstellen der Weckzeiten der Fritzbox (7390) regelmäßig auslösen.
## Anstelle von +*01:00:00 kann natürlich auch einfach nur eine Uhrzeit z.B. *{03:00:00} stehen.
##############################################################################################
define t_FBWeckzeitEinstellen at +*01:00:00 {\
  if (Value("WLANAnwesenheitDummy") =~ /Ja/) {\
{Log 3, ('  t_FBWeckzeitEinstellen:  Es ist jemand anwesend => Weckzeit 3 einstellen.') }\
                                {FB_WeckerStellen(3,Value("FBWeckzeit"),"FritzFon",3)}\
}\
    else {\
        {Log 3, ('  t_FBWeckzeitEinstellen:   Wecker 3 aus stellen.') }\
                        {FB_WeckerStellen(3,"Aus")}
}\

}


Vielleicht hat jemand noch eine andere Idee.
Wenn es aber funktioniert, gib bitte eine Rückmeldung. Evtl. poste gerne auch die fertige Lösung.
LaLeLu

Fhem Release: 5.6 auf RaspberryPI B (wheezy)
1xFB7390, 1xCUL, 1xHM-CFG-LAN, 4xFHT, 25xFS20 (inkl. PIRA), 18xCUL_HM, 5xCUL_WS, 2xSONOS-Player, calendar, floorplan

wfas303

Danke für die schnelle Antwort. Ich komme erst wieder am Wochenende zum testen ,aber so sollte es funktionieren.

Ich wollte allerdings den Wecker "nur" jeweils um

04.00 Uhr auf Anwesenheit prüfen und ggf den Morgen Alarm ausschalten und um
01.00 Uhr automatisch immer wieder einschalten ( wenn er schon AN ist dann bleibt er hoffentlich AN )

Die Alarmzeit selbst würde ich unverändert lassen und nur bei Bedarf über das FritzFon anpassen.

Damit sollte der Wecker nie mehr Morgens angehen wenn ich nicht zu Hause sein.

 

wfas303

Hallo LaLeLu,

ich habe noch einen kleine Denkfehler :

Mein Usecase sieht so au s:

um 02.00 Uhr Nacht prüfen ob ich zu Hause bin, falls
Ja soll der Alarm eingeschaltet werden : FB_WeckerStellen(1,"EIN")
Nein sol der Alarm ausgeschaltet werden : FB_WeckerStellen(1,"Aus")
Danach um 03.00 Uhr würde ich den Alarm Syncronisieren : FBWeckzeitAktualisieren
Um am Morgen 06.00 Uhr die verschiedenen Aktionen zu Starten : FBWeckzeitAuswerten
Falls sich die Alarmzeit am nächsten Tag ändert gebe ich diese das Fritzbox Telefon ein ca. gegen 23.00 Uhr ...

Jetzt passiert folgendes :

um 02.00 startet t_FBWeckzeitEinstellen:  Es ist jemand anwesend => Weckzeit 1 einstellen.
und kommt mit der Fehlermeldung :
2013.02.02 01:00:00 3: FB_WeckerStellen(Weckruf: 1, Telefon: ? => Alle, Wiederholung: ? => 3=Einmal wecken (keine Wiederholung)? => Uhrzeit ist falsch!) returned:
2013.02.02 01:00:00 3: Weckruf: 1, Telefon: ? => Alle, Wiederholung: ? => 3=Einmal wecken (keine Wiederholung)? => Uhrzeit ist falsch

Was vollkommen richtig ist den ich will eigentlich nur den bereits existierenden Alarm "scharf "schalten und keine neuen definieren. Die Zeit habe ich ja schon um 23.00 Uhr ggf. über das Fritzphone geändert.

Wie stelle ich also einen Alarm "scharf" ohne diesen  "neu" zu programmieren ?
Geht das ?
Danke
Andreas





 

LaLeLu

Hi Andreas,

ich habe im Code folgende Parameter ermöglicht:
$pZeit:         "hh:mm","On","An","Off","Aus"

Du willst aber FB_WeckerStellen(1,"EIN") haben. Dann musst Du den Code verändern:

if ($pZeit   =~ /An/i or $pZeit   =~ /On/i) {
ändern in
 if ($pZeit   =~ /Ein/i or $pZeit   =~ /On/i) {
oder in
 if ($pZeit   =~ /An/i or $pZeit   =~ /On/i or $pZeit   =~ /Ein/i) {


Ich denke, dass dies hilft.
LaLeLu

Fhem Release: 5.6 auf RaspberryPI B (wheezy)
1xFB7390, 1xCUL, 1xHM-CFG-LAN, 4xFHT, 25xFS20 (inkl. PIRA), 18xCUL_HM, 5xCUL_WS, 2xSONOS-Player, calendar, floorplan

wfas303

Wer lesen kann ist klar vom Vorteil.
Mit "Ein" statt "An" klappt die Programmierung sofort :)

Danke nochmals für die tolle Weckerfunktion

Andreas

wfas303

Hallo LaLeLu,

gefühlt seit dem FHEM Update letzes Wochenende habe ich ein "Problem " bei dem ich noch nicht weiss wo ich ansetzen soll :

Seit Wochen läuft dein Modul fehlerfrei und um 02.00 Uhr wird der Alarm aktualisiert :

2013.03.21 02:00:00 3:   t_FBWeckzeitAktualisieren:  n_FBWeckzeitAuswerten regelmäßig auslösen.
2013.03.21 02:00:00 3:   n_FBWeckzeitAuswerten:  Weckzeiten der FritzBox aktualisieren und auswerten.
2013.03.21 02:00:00 2:   dummy set FBWeckzeit 06:45
2013.03.21 02:00:00 2:   dummy set FBWeckzeitOffset 06:15
2013.03.21 02:00:01 2:   dummy set FBWeckzeitNextFull HEUTE ist ein Wecktag, Weckzeit ist DO (06:45) Offset:-30 => 06:15, Telefon: 61, Nr. 0: Aktiv: 1, Wecktage: MO DI MI DO FR
2013.03.21 02:00:01 3:   n_FBWeckzeitAuswerten: Telefon: 61 (Schlafzimmer) => n_AufstMakroSchlafZi  starten.

Auf einmal passiert aber Folgendes :

2013.03.27 02:00:00 3:   t_FBWeckzeitAktualisieren:  n_FBWeckzeitAuswerten regelmäßig auslösen.
2013.03.27 02:00:00 3:   n_FBWeckzeitAuswerten:  Weckzeiten der FritzBox aktualisieren und auswerten.
2013.03.27 02:00:01 3:   n_FBWeckzeitAuswerten: Telefon: 61 (Schlafzimmer) => n_AufstMakroSchlafZi  starten.

und dann später :

2013.03.27 02:00:01 3:  Define t_AufstehenMuster at 06:15  trigger n_AufstMakroSchlafZi : Unknown command Define, try help
2013.03.27 02:00:01 3:  Define t_AufstehenMuster2 at 06:45  trigger n_AufstMakroSchlafZi2 : Unknown command Define, try help
2013.03.27 02:00:01 3:  n_FBWeckzeitAuswerten return value: Unknown command Define, try help


Das liegt daran, dass ,aus mir völlig unbekannten Gründen, die Befehlszeilen :

       {fhem("set FBWeckzeit         ".FB_AlarmClockTimes('next Alarm',-30))  }\
      {fhem("set FBWeckzeitOffset   ".FB_AlarmClockTimes('next Offset',-30)) }\
      {fhem("set FBWeckzeitNextFull ".FB_AlarmClockTimes('next full',-30))   }\

anscheinend nicht mehr ausgeführt werden, da diese im Log nicht mehr auftauchen.

Nur woran könnte dies liegen ? Wenn ich {FB_AlarmClockTimes('next Alarm',-30)} in die Befehlszeile eingebe kommt die Weckzeit korrekt zurück.

Danke

Andreas


 

LaLeLu

Hallo Andreas,

sorry, ich komme erst jetzt zum Lesen. Ich hatte vor Kurzem ein ähnliches Phänomen in einem anderen Programmteil. Dort hatte ich "Define", also mit großem D im Code. Nachdem ich es auf "define" geändert habe, funktioniert es wieder. Da ich bei Dir "Unknown command Define" lese, könnte es doch vielleicht daran liegen?

Nur so eine Idee.

LaLeLu
LaLeLu

Fhem Release: 5.6 auf RaspberryPI B (wheezy)
1xFB7390, 1xCUL, 1xHM-CFG-LAN, 4xFHT, 25xFS20 (inkl. PIRA), 18xCUL_HM, 5xCUL_WS, 2xSONOS-Player, calendar, floorplan

wfas303

Danke LaLeLu,

sorry meinerseits mit der späten Antwort aber ich war "offline".

Danke , ja Teufel lang im grosse "D" von Define ...

Wünsche noch schönen Feiertag
Andras

wfas303

Hallo LaLeLu,

aufgrund der Ankündigung von AVM steht wohl mittelfristig eine Portierung von FHEM auf den Pi bei mir an. Die Grundvoraussetzungen dafür habe ich bereits geschaffen ( Pi gekauft, FHEM installiert etc. ).

Nun suche ich Lösungen für die einzelnen Module. Die Weckerfunktion auf der AVM Firtzbox ist für mich sehr wichtig, da ich danach jeden Morgen meine Heizung ( Weckzeit - 30 min) hochfahre.

Gibt es schon Lösungen um die (aktive) aktuelle Weckzeit der Fritzbox über eine FHEM installation auf dem Pi abzufragen und zu übernehmen.

Danke
Andreas