IRKitをPowerShellから操作する
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md
winter_asa_danbo.ps1

README.md

IRKitPowerShell

IRKitをPowerShellから制御します

概要

IRKitはネットワークから操作できるリモコンです。 HTTPからRESTfull APIを使用して操作することができます。

毎日定時に実行したいものは、Windowsのタスクスケジューラを使用して実現しています。

動作環境

次の環境で動作確認を行っています。

  • OS : Windows 10 Pro
  • PowerShell : 5.1

使い方

操作したい機器・使用目的を引数で指定して実行します。

.\winter_asa_danbo.ps1 "LIGHT"

下記の引数を使用できます。

  • "ON" : 冬に暖房をONにする
  • "OFF" : 暖房を切る
  • "LIGHT" : 照明を最大の明るさでONにする
  • "STEPUP" : 朝、気持ちよく起きられるように徐々に照明を明るくさせる
  • "BLACKOUT" : 内部処理用。"STEPUP"で照明を明るくさせる前に暗くしておく

機能

休日判定

毎日定時にエアコンをONにしますが、切り忘れ防止のため出勤時刻にOFFにするよう、タスクスケジューラを設定しています。 しかし、休日は家にいるためエアコンなどをOFFにしたくありません。

このため、休日判定を行い、処理を行わないようにします。

ある日が祝日であるかをPowerShell単体で判定するのは難しそうだったので、Google Calendarの「日本の休日」カレンダーを取得して判断しています。

現状、icalファイルをダウンロードして解析した上で判断していますが、APIを使う方がよいかもしれません。

IRKit IPアドレス自動取得

IRKitを操作するには、IRKitのIPアドレスを知る必要があります。

これは、dns-sdコマンドで取得できます。 ただし、Ctrl + Cで終了させないといけなかったり、インスタンス名を取得してからでないとIPアドレスを取得できなかったりといったことがあるので、取得処理が若干複雑になっています。

また、この処理は10秒ほどかかるため、一定時間内は前回取得値を使い回しています。

(IRKitに固定IPアドレスを割り当てれば済む話だと思いますが)

ログ出力

実行結果はログに出力して保存します。

定時実行