WLAN Status auf Fritzbox auslesen

Begonnen von d.zoellner, 20 März 2013, 11:13:45

Vorheriges Thema - Nächstes Thema

d.zoellner

Hallo,

ich möchte den WLAN Status meiner Fritzbox im FLOORPLAN darstellen.
Dazu habe ich schon eine Funktion, mit der ich das WLAN ein oder ausschalten kann. Allerdings funktioniert das nicht, wenn das WLAN an der FB z.b. direkt (Schalter) oder über die Nachtschaltung ein bzw. ausgeschaltet wird. In diesem Falle zeigt mein FHEM (und FLOORPLAN) falsche Werte(den falschen Status) an.

Auszug aus der fhem.cfg:
# >>> WLAN
# Definition Schalter
define WLAN_Status dummy
attr WLAN_Status fp_Grundriss 270,450,1,WLAN
attr WLAN_Status room Allgemein
attr WLAN_Status setList on off
# Definition Quelle/Ziel
define n_WLAN notify WLAN_Status {FB_WLANswitch("%")}
attr n_WLAN room Allgemein
# <<< WLAN

Vielleicht kann mit jemand mal helfen, wie ich den Status des WLANs periodisch auslesen bzw. im FHEM verwenden kann. Derzeit verwende ich die Funktion FB_WLANswitsch aus den FritzBoxUtils.pm. Aber wenn ich die Funktion richtig lese, kann ich mit dieser nur den Status setzen, nicht jedoch auslesen und nicht auf Statuswechsel von aussen oder durch die FB selber reagieren.

Viele Grüße

Dirk

Dragonfly

hoffe ich habe nichts vergessen - alles in eine *.cfg rein, die nicht include(n) vergessen.
wlan und wlan-gast sind im script miteinander verbunden (wenn wlan-gast ein, dann auch wlan ein; wenn wlan aus, dann auch wlan-gast aus)
aktuallisierung alle 5 min, namen und räume nach wunsch ändern.

# 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
################################################################################


LG tom

PS: verbesserungsvorschläge willkommen

newby

Hallo,
ich bin gerade über den Beitrag gestolpert und habe dieses direkt versucht umzusetzen.
Leider bin ich in der Materie neu und habe noch nicht all zu viel Ahnung.
Der Connect zur Fritzbox scheint bei mir nicht zu gehen.
Wenn ich über den FB_WLANswitch gehe habe ich das selbe Problem wie im ersten Post.
Muss ich noch etwas anderes ändern außer den angegebenen Code in die cfg einzutragen?

Vielen Dank im voraus
Sven

carzl

Ich schiebe den Thread mal an, gibts hier neue Infos? Bin nämlich auch am Suchen, wie ich den WLAN-Status aus der FB auslesen kann (mein Fhem läuft nicht direkt auf der FB, sondern einem RasPi). Hintergrund: ich lese über Presence aus, ob mein Handy per WLAN connected ist (und das meiner besseren Hälfte). Das Ergebnis schaltet einen Dummy ein und aus, der da z.B. "Karlheinz" = "zuhause" bzw. "unterwegs" lautet. Jetzt lasse ich aber mein WLAN von 24:00 bis 6:00 aus, deshalb sollen meine Dummies aber nicht auf "unterwegs" springen, sondern auf "Nachtmodus" oder so; d.h. ich brauche den WLAN-Status, um die Anwesenheitserkennung für den WLAN-Aus-Zeitraum zu deaktivieren. Unabhängig davon mache ich darüber aber keine "echte Anwesenheitserkennung", sprich HomeStatus-Setzen, dafür habe ich einen Taster neben der Wohnungstür; es ist also eine reine Spielerei dass ich sehe wer zu Hause ist  :D

Danke!
Fhem 6.0 auf RPi3: CUL, JeeLink, Hue Bridge v2, HarmonyHub, Fritzbox7590+7412, 6x FHT80b, 2x FS20S6A, FS20S4A, S300TH, 4x FritzDECT200/210, 4x TX29DTH, 4x Hue LightStripe, 5x Hue Smart Plug, Sonos mit 5x Play:1, Beam und Sub; 3x Lenovo Tab M10 mit FTUI

Brockmann

Schau Dir mal das FRITZBOX-Modul an, damit kannst Du u. a. den WLAN-Status auslesen und setzen.

carzl

Oha, das zu kennen gehört bestimmt zu den Basics...  ::) Ich kannte bisher nur das FBAHA, aber das FRITZBOX sieht recht umfassend aus  :)  Danke erstmal!
Fhem 6.0 auf RPi3: CUL, JeeLink, Hue Bridge v2, HarmonyHub, Fritzbox7590+7412, 6x FHT80b, 2x FS20S6A, FS20S4A, S300TH, 4x FritzDECT200/210, 4x TX29DTH, 4x Hue LightStripe, 5x Hue Smart Plug, Sonos mit 5x Play:1, Beam und Sub; 3x Lenovo Tab M10 mit FTUI