AlfredWorkflowで遊ぶページ

Lesson22.スクリプトフィルターとキーワードインプットをハイブリッドにする

開発メモ

ワークフロー

1.NatureRemoのAPI

 突然ですが、URLでNatureRemoをコントロールすることができます
 Tokenの取得方法やAPIの詳細はインターネットで調べてください
 APIはcURLのPOSTで操作が可能ですのでターミナルで遊んでみてください
 NatureRemoのapi
 ちなみにTokenは個々のNatureRemoへのアクセス用になるので、取扱注意です
 (公開するとあなたの家電を第3者がコントロールできちゃいますよ)

2.export禁止変数

 Alfredではtokenのような情報はexport禁止の変数として管理できます
 ワークフロー右上の[χ]をクリックして環境変数の一覧を表示させてください
 インストール後には、valueが空欄になっていますので、ご自身のNatureRemoのトークンを
 貼り付けてください。引用符は不要です

 またNatureRemoでは家電ごとにアプライアンスIDが割り当てられますが、
 今回対象のエアコンのIDもexport禁止変数としています
 ご自身の環境のNatureRemoで情報を取得して設定してください
 GET “https://api.nature.global/1/appliances”でアプライアンス(家電)情報が確認できます
 もち、トークンは必要です

3.スクリプトフィルターとキーワードのハイブリッド

 airconというキーワードインプットとScriptFilterを同時に利用しています
 ScriptFilterは引数なしで、NatureRemoから室温と湿度を取得してAlfred出力に表示させます
 キーワードインプットは引数によって処理を振り分けています
 こうすると、airconの入力で室温等の情報を表示しつつ、キーワードの入力を待つ形に
 なります
 
 スクリプトフィルターとキーワードのハイブリッドの場合、どのようなフローにするのが
 最適なのかわかっていませんが、いったんShowAlfredオブジェクトを利用して、
 ariconを再帰するように設定しています
 引数なしでエンターキーを押したときに途切れないようするためです

 ShowAlfredオブジェクト
 

4.入力パラメータによって処理を分岐させる(conditionalユーティリティ)

 conditionalユーティリティを開いてみてください
 
 1行目の条件はパラメータがない状態を意味します(『is equal to』と『(空欄)』)
 なお『then』のあとのテキスト(『再表示』)はalfredワークフローをわかりやすくする
 ための表示用文字列です
 ソースコードを書くような感じに見えますが勘違いしないようにご注意くださいね
 2行目は引数『off』、3行目は引数『dry』の場合の分岐です
 それ以外が全て冷房の処理になりますが、冷房温度の範囲のチェックはRunScriptで
 行っています

5.室温と湿度の取得

 NatureRemoのAPIで室温と湿度を取得しています
 created_atという項目に取得した日時があるので、サブタイルとして表示させてみました
 ちょっと遅れている時間でしたので、たぶんグリニッジ時刻なのかな
 ということでJST(日本時刻)に変換しましょう
 興味があったらみてください。9時間補正の簡単な変換機能があるのですね
 

6.エアコン操作

 3つのRunScriptでそれぞれエアコンの操作をしていますが、基本APIをcURLで
 呼んでいるだけです
 NatureRemoのAPIとにらめっこをして、カスタマイズしてみてください 
 
 冷房のRunScript
 

背景

 はやくも夏日の声を聞くようになったので、エアコン操作をつくってみました
 Lesson10と18でTVのリモコンを実装しているので、操作部分は簡単でした
 一方でNatureRemoの携帯アプリをみると室温と湿度が表示されてたので、
 気になってAPIを見てみたら、案の定、情報があり、Alfredで表示させてみました
 

取扱説明

機能:

 NatureRemoのAPIを使ってエアコンを操作する

インストール:

 1.Alfredworkflowをダウンロード
 2.ファイルをダブルクリックしてワークフローに登録
 3.NatureRemoのアクセス用トークンとエアコンのアプライアンスIDを入力し変数を設定(インストール後で可能)
  ※ワークフロー右上の[χ]をクリックして設定
 4.スクリプトは設定できる値に合わせて修正が必要かも
  ※ちなみに私のエアコンは、NatureRemoで”Mitsubishi AC 209”として設定されていました

使い方:

 キーワード『aircon』で起動
 例)
  aircon(パラメータなし) 室温・湿度の表示
  aircon off  電源オフ
  aircon dry  除湿オン
  aircon 数字  冷房オン(温度設定)

トップページに戻る