Fritzbox: WLAN ein/ausschalten: Unterschied zwischen den Versionen

Aus FHEMWiki
(Die Seite wurde neu angelegt: „Um auf der Fritzbox, auf der fhem läuft, Firmwareversions-unabhängig das WLAN ein- und ausschalten zu können, nutzt dieses script die Möglichkeit, das ein/…“)
 
Zeile 31: Zeile 31:
== Aufruf ==
== Aufruf ==
  <nowiki>define WLANschalten notify btn {doWLANswitch("%")}</nowiki>
  <nowiki>define WLANschalten notify btn {doWLANswitch("%")}</nowiki>
[[Kategorie:Code Snippets]]

Version vom 11. Mai 2013, 23:18 Uhr

Um auf der Fritzbox, auf der fhem läuft, Firmwareversions-unabhängig das WLAN ein- und ausschalten zu können, nutzt dieses script die Möglichkeit, das ein/ausschalten über das Telefon zu erledigen.

Getestet auf einer FB7390; auf anderen Modellen mögen die Codes zum einschalten (#96*1*) und ausschalten (#96*0*) anders lauten, bitte im Handbuch nachschauen.

Seit 10/2012 ist diese Routine Teil des fhem-Standard. Sie ist untergebracht in FritzBoxUtils.pm und heisst dort FB_WLANswitch($) Da der Dateiname von FritzBoxUtils.pm nicht mit 99_ beginnt, wird diese Programmdatei nicht automatisch beim Start von fhem geladen. fhem muss zum Laden dieser Programmdatei aufgefordert werden. Dazu (zB in 99_myUtils.pm) die Zeile use FritzBoxUtils;einfügen.


Code

######## Switch FB WLAN on/off ############
# call from notify with {doWLANswitch("%")}
sub
doWLANswitch($) {
 my $cmd = shift;
 my $ret = ""; 
 if ($cmd =~ m"on"i) {      # on or ON
 $ret .= "ATD: " . `echo "ATD#96*1*" | nc 127.0.0.1 1011` ;
 sleep 1 ;
 $ret .= " ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ;
 }
 if ($cmd =~ m"off"i) {      # off or OFF
 $ret .= "ATD: " . `echo "ATD#96*0*" | 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 1, "doWLANswitch($cmd) returned: $ret";
}


Aufruf

define WLANschalten notify btn {doWLANswitch("%")}