Programm bei Verbindung mit iPhone-HotSpot ausführen

Angry Onion

Mitglied
Thread Starter
Dabei seit
14.08.2014
Beiträge
25
Reaktionspunkte
1
Guten Morgen,

ich habe mich bis jetzt noch nicht groß mit AppleScripting bzw. Automator beschäftigt, habe aber jetzt einen ersten Anwendungsfall.

Ich nutze öfters das iPhone als HotSpot für das MacBook und möchte, dass immer wenn eine Verbindung zu einem iPhone-HotSpot hergestellt wird, das Programm "Bandwith+" ausgeführt wird, um mir den Datenverbrauch der Session in der Menu Bar anzuzeigen. Wenn dann die Verbindung wieder getrennt wird, soll das Programm wieder beendet werden.

Leider weiß ich weder, ob ich für diesen Anwendungsfall ein Programm, einen Dienst, ein AppleScript oder sonst was benötige, noch wie ich auf das Event (Verbindung zu HotSpot herstellen/trennen) reagieren kann.


Ich hoffe man kann mir da helfen,

Gruß Yannic
 
Wenn du so ein Script programmieren würdest, müsste das dann ja 24/7 laufen, um immer zu überprüfen, ob der Hotspot jetzt gerade verbunden ist.

Ich würde mir vielleicht ein Script basteln, dass den Hotspot verbindet und in einem Atemzug auch das Programm startet. (Keine Ahnung ob das geht, aber erscheint mir die sinnvollere Variante. Musst halt mal ein bisschen googlen.)
 
Naja, ich dachte es gibt vielleicht irgendwas, dass das Scipt nur dann ausführt, wenn die Verbindung hergestellt wird. Ein
Event Listener oder so etwas auf Systemebene.

Würde den Hotspot schon gerne weiterhin über die Menüleiste aktivieren.
 
Hi,

am einfachsten ist es wohl du erstellst dir einen launchd Agenten der alle x Sekunden ausgeführt wird und ein Applescript ausführt.

Wie ein launchd erstellt wird, wird hier im Forum oft erklärt, aber auch hier findet sich eine gute Anleitung.

Du kannst zum Beispiel folgendes Script ausführen lassen:

Code:
[FONT="Verdana"][size=2][b]set[/b] [color=#3F7F00]myHotspot[/color] [b]to[/b] "DeinHotspotName"
[b]set[/b] [color=#3F7F00]tmp[/color] [b]to[/b] [color=#3F7F00]wifiName[/color]()
[b]if[/b] [color=#3F7F00]tmp[/color] = [color=#3F7F00]myHotspot[/color] [b]then[/b]
	[b]tell[/b] [color=#0000FF][i]application[/i][/color] "Bandwith+" [b]to[/b] [color=#0000FF][b]activate[/b][/color]
[b]else[/b]
	[b]tell[/b] [color=#0000FF][i]application[/i][/color] "Bandwith+" [b]to[/b] [color=#0000FF][b]quit[/b][/color]
[b]end[/b] [b]if[/b]
[b]on[/b] [color=#3F7F00]wifiName[/color]()
	[color=#0016B0][b]do shell script[/b][/color] ¬
		"/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport --getinfo | grep -w 'SSID' | sed s/' *SSID: '//"
[b]end[/b] [color=#3F7F00]wifiName[/color][/size][/FONT]

Dieses Script fragt den aktuellen Namen des verbundenen WLAN ab (funktioniert auch bei Hotspot) und startet oder beendet eben Dein Programm.

Grüße

Micha
 
Hi,

am einfachsten ist es wohl du erstellst dir einen launchd Agenten der alle x Sekunden ausgeführt wird und ein Applescript ausführt.

Wie ein launchd erstellt wird, wird hier im Forum oft erklärt, aber auch hier findet sich eine gute Anleitung.

Du kannst zum Beispiel folgendes Script ausführen lassen:

Code:
[FONT=Verdana][SIZE=2][B]set[/B] [COLOR=#3F7F00]myHotspot[/COLOR] [B]to[/B] "DeinHotspotName"
[B]set[/B] [COLOR=#3F7F00]tmp[/COLOR] [B]to[/B] [COLOR=#3F7F00]wifiName[/COLOR]()
[B]if[/B] [COLOR=#3F7F00]tmp[/COLOR] = [COLOR=#3F7F00]myHotspot[/COLOR] [B]then[/B]
    [B]tell[/B] [COLOR=#0000FF][I]application[/I][/COLOR] "Bandwith+" [B]to[/B] [COLOR=#0000FF][B]activate[/B][/COLOR]
[B]else[/B]
    [B]tell[/B] [COLOR=#0000FF][I]application[/I][/COLOR] "Bandwith+" [B]to[/B] [COLOR=#0000FF][B]quit[/B][/COLOR]
[B]end[/B] [B]if[/B]
[B]on[/B] [COLOR=#3F7F00]wifiName[/COLOR]()
    [COLOR=#0016B0][B]do shell script[/B][/COLOR] ¬
        "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport --getinfo | grep -w 'SSID' | sed s/' *SSID: '//"
[B]end[/B] [COLOR=#3F7F00]wifiName[/COLOR][/SIZE][/FONT]

Dieses Script fragt den aktuellen Namen des verbundenen WLAN ab (funktioniert auch bei Hotspot) und startet oder beendet eben Dein Programm.

Grüße

Micha

Das klingt schonmal vielversprechend! Habe jetzt auch soweit alles nachvollzogen und mir die Ausgabe von airport --getinfo im Terminal angeschaut.
Wollte das jetzt mit dem Skript-Editor umsetzen, da kommt jedoch mit Vermerk auf den Punkt im Pfad (Apple80211.framework) der Syntaxfehler "Zeilenende erwartet, aber unbekanntes Token gefunden."

Woran liegt das?

Gruß Yannic
 
Ein
Event Listener oder so etwas auf Systemebene.

Existiert, ja. Wenn Du €3,60 zur Hand hast, wäre EventScripts das Einfachste – manuell mit ASOC ließe sich das ansonsten auch programmieren.


Network Events

These events let you trigger scripts when your network configuration changes. EventScripts uses its own dedicated external IP resolution service, as well as that supplied by Akamai to detect when your real world IP address changes for the External IP changed event.
Network
Events
AppleScript
Record Properties
Shell Script
Arguments
Internet became
available
trigger
scriptPath
tagName
$1
$2
$3
Internet became
unavailable
trigger
scriptPath
tagName
$1
$2
$3
External IP changedtrigger
previousAddress
ipAddress
scriptPath
tagName
$1
$2
$3
$4
$5
Wireless network changedtrigger
SSID
previousSSID
BSSID
scriptPath
tagName
$1
$2
$3
$4
$5
$6

Dann sparst Du dir das Polling alle x Sekunden.
 
vermute mal das dann ein " fehlt.

hast du das Script genauso in den Scripteditor eingefügt?
 
Zurück
Oben Unten