FritzBox: Weckzeit einstellen
Zur Navigation springen
Zur Suche springen
Die Funktion stellt die Weckzeiten auf der FritzBox ein. Alternativ kann eine Weckzeit aktiviert oder deaktiviert werden.
fhem.cfg (Beispiel)
define FBWeckzeit dummy attr FBWeckzeit setList state:time define n_FBWeckzeit_In_FHEM_verstellt notify FBWeckzeit {\ {FB_WeckerStellen(3,Value("FBWeckzeit"),"FritzFon",3)}\ {Log 3, (' n_FBWeckzeit_In_FHEM_verstellt: $EVENT')}\ }
Sub (z.B. 99_myutils.pm)
######## FB_WeckerStellen ############################################################################## ## Einstellen der Weckzeiten auf der Fritzbox (7390) Erstellt: LaLeLu, 16.12.2012 ## What : Set Alarm or Switches Alarm on or off ## Call : { FB_WeckerStellen(WeckrufNr,Weckzeit,Telefon,Wiederholung) } ## ## Folgende Parameter sind zu übergeben: ## 1. $pWeckNr: 1-3 (Default: 3) ## 2. $pZeit: "hh:mm","On","An","Off","Aus" ## 3. $pTelefon: "FritzFon","Siemens","Alle" (Default: Alle) (Optional) ## 4. $pWiederholung: 0-3 (Default: 3) (Optional) ## ## Beispiele: {FB_WeckerStellen(3,"12:34","FritzFon",3)} ## {FB_WeckerStellen(2,"Aus")} ## {FB_WeckerStellen(1,"On")} ## ## Tastencode Funktion ## #88w*hhmmd*ns* Weckruf konfigurieren und aktivieren ## #88w** Weckruf aktivieren ## #88w# Weckruf deaktivieren ## w: Wecker 1-3 ## hh: Stunde 00-23 ## mm: Minute 00-59 ## d: Wiederholung: 0=MO-FR, 1=SA-SO, 2=MO-SO, 3=keine Wdh. ## ns: Interne Nummer der Nebenstelle ## ## angelehnt an: http://wiki.fhem.de/wiki/Fritzbox:_WLAN_ein/ausschalten ## siehe auch: http://www.wehavemorefun.de/fritzbox/Weckruf ######################################################################################################## sub FB_WeckerStellen($$;$$) { my $pWeckNr = shift; my $pZeit = shift; my $pTelefon = shift; my $pWiederholung = shift; my $ret = ""; my $info = "Weckruf: $pWeckNr"; if ($pWeckNr < 1 or $pWeckNr > 3 or length($pWeckNr)==0) {$pWeckNr = 3; $info .= '? => 3'}; $info .= ", Telefon: $pTelefon"; if ($pTelefon =~ /FritzFon/i) { $pTelefon = 60 } elsif ($pTelefon =~ /Siemens/i) { $pTelefon = 61 } elsif ($pTelefon =~ /Alle/i) { $pTelefon = 9 } else { $pTelefon = 9; $info .= '? => Alle'}; if ($pWiederholung == 0 and length($pWiederholung) == 1) {$info .= ', Wiederholung: 0=MO-FR'} elsif ($pWiederholung == 1) {$info .= ', Wiederholung: 1=SA-SO'} elsif ($pWiederholung == 2) {$info .= ', Wiederholung: 2=MO-SO'} elsif ($pWiederholung == 3) {$info .= ', Wiederholung: 3=Einmal wecken (keine Wiederholung)'} else {$pWiederholung = 3; $info .= ', Wiederholung: ? => 3=Einmal wecken (keine Wiederholung)'}; if ($pZeit =~ /An/i or $pZeit =~ /On/i) { $info = "Weckruf: $pWeckNr $pZeit"; my $atd = '"ATD#88'.$pWeckNr.'**"'; $ret = "ATD: " . `echo $atd | nc 127.0.0.1 1011` ; sleep 1 ; $ret .= " ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ; $ret =~ s,[\r\n]*,,g; # remove CR from return-string Log 3, "FB_WeckerStellen($info) ($atd) returned: $ret"; } elsif ($pZeit =~ /Aus/i or $pZeit =~ /Off/i) { $info = "Weckruf: $pWeckNr $pZeit"; my $atd = '"ATD#88'.$pWeckNr.'#"'; $ret = "ATD: " . `echo $atd | nc 127.0.0.1 1011` ; sleep 1 ; $ret .= " ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ; $ret =~ s,[\r\n]*,,g; # remove CR from return-string Log 3, "FB_WeckerStellen($info) ($atd) returned: $ret"; } elsif ($pZeit =~ /[0-2][0-9]:[0-5][0-9]/) { $info .= ", Zeit: $pZeit"; $pZeit =~ s/://; my $atd = '"ATD#88'.$pWeckNr.'*'.$pZeit.$pWiederholung.'*'.$pTelefon.'*"'; $ret = "ATD: " . `echo $atd | nc 127.0.0.1 1011` ; sleep 1 ; $ret .= " ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ; $ret =~ s,[\r\n]*,,g; # remove CR from return-string Log 3, "FB_WeckerStellen($info) ($atd) returned: $ret"; } else { $info .= "? => Uhrzeit ist falsch!" ; Log 3, "FB_WeckerStellen($info) returned: $ret"; }; my $ReturnText = $info; }
Bemerkungen
Diese Funktion ist getestet auf einer FritzBox 7390.