Home AssistantとESP Easyの間をMQTTで取り持つ

公開

ESP Easy)MQTTコントローラ設定

MQTTを導入するESP Easyは以前、INA219電圧電流センサとリレーで製作したスマートUSBスイッチです。

設定済みのINA219センサの計測値をPublish、リレーに繋がるGPIOをSubscribeで制御できるようにします。

ブラウザでESP EasyのWebUIの Controller タブを開き、新しいコントローラを追加します。

図12.ESP Easy Controller Settings

図12.ESP Easy Controller Settings

ProtocolHome Assistant (openHAB) MQTT を選ぶと、設定フォームが現れるので、先ずはHome AssistantのIPアドレスを Controller IP 欄に入力。

続く Credentials 項では、先ほどHome Assistantに作成したMQTTクライアントユーザ情報をそのまま入力。

図13.Controller Settings続き

図13.Controller Settings続き

Controller Client ID 欄は、ユニット番号まで含んでいたのを見直して、少し短めに。

設定で一番大切なPublish/Subscribeそれぞれのトピック定義は、Home Assistant公式ページに次のようなアドバイスがありました。

実際に試してみると、Publishはこの通りにすることで、Home Assistant側でデータを受け取れるものの、Subscribeはダメでこちらはデフォルトのままで制御できました。

最後に Enabled にチェックを入れ、 Submit 押下して適用し、コントローラ一覧にて割り振られた Nr 番号を、心に留めておきます。

図14.ESP Easy Controllers

図14.ESP Easy Controllers

MQTT Brokerとの接続状況は、 Main ページで確認することができます。

図15.ESP Easy MQTT接続ステータス

図15.ESP Easy MQTT接続ステータス

ESP Easy)デバイスにMQTTコントローラを紐付け

続いて Devices ページに移り、MQTTと連携させたいデバイス(INA219とリレーGPIO)の各設定ページ下方にある、 Data Aquisition 項にMQTTのコントローラにチェックを入れて紐付け、 Interval を0より大きな数字にしておきます。

図16.ESP Easy Device Data Aquisition

図16.ESP Easy Device Data Aquisition

MQTTのトピックに使うパラメータは、このデバイス一覧ページで次のように確認することができます。

図17.ESP Easy Devices MQTT凡例

図17.ESP Easy Devices MQTT凡例

Home Assistant)MQTT統合エントリ設定ページで疎通確認

ESP Easy側の設定を終えたらHome Assistantに戻り、MQTT統合エントリの設定ページで、Publish受信、Subscribe制御コマンド送信を試します。

先ずはESP EasyからPublishされたINA219センサの計測電圧値をリッスン。

図18.トピックをリッスン

図18.トピックをリッスン

次に、ESP EasyがSubscribeしているリレー制御のGPIO3の状態を、パブリッシュで制御。

図19.コマンドをパブリッシュ

図19.コマンドをパブリッシュ

ここでトリッキーなのは、GPIOの状態がそのままでは取得できないということ。そこで上述の図17のように当該GPIOピンをSwitchデバイスとして登録し、その状態をStateで参照できるようにしています。

そしてもう一つ、疎通確認時に地味にハマったのが、トピックは大文字小文字を区別しているということでした。

 

Home Assistant)configuration.yamlへエンティティを追加

疎通が確認されても他のデバイスと異なり、ESP Easyはディスカバリで自動登録されたりしないので、設定ファイル configuration.yaml へ手作業で記述する必要があります。

Home Assistant構築時に導入したアドオンでconfiguration.yamlを開き、先ほど疎通確認したESP Easyに加えもう1機、BME280環境センサで温度湿度気圧を計測している個体も併せて記述しています。

図20.configuration.yamlの編集

図20.configuration.yamlの編集

編集を保存後、右上の歯車アイコンからHome Assistantを再起動、もしくは 開発ツール より YAML設定の再読込 して適用。

再起動後にエンティティを検索すると、登録した項目を見つけることができます。

図21.エンティティ検索結果

図21.エンティティ検索結果

Home Assistant)ダッシュボードへの表示

登録されたエンティティをダッシュボードへいくつか登録してみます。

図22.エンティティカード BME280

図22.エンティティカード BME280

図23.エンティティカード INA219

図23.エンティティカード INA219

図24.ゲージカード INA219

図24.ゲージカード INA219

カードはクリックすると履歴がグラフ表示されます。

図25.BME280温度の詳細履歴グラフ

図25.BME280温度の詳細履歴グラフ

別拠点にあるデバイスとのVPN越しMQTT

WireGuardによる拠点間VPNを張っている別拠点にあるESP Easyも、同じ要領でHome Assistantへ登録することができました。

図26.別拠点デバイスのエンティティカード

図26.別拠点デバイスのエンティティカード

 

今回、Home AssistantにMQTTと言う汎用チャンネルが備わったので、今後はネットワークに繋がるRaspberry PiやOpenWRT、スマートコンセントなど様々なデバイスを全て繋ぎ、スマートホームの象徴である壁掛けダッシュボードに一元化してみたい、と妄想は尽きません。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA