Skip to main content

Home AssistantとSenseCAP Sensorsとの連携

LoRaWAN®センサーをHome Assistantに統合する方法を共有します。

pir

スマートホームの分野には既に十分な数のインテリジェントデバイス(センサー、ライト、スイッチ)があり、Apple Homekit、Google Home、Amazon Alexaなど、異なるデバイスに対応する複数のアプリを既にお持ちかもしれません。これらすべてを一箇所で相互に接続することが強く求められています。最近2022年9月にmatter 1.0がリリースされ、エコシステムの統一を目指すというニュースを読みましたが、これには確実に時間がかかるでしょう。

実際、matterがリリースされる数年前から、Home Assistantは完全にカスタマイズされたスマートホームエコシステムを構築するための最高のプラットフォームの一つであり、主流デバイスを統合し、自動化ルールを設定して、あなたの家をより良く、よりスマートな場所にします。これは間違いなく私が学び、経験を共有したいことです。

pir

この一連の記事では、Home Assistantで適切なスマートホームを構築し、Seeed Studio SenseCAP製品のセンサーを使用する方法を共有します。そして、これが最初のマイルストーンです。

ゼロからHome Assistantを実行し、SenseCAP気象センサーを統合します。

そこに到達するための手順は以下の通りです:

  • Raspberry PiにHome Assistantをインストール
  • アプリでSenseCAP センサーをオンボード
  • MQTT統合を追加し、SenseCAP データを購読
  • 異なるセンサー測定値でエンティティを追加
  • センサーデータダッシュボードを作成

Raspberry PiにHome Assistantをインストール

Home Assistantを始めるには、公式チュートリアルが非常に有用です。

Home Assistantを実行するデバイスやプラットフォームは多数ありますが、たまたま未使用のRaspberry Piを持っているので、ここから始めます。

Balena etcherを使用してSDカードをフラッシュする代わりに、公式のRaspberry Pi Imagerを使用することを好みます。軽量でシンプルに使用できます。

pir

32GB以上のMicro SDカードを用意し、コンピューターに接続します。ここではMacBookを例として使用します。

pir

その他の特定目的OSに移動し、Home AssistantとHome Automationを選択します。

pir

Home Assistantを選択

pir

RPi4用のHome Assistant OSバージョンを選択

pir

次にSDカードドライブを選択します。注意深く行い、間違ったディスクを選択しないでください。ドライブをフォーマットして貴重なデータをすべて失う可能性があります。

pir pir

インターネット速度によっては、Home Assistantイメージのダウンロードに時間がかかる場合があります。

次に、micro SDカードをRaspberry Piに挿入し、イーサネットケーブルを接続します。起動すると、赤色LEDは赤色のままで、緑色LEDが点滅を始めます。緑色LEDが点滅しない場合は、イメージフラッシュ中に何か問題があったことを示します。

pir

http://homeassistant.local:8123/にアクセスし、インストールが完了するまで待ちます。

pir

このリンクに従ってHome Assistantアカウントを登録し、ログインします。

ついに、Home Assistantのインストールが完了しました。

pir

アプリでSenseCAP センサーをオンボード

SenseCAP は一連の産業用センサーデバイスとゲートウェイ製品であり、その中でもS210x LoRaWANセンサーは主に長距離およびバッテリー駆動のシナリオ向けに構築されています。

新しく発売されたS2120 Weather Stationを使用し、6階建ての屋上に設置したいと思います。LoRaの長距離通信機能が非常に役立ちます。クイックインストール用のアクセサリーがすべて付属しています。

pir

Weather Stationは標準的なLoRaWANデバイスとして動作するため、自宅でSenseCAP M2 indoor LoRaWAN gatewayを使用できます。マグネットベース付きの3dBiアンテナが付属しています。

pir

次に、SenseCAP Mate Appをダウンロードしてアカウントを登録します。

pir

参考までに、こちらはSeeed Studioによる基本的なオンボーディングプロセスを説明した動画です。

M2 LoRaWANゲートウェイをイーサネットケーブルでインターネットに接続し、電源を入れる前にアンテナを接続します。パネルのRGB LEDが緑色で点灯したら、ゲートウェイが正常に設定されたことを意味します。

pir

それでは、M2 LoRaWANゲートウェイをオンボードしましょう

  • Mate Appを開き、「device」タブに移動します
  • 右上角の「+」アイコンをクリックして、デバイスラベルにあるゲートウェイのQRコードをスキャンします。
  • デバイスに名前を付けて場所を設定します。

pir

同様に、QRコードをスキャンしてS2120気象センサーをオンボードします。S2120センサーをタップすると、気象データを確認できます。

  • 気温
  • 湿度
  • 光強度
  • 気圧
  • 風向
  • 風速
  • 時間降雨量
  • UV指数

pir

そして今度は屋上に行って、ポールに設置する時です。

pir

また、S2103 CO2, Temperature, and Humidity SensorS2105 Soil Moisture, Temperature and EC Sensorも持っています。これらはS210xシリーズの同じメリットを共有し、オンボーディングプロセスも同じです。そして、産業標準の高品質です。

