Skip to main content

SenseCAP Indicator - Home Assistant アプリケーション開発

はじめに

SenseCAP Indicator を Home Assistant と統合することで、スマートホームの可能性を最大限に引き出しましょう。この強力な組み合わせにより、これまでにない簡単さで環境の監視と制御が可能になります。

この包括的なガイドでは、MQTT を使用して SenseCAP Indicator を Home Assistant とシームレスに統合する方法を学びます。

始める前に、Home Assistant のセットアップオプションを確認しましょう。Home Assistant は、2つの専用ハードウェアオプションに簡単にインストールできます:

note

もちろん、Installation - Home Assistant (home-assistant.io) に従って、HA をインストールするための様々なオプションがあります。

手頃な価格の Home Assistant Green は、Home Assistant を使い始める最も簡単な方法です。プラグアンドプレイで、Home Assistant が既にインストールされています。

Home Assistant の機能を最大限に活用するために、Home Assistant OS または Home Assistant Supervised の使用をお勧めします。どちらのオプションも高度な機能とより多くのカスタマイズオプションを提供し、スマートホーム体験を正確なニーズに合わせて調整できます。

それでは、統合プロセスを始めましょう。SenseCAP Indicator を Home Assistant で動作させるために、以下の3つの主要なステップに従ってください:

  1. Home Assistant OS のインストール
    1. アドオンのインストール
    2. MQTT 統合のセットアップ
  2. ファームウェアのビルドとフラッシュ
  3. MQTT デバイスの追加
  4. ダッシュボードのセットアップ

前提条件

始める前に、SenseCAP Indicator ボードのユーザーガイドを読んで、そのソフトウェアとハードウェア情報に慣れ親しんでください。

Home Assistant OS のインストール

Home Assistant は、プライバシーとローカル制御に焦点を当てた強力なオープンソースのホームオートメーションプラットフォームです。単一の統合プラットフォームからすべてのホームデバイスを管理・自動化するためのカスタマイズ可能で柔軟なフレームワークを提供します。

Home Assistant Yellow では、こちらで提供されている手順に従うことができます。また、任意のタイプの Raspberry Pi やローカルサーバーで実行するには、この手順をステップバイステップで従うことができます。

インストールが完了し、このページにアクセスできれば、次のステップに進むことができます。


Home Assistant のオンボーディング方法がわからない場合

Home Assistant をインストールしたら、詳細については Onboarding Home Assistant - Home Assistant を確認してください。

ステップ 1: アドオンのインストール

アドオン機能が必要

Home Assistant Yellow には Home Assistant Operating System が付属しており、アドオンを簡単にインストールできます。ただし、Home Assistant Container はアドオンをサポートしていないため、Home Assistant とは別に MQTT ブローカーアプリケーションをインストールする必要があります。詳細については、インストール方法を確認してください。

次のステップは、Mosquitto BrokerFile Editor をインストールすることです。Mosquitto は MQTT プロトコルを実装するオープンソースのメッセージブローカーであり、File Editor はターミナルにアクセスすることなく configuration.yaml ファイルを変更できます。

Home Assistant Yellow では、アドオン機能を使用して Mosquitto Broker と File Editor をインストールできます。

tip

便宜のため、サイドバーに「ファイルエディタ」を表示します:

これで2つのアドオンが取得できました。

ステップ2:MQTT統合の設定

MQTT(Message Queuing Telemetry Transport)は、SenseCAP IndicatorボードをHome Assistantに接続するために重要な軽量メッセージングプロトコルです。この機能を有効にするには、Home AssistantセットアップにMQTT統合を追加する必要があります。

MQTT統合を追加することで、Home AssistantがSenseCAP Indicatorボードとシームレスに通信できるようになり、リアルタイムデータ交換と制御が可能になります。この双方向通信は、センサーデータの監視とデバイスへのコマンド送信に不可欠です。

MQTT統合を設定するには:

  1. Home Assistantダッシュボードの統合ページ(デバイスとサービス -> 統合)に移動します。
  2. 「MQTT」を検索し、リストから選択します。(自動的に検出されない場合)
  3. 画面の指示に従って設定を完了します。
tip

公式でないMQTTブローカー(EMQX Brokerなど)を標準のMosquittoブローカーの代わりに使用している場合、自動検出が機能しない可能性があります。この場合、接続を確立するためにブローカーのIPアドレスを手動で入力する必要があります。これにより、Home AssistantがカスタムMQTTセットアップと通信できるようになります。

MQTTアドオンのユーザー追加

