ud_cos2_mqtt
使い方
ud_cos2_mqtt は、UD-COS2 からセンサーデータを取得し、MQTT ブローカーに送信するプログラムです。主に Home Assistant での利用を想定しています。以下の方法で利用できます。
プログラムの実行
ud_cos2_mqtt プログラムは systemd サービスとして実行されますが、手動で実行する場合は以下のコマンドを使用します。
/usr/local/bin/ud_cos2_mqtt
コマンドラインオプション
ud_cos2_mqtt は以下のコマンドラインオプションをサポートしています:
-h: MQTTブローカーのホスト名またはIPアドレスを指定します。デフォルトは localhost です。
-p: MQTTブローカーのポートを指定します。デフォルトは 1883 です。
-u: MQTTブローカーのユーザー名を指定します。
-P: MQTTブローカーのパスワードを指定します。
-t: MQTT のトピックを指定します。デフォルトは homeassistant/ud_cos2 です。
例:
/usr/local/bin/ud_cos2_mqtt -h example.com -p 1883 -u myuser -P mypassword
環境変数のサポート
ud_cos2_mqtt はコマンドラインオプションに加えて、以下の環境変数もサポートしています:
MQTT_SERVER: MQTTブローカーのホスト名またはIPアドレス。
MQTT_PORT: MQTTブローカーのポート番号。
MQTT_USERNAME: MQTTブローカーのユーザー名。
MQTT_PASSWORD: MQTTブローカーのパスワード。
MQTT_TOPIC: MQTT トピック名。
環境変数を設定しておけば、コマンドラインオプションで指定しなくてもプログラムがこれらの設定を使用します。コマンドラインオプションが優先されます。
MQTT ブローカーの設定
MQTT ブローカーの設定は環境ファイルを通じて行われます。ud_cos2_mqtt は、センサーデータを指定された MQTT ブローカーに送信します。
install.sh 実行時に生成された ~/.ud_cos2_mqtt.env には、以下のような内容が含まれています。
MQTT_USERNAME=your_username
MQTT_PASSWORD=your_password
必要に応じて、これらの値を直接編集することもできます。
インストール
-
リポジトリのクローン
まず、このリポジトリをクローンします。
git clone <リポジトリのURL>
cd <リポジトリのディレクトリ>
-
インストールスクリプトの実行
install.sh スクリプトを実行して、プログラムをインストールします。
./install.sh
スクリプトを実行すると、以下のプロセスが自動的に行われます。
ud_cos2_mqtt プログラムのビルド。
- MQTT のユーザー名とパスワードの入力プロンプト。
- 環境ファイルの作成と適切なパーミッションの設定。
systemd サービスファイルの作成とサービスの有効化および起動。
-
サービスの確認
インストールが完了したら、systemctl を使ってサービスの状態を確認できます。
sudo systemctl status ud_cos2_mqtt.service
また、ログを確認するには以下を使用します。
journalctl -u ud_cos2_mqtt.service -n 30
Home Assistant での設定
configuration.yaml に mqtt 設定がなければ include します。
mqtt: !include mqtt.yaml
homeassistant/mqtt.yaml を(なければ)同じディレクトリにおいてください。ある場合は書き足せば動くんじゃないですかね…。
詳細は公式マニュアルを参照してください。
注意点
- パスワードは暗号化されずに環境ファイルに保存されるため、専用のものを発行するとよいです。
ライセンス
このプロジェクトは、MITライセンスのもとで公開されています。
だいたい ChatGPT が書きました。もともとのアイデアはoquno のやつです。