Automation: Difference between revisions

From Medien Wiki
mNo edit summary
mNo edit summary
 
(10 intermediate revisions by the same user not shown)
Line 5: Line 5:


[[File:Zeitschaltuhr.jpg|300px]]
[[File:Zeitschaltuhr.jpg|300px]]
left: a digital one, right: an analogue one
== Raspberry Pi ==
Very useful inexpensive Linux Computer you can use for all kinds of scenarios. For example to play back a video in an exhibition: [[/RaspberryPi/]]


== Startup and shutdown ==
== Startup and shutdown ==
Line 12: Line 19:


[[File:Energie sparen.png]]
[[File:Energie sparen.png]]
It is a good idea to tick the box that the computer will restart after a power failure.


[[File:Zeitplan.png]]
[[File:Zeitplan.png]]
Line 29: Line 38:
[http://www.osxsoft.net ScreenUtil] lets you set the screen resolution over the command line.
[http://www.osxsoft.net ScreenUtil] lets you set the screen resolution over the command line.
=== launchd ===
=== launchd ===
launchd is the service in OS X that replaces the UNIX cron init and at commands [http://plist.spotmac.de web based lauchd editor]
launchd is the service in OS X that replaces the UNIX <tt>cron, init</tt> and <tt>at</tt> commands. Put the configuration files into <tt>~/Library/LaunchAgents</tt>


== AppleScript ==
== AppleScript ==
Line 37: Line 46:
-- wenn nicht Mittwoch, Samstag oder Sonntag it, dann schalte den rechner wieder aus.
-- wenn nicht Mittwoch, Samstag oder Sonntag it, dann schalte den rechner wieder aus.


set closed_Days to {Monday, Tuesday, Thursday, Friday}
set closedDays to {Monday, Tuesday, Thursday, Friday}
if closed_Days contains ((current date)'s weekday) then
if closedDays contains ((current date)'s weekday) then
tell application "System Events"
tell application "System Events"
shut down
shut down
Line 61: Line 70:
end tell
end tell
</source>
</source>
To time events use iCal and run scripts on specific (repeating) entries. This creates <tt>launchd</tt> events. Alternatively use <tt>launchd</tt> directly. If you have an AppleScript running in a loop you may want to exit this loop at a specific time like this:
<source lang="applescript">
repeat
set currentMinute to minutes of (current date)
set currentHour to hours of (current date)
if (currentHour = 17) then
if (currentMinute > 50) then
tell application "System Events"
shut down
exit repeat
end tell
end if
end if
delay 0.3
end repeat
</source>
* [http://developer.apple.com/library/mac/#documentation/AppleScript/Conceptual/AppleScriptX/AppleScriptX.html AppleScript introduction]


== Automator ==
== Automator ==
Automator is an application in Mac OS X which lets you automate tasks in a very easy way.
Automator is an application in Mac OS X which lets you automate tasks in a very easy way.
* [http://developer.apple.com/library/mac/#documentation/AppleApplications/Conceptual/AutomatorConcepts/Automator.html#//apple_ref/doc/uid/TP40001450 Automator reference]
[[Category:AppleScript]]
[[Category:Automation]]
[[Category:Programmiersprachen]]
[[Category:OS X]]

Latest revision as of 13:31, 7 May 2015

When setting up installations for exhibitions automating the startup and shutdown is essential in order to make sure your piece is actually running. Never rely on staff to switch on things.

Programmable time switches

are quite cheap and very useful

Zeitschaltuhr.jpg

left: a digital one, right: an analogue one

Raspberry Pi

Very useful inexpensive Linux Computer you can use for all kinds of scenarios. For example to play back a video in an exhibition: RaspberryPi


Startup and shutdown

OS X has startup and shutdown automation included, it's hidden in the Energy Saving preference pane.

OS X Preference Panes.png

Energie sparen.png

It is a good idea to tick the box that the computer will restart after a power failure.

Zeitplan.png

The computer will effectively shut down 10 minutes later than set there, because it will wait 10 minutes with a message open to give the user a chance to abort the shutdown process.

Do something on startup

OS X can launch a script or application on startup. you can set this in the Users preference pane under startup items.

Startobjekte.png

shell scripts

shell scripting is a convenient way how to script stuff. Make sure you make the script executable and use the extension .command

cliclick

cliclick with this utility you can even click on things over the command line

ScreenUtil

ScreenUtil lets you set the screen resolution over the command line.

launchd

launchd is the service in OS X that replaces the UNIX cron, init and at commands. Put the configuration files into ~/Library/LaunchAgents

AppleScript

Unfortunately one can't use the control panel to only switch on the computer at certain days of the week. What you can do is check the day of the week and then shut the computer down again if it isn't the right day.

-- wenn nicht Mittwoch, Samstag oder Sonntag it, dann schalte den rechner wieder aus.

set closedDays to {Monday, Tuesday, Thursday, Friday}
if closedDays contains ((current date)'s weekday) then
	 tell application "System Events"
		shut down
	 end tell
	 return
end if

-- Systemlautstärke voll
set volume 5

-- QuickTime starten
tell application "Finder"
	activate
	open application file "QuickTime Player.app" of folder "Applications" of startup disk
end tell
tell application "QuickTime Player"
	activate
	open file "Macintosh HD:Users:name:Documents:Folder:subfolder:my_sound.wav"
	set looping of document "my_sound.wav" to true
	set audio volume of document "my_sound.wav" to 0.5
	play document "my_sound.wav"
end tell

To time events use iCal and run scripts on specific (repeating) entries. This creates launchd events. Alternatively use launchd directly. If you have an AppleScript running in a loop you may want to exit this loop at a specific time like this:

repeat
	set currentMinute to minutes of (current date)
	set currentHour to hours of (current date)
	if (currentHour = 17) then
		if (currentMinute > 50) then
			tell application "System Events"
				shut down
				exit repeat
			end tell
		end if
	end if
	delay 0.3
end repeat

Automator

Automator is an application in Mac OS X which lets you automate tasks in a very easy way.