homebridge-fhc

1.4.1 • Public • Published

Future Home Contorller for Homebridge

フューチャーホームコントローラーのwebapiを homebrigeに対応させて、siriから呼び出してみるテスト。

Device Support

フューチャーホームコントローラーという音声認識で家電操作をするガジェットがある。 独自の音声認識エンジンを搭載していて、なんでもできる。 ただ、siriから使いたいとお前が言うなら仕方がない。対応させてやんよ。

ただし、まだ Switchとしてしか対応させていない。 エアコンをService.Thermostatとかにしたいけど、対応させる項目多すぎるんよー。

Installation

まず、Homebridgeをインストールする Homebridge その後で、このプラグインを入れてくれ。コマンドだとこうなる。

npm install -g homebridge-fhc

そして、 config.jsonに次のように書いてくれ。

"platforms": [
     {
         "platform" : "FHC",
         "name" : "FHC",
         "apikey" : "<<WEBAPIKEY>>",
         "host" : "<<FHC LOCAL IP 例: http://192.168.1.123 >>"
     }
]

Installation その2

別鯖にnodejsとか入れるのがだるい場合は、FHC端末内にnodejsを入れる技がある。 ただし、自己責任でやること。 そして、第4次ロット以後(2013年6月以後出荷分)の新しいロットでしか動かないと思う。

 まずsshでFHCに接続して、su - で root になろう。
 https://rti-giken.jp/fhc/help/howto/ssh.html
 
 #なにはともあれパッケージのアップデート
 opkg update
 
 #dns_sd.hが必要です。
 opkg install avahi-dev
 
 #opkg install nodejs だともっと古すぎて動かないのでダメです。
 #残念ながら gccが古いので、 0.12.x系しかビルドできません。
 wget http://nodejs.org/dist/v0.12.9/node-v0.12.9.tar.gz
 tar zxvf node-v0.12.9.tar.gz
 cd node-v0.12.9
 ./configure
 make
 
 #make には4時間ほどかかります。
 #makeする前に、CPUリソースとメモリを空ける意味で、
 #マイクを抜くことをおすすめします。
 #マイクが刺さっていると音声認識でCPU使ってしまうので、安定させるためにマイクを抜きましょう。
 
 #makeが終わったらinstallします。
 #/usr/local/ に、 nodejs が入ります。
 make install
 
 #バージョン確認
 0.12.9 と表示されればok
 node -v
 
 
 #これでnpmすれば・・・と思うかもしれませんが、
 #dns_sd.hが必要で、opkgでは入らないので、 avahiをビルドします。
 #see https://github.com/agnat/node_mdns/issues/73
 
 opkg install libssp-dev
 opkg install intltool
 opkg install avahi-dev
 
 wget http://avahi.org/download/avahi-0.6.31.tar.gz
 tar zxvf avahi-0.6.31.tar.gz
 cd avahi-0.6.31
 
 export PTHREAD_CFLAGS='-lpthread'
 ./configure --disable-static --disable-mono --disable-monodoc --disable-gtk3 --disable-gtk --disable-qt3 --disable-python --disable-qt4 --disable-core-docs --enable-compat-libdns_sd --disable-tests --with-distro=none
 make
 
 ##make install してはいけない
 ##必要なファイルだけコピーする
 cp avahi-compat-libdns_sd/.libs/libdns_sd.so /usr/lib/
 cp avahi-compat-libdns_sd/dns_sd.h /usr/include/
 ln -s /usr/lib/libdns_sd.so /usr/lib/libdns_sd.so.1
 
 #なんかいるらしい
 mkdir /home/root/.node-gyp
 
 #やっと入れられます。
 #こちらは1時間ぐらいかかります。
 npm install -g --unsafe-perm homebridge
 
 
 #このモジュールを入れよう
 npm install -g homebridge-fhc
 または、ソースコードを /usr/local/lib/node_modules/homebridge-fhc にコピーしてください。
 
 #設定をかこう
 vim /home/root/.homebridge/config.json
 --------------------------------------
 {
     "bridge": {
         "name": "Homebridge",
         "username": "<MAC_ADDRESS>",
         "port": 51826,
         "pin": "031-45-154"
     },
 
     "description": "<DESCRIPTION>",
 
     "platforms": [
         {
             "platform" : "FHC",
             "name" : "FHC",
             "apikey" : "<<APIKEY>>",
             "host" : "http://127.0.0.1"
         }
 
     ]
 
 }
 --------------------------------------
 
 #まずは、 avahi を立ち上げる。
 #homekit って Bonjour とか使って、DNS のtxtレコードとかを利用してなんかやっているらしいですよ。
 /etc/init.d/avahi-daemon
 
 #homebrigeを立ち上げる
 #とりあえずこれで動く。
 homebridge
 
 #iphoneとかipadとかにinsteon+(無料)を入れてください。
 #(insteon for hub ではなくて、insteon+の方です)
 #これで動作を確認してください。
 https://itunes.apple.com/jp/app/insteon+/id919270334
 
 
 #無事うまく動作するようならば、自動起動の設定をします
 #avahi が自動起動するようにする.
 ln -s /lib/systemd/system/avahi-daemon.service /etc/systemd/system/multi-user.target.wants/
 ln -s /lib/systemd/system/avahi-daemon.socket /etc/systemd/system/sockets.target.wants/
 
 #起動スクリプトを作ります.
 #systemdだけだとタイミングがずれて駄目になるのでshellscriptを作る
 vim /home/root/homebridge.sh
 -------------------------------------------------
 #!/bin/sh
 # wait wakeup avahi and FHC Process.
 sleep 120
 
 PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
 HOME=/home/root
 
 # run homebridge
 homebridge > /tmp/homebridge.log
 #homebridge
 -------------------------------------------------
 
 chmod +x /home/root/homebridge.sh
 
 #homebridgeを起動させるためのsystemdを書く.
 #本当権限分離したかったが、分離すると何故かうまくいかない・・・
 vim /lib/systemd/system/homebrige.service
 -------------------------------------------------
 [Unit]
 Description=Node.js HomeKit Server
 After=avahi-daemon.service
 
 [Service]
 Type=simple
 User=root
 ExecStart=/home/root/homebridge.sh
 RestartSec=10
 KillMode=process
 
 [Install]
 WantedBy=multi-user.target
 -------------------------------------------------
 
 #自動起動登録.
 ln -s /lib/systemd/system/homebrige.service /etc/systemd/system/multi-user.target.wants/
 
 #ここまで作ったら再起動してみましょう。
 sync
 reboot
 
 #しばらく待つと FHC プロセスが上がり
 #2分後に、 homebridgeも上がります。
 #2分後にしている理由は FHC のDHCPタイムアウトが2分のためです。
 #安全をとって伸ばしています。最初だけなので少しだけ待ってください。

遊び方

iphoneとかipadとかにinsteon+(無料)を入れてください。 (insteon for hub ではなくて、insteon+の方です) https://itunes.apple.com/jp/app/insteon+/id919270334

insteon+で scanすると、homebridge が見れると思います。 あとは、自由に操作してください。

勝手にthanks

このソースコードは、 homebridge-homeassistant と homebridge-samsungtv-control を参考に作りました。

Contributions

  • fork
  • create a feature branch
  • open a Pull Request

Package Sidebar

Install

npm i homebridge-fhc

Weekly Downloads

1

Version

1.4.1

License

MIT

Last publish

Collaborators

  • rti7743