【自作AIHomeHEMS開発】純正HEMSを見限りDocker×Pythonで自作!翌日の天気予報と連動させて買電ゼロを極める自動制御【第11回】

こんにちは!大手ハウスメーカー「トヨタホーム」で建てたマイホームに10年住み続けているオーナーです。
前回の第1回から第10回までは、資金計画や契約、地盤補強、引渡し、そして卒FIT対策としての「ニチコン製14.9kWh蓄電池の相見積もり導入」についてお話ししました。
大容量14.9kWhのバッテリーを手に入れ、我が家のスマートホーム化は完成した……はずでした。
しかし、実際に蓄電池の運用を開始して数週間、私はメーカー純正のアプリや既存HEMS(ホームエネルギー管理システム)の「致命的なおバカ仕様」に強いストレスとフラストレーションを抱くようになります。
- 「明日は朝から雲ひとつない快晴なのに、昨晩の深夜電力でバッテリーを満タン(100%)にしてしまったせいで、昼間のタダの太陽光がバッテリーに入らず、たったの8.5円で電力会社に叩き売りされている……!」
- 「逆に、明日は大雨で全く発電しない予報なのに、深夜の充電が中途半端だったせいで、夕方にバッテリーが切れて36円以上の高い電気を買わされている……!」
「メーカーの言う『AIスマート制御』って、全然スマートじゃないじゃないか!!」
怒りと探究心に火がついた私は、「メーカーの純正システムがダメなら、自分の手で真のAIエネルギーマネジメントシステムを作ればいい」と決意。
自宅のDockerサーバー上でPythonコードを書き、気象予報APIとスマートメーター・蓄電池(ECHONET Lite規格)を連動させた完全自動充放電制御システム「AIHomeHEMS」を自作開発しました!
今回は、エンジニア施主が本気で開発した自作HEMSのアーキテクチャと、買電ゼロを極めた脅威の経済効果を完全公開します!
📌 目次
- なぜ純正HEMSは「おバカ」なのか?固定スケジュールの限界
- 理想の制御:翌日の「日射量予報」から深夜充電量を逆算する
- 通信の壁を突破せよ!家電共通プロトコル「ECHONET Lite」の仕組み
- 我が家の開発環境:Docker × Python × 各種気象API
- 【ロジック公開】AIHomeHEMSが毎晩実行している自動計算フロー
- 成果:買電ゼロ日数が激増!年間数万円の追加経済メリットを達成
- オープンソースとしてGitHubでコード全公開!
- スマートホームの真価を引き出す太陽光・蓄電池の選び方
- まとめ&次回予告
🤦♂️ 1. なぜ純正HEMSは「おバカ」なのか?固定スケジュールの限界
多くの蓄電池メーカーが宣伝文句にしている「グリーンモード」や「おまかせモード」。
一見するとハイテクに見えますが、その中身の多くは「極めて単純な固定ルール」で動いています。
典型的な失敗パターンがこちらです:
パターンA:快晴の前夜
翌日の天気予報は、朝から夕方まで雲ひとつない「快晴」。
太陽光パネルからは20kWh以上の大量の電気が生み出されることが確定しています。
それなのに、純正HEMSは「毎晩深夜に80%〜100%まで充電する」という固定スケジュールを守り、深夜電力をバッテリーに詰め込んでしまいます。
翌日、昼前にはバッテリーが満杯になり、余った貴重な太陽光電力は8.5円の二束三文で電力会社に強制売電されてしまいます。
パターンB:大雨の前夜
翌日は一日中「土砂降り」の予報。太陽光はほぼゼロ発電。
それなのに、純正HEMSは深夜の充電を控えめに設定したため、昼過ぎには蓄電池が空っぽに。
夕方の最も電気を使う時間帯に、36円以上もする高額な昼間電力を電力会社からガンガン買電することになります。
「翌日の天気が分かっているなら、なぜ人間が手動でアプリを操作して充電量を調整しなければならないのか?」
この不毛な日課を撲滅するため、完全自動化の開発がスタートしました。
🎯 2. 理想の制御:翌日の「日射量予報」から深夜充電量を逆算する
私が目指した「真の最適制御アルゴリズム」は非常にシンプルです:
▼ 深夜の必要買電充電量の計算ロジック
深夜に必要な買電充電量 = 翌日の総消費予測量 − 翌日の太陽光発電予測量 − 現在の残容量
つまり、
- 「翌日が快晴」なら:昼間にタダの電気でバッテリーを満タンにできるため、深夜の買電充電は「最小限(朝の生活分だけ)」に抑え、バッテリーの空き容量を最大に空けておく!
- 「翌日が大雨」なら:昼間の発電が期待できないため、料金の安い深夜電力を使ってバッテリーを「100%満タン」にしておき、高い昼間電気を絶対に買わない!
これを毎晩、人間が寝ている間に自動で計算し、蓄電池に充電指示を出せば、損失は完全にゼロになります。
📡 3. 通信の壁を突破せよ!家電共通プロトコル「ECHONET Lite」の仕組み
自作システムから家庭用蓄電池やスマートメーターを操作するために使ったのが、日本のスマートハウス標準規格である「ECHONET Lite(エコーネットライト)」です。
ニチコンの系統連系蓄電システムも、電力会社のスマートメーターも、実は同一ネットワーク(LAN)内でECHONET Liteプロトコルによる通信ポートを開放しています。
PythonからUDPソケット通信を使い、規定のバイナリ電文(プロパティコード)を送信することで:
- 蓄電池の現在の充電率(SOC: %)の取得
- 現在の瞬時充放電電力(W)の取得
- 運転モードの切り替え(充電モード、放電モード、待機モード)
- 充電目標値(目標SOC)の書き込み
- スマートメーターからのリアルタイム買電・売電電力のモニタリング
がすべてプログラムから直接コントロールできるのです!
💻 4. 我が家の開発環境:Docker × Python × 各種気象API
システムは、自宅で24時間365日稼働している小型サーバー(NAS環境のDockerコンテナ)上に構築しました。
- 実行環境:Docker Container (Alpine Linux base)
- 開発言語:Python 3.11
- 主要ライブラリ:
asyncio,requests,numpy,pandas - 気象データソース:Open-Meteo API(高精度な時間別日射量・全天日射量予測データ)
- データ永続化:InfluxDB(時系列データベース)+ Grafana(可視化ダッシュボード)
⚙️ 5. 【ロジック公開】AIHomeHEMSが毎晩実行している自動計算フロー
毎晩23:00、電力会社の深夜電力時間帯が始まる直前に、自作スクリプトが自動起動します。
- 気象APIへリクエスト:我が家の正確な緯度・経度における「翌日1時間ごとの全天日射量(W/m²)予測」を取得。
- 予想発電量の算出:太陽光パネル容量(4.5kW)、屋根の傾斜角・方位角、過去の実績係数を掛け合わせ、翌日の「総予想発電量(kWh)」と「時間別発電カーブ」を計算。
- 予想消費量の算出:曜日(平日/休日)や季節に応じた我が家の過去の電力消費パターンから、翌日の「総予想消費電力量(kWh)」を推定。
- 最適充電SOCの決定:翌日の太陽光で賄いきれない不足電力量を算出し、「今夜の深夜電力で何%まで蓄電池を充電すべきか」を決定。
- ECHONET Liteコマンド送信:ニチコン蓄電池のコントローラーへUDPパケットを送信し、深夜充電の目標値を自動設定!
🏆 6. 成果:買電ゼロ日数が激増!年間数万円の追加経済メリットを達成
この「AIHomeHEMS」を本番稼働させてからの成果は目覚ましいものでした。
- 太陽光余剰電力の廃棄(安値売電)がほぼ消滅!
- 快晴の日、昼間のピーク発電電力が見事に空っぽのバッテリーへ100%吸い込まれていきます。
- 高額な昼間買電(36円/kWh)の発生頻度が激減!
- 雨の日でも、前夜に安価な深夜電力で100%蓄電されているため、夕方のピーク時までバッテリーが粘り勝ちします。
- 年間でさらに数万円の電気代削減効果を上乗せ!
- 純正の固定スケジュール制御と比べて、年間で約2万〜4万円相当の追加経済価値を生み出すことに成功しました。
毎朝、Grafanaのダッシュボードに表示される「買電電力:0.00 kWh」のグラフを見るたびに、エンジニア冥利に尽きる最高の達成感を味わっています。
▼ 太陽光発電の導入・相見積もりはこちら(無料一括比較)
🌐 7. オープンソースとしてGitHubでコード全公開!
この自作システム「AIHomeHEMS」のソースコード、およびDocker設定ファイルは、すべてのスマートハウス施主・エンジニアのためにGitHubで完全公開しています。
興味のある方、自宅の蓄電池をスマートに制御したい方は、ぜひStarをつけて覗いてみてください👇
📝 まとめ&次回予告
こうしてスマートホームのエネルギー制御を極めた我が家。
しかし!マイホームの10年間は、順風満帆なハイテクライフばかりではありませんでした……。
日常の暮らしの中で、次々と巻き起こる「予期せぬ住宅トラブルと大修理」の数々!
その第1弾が、「室内物干しフックの天井脱落事故」です!
ある日、洗濯物を干した瞬間、「ミシミシッ……バキバキッ!」という轟音とともに、天井の石膏ボードごとフックがごっそり抜け落ちて大惨事に!?
次回は、「【室内物干しフック天井脱落】洗濯物の重みで石膏ボードごと落下!天井開口&下地合板強化の大修理と新築時にやるべきだった教訓【第12回】」 をお届けします!
下地補強の重要性を身をもって学んだ修理実録をお楽しみに!
