Keeping track of Magic Trackpad 2 battery life
Fetching the Magic Trackpad 2 battery level from the command line and logging it to a file!
I’ve been curious about the battery life of the Magic Trackpad 2 and roughly how much battery I was using per day. Solution: create a cron job to log it! After some searching and tinkering I found the key was using system_profiler
to dump the information and then PlistBuddy
to parse it. Both binaries are included on macOS (at least in High Sierra) so there are no dependencies.
I have this script setup as a cron job to run once per hour to log the timestamp and battery percentage to a file in my home directory. I found that I’m using between 3% and 4% per 8 hour work day. It’s brand new so I’m curious to see how this goes over time.
The system_profile
output doesn’t include the number of battery cycles, but as long as this logger keeps running I’ll be able to figure that out on my own by crunching though this CSV.
#!/bin/bash
device="Magic Trackpad 2"
tmpfile="${TMPDIR}sys_bluetooth_$(date +%s).plist"
/usr/sbin/system_profiler -xml SPBluetoothDataType > "$tmpfile"
batt=`/usr/libexec/PlistBuddy "$tmpfile" -c "Print 0:_items:0:device_title:0:'$device':device_batteryPercent"`
status=$?
rm $tmpfile
if [ $status -ne 0 ]; then
echo "Could not find battery status for $device. Is it connected?"
exit 1
fi
batt=$(echo $batt | tr -d '%')
ts=$(date +"%F %T")
echo "$ts,$batt" >> ~/mtp.log