FHEM Forum

FHEM - Hardware => FRITZ!Box => Thema gestartet von: newby am 28 Oktober 2014, 18:49:37

Titel: WLAN-Status auf Fritzbox auslesen & setzen
Beitrag von: newby am 28 Oktober 2014, 18:49:37
Hallo,

ich habe dank des Beitrags von Dragonfly folgenden Code in die cfg eingefügt.

# alle 5 Minuten ###############################################################
define 5min_check at +*00:05:00 trigger 5min_check
attr 5min_check group Aktualisierungen
attr 5min_check room Programme
################################################################################
#
# WLAN #########################################################################
define 001_WLAN dummy
attr 001_WLAN devStateIcon on:WLAN_Status.1 off:WLAN_Status.0
attr 001_WLAN group WLAN
attr 001_WLAN room FritzBox
attr 001_WLAN setList on off
# WLAN-STATUS von der FritzBox holen
define 001_WLAN_get notify (5min_check|global:INITIALIZED) {\
  my $v=`ctlmgr_ctl r wlan settings/ap_enabled`;;\
  chomp($v);;\
  if($v eq "0" && Value("001_WLAN") ne "off"){ fhem "set 001_WLAN off";;\
  }\
  elsif ($v eq "1" && Value("001_WLAN") ne "on"){ fhem "set 001_WLAN on";;\
  }\
}
attr 001_WLAN_get room Programme
# WLAN einschalten
define 001_WLAN_on notify 001_WLAN:on.* {;;\
  qx(/usr/bin/ctlmgr_ctl w wlan settings/ap_enabled 1)}
attr 001_WLAN_on room Programme
# WLAN ausschalten, WLANGast ausschalten
define 001_WLAN_off notify 001_WLAN:off.* {;;\
  fhem "set 001_WLANGast off" if ("off" ne Value("001_WLANGast"));;\
  qx(/usr/bin/ctlmgr_ctl w wlan settings/ap_enabled 0)}
attr 001_WLAN_off room Programme
################################################################################
#
# WLANGast #####################################################################
define 001_WLANGast dummy
attr 001_WLANGast devStateIcon on:WLAN_Status.1 off:WLAN_Status.0
attr 001_WLANGast group WLAN
attr 001_WLANGast room FritzBox
attr 001_WLANGast setList on off
# WLANGast-STATUS von der Fritz!Box holen
define 001_WLANGast_get notify (5min_check|global:INITIALIZED) {\
  my $v=`ctlmgr_ctl r wlan settings/guest_ap_enabled`;;\
  chomp($v);;\
  if($v eq "0" && Value("001_WLANGast") ne "off"){ fhem "set 001_WLANGast off";;\
  }\
  elsif ($v eq "1" && Value("001_WLANGast") ne "on"){ fhem "set 001_WLANGast on";;\
  }\
}
attr 001_WLANGast_get room Programme
# WLANGast einschalten, WLAN einschalten
define 001_WLANGast_on notify 001_WLANGast:on.* {;;\
  if( Value("001_WLAN") ne "on"){ fhem "set 001_WLAN on";;\
  qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 1);;\
  }\
  else {qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 1);;\
  }\
}
attr 001_WLANGast_on room Programme
# WLANGast ausschalten
define 001_WLANGast_off notify 001_WLANGast:off.* {;;\
  qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 0)}
attr 001_WLANGast_off room Programme
################################################################################


leider habe ich das Problem das beim betätigen des Schalters nur der Schalter selbst das Icon ändert aber auf der Fritzbox das WLAN weiterhin an bleibt.
Habe ich etwas vergessen / muss ich noch weiter Sachen beachten?

Im Eventlog steht nur:

Events:
2014-10-28 18:44:22 dummy 001_WLAN off
2014-10-28 18:44:25 dummy 001_WLAN on

Im Logfile habe ich nichts gefunden.
Kann mir da jemand bei helfen?

Gruß
Sven