WLAN reaktivieren, wenn Netz wieder verfügbar ist

M

mindsuk

Mitglied
Thread Starter
Dabei seit
09.01.2007
Beiträge
60
Reaktionspunkte
0
Hallo,

ich habe mir bereits einen Wolf im Netz gesucht und in englischen Foren diverse Ansätze egfunden, die ich aber leider nicht auf mich adaptieren konnte. Hinzu kommt, dass ich mich nicht mit AppleScript auskenne.
Es wäre super nett, wenn mir jemand aushelfen könnte.

Da ich nachts meine Fritzbox mit einer Schaltuhr ausschalte, aber oft mein Mac noch läuft (da ich regelmäßig Fotos im Hintergrund in einem Bearbeitungsablauf durchlaufen lasse), fehlt mir morgens leider immer der Reconnect der Wifi-Verbindung mit der Fritzbox.
Ich bin auf der Suche nach einem Applescript, welches regelmäßig die WLAN Verbindung prüft. Sobald keine Verbindung mehr besteht, soll das Script einen Reconnect versuchen, bis das Netz wieder verfügbar ist.

Bitte um Hilfe! Danke!
 
es würde auch reichen, wenn du die FB über die W-Lan - Einstellungen das W-Lan Zeitgesteuert einstellst/ deaktivierst, dann schaltet die FB in den Stromsparmodus und deine "probleme" sind weg ;) das reicht völlig aus

oder gibt es einen besonderen Grund, dass du sie mit einer Zeitschaltuhr komplett abschaltest ?
 
Du weisst aber schon, dass wenn du die FB vom Strom trennst es das selbe ist, als würdest du einem PC im Betrieb den Strom weg nehmen?

Wie lange die Box das mit macht, ist dann fast wie ein Glücksspiel. Würde in dem Fall auch dringend zum Eco-Modus raten.
 
Okay, versuche ich es damit. Danke!
 
Du weisst aber schon, dass wenn du die FB vom Strom trennst es das selbe ist, als würdest du einem PC im Betrieb den Strom weg nehmen?
...
Das ist so nicht richtig.
Kannst Du mal genauer erläutern, warum Du dieser Ansicht bist und worin genau Du das Problem siehst?

Mich würde außerdem interessieren, was Du mit folgender Aussage meinst?
...
Wie lange die Box das mit macht, ist dann fast wie ein Glücksspiel
...
Was genau soll denn mit der Box passieren, wenn sie es nicht mehr "mitmacht"?
 
Du weisst aber schon, dass wenn du die FB vom Strom trennst es das selbe ist, als würdest du einem PC im Betrieb den Strom weg nehmen?

Prinzipiell ist es richtig, dass es für ein Betriebssystem besser ist, es sauber zu beenden.
Die Fritzbox muss aber auch ein "Stecker ziehen" ohne Folgen mitmachen können - einen andern Weg sie abzuschalten gibt es nämlich gar nicht. Sie hat keinen Schalter und in der Weboberfläche findet sich euch kein Punkt "Ausschalten".
 
Prinzipiell ist es richtig, dass es für ein Betriebssystem besser ist, es sauber zu beenden.
Aber nur dann, wenn durch das "saubere Beenden" bestimmte Vorgänge ausgelöst werden, wie z. B. Speichern von Benutzereinstellungen auf der Festplatte, Beenden von laufenden Programmen u. U. mit Speicherung von Fensterpositionen, Einstellungen, Daten etc., Abmelden von Serververbindungen, Abschalten von interner und externer Hardware in einer bestimmten Reihenfolge, Schreiben von Pufferspeichern etc.

Das ist bei der Fritzbox nicht der Fall.
 
...ich bin mir auch sicher, dass die FB das locker vertragen könnte...außer das Netzteil, denn das wird unter Umständen als erstes den geist aufgeben. Ich schalte nachts viele Geräte mit Schaltuhren aus, um einfach in der heutigen Zeit auf die hohen Stromkosten zu reagieren.
An meiner Fritzbox hängt aus Mangel an RJ45 Buchsen ein kleiner Switch, der mit der Schaltuhr ebenfalls ausgeschaltet wurde.

