今更,iPhoneのショートカットのフォローアップ [PC関連]
そう言えば,昨年11月に書いたiPhoneのショートカットネタ,作り方(記述方法)の詳細,ちゃんと書いてませんでした。
年も変わってしまって今更感全開ですが,自分用忘備録として残しておきます。
来年の事を話すと鬼が笑うらしいけど,去年の話をすると鬼は?
そう言えば,今年の節分は124年ぶりで2月2日らしい。
ショートカットに やらせている事は,ざっくり こんな感じ…
- 複数の赤外線信号情報をJSON形式で用意,内蔵する。
- 内蔵した赤外線信号情報から "呼び出し名" で抽出する。
- 抽出した赤外線信号情報をIrKit Cloneへ送信。
* 以下は,ガチで忘備録なので,おヒマな方向けです。
"ショートカット"は,あとで色々使い回せるように3段構成にしています。
- 起動用ショートカット("呼び出し名"を指定)
- 抽出したIRデータを送信するショートカット(irSendxxxxxx)
- IRデータを格納,抽出するショートカット(irData)
まず,IR情報をJSON形式で用意します。
フォーマットは,以下のような感じ。
{
"呼び出し名": "IR情報"
}
IR情報の収集は…
PCのWebブラウザで,IrKit CloneのWeb UIを開いて,赤外線リモコンを操作すると…
Connected
TXT:Hello Client 1 :)
Events Opened
Event: hello!
[IR]: Recv IR: PANASONIC(5) 0x555AF148688B (0x555a, 0xf148688b)
[IR]: Recv IR Raw: {"format":"raw","freq":38,"data":[3396,1594,502,340,474,1162,504,316,500,1160,502,292,528,1132,504,340,476,1160,504,318,498,1138,526,290,502,1160,502,1164,498,342,474,1136,528,292,502,1160,500,1162,500,1162,502,1134,500,322,524,288,502,320,500,1160,502,342,476,1134,502,318,500,318,500,1160,502,340,450,320,522,318,476,318,524,1136,502,1160,500,318,500,1138,498,318,502,342,476,318,500,1162,502,340,478,312,500,318,476,1162,500,318,500,1162,500,1136,552]}
[IR]: Recv IR code: {"format":"PANASONIC","freq":38,"data":["0x555AF148688B"]}
Events Closed
Events Opened
Event: hello!
な,感じのIR情報が表示されます。
そこから
[IR]: Recv IR code: {"format":"PANASONIC","freq":3....
の行をコピペしてJSON情報を作成します。
- "呼び出し名"は,"ショートカット"からIR情報を取得する際に使用する為,ダブってはいけません。
- うまくフォーマットを解析出た場合,"PANASONIC"などと表示され,コードも短く扱いやすくなります。
解析に失敗した場合は,RAWデータを使う事になります。
JSONは,こんな感じに使用するIR信号を,纏めて入れておきます。
{
"tvPower": {"format":"PANASONIC","freq":38,"data":["0x555AF148688B"]},
"tvPower": {"format":"PANASONIC","freq":38,"data":["0x555AF148688B"]},
"tvYouTube": {"format":"PANASONIC","freq":38,"data":["0x555AF148154D"]},
"tv時計_画面表示": {"format":"PANASONIC","freq":38,"data":["0x555AF148D880"]},
"tv取説": {"format":"PANASONIC","freq":38,"data":["0x555AF1482D46"]},
"tv番組情報": {"format":"PANASONIC","freq":38,"data":["0x555AF148FA4C"]},
"tv2画面": {"format":"PANASONIC","freq":38,"data":["0x555AF1483A8C"]},
"tv字幕": {"format":"PANASONIC","freq":38,"data":["0x555AF148E641"]}
}
このJSONデータを,どうにかしてiPhoneに転送します。
当方は,Macの『メモ.app』をiCloud同期して,iPhoneのメモで開き,それを"ショートカット”へコピペしました。
* JSONの可搬性を考えて,iCouldへ置いたまま使用する事も出来そうですが,レスポンスが悪くなりそうだったので,内蔵する事にしました。
* 以下は,動作順にショートカットを説明しています。
起動用ショートカット("呼び出し名"を記述しておきます)
用意したJSONに記述した名称(ここでは"tvPower")をテキストにセットして "irSendXXXX" を呼び出します。
抽出したIRデータを送信するショートカット(irSendxxxxxx)
上のショートカットから渡された引数を受け取ります。
(ここでは"tvPower")
IR情報を送りつけるIrKit Cloneを指定。
IrKit Cloneを変数"Dev"へ格納。
"irData" を呼び出して…
IR情報を戻り値として受け取ります。
次に IrKit Clone のURLを作って
IR情報を"POST"します。
そして,戻り値を取得します。
あとは,やる気のない(笑)エラー処理。
IRデータを格納,抽出するショートカット(irData)
上のショートカットから渡された引数を受け取ります。
(ここでは"tvPower")
(ここにJSON情報を格納)
"tvPower"の情報を取り出します。
取り出した情報を戻り値として返します。
おまけ: 2度押しのサンプル
照明器具などで,1つのボタンでトグル動作する場合,Wait入れてLoop。
* ここでは,点灯状態 →常夜灯 →消灯 を想定しています。
ここまで読んで頂き誠にありがとうございます。
こんな長々になってしまい申し訳ありません。
ちょっとした説明を書こうと思って書き始めたのですが,こんなに面倒な事になるとは orz
スクショ取得も超面倒だし… もう2度としない…こんな事(笑
それとAppleさん,このショートカットって,もうちょっと どうにかならなかったの?
とにかく,色々酷い,むごすぎます orz
コメント 0