この出版物では、Raspberry Pi、Weinzierl KNX BAOS 838モジュールkBerry、およびbobaosに基づいて、homebridge(nodejsでのHomeKit Accessory Protocolの実装)を最初から設定および起動する方法を示します。
前提条件
- BAOS 838 kBerryモジュールがインストールされたRaspberry Pi
- インストール済みのRaspbian:nodejs、npm(私の場合、raspbian stretch lite、nodejs 8バージョン)。
行こう
シリアルポートを構成する
Raspberry Pi 3の場合:
sudo sh -c "echo dtoverlay=pi3-miniuart-bt >>/boot/config.txt"
ファイル/boot/cmdline.txtから、エントリーconsole = ttyAMA0,115200を削除します。
ユーザーをダイヤルアウトグループに追加し、再起動します
sudo usermod -a -G dialout pi sudo reboot
bdsd.sockをインストールします
curl -L https://raw.githubusercontent.com/bobaos/bdsd.sock/master/bdsd_install.sh | bash
スクリプトの内容:
#!/bin/bash sudo npm install -g bdsd.sock --unsafe-perm sudo npm install -g bdsd-cli --unsafe-perm SERVICE_NAME=bdsd.service mkdir $HOME/.config/systemd mkdir $HOME/.config/systemd/user touch $HOME/.config/systemd/user/$SERVICE_NAME SERVICE_PATH=$HOME/.config/systemd/user/$SERVICE_NAME echo "[Unit]" > $SERVICE_PATH echo "Description=Bobaos Datapoint Sdk Daemon" >> $SERVICE_PATH echo "[Service]" >> $SERVICE_PATH echo "ExecStart=/usr/bin/env bdsd.sock" >> $SERVICE_PATH echo "[Install]" >> $SERVICE_PATH echo "WantedBy=default.target" >> $SERVICE_PATH systemctl --user daemon-reload systemctl --user enable $SERVICE_NAME sudo loginctl enable-linger pi systemctl --user start $SERVICE_NAME
このスクリプトは、npmからbdsd.sockの最新バージョンをインストールし、 $ HOME / .config / systemd / user /にbdsd.serviceファイルを作成し、自動実行を構成して、サービスを開始します。
bdsd-cliで確認し、KNXモジュールをプログラミングモードにします。
bdsd-cli connected bobaos> setProgrammingMode -v 1 Set programming mode: success bobaos>
ボードの赤いLEDが点灯し、デバイスがプログラミングモードになっていることを示します。 次のステップに進みます。
ETSの構成
KNXのインストールはすべてETS(エンジニアリングツールソフトウェア)で構成されますが、これも例外ではありません。 WeinzierlのアプリケーションKNX BAOS 830に興味があります。 追加、カスタマイズ。 私の場合、オブジェクト101〜108の4つのリレーです。
物理アドレスを書き込んでから、部分的なダウンロードを行います。 その後、次の手順に進みます。
homebridgeをインストールして構成する
npmからhomebridgeをインストールします。
sudo npm install -g homebridge --unsafe-perm
homebridge-bobaosをインストールします。 現時点では、バージョン0.0.1 プラグインは開発の初期段階にあります。
sudo npm install -g homebridge-bobaos
次に、 $ HOME / .homebridge / config.jsonにあるconfig.json構成ファイルを作成する必要があります。
最小コンテンツ:
{ "bridge": { "name": "Homebridge", "username": "CC:22:3D:E1:CE:36", "port": 51822, "pin": "031-45-154" }, "accessories": [], "platforms": [] }
次に、構成ファイルにBobaosプラットフォームを追加し、アクセサリ、サービス、および仕様を登録する必要があります。 JSONを手動で編集するのは非常に問題があります-判読不能、エラーの可能性が高い-引用符、余分なコンマ、ネストを忘れることがあります。 したがって、構成にはYAMLを使用します。 典型的な設定は次のようになります。
accessories: - name: Livroom lights services: - type: Lightbulb name: Livroom lights characteristics: - type: On control: 101 status: 105 - name: Livroom lights 2 services: - type: Switch name: Livroom lights 2 characteristics: - type: On control: 102 status: 106 - name: Kitchen lights services: - type: Lightbulb name: Kitchen lights characteristics: - type: On control: 6 status: 6 - type: Brightness control: 2 status: 2 - name: Kitchen Fan services: - type: Fan name: Kitchen Fan characteristics: - type: On control: 103 status: 107
これまでにサポートされているサービスはほとんどありません:スイッチ(オン)、電球(オン、明るさ)、ファン(オン)、残りは追加されています。
homebridge.ymlなどの別のファイルに保存します。 次に、YAMLドキュメントをJSON形式に変換する必要があります。 homebridge-bobaosパッケージには、genBobaosAccessoriesユーティリティが含まれています。 私たちはそれを使用します:
genBobaosAccessories homebridge.yml ~/.homebridge/config.json { "bridge": { "name": "Homebridge", "username": "CC:22:3D:E1:CE:36", "port": 51822, "pin": "031-45-154" }, "accessories": [], "platforms": [ { "platform": "Bobaos", "name": "bobaos", "accessories": [ { "name": "Livroom lights", "services": [ { "type": "Lightbulb", "name": "Livroom lights", "characteristics": [ { "type": "On", "control": 101, .... ....
最初の引数はyml設定を渡し、2番目は既存のconfig.jsonです。 スクリプトは両方のファイルを解析し、Baboaosプラットフォームがない場合はプラットフォームのリストに新しいファイルを追加し、存在する場合は配列内の要素を更新します。 ユーティリティの出力にエラーがない場合は、config.jsonにリダイレクトします。
genBobaosAccessories homebridge.yml ~/.homebridge/config.json > ~/.homebridge/config.json
ホームブリッジを起動し、次のステップに進みます
homebridge
オートスタート
自動起動の場合は、systemdサービスを構成します。 これを行うには、パス$ HOME / .config / systemd / user / homebridge.serviceに沿って次の内容のサービスファイルを作成します。
[Unit] Description=Homebridge service [Service] ExecStart=/usr/bin/env homebridge [Install] WantedBy=default.target
次に、実行します:
systemctl --user daemon-reload systemctl --user start homebridge.service
確認します。 すべてが正常に機能する場合は、自動実行を割り当てます。
systemctl --user enable homebridge.service
この記事で終わりになります。 感謝の意を表明することに変わりはありませんが、これについては別れを告げます。
以前の出版物
謝辞
- まず第一に、優れたKNX機器に対するWeinzierlがなければ、このプロジェクトはなかったでしょう。
- Raspberry Piは優れたコンピューターです。
- Linux、nodejs、git、vimなどのオープンソースコミュニティ全体に。