• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[Idee] "Intelligentes" Wecker Script

  • Ersteller Soul Monkey
  • Erstellt am

Soul Monkey

Gast
Ich hatte kürzlich bei Mac OS X Hints eine Idee für ein interessantes Wecker Script gelesen.

Es ging darum das mittels Salling Clicker oder BluePhone Elite geprüft wird ob man sich überhaupt daheim befindet (wenn das Telefon daheim ist man vermutlich selbst auch daheim) und dann wird das Wecker Script ausgeführt oder eben nicht.

Bei BluePhone Elite gibt es die Möglichkeit eine AppleScript Aktion auszuführen wenn man sich in Reichweite befindet oder wenn man diese verlässt, der Autor der Idee meinte er lässt je nachdem entweder true oder false in eine Datei schreiben und fragt den Status im Wecker Script dann ab.

Der Autor meldet sich nicht, daher frage ich mal hier nach ob sich jemand mit der Umsetzung auskennt, wäre sicherlich für einige Leute hilfreich.

Den ganzen Artikel bei Mac OS X Hints findet ihr hier, den speziellen Beitrag hier.

Mit iCal könnte man das Script ja zu einer beliebigen Zeit starten lassen, nach der Abfrage des Status legt sich der Mac entweder wieder schlafen oder startet iTunes und spielt Musik.
 

m00gy

Gast
Das ist ja prinzipiell eine nette Idee, aber ich frage mich doch, ob der Einsatz als "Wecker" wirklich sinnvoll ist, denn jedes Handy, das Bluetooth besitzt (und jedes, das das nicht besitzt) hat doch heute sowieso eine Weckfunktion ;) Wenn ich also die einsetze, spare ich mir den restlichen Aufwand.

Interessant wäre, ob man die Funktion dafür nutzen könnte, dass alle Rechner im Haus sich automatisch runterfahren, wenn ich das Haus verlasse. Oder so. Oder anders ;)
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
...die Abfrage, ob sich das Telefon im Umkreis befindet kannst du auch einfach per Command-Line erledigen, von Marc Liyanage gibts hierfür das Tool „bluelist“ (hatte ich auch in diesem Zusammenhang schon mal erwähnt).

Bei der Umsetzung in AppleScript kann ich leider nicht weiterhelfen.
 

Soul Monkey

Gast
Da sowohl Salling Clicker und auch BluePhone Elite das betreffende Telefon unterstützen müssen (in meinem Fall wird das Motorola Razr nur von BluePhone Elite unterstützt) und ich eigentlich auf dem Mac keine SMS tippen oder Anrufe entgegen nehmen muss wäre bluelist sicher interessant. Zudem kosten die anderen beiden Programme etwas, ob man nur für eine Statusabfrage Geld ausgeben will ist ja auch wieder so eine Sache.

Die Idee von m00gy finde ich auch interessant, ein Aufwachen aus dem Ruhestand samt gesprochener Willkommensmeldung wäre für die Zukunft interessant.
 

pete

Gast
Hallo Soul Monkey,

hier die Scripts. Um es etwas übersichtlicher zu machen, habe ich die Schalterdatei selbst zum "Schalter" gemacht. Script 1 erzeugt die Datei, Script 2 löscht die Datei, Script 3 startet iTunes, wenn die Datei vorhanden ist, ansonsten legt es den Mac schlafen.

Die Schalterdatei nennt sich "PhoneIsAtHome" und wird unter /Users/Shared gespeichert.

Speichere die Texte mit "Skripteditor" als Programm ohne Startdialog.

1_makeFile.app

Code:
property fileLocation : (path to shared documents)
property fileName : "PhoneIsAtHome"

on run
	if not getFileExists(fileLocation, fileName) then makeFile(fileLocation, fileName)
end run

to getFileExists(fileLocation, fileName)
	tell application "Finder" to return (file ((fileLocation as string) & fileName) exists)
end getFileExists

on makeFile(fileLocation, fileName)
	tell application "Finder" to make new document file at (fileLocation as alias) with properties {name:fileName}
end makeFile

2_deleteFile.app

Code:
property fileLocation : (path to shared documents)
property fileName : "PhoneIsAtHome"

on run
	if getFileExists(fileLocation, fileName) then deleteFile(fileLocation, fileName)
