Lesson22.スクリプトフィルターとキーワードインプットをハイブリッドにする
ワークフロー
突然ですが、URLでNatureRemoをコントロールすることができます
Tokenの取得方法やAPIの詳細はインターネットで調べてください
APIはcURLのPOSTで操作が可能ですのでターミナルで遊んでみてください
NatureRemoのapi
ちなみにTokenは個々のNatureRemoへのアクセス用になるので、取扱注意です
(公開するとあなたの家電を第3者がコントロールできちゃいますよ)
Alfredではtokenのような情報はexport禁止の変数として管理できます
ワークフロー右上の[χ]をクリックして環境変数の一覧を表示させてください
インストール後には、valueが空欄になっていますので、ご自身のNatureRemoのトークンを
貼り付けてください。引用符は不要です
またNatureRemoでは家電ごとにアプライアンスIDが割り当てられますが、
今回対象のエアコンのIDもexport禁止変数としています
ご自身の環境のNatureRemoで情報を取得して設定してください
GET “https://api.nature.global/1/appliances”でアプライアンス(家電)情報が確認できます
もち、トークンは必要です
airconというキーワードインプットとScriptFilterを同時に利用しています
ScriptFilterは引数なしで、NatureRemoから室温と湿度を取得してAlfred出力に表示させます
キーワードインプットは引数によって処理を振り分けています
こうすると、airconの入力で室温等の情報を表示しつつ、キーワードの入力を待つ形に
なります
スクリプトフィルターとキーワードのハイブリッドの場合、どのようなフローにするのが
最適なのかわかっていませんが、いったんShowAlfredオブジェクトを利用して、
ariconを再帰するように設定しています
引数なしでエンターキーを押したときに途切れないようするためです
ShowAlfredオブジェクト
conditionalユーティリティを開いてみてください
1行目の条件はパラメータがない状態を意味します(『is equal to』と『(空欄)』)
なお『then』のあとのテキスト(『再表示』)はalfredワークフローをわかりやすくする
ための表示用文字列です
ソースコードを書くような感じに見えますが勘違いしないようにご注意くださいね
2行目は引数『off』、3行目は引数『dry』の場合の分岐です
それ以外が全て冷房の処理になりますが、冷房温度の範囲のチェックはRunScriptで
行っています
NatureRemoのAPIで室温と湿度を取得しています
created_atという項目に取得した日時があるので、サブタイルとして表示させてみました
ちょっと遅れている時間でしたので、たぶんグリニッジ時刻なのかな
ということでJST(日本時刻)に変換しましょう
興味があったらみてください。9時間補正の簡単な変換機能があるのですね
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 数字 冷房オン(温度設定)
トップページに戻る