Home Assistantで公式のMosquitto Brokerアドオンを使用する場合、MQTT接続の認証情報を設定する必要がある場合があります。この手順により、デバイスとHome Assistant間の安全な通信が確保されます。ユーザーを追加する方法は以下の通りです:

  1. Home AssistantインターフェースでMosquittoブローカーアドオンに移動します。
  2. アドオン設定内の「Users」セクションまたはタブを探します。
  3. 「Add User」または「+」ボタンをクリックして新しいユーザーを作成します。
Add User Button
Create User Form
  1. ユーザー作成フォームで:
    • お好みのユーザー名を入力します。デフォルトは indicator-usr1 です。
    • 強力なパスワードを作成します。デフォルトは indicator-password です。
    • 必要に応じて、特定の権限を設定することもできます。
  2. 新しいユーザー認証情報を保存します。
tip

SenseCAP Indicator やその他の MQTT デバイスを Home Assistant に接続するように設定する際は、これらの認証情報を使用してください。

ユーザーを追加した後、変更を有効にするために Mosquitto ブローカーアドオンの再起動が必要な場合があります。これで、これらの認証情報を使用して安全な MQTT 接続を確立できるはずです。

SenseCAP Indicator の MQTT 設定を新しいユーザー名とパスワードで更新して、Home Assistant と通信できるようにすることを忘れないでください。

SenseCAP Indicator ESP32 プロジェクトのセットアップ

SenseCAP Indicator を Home Assistant と統合する前に、適切なファームウェアでデバイスをセットアップする必要があります。以下の手順に従って、プロジェクトをダウンロード、ビルド、そして SenseCAP Indicator にフラッシュしてください。

ステップ 1: プロジェクトのダウンロード

SenseCAP Indicator を Home Assistant と統合するために利用可能な2つのプロジェクトがあります。ニーズに最も適したものを選択してください:

このプロジェクトは Home Assistant 統合専用に設計されています。

または Git を使用してリポジトリをクローンします:

git clone https://github.com/Love4yzp/sensecap-indicator-ha

ステップ2: プロジェクトディレクトリに移動

プロジェクトをダウンロードまたはクローンしたら、適切なディレクトリに移動します:

cd sensecap-indicator-ha

ステップ3: プロジェクトのビルド、フラッシュ、モニタリング

これで、ファームウェアをビルドし、SenseCAP Indicatorにフラッシュして、デバイスの出力をモニタリングする準備が整いました。以下のコマンドを使用してください:

idf.py -p PORT build flash monitor

PORT を適切なデバイスのポートに置き換えてください(例:Windows では COM3、Linux では /dev/ttyUSB0)。

tip

デバイスのポートが不明な場合:

  • Windows の場合:デバイスマネージャーの「ポート (COM と LPT)」を確認してください
  • Linux/macOS の場合:ターミナルで ls /dev/tty* を実行してください

このコマンドは以下を実行します:

  1. プロジェクトをビルドします
  2. ファームウェアを SenseCAP Indicator にフラッシュします
  3. シリアルモニターを開いてデバイスの出力を表示します

シリアルモニターを終了するには、Ctrl-] を押してください。

ステップ 4:セットアップの確認

ファームウェアをフラッシュした後、シリアルモニターに SenseCAP Indicator からの出力が表示されます。Wi-Fi ネットワークと MQTT ブローカーへの接続が成功したことを示すメッセージを確認してください。

caution

SenseCAP Indicator が Home Assistant インスタンスと同じネットワークに接続されており、MQTT ブローカーが適切に設定されてアクセス可能であることを確認してください。

SenseCAP Indicator にファームウェアを正常にフラッシュして確認したら、MQTT 統合を使用して Home Assistant に統合する準備が整いました。

次に、SenseCAP Indicator を認識して通信するように Home Assistant を設定します。

MQTT デバイスの追加

Home Assistant で MQTT 統合をセットアップした後、次のステップは MQTT デバイスを追加することです。このプロセスでは、MQTT を通じて SenseCAP Indicator Board を認識して通信するように Home Assistant を設定します。

ステップ 1:Indicator エンティティの追加

SenseCAP Indicator エンティティを Home Assistant に追加するには、configuration.yaml ファイルを変更する必要があります。このファイルは、Home Assistant がデバイスとどのように相互作用するかを定義するために重要です。

tip

Home Assistant Yellow または File editor アドオンを備えたシステムを使用している場合、Web インターフェースを通じて configuration.yaml ファイルを簡単に変更できます。Home Assistant Container などの他のセットアップでは、ターミナルアクセスを通じてファイルを変更する必要がある場合があります。

