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などのオープンソースコミュニティ全体に。


Source: https://habr.com/ru/post/J354480/


All Articles