Home AssistantとSenseCAP Sensorsとの連携
LoRaWAN®センサーをHome Assistantに統合する方法を共有します。
スマートホームの分野には既に十分な数のインテリジェントデバイス(センサー、ライト、スイッチ)があり、Apple Homekit、Google Home、Amazon Alexaなど、異なるデバイスに対応する複数のアプリを既にお持ちかもしれません。これらすべてを一箇所で相互に接続することが強く求められています。最近2022年9月にmatter 1.0がリリースされ、エコシステムの統一を目指すというニュースを読みましたが、これには確実に時間がかかるでしょう。
実際、matterがリリースされる数年前から、Home Assistantは完全にカスタマイズされたスマートホームエコシステムを構築するための最高のプラットフォームの一つであり、主流デバイスを統合し、自動化ルールを設定して、あなたの家をより良く、よりスマートな場所にします。これは間違いなく私が学び、経験を共有したいことです。
この一連の記事では、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を使用することを好みます。軽量でシンプルに使用できます。
32GB以上のMicro SDカードを用意し、コンピューターに接続します。ここではMacBookを例として使用します。
その他の特定目的OSに移動し、Home AssistantとHome Automationを選択します。
Home Assistantを選択
RPi4用のHome Assistant OSバージョンを選択
次にSDカードドライブを選択します。注意深く行い、間違ったディスクを選択しないでください。ドライブをフォーマットして貴重なデータをすべて失う可能性があります。


インターネット速度によっては、Home Assistantイメージのダウンロードに時間がかかる場合があります。
次に、micro SDカードをRaspberry Piに挿入し、イーサネットケーブルを接続します。起動すると、赤色LEDは赤色のままで、緑色LEDが点滅を始めます。緑色LEDが点滅しない場合は、イメージフラッシュ中に何か問題があったことを示します。
http://homeassistant.local:8123/
にアクセスし、インストールが完了するまで待ちます。
このリンクに従ってHome Assistantアカウントを登録し、ログインします。
ついに、Home Assistantのインストールが完了しました。
アプリでSenseCAP センサーをオンボード
SenseCAP は一連の産業用センサーデバイスとゲートウェイ製品であり、その中でもS210x LoRaWANセンサーは主に長距離およびバッテリー駆動のシナリオ向けに構築されています。
新しく発売されたS2120 Weather Stationを使用し、6階建ての屋上に設置したいと思います。LoRaの長距離通信機能が非常に役立ちます。クイックインストール用のアクセサリーがすべて付属しています。
Weather Stationは標準的なLoRaWANデバイスとして動作するため、自宅でSenseCAP M2 indoor LoRaWAN gatewayを使用できます。マグネットベース付きの3dBiアンテナが付属しています。
次に、SenseCAP Mate Appをダウンロードしてアカウントを登録します。
参考までに、こちらはSeeed Studioによる基本的なオンボーディングプロセスを説明した動画です。
M2 LoRaWANゲートウェイをイーサネットケーブルでインターネットに接続し、電源を入れる前にアンテナを接続します。パネルのRGB LEDが緑色で点灯したら、ゲートウェイが正常に設定されたことを意味します。
それでは、M2 LoRaWANゲートウェイをオンボードしましょう
- Mate Appを開き、「device」タブに移動します
- 右上角の「+」アイコンをクリックして、デバイスラベルにあるゲートウェイのQRコードをスキャンします。
- デバイスに名前を付けて場所を設定します。
同様に、QRコードをスキャンしてS2120気象センサーをオンボードします。S2120センサーをタップすると、気象データを確認できます。
- 気温
- 湿度
- 光強度
- 気圧
- 風向
- 風速
- 時間降雨量
- UV指数
そして今度は屋上に行って、ポールに設置する時です。
また、S2103 CO2, Temperature, and Humidity SensorとS2105 Soil Moisture, Temperature and EC Sensorも持っています。これらはS210xシリーズの同じメリットを共有し、オンボーディングプロセスも同じです。そして、産業標準の高品質です。
そこで、これらもSenseCAP Mate Appに追加し、寝室と植木鉢に設置しました。
これで、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
私のMQTT購読情報は:
Home AssistantのWeb UIに戻ります。
Home Assistantには多くの統合があります
https://www.home-assistant.io/integrations/
今日はMQTT統合を使用してJSON形式でデータを購読し、MQTT sensor integrationを使用してセンサー値を特定のエンティティにバインドします。
設定に移動し、Devices & Servicesに入ります
統合を追加ボタンをクリックしてMQTTを検索します
高度な設定を有効にすることを忘れないでください。Client IDの入力を忘れると、セットアップが失敗します。
次に、CONFIGUREボタンをクリックしてトピックをリッスンすることで、サブスクリプションが機能するかテストできます。
しばらく待つと、センサーメッセージが表示されます。
これで、MQTTクライアントが正常に設定されました。
エンティティの追加
センサー測定データを保存するために複数のエンティティを追加します。例えば、新しい「気温」エンティティを作成し、S2120 MQTT JSONメッセージから測定値を取得します。同様に他のセンサーエンティティも追加します。
これはHome Assistant設定ファイルを編集することで完了します。
configuration.yaml
設定に移動してAdd-onsに移動し、次に


インストールしてサイドバーに表示を有効にし、開始をクリックします。
ここで重要な部分は、以下のスクリプトで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 }}"
保存してから開発者ツールに移動し、YAMLファイルが正しいかどうかを確認します。
その後、Home Assistantを再起動します
再起動後、MQTTがSenseCAP トピックをリッスンしていることを確認します
次に、Settings -> Devices and Services -> Entitiesに移動します
わあ〜〜〜 すべてのセンサー測定値がそこにリストされています。
センサーデータダッシュボードの作成
最後のステップは、センサーエンティティをダッシュボードに追加することです。
overviewに移動して「Edit Dashboard」を見つけます
エンティティカードを選択します。このカードは1つのカードに複数のセンサー値を含めることができます。
各センサーに対して3つのカードを作成します
最終的に、非常に基本的な統合を行い、Home AssistantでSenseCAP センサーデータを表示しました。
次に、UIの最適化により多くの時間を費やし、美しく見えるようにします。
そしてESP32を使用して新しいセンサーをHome Assistantに追加します。