configuration.yaml ファイルを変更するには:

  1. Home Assistant ダッシュボードの File editor アドオンに移動します。
  2. ファイルリストから configuration.yaml ファイルを選択します。
  3. ファイルに以下の MQTT 設定を追加します:
クリックして SenseCAP Indicator の MQTT 設定を展開してコピーしてください
# Example configuration.yaml entry | SenseCAP Indicator MQTT Configuration
mqtt:
sensor:
- unique_id: indicator_temperature
name: "Indicator Temperature"
state_topic: "indicator/sensor"
suggested_display_precision: 1
unit_of_measurement: "°C"
value_template: "{{ value_json.temp }}"
- unique_id: indicator_humidity
name: "Indicator Humidity"
state_topic: "indicator/sensor"
unit_of_measurement: "%"
value_template: "{{ value_json.humidity }}"
- unique_id: indicator_co2
name: "Indicator CO2"
state_topic: "indicator/sensor"
unit_of_measurement: "ppm"
value_template: "{{ value_json.co2 }}"
- unique_id: indicator_tvoc
name: "Indicator tVOC"
state_topic: "indicator/sensor"
unit_of_measurement: ""
value_template: "{{ value_json.tvoc }}"
switch:
- unique_id: indicator_switch1
name: "Indicator Switch1"
state_topic: "indicator/switch/state"
command_topic: "indicator/switch/set"
value_template: "{{ value_json.switch1 }}"
payload_on: '{"switch1":1}'
payload_off: '{"switch1":0}'
state_on: 1
state_off: 0
- unique_id: indicator_switch2
name: "Indicator Switch2"
state_topic: "indicator/switch/state"
command_topic: "indicator/switch/set"
value_template: "{{ value_json.switch2 }}"
payload_on: '{"switch2":1}'
payload_off: '{"switch2":0}'
state_on: 1
state_off: 0
- unique_id: indicator_switch3
name: "Indicator Switch3"
state_topic: "indicator/switch/state"
command_topic: "indicator/switch/set"
value_template: "{{ value_json.switch3 }}"
payload_on: '{"switch3":1}'
payload_off: '{"switch3":0}'
state_on: 1
state_off: 0
- unique_id: indicator_switch4
name: "Indicator Switch4"
state_topic: "indicator/switch/state"
command_topic: "indicator/switch/set"
value_template: "{{ value_json.switch4 }}"
payload_on: '{"switch4":1}'
payload_off: '{"switch4":0}'
state_on: 1
state_off: 0
- unique_id: indicator_switch6
name: "Indicator Switch6"
state_topic: "indicator/switch/state"
command_topic: "indicator/switch/set"
value_template: "{{ value_json.switch6 }}"
payload_on: '{"switch6":1}'
payload_off: '{"switch6":0}'
state_on: 1
state_off: 0
- unique_id: indicator_switch7
name: "Indicator Switch7"
state_topic: "indicator/switch/state"
command_topic: "indicator/switch/set"
value_template: "{{ value_json.switch7 }}"
payload_on: '{"switch7":1}'
payload_off: '{"switch7":0}'
state_on: 1
state_off: 0
number:
- unique_id: indicator_switch5
name: "Indicator Switch5"
state_topic: "indicator/switch/state"
command_topic: "indicator/switch/set"
command_template: '{"switch5": {{ value }} }'
value_template: "{{ value_json.switch5 }}"
- unique_id: indicator_switch8
name: "Indicator Switch8"
state_topic: "indicator/switch/state"
command_topic: "indicator/switch/set"
command_template: '{"switch8": {{ value }} }'
value_template: "{{ value_json.switch8 }}"
  1. configuration.yaml ファイルに変更を保存します。
caution

あなたの Home Assistant セットアップがアドオンをサポートしていない場合(例:Home Assistant Container)、ターミナルまたはSSH接続を通じて configuration.yaml ファイルを変更する必要があります。

ステップ 2: 設定変更の適用

configuration.yaml ファイルを変更した後、変更を適用する必要があります:

  1. Home Assistant ダッシュボードの Developer Tools に移動します。
  2. "YAML" タブを見つけてクリックします。
  3. ALL YAML CONFIGURATION で設定をリロードします。
YAML Configuration in Developer Tools
note

何か問題が発生した場合は、以下を実行できます:

  • "Check Configuration" ボタンをクリックして変更を確認します。
  • 設定チェックが通った場合、"Restart" ボタンをクリックして新しい設定を適用します。

