iPhoneから自宅/会社のMac上のAppleScriptを呼び出すEntangler

以前、Otto’s Antennaという名前で紹介したアプリケーションがバージョンアップして、「Entangler」という名前になっていました。

ちょうど、奥方様の実家のFAXの動作確認をする必要があったので、MacにFAXモデムをつないで、指定の電話番号にFAX出力するAppleScriptを書いて、iPhone上のEntanglerから呼び出してみました。

EntanglerというアプリケーションのMac版をMacにインストールし、iOS版をiPhoneにインストールして、iOS側からMac側の機能を呼び出すというのが、基本的な運用スタイルです(AppleWatch版もあるとは知りませんでした)。

前バージョンであるOtto’s Antennaよりもデザインがよくなって、iOSデバイスから操作してからの反応が速くなっていました。EntanglerはAppleScriptのほかにもAutomatorアクションやshell scriptなども実行できるそうです(AppleScriptしかテストしていないですけれども)。

Scriptを実行するMacはSleepせずに、ネットワーク(LAN/WiFi)に接続した状態にしておく必要があります。

print1.png
▲MacBook ProにUSRoboticsのUSB FAX Modem(OS X 10.10.5でも使える)をつなぎ、Sleepしないようにしてスタンバイ

print2.png
▲FAX送信元の電話番号に「ps-ax」と設定(最初に入っていた状態そのまま)

print3.png
▲Mac上のEntanglerにFAX送信するAppleScriptを登録

AppleScript名:print_a_fax
– Created 2015-09-20 by Takaaki Naganoya
– 2015 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
use framework “AppKit”

property aPrinter : “USB Modem”
property targFaxNum : “03-XXXX-XXXX”

tell application “Safari”
  tell front document
    set aPrintSetting to {copies:1, starting page:1, ending page:9999, target printer:aPrinter, fax number:targFaxNum}
    
print with properties aPrintSetting without print dialog
  end tell
end tell

★Click Here to Open This Script 

print4.jpg
▲iPhone上のEntanglerを起動して、「print_a_fax」Scriptを実行

img_3127_resized.png
▲FAX受信中(「ps-ax」と通知が出ている)

63db476c-a6a1-4a82-8650-c79152570edd_resized.png
▲FAX受信中…

ptint0.png
▲Scriptの実行が終了すると、Macの通知センターに通知が表示される

bb1fb10f-5f86-43ed-bd72-fed8ec168e61_resized.png
▲確認のためにFAXで印刷したYahoo!のトップページ。印刷が途切れているのは、本来A4用紙が必要なところに無理やり別のサイズ(たぶんB5)の紙を突っ込んだため

One Response to “iPhoneから自宅/会社のMac上のAppleScriptを呼び出すEntangler”

  1. iPhoneからの操作をトリガーとしてAppleScript・Automator・シェルスクリプトを実行『Entangler』 | Macの手書き説明書 Says:

    […] 外出先から家のMacを操作するという実験はしていませんが、AppleScriptの穴の記事によれば可能らしいです。 Download QR-Code Entangler - Spooky Action at a Distance Developer: デベロッパ:Andrew Molloy Price: Free スポンサーリンク (adsbygoogle=window.adsbygoogle||[]).push({}); (adsbygoogle=window.adsbygoogle||[]).push({}); […]

Leave a Reply