a primitive bash script to control a WeMo® powered external Apple Timemachine harddisk
The external harddrive with my Apple Timemachine backup is physically mounted on the underside of my desk. Because I hate to crawl below my desk powering on the harddisk every time I want to make a backup I decided to bring a WeMo® Switch into the game.
- The tm-bash script turns on the power,
- checks if the harddisk is available in OS X,
- initiates the Apple Timemachine backup process,
- waits until the process is done,
- then safely ejects the harddrive from OS X, and
- turns off the power of the WeMo®.
All the user has to do is plug in the USB cable, start the tm-bash script, wait, and unplug the USB cable.
For controlling the WeMo® I am using a bash script from 2013 I found on the internet. Here is a discussion about that script from 2014 (the page is a 404 now and sadly Wayback Machine has not archived a copy).
For completeness reasons I added the wemo.sh
script to this GitHub repository.
Anyways, full credit for the WeMo® control script wemo.sh
go to rich@netmagi.com and Donald Burr.
You'll need a fully setup Apple Timemachine harddisk and a WeMo® Switch. I develop and use tm-bash on an Apple MacBook Pro with OS X 10.11.
Set the variables wemo_script
, wemp_ip
, wemo_name
, and timemachine_volume
to values matching your setup.
If you want to add a LaMetric Time to the setup you need to set the lametric_*
values.
### configuration
logging_log=0
[...]
logging_lametric=1
[...]
wemo_ip="192.168.0.66:49154"
wemo_name="WeMo Switch"
[...]
lametric_push_url="https://developer.lametric.com/api/v1/dev/widget/update/com.lametric.a1b2c3d4e5f6g7h8i9j10k11l12m13n1/1"
lametric_access_token="OZ1Y2X3W4V5U6T7S8R9Q10P11O12N13M14L15K16J17I18H19G20F21E22D23C24B25A26z27y28x29w30v31u=="
lametric_success_delay=10
[...]
timemachine_volume="timemachine"
[...]
For more verbose output, you can set the logging_log
value to 1
.
It is possible to use a LaMetric Time to display the current state (standby, active, success, failed) of the tm-bash. To do that you need to sign up for a developer account at LaMetric and create an indicator app with the user interface type "name" and the communication type "push".
Copy the value of URL for pushing data and enter it as value of lametric_push_url
in the configuration section of the tm-bash.
You also need to copy the value of the X-Access-Token
from the Sample push request section and enter it as lametric_access_token
in the tm-bash. This is used to authenticate the push requests and makes sure that only your tm-bash can send status data to your LaMetric Time.
Finally, to enable the logging to your LaMetric Time you need to set the logging_lametric
variable to 1
.
Execute the tm.sh
(make sure chmod +x
is set).
machine:folder user$ ./tm.sh
INFO: setting WeMo to 'ON'
INFO: waiting for Timemachine volume
■■■■■■■■■■■■■■■■■■■■■
INFO: starting Timemachine backup
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
INFO: Timemachine backup complete
INFO: unmounting 'timemachine'
INFO: setting WeMo to 'OFF'
INFO: Backup complete, Timemachine Volume ejected, Power off
INFO: It is now safe to remove the USB cable from the MacBook Pro
machine:folder user$