SSブログ

今更,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情報を作成します。

Tips:
  • "呼び出し名"は,"ショートカット"から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へ置いたまま使用する事も出来そうですが,レスポンスが悪くなりそうだったので,内蔵する事にしました。


* 以下は,動作順にショートカットを説明しています。

起動用ショートカット("呼び出し名"を記述しておきます)

sc_tvPower.jpg



用意したJSONに記述した名称(ここでは"tvPower")をテキストにセットして "irSendXXXX" を呼び出します。



抽出したIRデータを送信するショートカット(irSendxxxxxx)

sc_irSend.jpg



上のショートカットから渡された引数を受け取ります。
(ここでは"tvPower")



IR情報を送りつけるIrKit Cloneを指定。



IrKit Cloneを変数"Dev"へ格納。




"irData" を呼び出して…



IR情報を戻り値として受け取ります。



次に IrKit Clone のURLを作って


IR情報を"POST"します。











そして,戻り値を取得します。


あとは,やる気のない(笑)エラー処理。


IRデータを格納,抽出するショートカット(irData)

sc_irData.jpg




上のショートカットから渡された引数を受け取ります。
(ここでは"tvPower")




(ここにJSON情報を格納)



"tvPower"の情報を取り出します。


取り出した情報を戻り値として返します。



おまけ: 2度押しのサンプル

照明器具などで,1つのボタンでトグル動作する場合,Wait入れてLoop。
* ここでは,点灯状態 →常夜灯 →消灯 を想定しています。

sc_lightoff.jpg


ここまで読んで頂き誠にありがとうございます。

こんな長々になってしまい申し訳ありません。
ちょっとした説明を書こうと思って書き始めたのですが,こんなに面倒な事になるとは orz
スクショ取得も超面倒だし… もう2度としない…こんな事(笑

それとAppleさん,このショートカットって,もうちょっと どうにかならなかったの?
とにかく,色々酷い,むごすぎます orz


タグ:IRKit Clone
コメント(0) 
共通テーマ:趣味・カルチャー

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。
さっ寒い…Blogデザインの変更 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。