Bobaos-KNX TP / UART、Raspberry Pi、Apple HomeKit







この出版物では、Raspberry Pi、Weinzierl KNX BAOS 838モジュールkBerry、およびbobaosに基づいて、homebridge(nodejsでのHomeKit Accessory Protocolの実装)を最初から設定および起動する方法を示します。







前提条件



  1. BAOS 838 kBerryモジュールがインストールされたRaspberry Pi
  2. インストール済みの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
      
      





この記事で終わりになります。 感謝の意を表明することに変わりはありませんが、これについては別れを告げます。







以前の出版物



  1. Bobaos-Raspberry Piを使用したKNX TP / UARTバスアクセス
  2. Bobaos-KNX TP / UART、Raspberry PiおよびUnixドメインソケット


謝辞



  1. まず第一に、優れたKNX機器に対するWeinzierlがなければ、このプロジェクトはなかったでしょう。
  2. Raspberry Piは優れたコンピューターです。
  3. Linux、nodejs、git、vimなどのオープンソースコミュニティ全体に。



All Articles