Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 

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アドレスを割り当てれば済む話だと思いますが)

ログ出力

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

定時実行

About

IRKitをPowerShellから操作する

Resources

Releases

No releases published

Packages

No packages published