1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

[Idee] "Intelligentes" Wecker Script

Dieses Thema im Forum "AppleScript" wurde erstellt von Soul Monkey, 25.07.06.

  1. 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.
     
  2. m00gy

    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 ;)
     
  3. bezierkurve

    bezierkurve Danziger Kant

    Dabei seit:
    12.06.05
    Beiträge:
    3.861
    ...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.
     
  4. 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.
     
  5. pete

    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
     
    1 Person gefällt das.
  6. 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
     
  7. pete

    pete Gast

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

    Danke an den Autor callefjant.

    Gruß, Peter
     
  8. pete

    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
     
  9. 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.
     
  10. 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. :)
     
  11. pete

    pete Gast

    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.
     
  12. 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.
     
  13. Firemac

    Firemac Querina

    Dabei seit:
    09.10.08
    Beiträge:
    181
    klappt das ganze bei jemandem?

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

Diese Seite empfehlen