はじめに
自宅に太陽光発電システムを導入後、Home Assistantを使って電力に関する各種情報を可視化できました。本記事では、その実現方法について説明します。
事前知識
電力情報の取得方法
家庭内の発電量や消費電力、蓄電池の充放電状況などを見える化する仕組みとして、HEMS(Home Energy Management System)があります。太陽光発電システムを導入すると、専用リモコンやスマホアプリから電力の状態を確認できることがありますが、これらは多くの場合、宅内のHEMSコントローラーが集約している情報を参照しています。
このHEMSコントローラーとの通信には、ECHONET Liteという住宅設備向けの標準通信規格が使われることがあります。私の環境でも、HEMSコントローラーに対してECHONET Liteでアクセスすることで、太陽光発電、蓄電池などの情報を取得できました。ECHONET Liteで電力データを取得する具体的な調査方法や通信内容は、以前に投稿した以下の記事で詳しく説明しています。
Home Assistant とは?
Home Assistantは、さまざまなメーカーのスマート家電やIoTデバイスを一元管理できるオープンソースのプラットフォームです。ダッシュボードによる可視化、機器同士の連携、自動化ルールの作成などが柔軟に行えるため、単に状態を見るだけでなく、「ある条件になったら通知する」「時間帯や電力状況に応じて家電を制御する」といった仕組みも構築できます。
今回の用途では、Home Assistantを太陽光発電システムの情報を集約・可視化する基盤として利用します。ECHONET Liteで取得できる電力データをHome Assistantに取り込めば、発電量や蓄電池残量などを見やすい画面でまとめて確認でき、将来的な自動化にもつなげやすくなります。
実現イメージ
Home AssistantとHEMSを接続すると、以下の図の状態となります。
HEMSコントローラーから電力データを取得するには、Home Assistant 側で ECHONET Lite を利用できるように設定する必要があります。
実現するための手順概要
Home Assistantを使って電力データを可視化する手順の概要を示します。
セットアップ
- Home Assistantのセットアップ
- 今回はDocker Composeを使ってセットアップします。
- HACS(The Home Assistant Community Store)のインストール
- GitHubアカウントとの連携が必要になります。
- ECHONET Liteのカスタムコンポーネントをインストール
- HACSを使ってインストールします。
データの取得と可視化
- ECHONET Liteで電力データを取得する
- HEMSコントローラーに接続して、電力データを取得します。
- ダッシュボードで可視化
- 取得したデータを、ダッシュボードを使って可視化します。
以降、具体的な手順を説明します。
手順1:Home Assistantのセットアップ
既にHome Assistantを使っている方は、読み飛ばしていただいて問題ありません。
Home AssistantのDockerコンテナを起動
今回は、以下のDocker Composeファイルを使ってHome Assistantを起動します。
※ その他の各種インストール方法については、Installationをご参照ください。
services:
homeassistant:
image: homeassistant/home-assistant:latest
container_name: homeassistant
restart: unless-stopped
network_mode: host
volumes:
- /path/to/homeassistant-config:/config
environment:
- TZ=Asia/Tokyo
volumes では、コンテナ内の /config ディレクトリをホストOS側にマウントしています。Home Assistantの各種設定や収集したデータはこの /config に保存されるため、コンテナを作り直しても設定やデータを引き継ぐことができます。
以下のコマンドで、Dockerコンテナを起動します。
docker compose up -d
しばらくすると、以下のように8123のポートでアクセスできます。
次のような画面が表示されれば起動成功です。
セットアップ
起動画面で「私のスマートホームを作成」をクリックすると、以下のようにユーザー作成を求められます。
適切なユーザー名とパスワードを入力して、「アカウントの作成」をクリックします。
ここで使われるユーザーの有効範囲はコンテナ内のみです。
続いて、Home Assistantを使う住所を入力します。日本語でヒットしない場合は、ローマ字入力してみてください。
その後もいくつかの設定を行い、ログインを完了して以下の画面にたどり着いたら完了です。
手順2:ECHONET Liteをデバイスとして使える状態にする
HACSのインストール
電力情報を取得するには、HEMSコントローラーに対してECHONET Liteで通信する必要があるのですが、Home Assistantにはデフォルトではその機能がありません。それを実現する第一歩として、HACS(The Home Assistant Community Store)をインストールします。
インストールはDownloading HACSを参考にして、以下の手順で行います。手順の後半で、GitHubアカウントと連携する必要があるのでご注意ください。
コンテナに入る
docker compose exec homeassistant bash
コンテナ内で、インストールコマンドを実行
wget -O - https://get.hacs.xyz | bash -
コンテナからログアウトして、コンテナを再起動
docker compose restart
再起動後に、Home AssistantにWebブラウザからアクセスして、「設定」→「デバイスとサービス」をクリックします。
右下の「統合を追加」をクリックします。
検索ボックスに「HACS」と入力すると、HACSのインテグレーションが見つかるはずです。
確認事項にすべてチェックを入れて「送信」を押します。
すると、GitHub(https://github.com/login/device)と連携を求められます。以下の画像の真ん中よりやや下側の灰色で塗りつぶしている部分には、8桁の認証コードが入ります。
GitHubへのリンクにアクセスして、認証コードを入力します。
認証成功後、Home Assistantのページを確認すると、以下のように「デバイスが作成されました」と表示されます。
同様の手順は、HACSのサイトにも書かれているのでご参考ください。
ECHONET Liteのカスタムコンポーネントをインストール
続いて、HACSを使ってECHONET Liteのカスタムコンポーネントをインストールします。
Home Assistantの左のメニュで「HACS」をクリックすると、右側にカスタムコンポーネント一覧が出てきます。そこで、例えば「echonet」と検索するといくつかのカスタムコンポーネントがヒットするはずです。
今回は「ECHONETLite Platform」を選択してインストールします。以下のページで、右下の「DOWNLOAD」をクリックします。
ダウンロードしたカスタムコンポーネントを有効にするために、再起動します。
docker compose restart
手順3:ECHONET Liteで電力データを取得する
ECHONET Platformを使って電力データを収集するための設定をします。
Home Assistantの左メニューから「設定」を選択して、右側に出てくる「デバイスとサービス」を選択し、右下の「統合を追加」をクリックします。
検索ボックスで「echonet lite」と入力すると、先ほどインストールしたカスタムコンポーネントが表示されるので、クリックします。
ECHONET Liteで通信可能な機器を検出する設定を入力するウインドウが、以下のように出てきます。
サービスのIPアドレスがわかっている場合は、IPアドレスを入力しても問題ないです。
しばらく待つと、以下のようにデバイスが検出されます。私はIPアドレスを入力して、検出が完了するのに3分ほど掛かりました。
今回検出されたデバイスは、「蓄電池」「太陽光発電」「マルチ入力PCS」の3つです。
「設定」→「デバイスとサービス」→「統合」の順にクリックすると、下のようにECHONET Liteにデバイスが追加されていることを確認できます。
ここをクリックして、例えば "Home solar power generation" のデバイスを選択すると、以下のように「センサー」で太陽光発電に関するデータが取得できていることを確認できます。
手順4:ダッシュボードを使って、収集データを可視化する
センサーから取得したデータを使って、例えば以下のようにダッシュボードで可視化できます。
ダッシュボードの具体的な作り方については、公式ドキュメントなどをご参照ください。
おわりに
Home Assistantを使って、家庭で使われている電力データを自分で好きなように可視化できることに感動すら覚えました。他の機器とも連携して、より便利で快適な家庭環境を実現していきたいです。



















