スポンサー広告
         
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 
 

Geek
         

つまるところ、How to install Homebrige on Centos.

「高度に進化した科学は魔法と見分けがつかない」といったのはだれでしたっけ。アイザック・アシモフ?


IRKit、知っていますか?簡単に言うと、ネットにつながる学習リモコン。

え、学習リモコンってなんですか、ですと?


学習リモコンとは、リモコンが出す赤外線を記憶し、複数のリモコンとして機能するリモコンです。最近ではSonyのHUIS-100RCといった電子ペーパを利用した製品がでていましたが、いわゆるリモコン形式のものならかなり昔からありますね。例えば、レコーダのリモコン、多くのレコーダリモコンはテレビも操作できるはずですが、これも一つの学習リモコンです。


さて、そんなネットワークに対応した学習リモコンことIRKitを購入したので、Homebrigeをセットアップして、Siriタンでおうちをコントロールだぜヒャッハーと思っていたら、皆さん、ラズパイ(Raspberry Pi)を利用されているそうで、Linux(Centos 7)へのHomebrigeのインストール方法が見当たらなかったのでメモ。


そうですよね。ふつうは自宅サーバなんてありませんよね。


ちなみにIRKitの大きさはかなり小さい。ダンボーサイズです。


R0013086.jpg 


以下、環境。

  • サーバ:Centos7 On ESXi 6
  • デバイス:IRKit
  • ミドルウェア:Nodejs
  • ソフトウェア:Homebridge
  • ソフトウェア:Homebrige-irkit


 
 

Homebridge で利用するライブラリとHomebridge のインストール


例えばラズパイだと、

libavahi-compat-libdnssd-dev.

というライブラリが必要です。じゃあこれをCentosにインストールするには


sudo yum install libavahi-compat-libdnssd-dev

でよいかというと、そんな甘いことはなく、


avahi-compat-libdns_sd avahi-compat-libdns_sd-devel

が必要。ついでに avahi もインストールしておきましょう。
Homebridge までインストールしたらまずは起動できるかを確認します。



参考
https://github.com/agnat/node_mdns/issues/50


https://github.com/nfarina/homebridge



sudo yum install avahi avahi-compat-libdns_sd avahi-compat-libdns_sd-devel
sudo npm install -g homebrige
sudo npm install -g homebrige-irkit

homebrige #起動確認
SyntaxError: Unexpected strict mode reserved word
…(以下略)


起動できませんでした。出力された Unexpectrf strict … は予約語として用意されているけれど使えないよ!という意味(超訳)
NodeJsのバージョンを見たら、v0.12というかなり古いパッケージ。そういえばサーバでNodeJSをインストールした記憶がない。


NVMのインストール


NodeJsをインストールするにあたり、今後、異なるバージョンを入れることもあるかもしれないため、NVMをインストールしました。
が、結論から言うとこれが失敗だった。
現状のNodeJsをインストールしたままNVMをインストールしてしまったため、NPMの依存関係が壊れたので、復旧に苦労することになりました。


git clone https://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh


Node.jsのバージョン確認


nvm ls-remote

Node.jsのインストール


NODE_VER=6.9.0
nvm install $NODE_VER
nvm alias default $NODE_VER

Node.jsの設定をBashProfileに書き込みむ


$NODE_VER=6.9.0
if [ -f ~/.nvm/nvm.sh ]; then
source ~/.nvm/nvm.sh
nvm alias default $NODE_VER
fi

さてこれで起動ができるようになったかと思えばそうではなかったです。
今度は、
[Error: Module did not self-register.]
という文字列が出るようになってしまった。
原因は、Node.jsのバージョンが切り替えた際に、ネイティブ拡張を含むnpmパッケージが壊れてしまうことにある。のかな?よくわからない。


そのため、NPMのパッケージ含めてHomebridge を再インストールすることに。


NPMをクリーン化



curl -0 -L http://npmjs.org/install.sh | sudo sh


お手軽。

参考’http://qiita.com/aureonebulosa/items/1cbfacc8a8095f2ee887


Homebridge とIRKITをアンインストールして再インストール


さて、依存関係も復旧したので、再度設定を試みます。
sudo npm -g uninstall homebridge
sudo npm -g uninstall homebridge-irkit
sudo npm install -g homebridge
sudo npm install -g homebridge-irkit

IRKitからテレビの電源をつけるテスト


IRKITにテレビの電源ON/OFF信号を受信させ、赤外線情報を取得する


curl -i “http://<IRKITのIPアドレス>/messages” -H “X-Requested-With: curl”

出力結果 {“format”:“raw”,“freq”:38,“data”:[略]

出力結果をメモして起きます、後程作成するJSONファイルに利用します。

Jsonファイルの作成


実は以下の設定ではうまくいかなかったです。IRKITのプラグインがアップデートされ、仕様が変わっていた模様

vi /home//.homebridge/config.json

{
"bridge": {
"name": "任意の名前",
"username": "IRKITのMACアドレス",
"port": 51826,
"pin": "任意のPINコード(3桁-2桁-3桁)"
},

"description": "IRKit Control",

"accessories": [
{
"accessory": "IRKit",
"name": "TV",
"irkit_url": "http://10.248.120.47/messages",
"on_form": {"format":"raw","freq":38,"data":[略]},
"off_form": {"format":"raw","freq":38,"data":[略]}
}
]
}


Homebridge の起動と「ホーム」アプリでの認識


設定がうまくいっていれば見事、これでテレビの電源がつくはずだが、つかない。
ログを確認すると、


IRKit power function failed!

といったエラーが散見。
IRKITのiPhoneアプリからは正常に電源ON・OFFが可能なため、Homebridge → IRKIT間の疎通がうまくいっていない模様。
IRKITプラグインの仕様を確認すると、


config.json
{
"accessory": "IRKit",
"name": "TV",
"irkit_host": "", 
"on_form": {"format":"raw","freq":38,"data":[]},
"off_form": {"format":"raw","freq":38,"data":[]}
}

と、 irkit_url タグが廃止?され irkit_host タグとなっており、内容もIPアドレスのみでよくなっている模様。
config.jsonを書き直し、Homebridge を再起動。結果、動作はOK.本日はここまで


参考:https://datahotel.io/archives/725

スポンサーサイト

関連キーワード(ユーザータグ):
Centos
サーバ
IRKit
Homebrige

トラックバック用URL ;http://gatolynx.blog100.fc2.com/tb.php/344-6d50fbd4

コメントの投稿

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。