再起動後、Home Assistant は SenseCAP Indicator エンティティを認識し、ダッシュボードでそれらを確認できるはずです。エンティティがすぐに表示されない場合は、MQTT ディスカバリープロセスが完了するまで数分待つ必要があるかもしれません。

SenseCAP Indicator が設定で定義された正しい MQTT トピックにデータを公開するよう適切に設定されていることを確認してください。

これらのステップに従うことで、MQTT 経由で SenseCAP Indicator デバイスを Home Assistant に正常に追加できました。これで、これらのエンティティをオートメーション、スクリプト、ダッシュボードで使用して、より統合されたスマートホーム体験を実現できます。

ダッシュボードの設定

SenseCAP Indicator を Home Assistant に統合する最後のステップは、カスタムダッシュボードの設定です。これにより、デバイスのデータと機能を簡単に視覚化し、制御できるようになります。

新しいダッシュボードの作成(オプション)

SenseCAP Indicator 専用のダッシュボードを作成したい場合:

  1. Home Assistant サイドバーの Settings -> Dashboards に移動します。
  2. "Add Dashboard" ボタンをクリックします。
  3. タイトル(例:"SenseCAP Indicator")を設定し、アイコンを選択します。
  4. "Create" をクリックして新しいダッシュボードを完成させます。
Create Dashboard
New Dashboard

ダッシュボードの設定

SenseCAP Indicatorエンティティをダッシュボードに追加するには:

  1. 編集したいダッシュボードを開きます。
  2. 右上角の三点メニューをクリックし、「Edit Dashboard」を選択します。
  3. 「TAKE CONTROL」ボタンをクリックして手動設定を有効にします。
Edit Dashboard
Take Control
  1. ダッシュボードエディターで、再び三点メニューをクリックし、「Raw configuration editor」を選択します。
  2. 既存のYAMLコンテンツを以下の設定に置き換えます:
クリックしてダッシュボードYAMLをコピーしてUIを変更

注意:これはConfiguration.YAML用ではありません。

views:
- title: Indicator device
icon: ''
badges: []
cards:
- graph: line
type: sensor
detail: 1
icon: mdi:molecule-co2
unit: ppm
entity: sensor.indicator_co2
- graph: line
type: sensor
entity: sensor.indicator_temperature
detail: 1
icon: mdi:coolant-temperature
- graph: line
type: sensor
detail: 1
entity: sensor.indicator_humidity
- graph: line
type: sensor
entity: sensor.indicator_tvoc
detail: 1
icon: mdi:air-filter
- type: entities
entities:
- entity: switch.indicator_switch1
- entity: switch.indicator_switch2
- entity: switch.indicator_switch3
- entity: switch.indicator_switch4
- entity: number.indicator_switch5
- entity: switch.indicator_switch6
- entity: switch.indicator_switch7
- entity: number.indicator_switch8
title: Indicator control
show_header_toggle: false
state_color: true
caution

このYAML設定はダッシュボード専用であり、configuration.yamlファイルに追加すべきではありません。

  1. 「SAVE」をクリックして変更を適用します。
Raw Configuration Editor
Save Configuration

おめでとうございます!Home Assistantダッシュボードを正常に設定し、SenseCAP Indicatorを表示・制御できるようになりました。これで、CO2レベル、温度、湿度、TVOCを監視し、Home Assistantインターフェースから直接さまざまなスイッチを制御できます。

リソース

  1. Demo SDK: SenseCAP IndicatorのDemo SDKはGitHubで入手できます。
  2. indicator_ha.cファイル: このファイルにはHome Assistant統合のメイン機能が含まれています。こちらで確認できます。
  3. ユーザーガイド: ユーザーガイドでは、SenseCAP Indicatorボードのソフトウェアとハードウェアに関する詳細情報を提供しています。こちらで読むことができます。
  4. Home Assistantインストールガイド: Home Assistantを初めて使用する場合、このガイドがインストールとセットアップに役立ちます。こちらで確認できます。
  5. ESP-IDFスタートガイド: このガイドでは、ESP-IDFを設定してプロジェクトをビルドするための完全な手順を提供しています。こちらでアクセスできます。
  6. Home Assistantの概念と用語

参考資料

技術サポート

SenseCAP Indicatorでお困りですか?サポートいたします!

このチュートリアルに従っている間に問題が発生したり、ご質問がある場合は、お気軽に技術サポートにお問い合わせください。いつでもサポートいたします!

Seeed公式Discordチャンネルで質問するか、GitHubディスカッションで何でも共有してください!

Footnotes

  1. MQTT デフォルト認証情報 - GitHub

Loading Comments...