pir

そこで、これらもSenseCAP Mate Appに追加し、寝室と植木鉢に設置しました。

pir

これで、SenseCAP センサー側のすべての設定が完了しました。

MQTT統合の追加

  • なぜセンサーデータをHome Assistantに統合する必要があるのですか?

Home Assistantの自動化フローを活用できるためです。SenseCAP Appには現在その機能がありません。

  • SenseCAP データをHome Assistantに取得するプロセスは何ですか?

SenseCAP アカウントのAPIキーを取得<br/> SenseCAP オープンストリームAPI ドキュメント(MQTT)を読む<br/> Home AssistantにMQTT統合を追加<br/> MQTT経由でSenseCAP データを購読し、APIキーを使用<br/>

  • それでは、SenseCAP Portalに移動しましょう。ここで以下を見つけることができます

OrgID = Organization ID
Password = Access API keys

pir

私のMQTT購読情報は:

pir

Home AssistantのWeb UIに戻ります。

Home Assistantには多くの統合があります

https://www.home-assistant.io/integrations/

pir

今日はMQTT統合を使用してJSON形式でデータを購読し、MQTT sensor integrationを使用してセンサー値を特定のエンティティにバインドします。

設定に移動し、Devices & Servicesに入ります

pir

統合を追加ボタンをクリックしてMQTTを検索します

pir

高度な設定を有効にすることを忘れないでください。Client IDの入力を忘れると、セットアップが失敗します。

pir

次に、CONFIGUREボタンをクリックしてトピックをリッスンすることで、サブスクリプションが機能するかテストできます。

pir

pir

しばらく待つと、センサーメッセージが表示されます。

pir

これで、MQTTクライアントが正常に設定されました。

エンティティの追加

センサー測定データを保存するために複数のエンティティを追加します。例えば、新しい「気温」エンティティを作成し、S2120 MQTT JSONメッセージから測定値を取得します。同様に他のセンサーエンティティも追加します。

これはHome Assistant設定ファイルを編集することで完了します。

configuration.yaml

設定に移動してAdd-onsに移動し、次に

pir pir

インストールしてサイドバーに表示を有効にし、開始をクリックします。

pir

ここで重要な部分は、以下のスクリプトでYAMLファイルを変更することです

mqtt:
sensor:
- name: "Air Temperature"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4097"
unit_of_measurement: "℃"
value_template: "{{ value_json.value }}"
- name: "Air Humidity"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4098"
unit_of_measurement: "%RH"
value_template: "{{ value_json.value }}"
- name: "Light Intensity"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4099"
unit_of_measurement: "Lux"
value_template: "{{ value_json.value }}"
- name: "Barometric Pressure"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4101"
unit_of_measurement: "Pa"
value_template: "{{ value_json.value }}"
- name: "Wind Direction"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4104"
unit_of_measurement: "°"
value_template: "{{ value_json.value }}"
- name: "Wind Speed"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4105"
unit_of_measurement: "m/s"
value_template: "{{ value_json.value }}"
- name: "Rainfall Hourly"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4113"
unit_of_measurement: "mm/hour"
value_template: "{{ value_json.value }}"
- name: "UV Index"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4190"
unit_of_measurement: "UV"
value_template: "{{ value_json.value }}"
- name: "Soil Temperature"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4102"
unit_of_measurement: "℃"
value_template: "{{ value_json.value }}"
- name: "Soil Moisture"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4103"
unit_of_measurement: "%"
value_template: "{{ value_json.value }}"
- name: "Electrical Conductivity"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4108"
unit_of_measurement: "dS/m"
value_template: "{{ value_json.value }}"
- name: "Bed Room Temperature"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4102"
unit_of_measurement: "℃"
value_template: "{{ value_json.value }}"
- name: "Bed Room Humidity"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4103"
unit_of_measurement: "%RH"
value_template: "{{ value_json.value }}"
- name: "Bed Room CO2"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4108"
unit_of_measurement: "ppm"
value_template: "{{ value_json.value }}"

pir

保存してから開発者ツールに移動し、YAMLファイルが正しいかどうかを確認します。

その後、Home Assistantを再起動します

pir

再起動後、MQTTがSenseCAP トピックをリッスンしていることを確認します

pir

次に、Settings -> Devices and Services -> Entitiesに移動します

わあ〜〜〜 すべてのセンサー測定値がそこにリストされています。

pir

センサーデータダッシュボードの作成

最後のステップは、センサーエンティティをダッシュボードに追加することです。

overviewに移動して「Edit Dashboard」を見つけます

pir

エンティティカードを選択します。このカードは1つのカードに複数のセンサー値を含めることができます。

各センサーに対して3つのカードを作成します

pir

最終的に、非常に基本的な統合を行い、Home AssistantでSenseCAP センサーデータを表示しました。

pir

次に、UIの最適化により多くの時間を費やし、美しく見えるようにします。

そしてESP32を使用して新しいセンサーをHome Assistantに追加します。

リソース

Tango with Home Assistant and SenseCAP Sensors

Loading Comments...