「hubot start tv」で家のテレビの電源を付ける。

CAMPHOR- Advent Calendar 2014
4日目です!

四期代表しております、@kohey18です!:bow: :bow:

CAMPHOR-の運営メンバー内でもSlack上で、Hubotを利用し、また様々な使い方をしているのですが、
CAMPHOR- hubot

このような感じで僕に関するワードが入ると「Super Swift Engineer」とかbotが言います。

メンバーが勝手にマージしました(おこ)。もちろん、Swiftは書けません(:bow:)。

このツイートが事の発端でしょう。

さて、今回のタイトルの通りHubotに対して「hubot start tv」って打つと部屋のテレビの電源が付くのをやってみようと思います!

用意するもの

iRemocon

iRemocon

iRemoconとは、ネットワーク接続型の高機能学習リモコンのことです!
要するに、リモコンの赤外線を学習し、それをネットワークを通じて制御できるみたいな感じです!

Hubot

hubot

赤外線で動く家電機器(リモコン付き)

tv

node.js

nodejs
最終的にiRemoconの制御をnode.js上から行います。

以下も、もちろん前提とします。

ネットワーク環境(有線LAN), PC(今回はMacBook Air OS X 10.9.5)

設計

arch

こんな感じです。

赤外線を学習させよう

まずはiRemoconからTVに対して、赤外線を発信するために、赤外線リモコンを学習させます。
その前にまずiRemoconのコマンド仕様書はこちらになります。
iRemoconコマンド仕様書

まずは自分のローカルPCからiRemoconに入るためにtelnetコマンドを叩きます。

telnet

> telnet yourIremoconIp yourIremoconPort(iRemoconデフォルトのポートは51013)

そして、リモコンを学習させるためには
command
より、ic;1とかにしますか。

learn

ic;1と打ったあとに、iRemoconに対して直接学習させてあげてください!

iRemocon学習 from kohey on Vimeo.

すると、

return
のようにokがreturnされます。

仕様書によるとiRemoconのipを探すにはアプリを使うそうです!

ちなみにアプリのスクショはこんな感じです!
iremocon-iphone

赤外線を発信させよう

学習完了したら、isコマンドで学習した赤外線が発信されるか確認しましょう。
is

学習した赤外線を発信 from kohey on Vimeo.

nodeからiRemoconを制御しよう

ここまできたら、もうほとんど終わりです。

次にnode.jsでこのiRemoconを制御するのを作成します。(express利用します)

app.js

manage.js

これでlocalhost:3000/manage/1
でiRemocon上ではis;1のコマンドを打つこととなり、学習した赤外線が発射されます。

Hubotから制御してみよう

あとはHubotのスクリプトを以下のようにしましょう

script/example.coffee

それでは、hubot start tvと打ってみましょう!

hubot start tv from kohey on Vimeo.

見難くて申し訳ないのですが、
上記のデモ動画は

左側が
「hubot start tv」と打っていて

右が
「node app.js」で立ち上げています!

で、PCの右側に有線LANに繋がったiRemoconがあります。

これでhubot start tvで家庭内のTVを制御することが出来ました!
(部屋汚いのは触れないでください:bow:)
その他のリモコンを制御したい場合は

telnet接続 → 学習コマンド(ic;◯) → 発信コマンド(is;◯) → manage.js,app.jsの修正 → hubotスクリプトを書く

の一連の流れかと!

CAMPHOR- HOUSEのエアコン制御とかに応用したいなぁとかメンバーとも話していたのでいつか実現したい!

次回はShtr28が担当です!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です