Skip to main content

Home AssistantとSenseCAPセンサーを活用する方法

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

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を持っているので、こちらから始めます。

SDカードをフラッシュする際にBalena Etcherを使用する代わりに、公式のRaspberry Pi Imagerを使用することをお勧めします。軽量で使いやすいです。

pir

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

pir

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

pir

Home Assistantを選択します。

pir

RPi4用のHome Assistant OSバージョンを選択します。

pir

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

pirpir

インターネット速度によっては、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屋内LoRaWANゲートウェイを利用できます。このゲートウェイには磁石ベースの3dBiアンテナが付属しています。

pir

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

pir

参考までに、以下の動画はSeeed Studioが提供する基本的なオンボーディングプロセスを示しています。

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

pir

次に、M2 LoRaWANゲートウェイをオンボードします。

  • Mateアプリを開き、「デバイス」タブに移動します
  • 右上の「+」アイコンをクリックしてゲートウェイのQRコードをスキャンします(QRコードはデバイスラベルに記載されています)。
  • デバイスに名前を付け、場所を設定します。

pir

同じ方法で、QRコードをスキャンしてS2120 Weather Sensorをオンボードします。S2120センサーをタップすると、天気データが表示されます。

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

pir

そして、屋根に行き、ポールに取り付ける時が来ました。

pir

さらに、S2103 CO2、温度、湿度センサーS2105 土壌水分、温度、ECセンサーも持っています。これらはS210xシリーズの利点を共有しており、オンボーディングプロセスも同じです。これらは産業基準の高品質製品です。

pir

これらもSenseCAP Mateアプリに追加し、寝室や植木鉢に設置しました。

pir

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

MQTT統合を追加

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

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

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

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

  • 次に、SenseCAPポータルにアクセスします。ここで以下を見つけることができます

OrgID = 組織ID
Password = APIキーへのアクセス

pir

私のMQTT購読情報は以下の通りです:

pir

Home AssistantのWeb UIに戻ります。

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

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

pir

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

設定に移動し、「デバイスとサービス」に進みます。

pir

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

pir

クライアント ID を入力し忘れるとセットアップが失敗するため、必ず高度な設定を有効にしてください。

pir

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

pir

pir

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

pir

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

エンティティを追加する

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

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

configuration.yaml

設定に移動し、アドオンに進みます。

pirpir

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

pir

次に、以下のスクリプトで YAML ファイルを修正する重要な部分です。

mqtt:
sensor:
- name: "空気温度"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4097"
unit_of_measurement: "℃"
value_template: "{{ value_json.value }}"
- name: "空気湿度"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4098"
unit_of_measurement: "%RH"
value_template: "{{ value_json.value }}"
- name: "光強度"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4099"
unit_of_measurement: "Lux"
value_template: "{{ value_json.value }}"
- name: "気圧"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4101"
unit_of_measurement: "Pa"
value_template: "{{ value_json.value }}"
- name: "風向"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4104"
unit_of_measurement: "°"
value_template: "{{ value_json.value }}"
- name: "風速"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4105"
unit_of_measurement: "m/s"
value_template: "{{ value_json.value }}"
- name: "時間降雨量"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4113"
unit_of_measurement: "mm/hour"
value_template: "{{ value_json.value }}"
- name: "UV指数"
state_topic: "/device_sensor_data/411841915123/2CF7F1C042400055/1/+/4190"
unit_of_measurement: "UV"
value_template: "{{ value_json.value }}"
- name: "土壌温度"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4102"
unit_of_measurement: "℃"
value_template: "{{ value_json.value }}"
- name: "土壌湿度"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4103"
unit_of_measurement: "%"
value_template: "{{ value_json.value }}"
- name: "電気伝導率"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4108"
unit_of_measurement: "dS/m"
value_template: "{{ value_json.value }}"
- name: "寝室温度"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4102"
unit_of_measurement: "℃"
value_template: "{{ value_json.value }}"
- name: "寝室湿度"
state_topic: "/device_sensor_data/411841915123/2CF7F1C04160002C/1/+/4103"
unit_of_measurement: "%RH"
value_template: "{{ value_json.value }}"
- name: "寝室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

次に、設定 -> デバイスとサービス -> エンティティに移動します。

わぁ~~~ すべてのセンサー測定値がリストされています。

pir

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

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

概要に移動し、「Dashboardを編集」を見つけます。

pir

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

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

pir

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

pir

次に、UIを最適化して見た目を美しくするためにさらに時間をかける予定です。

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

リソース

Tango with Home Assistant and SenseCAP Sensors

Loading Comments...