end run

to getFileExists(fileLocation, fileName)
	tell application "Finder" to return (file ((fileLocation as string) & fileName) exists)
end getFileExists

on deleteFile(fileLocation, fileName)
	tell application "Finder" to delete (((fileLocation as string) & fileName) as alias)
end deleteFile

3_doSomething.app

Code:
property fileLocation : (path to shared documents)
property fileName : "PhoneIsAtHome"

on run
	if getFileExists(fileLocation, fileName) then
		doSomething()
	else
		goToSleep()
	end if
end run

to getFileExists(fileLocation, fileName)
	tell application "Finder" to return (file ((fileLocation as string) & fileName) exists)
end getFileExists

on doSomething()
	get volume settings
	set sysVol to output volume of the result
	if ((sysVol / 100) * 7) < 1 then set volume 1
	tell application "iTunes"
		activate
		set myVol to sound volume
		if myVol < 20 then set myVol to 20
		set sound volume to 0
		play
		repeat with i from 0 to myVol
			set sound volume to i
			delay 0.1
		end repeat
	end tell
end doSomething

on goToSleep()
	tell application "System Events" to sleep
end goToSleep

Gruß, Pete
 
  • Like
Reaktionen: 1 Person

Soul Monkey

Gast
Hallo Pete,

wie schon in der PN gesagt, danke für deine Arbeit, ich hoffe ich kann die Scripts morgen testen und dann Rückmeldung geben!

Soul Monkey
 

pete

Gast
Soul Monkey schrieb:
wie schon in der PN gesagt, danke für deine Arbeit, ich hoffe ich kann die Scripts morgen testen und dann Rückmeldung geben!

Die Zeilen für iTunes unter "doSomething" habe ich übrigens aus dem verlinkten Beitrag bei macosxhints kopiert.

Danke an den Autor callefjant.

Gruß, Peter
 

pete

Gast
Mir fällt gerade auf, dass in der Syntax noch einiges korrigierbar wäre. Da Du Dich aber nicht meldest, gehe ich davon aus, dass alles perfekt funktioniert.

Freut mich, helfen zu können.

Gruß, Pete
 

Soul Monkey

Gast
Hallo pete, leider bin ich noch nicht dazu gekommen das Script zu Testen, jetzt ist Wochenende und ich werde das heute oder morgen testen können.
 

Soul Monkey

Gast
Hallo pete,

deine Skripte funktionieren wunderbar, wenn ich sie manuell ausführe, BluePhone Elite scheint allerdings Probleme damit zu haben zu erkennen ob mein Telefon da ist oder nich und führt daher die AppleScripts nicht aus, muss ich mir genauer ansehen woran das liegt. :)
 

pete

Gast
Soul Monkey schrieb:
BluePhone Elite scheint allerdings Probleme damit zu haben zu erkennen ob mein Telefon da ist oder nich und führt daher die AppleScripts nicht aus, muss ich mir genauer ansehen woran das liegt. :)

Wenn ich es hier im Thread richtig gelesen habe, braucht BluePhone Elite möglicherweise eine Datei, in der der Wahrheitswert hart geschrieben steht. Prüfe das nochmal. Wenn es so ist, poste ich gerne die read/write-Funktionen für Dateien.
 

Soul Monkey

Gast
Das mit TRUE und FALSE hatte der Autor nur verwendet damit er einen Wert auslesen kann, bei dir wird eine Datei geschrieben oder geloescht was irgendwo auf das gleiche hinauslaeuft oder?

Ich denke das liegt einfach an BluePhone Elite, ist ja auch Shareware vielleicht funktioniert die Reichweitenerkennung in der Shareware garnicht, obwohl ich darauf keinen Hinweis gefunden habe.

Im Programm selbst stellt man ein welches AppleScript gestartet werden soll wenn sich das Telefon in Reichweite befindet und welches AppleScript gestartet werden soll wenn man die Reichweite verlaesst. Was nun in den AppleScripts drinnen steht, ist BluePhone Elite glaube ich egal.
 

Firemac

Querina
Registriert
09.10.08
Beiträge
181
klappt das ganze bei jemandem?

könnte man da mal so ein richtiges tutorial machen? wäre interessant