Also falls mir doch noch jemand mit dem Applescript helfen könnte, wäre ich sehr dankbar.
 
Ungetestet:

Code:
[B]set [/B][COLOR=#4F8F00][FONT=Verdana]mySSID [/FONT][/COLOR][B]to[/B][FONT=Verdana] "Netzwerkname"
[/FONT][FONT=Verdana][B]set[/B] [COLOR=#4f8f00]myPassword[/COLOR] [B]to[/B] "Netzwerkpasswort"[/FONT]
[FONT=Verdana]
[/FONT]
[COLOR=#0433FF][FONT=Verdana][COLOR=#000000][B]on[/B] [/COLOR][B]idle[/B][/FONT][/COLOR]
[FONT=Verdana]    [B]set[/B] [COLOR=#4f8f00]currentSSID[/COLOR] [B]to[/B] ([COLOR=#012fbe][B]do shell script[/B][/COLOR] "airport -I|awk 'NR == 13 {print $2}'") [COLOR=#5e6161]--aktuelle SSID abfragen[/COLOR][/FONT]
[FONT=Verdana]    [B]try[/B][/FONT]
[FONT=Verdana]        [B]set[/B] [COLOR=#4f8f00]availableSSIDs[/COLOR] [B]to[/B] [COLOR=#0433ff][I]paragraphs[/I][/COLOR] 2 [B]thru[/B] -1 [B]of[/B] ([COLOR=#012fbe][B]do shell script[/B][/COLOR] "airport -s|grep -Eo '^  .{30,30}'|sed 's/^ *//g'") [COLOR=#5e6161]--verfügbare SSIDs abfragen[/COLOR][/FONT]
[FONT=Verdana]    [B]on[/B] [B]error[/B][/FONT]
[COLOR=#4F8F00][FONT=Verdana][COLOR=#000000]        [B]set[/B] [/COLOR]availableSSIDs[COLOR=#000000] [B]to[/B] {}[/COLOR][/FONT][/COLOR]
[FONT=Verdana]    [B]end[/B] [B]try[/B][/FONT]
[COLOR=#5E6161][FONT=Verdana][COLOR=#000000]    [B]if[/B] [/COLOR][COLOR=#4f8f00]currentSSID[/COLOR][COLOR=#000000] = "" [B]then[/B] [/COLOR]--wenn nicht verbunden und Netzwerk verfügbar dann[/FONT][/COLOR]
[FONT=Verdana]        [B]if[/B] [COLOR=#4f8f00]availableSSIDs[/COLOR] [B]contains[/B] [COLOR=#4f8f00]mySSID[/COLOR] [B]then[/B][/FONT]
[FONT=Verdana]            [COLOR=#012fbe][B]do shell script[/B][/COLOR] "networksetup -setairportnetwork en0 " & [COLOR=#812fdc]quoted form[/COLOR] [B]of[/B] [COLOR=#4f8f00]mySSID[/COLOR] & [COLOR=#812fdc]space[/COLOR] & [COLOR=#812fdc]quoted form[/COLOR] [B]of[/B] [COLOR=#4f8f00]myPassword[/COLOR] [COLOR=#5e6161]--Netzwerk verbinden[/COLOR][/FONT]
[COLOR=#5E6161][FONT=Verdana][COLOR=#000000]            [B]return[/B] 1 [/COLOR]--in 1s erneut starten[/FONT][/COLOR]
[FONT=Verdana]        [B]end[/B] [B]if[/B][/FONT]
[FONT=Verdana]    [B]end[/B] [B]if[/B][/FONT]
[COLOR=#5E6161][FONT=Verdana][COLOR=#000000]    [B]return[/B] 10 [/COLOR]--in 10s erneut starten[/FONT][/COLOR]
[B]end [/B][COLOR=#0433FF][FONT=Verdana][B]idle[/B][/FONT][/COLOR]

Das Skript muss als Programm mit der Option "Nach run-Handler anzeigen" gespeichert werden. Es prüft alle 10s, ob das WLAN erreichbar und verbunden ist, wenn nicht wird im 1s Abstand ein Verbindungsversuch gestartet.

Das WLAN-Passwort muss im Skript gespeichert werden und ist daher mit dieser Methode nicht sicher. Die sichere Variante wäre es für dieses Skript einen eigenen Schlüsselbund anzulegen, von dem sich das Skript das Passwort holt. Wie das geht wurde hier im Forum bereits geklärt. Wenn dich das nicht stört, würde ich es so lassen.
 
Hallo Pill, Danke für Deine Unterstützung.

Bei mir kommt die Fehlermeldung: Die Variable "mySSID" ist nicht definiert.

LG
 
...ich bin mir auch sicher, dass die FB das locker vertragen könnte...außer das Netzteil, denn das wird unter Umständen als erstes den geist aufgeben. Ich schalte nachts viele Geräte mit Schaltuhren aus, um einfach in der heutigen Zeit auf die hohen Stromkosten zu reagieren.
An meiner Fritzbox hängt aus Mangel an RJ45 Buchsen ein kleiner Switch, der mit der Schaltuhr ebenfalls ausgeschaltet wurde.

Die Ersparnis dürfte aber sehr gering sein, wahrscheinlich würde man mit der Anschaffung eines neuen Kühlschranks/Waschmaschine/... deutlich mehr sparen...

Dir ist aber auch klar, dass mit dem kompletten Trennen vom Netz auch kein Telefon mehr möglich ist? Das läuft ja heutzutage alles über VOIP.
Wäre vielleicht mal für einen Notfall, in dem man jemanden erreichen muss oder erreicht werden muss durchaus eine Überlegung wert...
 
Fehler behoben:

Code:
[B]property [/B][COLOR=#4F8F00][FONT=Verdana]mySSID[/FONT][/COLOR][FONT=Verdana] : "Netzwerkname"
[/FONT][FONT=Verdana][B]property[/B] [COLOR=#4f8f00]myPassword[/COLOR] : "Netzwerkpasswort"[/FONT]
[FONT=Verdana]
[/FONT][COLOR=#0433FF][FONT=Verdana][COLOR=#000000][B]on[/B] [/COLOR][B]idle[/B][/FONT][/COLOR]
[FONT=Verdana]    [B]set[/B] [COLOR=#4f8f00]currentSSID[/COLOR] [B]to[/B] ([COLOR=#012fbe][B]do shell script[/B][/COLOR] "[/FONT][COLOR=#000000]/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/[/COLOR][FONT=Verdana]airport -I|awk 'NR == 13 {print $2}'") [COLOR=#5e6161]--aktuelle SSID abfragen[/COLOR][/FONT]
[FONT=Verdana]    [B]try[/B][/FONT]
[FONT=Verdana]        [B]set[/B] [COLOR=#4f8f00]availableSSIDs[/COLOR] [B]to[/B] [COLOR=#0433ff][I]paragraphs[/I][/COLOR] 2 [B]thru[/B] -1 [B]of[/B] ([COLOR=#012fbe][B]do shell script[/B][/COLOR] "[/FONT][COLOR=#000000]/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/[/COLOR][FONT=Verdana]airport -s|grep -Eo '^  .{30,30}'|sed 's/^ *//g'") [COLOR=#5e6161]--verfügbare SSIDs abfragen[/COLOR][/FONT]
[FONT=Verdana]    [B]on[/B] [B]error[/B][/FONT]
[COLOR=#4F8F00][FONT=Verdana][COLOR=#000000]        [B]set[/B] [/COLOR]availableSSIDs[COLOR=#000000] [B]to[/B] {}[/COLOR][/FONT][/COLOR]
[FONT=Verdana]    [B]end[/B] [B]try[/B][/FONT]
[COLOR=#5E6161][FONT=Verdana][COLOR=#000000]    [B]if[/B] [/COLOR][COLOR=#4f8f00]currentSSID[/COLOR][COLOR=#000000] = "" [B]then[/B] [/COLOR]--wenn nicht verbunden und Netzwerk verfügbar dann[/FONT][/COLOR]
[FONT=Verdana]        [B]if[/B] [COLOR=#4f8f00]availableSSIDs[/COLOR] [B]contains[/B] [COLOR=#4f8f00]mySSID[/COLOR] [B]then[/B][/FONT]
[FONT=Verdana]            [COLOR=#012fbe][B]do shell script[/B][/COLOR] "[/FONT][FONT=Verdana]networksetup -setairportnetwork en0 " & [COLOR=#812fdc]quoted form[/COLOR] [B]of[/B] [COLOR=#4f8f00]mySSID[/COLOR] & [COLOR=#812fdc]space[/COLOR] & [COLOR=#812fdc]quoted form[/COLOR] [B]of[/B] [COLOR=#4f8f00]myPassword[/COLOR] [COLOR=#5e6161]--Netzwerk verbinden[/COLOR][/FONT]
[COLOR=#5E6161][FONT=Verdana][COLOR=#000000]            [B]return[/B] 1 [/COLOR]--in 1s erneut starten[/FONT][/COLOR]
[FONT=Verdana]        [B]end[/B] [B]if[/B][/FONT]
[FONT=Verdana]    [B]end[/B] [B]if[/B][/FONT]
[COLOR=#5E6161][FONT=Verdana][COLOR=#000000]    [B]return[/B] 10 [/COLOR]--in 10s erneut starten[/FONT][/COLOR]
[B]end [/B][COLOR=#0433FF][FONT=Verdana][B]idle[/B][/FONT][/COLOR]
 
Zuletzt bearbeitet:
Guten Morgen!

Die Fehlermeldung kommt nicht mehr, aber es tut sich offenbar nichts. Wenn ich mit keinem W-Lan verbunden bin, bleibt das so...
 
Öffne mal das Terminal und teste folgenden Befehl:

Code:
networksetup -setairportnetwork en0 '[I]Netzwerkname[/I]' '[I]Passwort[/I]'

Es kann sein, dass du en0 mit en1 oder en2 ersetzen musst. Das kannst du herausfinden, indem du folgendes eingibst:

Code:
[FONT=Menlo]networksetup -listnetworkserviceorder[/FONT]
 
Hallo Pill,

der Befehlt tut was er soll und ja, es war bei mir en1!
Aber das Script tut noch immer nichts..
 
Dann poste bitte mal noch die Ausgabe von folgenden Befehlen, während du mit dem WLAN verbunden bist:

Code:
[FONT=Menlo]/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/[/FONT][COLOR=#000000][FONT=Verdana]airport -I|awk 'NR == 13 {print $2}'[/FONT][/COLOR]
Code:
[FONT=Menlo]/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/[/FONT][COLOR=#000000][FONT=Verdana]airport -s|grep -Eo '^  .{30,30}'|sed 's/^ *//g'[/FONT][/COLOR]

Der erste Befehl sollte deinen Netzwerknamen ausgeben, der zweite alle verfügbaren Netzwerke.

Ist in deinem Netzwerknamen ein Leerzeichen?
 
Gern!

iMac:~ tino$ airport -I|awk 'NR == 13 {print $2}'
-bash: airport: command not found
iMac:~ tino$




iMac:~ tino$ airport -s|grep -Eo '^ .{30,30}'|sed 's/^ *//g'
-bash: airport: command not found
iMac:~ tino$
 
...mein Netzwerk besteht nur aus Punkten und lautet: ".........."

Ist das ein Problem?
 
Ich habe bei den beiden Befehlen nochmal den vollen Pfad hinzugefügt. Bitte probier es damit nochmal.
 
Ja, sieht jetzt besser aus!

iMac:~ tino$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I|awk 'NR == 13 {print $2}'
..........
iMac:~ tino$



iMac:~ tino$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s|grep -Eo '^ .{30,30}'|sed 's/^ *//g'
SSID
BIGONE2
..........
Power WLAN
WLAN-715653
iMac:~ tino$
 
Zurück
Oben Unten