Raspberry piの基本設定が終わったら、順次アプリ関係をインストールします。
(1)Homebridgeのインストールに先立ち、先ずはNodejsをインストールします。
取り敢えずバージョンを確認してインストールされていない様ならば
$ node --version
インストールします。
$ sudo apt install nodes
(2)Homebridgeをインストールするためのnpmをインストールします。
$ sudo apt install npm
(3)homebridgeをインストールします。
$ sudo npm install -g homebridge
$ sudo npm install -g homebridge-cmd
$ sudo npm install -g homebridge-cmdswitch2
(1)Homebridgeのインストールに先立ち、先ずはNodejsをインストールします。
取り敢えずバージョンを確認してインストールされていない様ならば
$ node --version
インストールします。
$ sudo apt install nodes
(2)Homebridgeをインストールするためのnpmをインストールします。
$ sudo apt install npm
(3)homebridgeをインストールします。
$ sudo npm install -g homebridge
$ sudo npm install -g homebridge-cmd
$ sudo npm install -g homebridge-cmdswitch2
(4)homebridgeを設定します。
ホームディレクトリに「.homebrige」と言う隠しファイルを作成し、その中に「config.json」というファイルを作ります。
$ cd .homebridge
$ nano config.json
中身はこんな感じで
{
"bridge": {
"name": "HomeBridge",
"username": "AB:CD:EF:FE:DC:BA",
"port": 51826,
"pin": "034-45-567"
},
"description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
"platforms": [{
"platform": "cmdSwitch2",
"switches": [{
"name": "書斎(クーラー)",
"on_cmd": "sudo /home/pi/shell/Cooler_sw.sh on 28",
"off_cmd": "sudo /home/pi/shell/Cooler_sw.sh off 28",
"state_cmd": "sudo /home/pi/shell/Aircon_status.sh 28 Cooler_on"
}, {
"name": "書斎(ヒーター)",
"on_cmd": "sudo /home/pi/shell/Heter_sw.sh on 28",
"off_cmd": "sudo /home/pi/shell/Heter_sw.sh off 28",
"state_cmd": "sudo /home/pi/shell/Aircon_status.sh 28 Heter_on"
}, {
"name" : "スタンド",
"on_cmd": "sudo /home/pi/shell/Lamp_on.sh",
"off_cmd": "sudo /home/pi/shell/Lamp_off.sh",
"state_cmd": "sudo /home/pi/shell/Lamp_status.sh"
}, {
"name": "書斎(照明)",
"on_cmd": "sudo /home/pi/shell/Light_on.sh 7 15",
"off_cmd": "sudo /home/pi/shell/Light_off.sh 7 15",
"state_cmd": "sudo /home/pi/shell/Light_status.sh 15"
}]
}]
}
{
"bridge": {
"name": "HomeBridge",
"username": "AB:CD:EF:FE:DC:BA",
"port": 51826,
"pin": "034-45-567"
},
"description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
"platforms": [{
"platform": "cmdSwitch2",
"switches": [{
"name": "書斎(クーラー)",
"on_cmd": "sudo /home/pi/shell/Cooler_sw.sh on 28",
"off_cmd": "sudo /home/pi/shell/Cooler_sw.sh off 28",
"state_cmd": "sudo /home/pi/shell/Aircon_status.sh 28 Cooler_on"
}, {
"name": "書斎(ヒーター)",
"on_cmd": "sudo /home/pi/shell/Heter_sw.sh on 28",
"off_cmd": "sudo /home/pi/shell/Heter_sw.sh off 28",
"state_cmd": "sudo /home/pi/shell/Aircon_status.sh 28 Heter_on"
}, {
"name" : "スタンド",
"on_cmd": "sudo /home/pi/shell/Lamp_on.sh",
"off_cmd": "sudo /home/pi/shell/Lamp_off.sh",
"state_cmd": "sudo /home/pi/shell/Lamp_status.sh"
}, {
"name": "書斎(照明)",
"on_cmd": "sudo /home/pi/shell/Light_on.sh 7 15",
"off_cmd": "sudo /home/pi/shell/Light_off.sh 7 15",
"state_cmd": "sudo /home/pi/shell/Light_status.sh 15"
}]
}]
}
最初のport以外の値は適当に設定して、iPhone のホームアプリが上手く認識出来ない時は適当に変更すると認識したりします。
その後は自分の環境に合わせて適当に。
私はシェルスクリプトで作成したものを呼び出していますが、CでもPythonでも好きなプログラムを呼び出す様にすれば良いです。
最後にこれをデーモン化します。
/etc/systemd/system/homebridge.service というファイルを作成します。
$ sudo nano /etc/systemd/system/homebridge.service
内容は
[Unit]
Description=Node.js HomeKit Server
After=syslog.target network-online.target
[Service]
Type=simple
User=pi
ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process
[Install]
WantedBy=multi-user.target
デーモンを起動します。
$ sudo systemctl daemon-reload
$ sudo systemctl enable homebridge
$ sudo systemctl start homebridge
これでデーモンが起動され、次回からはRaspberry pi の起動とともにデーモンも起動されます。
コメント
コメントを投稿