Abend,
ich bin verwundert, dass dieses Thema noch nicht aufkam.
Gibt es bereits eine Möglichkeit das Gäste WLAN über Fhem zu aktivieren/deaktivieren und ggf. die Dauer der Aktivität zu konfigurieren?
Für das normale WLAN ist es ja bereits via Telefon Code siehe Wiki (//www.fhemwiki.de/wiki/Fritzbox:_WLAN_ein/ausschalten) möglich.
Ich würde gern ein Schalter belegen und passend den QR-Code mit Kennwort in der Wohnung platzieren.
Gruss
Hallo,
>http://www.ip-phone-forum.de/showthread.php?t=237664 (//www.ip-phone-forum.de/showthread.php?t=237664)
für den Gastzugang wurde wohl von AVM kein Tastaturcode vorgesehen, ich habe nichts neueres gefunden.
Gruß,
Stefan
Also Prinzipiell müsste es gehen.
Die iPhone App "Gastnetzwerk (//itunes.apple.com/de/app/fritz!box-gastnetzwerk/id427423651?mt=8)" verwaltet genau diese Funktionen. Auch mit der neuen Anmeldung unter Fritz!OS 5.50.
Ich nutze diese App schon etwas länger. Vielleicht bekommt man durch den Entwickler ja einen Tipp. Das könnte ich höchstens mal versuchen, sodass man es mit in die FritzUtilities.pm einbauen kann.
Per PHP Script geht das. Funktioniert dann von der Linux Shell (so mach ich das), oder von Windows aus:
http://www.ip-phone-forum.de/showthread.php?t=196309 (//www.ip-phone-forum.de/showthread.php?t=196309)
Mit Kenntnissen des Fritzbox- Linux (ggf. von http://www.wehavemorefun.de/fritzbox/AVM_Wiki (//www.wehavemorefun.de/fritzbox/AVM_Wiki)) könnte es ggf. auch ohne Wählcode direkt aus der Fritzbox selbst gehen.
Viele Grüße
Frank
Okay super. Zumindest schon mal eine Variante. Auf wehavemorfun habe ich noch keinerlei Infos dazu gefunden.
Vielleicht kann aber ein Entwickler der FritzUtil.pm was sagen, ob dies realisierbar ist?
Gruss
Hallo
über die FB Konsole lässt sich das Gast Wlan wie folgt steuern:
Statusabfrage
/usr/bin/ctlmgr_ctl r wlan settings/guest_ap_enabled
0:ausgeschaltet
1:eingeschaltet
ändern der Einstellung
/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 1 (eischalten)
/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 0 (ausschalten)
Das sollte sich dann per duzmmy Schalter integrieren lassen.
Zitat von: baumeister schrieb am Mo, 25 Februar 2013 20:31ändern der Einstellung
/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 1 (eischalten)
/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 0 (ausschalten)
Das sollte sich dann per duzmmy Schalter integrieren lassen.
Klasse! Klappt im Terminal super!
Das müsste ja dann Analog zum normalen WLAN auch klappen mit /usr/bin/ctlmgr_ctl r wlan settings/ap_enabled 1 und 0, oder?
Wäre das nicht eine elegantere Variante als die Funktion über den Tastencode und was für das Fritz Modul?
Ich versuch das mal mit einem Dummy umzusetzen.
Zitat von: sTaN schrieb am Mo, 25 Februar 2013 21:15Wäre das nicht eine elegantere Variante als die Funktion über den Tastencode und was für das Fritz Modul?
Hi,
die WLAN an/aus-Routine ist mit Fleiss über Tastencode realisiert, da sich die ctlmgr-Aufrufe z.T. zwischen den Fritz-OS-Versionen unterscheiden, die Telefon-Tastencodes sind jedoch stabil.
=8-)
Okay, auch mal interessant für das Verständnis. Nur schade, dass es keinen Tastencode für das Gäste-WLAN gibt ;-)
Aber ich versuch mich mal an der alternative. Ich gehe mal davon aus, dass fhem dann als root laufen muss und nicht als boxusr99
Zitat von: sTaN schrieb am Mo, 25 Februar 2013 21:32Ich gehe mal davon aus, dass fhem dann als root laufen muss und nicht als boxusr99
Es braucht gleich zwei Voraussetzungen:
1. Es muss das Install von
fhem.de sein. Das Install von AVM sperrt fhem in eine chroot-Umgebung ein, aus der die FB-Routinen nicht erreichbar sind.
2. fhem muss unter user root laufen.
=8-)
1. Sowieso :-)
2. Ist der Wiki-Eintrag (//www.fhemwiki.de/wiki/FritzBox:_fhem_unter_root_starten) dazu noch aktuell und es reicht das auskommentieren/löschen des Bereichs oder muss noch zusätzlich ein chown -R root /fhem gemacht werden. (wobei das wahrscheinlich nach einem Neustart von Fhem hinfällig wäre)
Der Grund weshalb ich frage, weil ich schon öfter mal gelesen habe, dass es Probleme gab.
Gruß und danke schon mal!
Hi,
das muss eher ein LinuxSpezi beantworten.
Bei mir hat das Auskommentieren in startfhem mit anschließendem Neustart des Rechners (bei mir FB) gereicht.
Ein chown war nicht erforderlich - wenn ich mich recht erinnere :)
Viel Erfolg,
Uli
Zitat von: UliM schrieb am Mo, 25 Februar 2013 21:49Bei mir hat das Auskommentieren in startfhem mit anschließendem Neustart des Rechners (bei mir FB) gereicht.
Exakt, das hat gereicht. ;-)
1911 root 9344 S perl fhem.pl fhem.cfg
Besten Dank!
ok, post mal Deinen dummy dazu
Hi Zusammen,
ich habe mich eben nachdem du geschrieben hast, erst hingesetzt und muss sagen ich bin gerade selbst etwas aus dem Häuschen! :D
Habe einfach mal anhand von diversen Dingen die ich gelesen habe folgendes Konstrukt gebaut:
# Dummy für Gäste-WLAN
define dummy_guest_wlan dummy
# GuestWLAN an mit FB
define guest_wlanON notify GuestWLAN:on.* {my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 1);;\
$g_wlan=$g_wlan * 1;;\
fhem "set dummy_guest_wlan $g_wlan";;}
# GuestWLAN aus mit FB
define guest_wlanOFF notify GuestWLAN:off.* {my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 0);;\
$g_wlan=$g_wlan * 1;;\
fhem "set dummy_guest_wlan $g_wlan";;}
Das beste daran. Es funktioniert ohne Fehler :D
Kann von den Profis mal bitte jemand drüber schauen, da ich zugeben muss wenig Ahnung bzw. gar keine Ahnung von Perl habe.
EDIT: Achso getriggert wird es beim Drücken einer Taste auf der Fernbedienung mit dem Namen GuestWLAN.
Gruss
sTaN
Okay ich merke grad noch, dass es daran einen Haken gibt. Ich müsste noch ein AT einbauen, wo er den Status abfragt, falls man über die Weboberfläche das Gäste-WLAN aktiviert...
Ich glaub da brauche ich doch Unterstützung.
Heute scheint mein Tag zu sein. :D
Ich konnte es lösen. Hier mein gesamter Code, mit der Bitte sehr kritisch zu prüfen, da ich sowas wie gesagt, das erste Mal gemacht habe!
define GuestWLAN FS20 a3a3 ac
attr GuestWLAN room System
# Dummy für Gäste-WLAN
define Status_Guest_WLAN dummy
# Prüfe Status Gäste WLAN
define Status_Guest_WLAN_AT at +*00:15:00 {my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl r wlan settings/guest_ap_enabled);;\
$g_wlan=$g_wlan* 1;;\
if ($g_wlan != $value{Status_Guest_WLAN}) {fhem "set Status_Guest_WLAN $g_wlan";;}\
}
# GuestWLAN an mit FB (Kanal 5)
define guest_wlanON notify GuestWLAN:on.* {my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 1);;\
$g_wlan=$g_wlan * 1;;\
fhem "set Status_Guest_WLAN $g_wlan";;}
# GuestWLAN aus mit FB (Kanal 5)
define guest_wlanOFF notify GuestWLAN:off.* {my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 0);;\
$g_wlan=$g_wlan * 1;;\
fhem "set Status_Guest_WLAN $g_wlan";;}
Der Trigger sollte spezifisch angepasst werden, je nachdem wie lange ihr Euer Gäste-Netzwerk aktiv habt. Bei mir sind das 30 Minuten und ich frage den Status alle 15 Minuten ab.
Mein ihr das ist ausreichend oder spricht etwas dagegen den Status jede Minute abzufragen?
Gruss
sTaN
Hi,
ich habe selbst noch mal akribisch getestet. Dabei ist mir folgendes aufgefallen:
1. wird bei der obigen Variante nicht die Glühbirne des Schalters GuestWLAN on oder off geschalten
2. gibt es keinen Rückgabewert beim Aktivieren/Deaktivieren des Gäste WLAN
$g_wlan=qx(/usr/bin/ctlmgr_ctl r wlan settings/guest_ap_enabled 1);;\
Deshalb habe ich den Status nun fix gesetzt und noch eine Abfrage eingebaut, die mir auch die Glühbirne korrekt setzt. Der Timer ist hier auf 1 Minute gesetzt:
define GuestWLAN FS20 a3a3 ac
attr GuestWLAN room System
# Dummy für Gäste-WLAN
define Status_Guest_WLAN dummy
# Prüfe Status Gäste WLAN
define Status_Guest_WLAN_AT at +*00:01:00 {my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl r wlan settings/guest_ap_enabled);;\
if ($g_wlan != $value{Status_Guest_WLAN}) {fhem "set Status_Guest_WLAN $g_wlan";;}\
if ($g_wlan == 1) {fhem "set GuestWLAN on";;\
} else {\
if ($g_wlan == 0) {fhem "set GuestWLAN off";;}\
}\
}
# GuestWLAN an mit FB (Kanal 5)
define guest_wlanON notify GuestWLAN:on.* {my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 1);;\
$g_wlan=1;;\
fhem "set Status_Guest_WLAN $g_wlan";;}
# GuestWLAN aus mit FB (Kanal 5)
define guest_wlanOFF notify GuestWLAN:off.* {my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 0);;\
$g_wlan=0;;\
fhem "set Status_Guest_WLAN $g_wlan";;}
Bleiben also dennoch die Fragen offen:
1. Ist dies von der Programmierung ok?
2. Ist es dramatisch, wenn der Timer auf 1 ist, oder sollte dieser anders gewählt werden?
Gruß
Ich habe gerade mal den letzten Stand getestet. Funktioniert problemlos.
Ob man den at jede Minute laufen lassen sollte, kann ich nicht beantworten. Ich habe ihn auf 15 Minuten eingestellt.
Hi,
stellt ihr das bitte ins Wiki?
=8-)
Zitat von: UliM schrieb am Mi, 27 Februar 2013 19:37Hi,
stellt ihr das bitte ins Wiki?
Wenn ihr das für gut befindet, gerne. Muss mich nur noch registrieren lassen. ;)
Hallo,
habe bei mir noch etwas im der Status-Code geändert:
if ($g_wlan == 1) {fhem "setstate GastWLAN on";;\
} else {\
if ($g_wlan == 0) {fhem "setstate GastWLAN off";;}\
}\
}
durch setstate wird nur der Status geändert und nicht GastWLAN an- aus geschaltet.
Grund: Habe bei der FritzBox automatisch deaktivieren nach 4 Stunden eingestellt.
Durch fhem "set GastWLAN on" würde diese Einstellung immer überschrieben.
VG
Olaf
Perfekt, danke!
Ich hatte es folgendermaßen geändert, weil ich auch gesehen habe, dass er bei mir alle 30 Minuten den WLAN Status off gesetzt hat.
if ($g_wlan == 1 && Value("GuestWLAN") eq "off") {fhem "set GuestWLAN on";;\
} else {\
if ($g_wlan == 0 && Value("GuestWLAN") eq "on") {fhem "set GuestWLAN off";;}\
Aber deine Variante scheint mir wesentlich besser!
Gruß und danke!
Hallo zusammen,
ich hab das noch ein wenig geändert.
Wer das nur in der Webansicht benötigt kann das so kopieren. Hoffe das ist soweit korrekt.
Ich hab keine Fernbedienung die das schaltet.
Vielen Dank für die Vorlage!!
Klappt bisher super!!
define Gast_Wlan dummy
attr Gast_Wlan devStateIcon An:FS20.on Aus:FS20.off
attr Gast_Wlan room Wohnzimmer
attr Gast_Wlan setList on off
attr Gast_Wlan webCmd on:off
define Status_Gast_WLAN_AT at +*00:01:00 {\
my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl r wlan settings/guest_ap_enabled);;\
if ($g_wlan = 1) {fhem "setstate Gast_Wlan on"};;\
if ($g_wlan = 0) {fhem "setstate Gast_Wlan off"};;\
}
#Gast_WLAN on
define notify_Gast_Wlan_on notify Gast_Wlan:on {\
my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 1);;\
}
#Gast_WLAN off
define notify_Gast_Wlan_off notify Gast_Wlan:off {\
my $g_wlan="";;\
$g_wlan=qx(/usr/bin/ctlmgr_ctl w wlan settings/guest_ap_enabled 0);;\
}
EIn herzerfrischendes Moim Moin
Ich weiss, dass dieser Thread schon ziemlich alt ist aber ich habe hierzu eine Frage:
a) In welche Datei soll dieses Snipplett eigentlich eingefuegt werden?
Zitat von: sTaN am 26 Februar 2013, 22:09:41
define Status_Guest_WLAN_AT at +*00:01:00 {my $g_wlan="";;\
b) Wieso bekome ich staendig ein Syntax error bei der obigen Zeile.
Ich wuerde diese Funktion gerne nutzen, stehe aber irgendwie auf dem Schlauch wie ich diese zum Laufen kriege bzw. diese in den FloorPlan integriert kriege.
Danke fuer Eure Hilfe!
Gruss
Sailor
ZitatEIn herzerfrischendes Moim Moin
Moin Dittsche, beim Essen spricht man nicht und knöpf endlich mal den Bademantel ordentlich zu! ;)
zu a: In die fhem.cfg.
zu b: Weil mindestens die abschließende geschweifte Klammer fehlt.
... wenn du das Bier aus hast, lies doch mal das Einsteiger- PDF (http://fhem.de/Heimautomatisierung-mit-fhem.pdf)! Dann ist die "Große Freiheit" zumindest bei fhem nicht mehr weit. 8)
Nich hauen! Und weg... ;D
Frank
Also ich habe das heute mal in meine Konfiguration übernommen, aber funktionieren tut es leider nicht.
Der AT und notify laufen zwar, aber scheinbar wird das Skript nicht ausgeführt.
Auf der Konsole funktioniert es einwandfrei. Ideen?
Hallo Zusammen,
Das schalten klappt gut, nur der AT Notify funktioniert nicht.
-----
2014.03.23 16:08:22 3: Status_Gast_WLAN_AT: Unknown command {
, try help.
Unknown command $g_wlan=qx(/usr/bin/ctlmgr_ctl, try help.
Unknown command if, try help.
Unknown command if, try help.
Unknown command }, try help.
-----
Leider kann ich nicht programmieren und komme hier nicht weiter. Jemand ne Idee?
Poste mal deinen Notify Befehl!
Ich habe den Code von AK-868 4 Posts drüber verwendet. Der AT Befehl führt jede Minute dein Befehl auf der Console aus und soll den Dummy mit setstate setzen.
Du musst den Code direkt in der fhem.cfg eingeben und nicht im Webfrontend!
:-) das ist mir schon klar... ich hab jetzt nochmal rumprobiert. Der Code erkennt wenn das GastWlan in der FB eingeschaltet wird. Der Dummy wird dann auf on gesetzt. nur das ausschalten scheint er nicht mitzubekommen.
Logfile und Eventmonitor kontrolliert?
Log mit verbose5
2014.03.23 19:49:25 5: exec at command Status_Gast_WLAN_AT
2014.03.23 19:49:25 5: redefine at command Status_Gast_WLAN_AT as +*00:01:00 {
my $g_wlan="";
$g_wlan=qx(/usr/bin/ctlmgr_ctl r wlan settings/guest_ap_enabled);
if ($g_wlan = 1) {fhem "setstate Gast_Wlan on"};
if ($g_wlan = 0) {fhem "setstate Gast_Wlan off"};
}
im Eventmon gibt es keinen Eintrag
Hab jetzt den Code von sTAN verwendet, klappt einwandfrei :-)