はじめに
UGREEN NASync DXP2800を購入して、アプリセンターにHome Assistantというものがあって初めて知ったのですが、これ優れものですね!
Home AssistantはOSSでIFTTTのようなことをローカルで実現します。Raspberry Piなんかで実装してる人が多いようです。
Home Assistantはdockerコンテナとしても提供されていて、UGREEN NASync DXP2800ではそれを使ってアプリとして提供しているようです。なので、NASyncではアプリをインストールするだけで使えます。
iPhoneやAndroid用のアプリも出ていてとても使い勝手がいいのですが、ローカルで動いているのでVPNなどで自宅にアクセスする必要があります。(クラウドサービスもあるのですがそれは有償です)
私は前に書いた、TailScaleで自宅に接続して使っています。
私は今まで、主にSwitchBot + Amazon ALEXAでエアコン制御なんかをやってたんですが、HEMSやEcoFlowの電池なんかとの連携はできませんした。それぞれ違う規格で動いているためです。それがHome Assistantを使うことでかなり連携可能になります。
ECHONET Lite | Matter | IFTTT | Alexa | GoogleHome | CloudEdge | Home Assistant | |
---|---|---|---|---|---|---|---|
Panasonic AiSEG2 | 〇 | × | × | × | × | × | 〇*1 |
Panasonic ホームユニット VL-HB1000-W | × | × | × | × | × | × | × |
QCELLS 太陽電池 | × | × | × | × | × | × | 〇*1 |
SwitchBot | × | 〇 | 〇 | 〇 | 〇 | × | 〇 |
EcoFlow Delta2 | × | × | × | × | × | × | 〇*1 |
TP-LINK tapo | × | 〇 | 〇 | 〇 | 〇 | × | 〇 |
RATOC RS-WFIREX3 | × | 〇 | × | 〇 | 〇 | × | 〇*1 |
監視カメラ(COOAU) | × | × | × | × | × | 〇 | × |
*1 カスタムコンポーネント導入で可能
例えば、HEMS Panasonic AiSEG2から発電、使用電力を取得して余力がある時だけ何をを実行といったオートメーションが組めるようになります。
今回実現したこと
- Panasonic AiSEG2(HEMS)から発電量と消費量を取得して発電余力を求める
- 余力がある時にEcoFlow delta2を充電する
- 夜間充電した電力でサーバを稼働させる
- この一連のサイクルをオートメーション化する
はい。できました(笑)
iPhoneのHome Assistantアプリからアクセスするとこんな感じです。
実現方法
Home Assistantがあらかじめ対応している機器に関しては何もしなくても認識させられるのですが、残念ながら日本ローカルの AiSEG2は対応していません。そういう時はカスタムコンポーネントというのを作ることによって自由に機能を追加できます。AiSEG2から現在の発電量等を抜いてくるコンポーネントは無かったのでchatGPTさんにお願いして作りました(笑)
https://github.com/realktmr/hass_aiseg2_solpwr
GitHubを使ったのもPyhonでプログラムを書いたのも初めてだったのですが、AI素晴らしいですね。chatGPTとGeminiさんに教えてもらいながら作ってみました。
インストール方法
- GitHUBからCode -> Download ZIPでファイルを全部ダウンロードする。
- Home Assistantのconfigディレクトリにアサインしたフォルダにcustom_components/aiseg2_solpwrごとフォルダもファイルも置く。
- Home Assistantの設定-> … -> Home Assistantを再起動で再起動する
- 上がってきたら設定 -> デバイスとサービス から +統合を追加 を選んで、AiSEG2 Solar Powerを探して追加。IP、Username(aiseg固定)、Password(あなたがつけたもの)を入力して追加
これで、「発電量」「消費量」「余力」が出ているはずです。
EcoFlow delta2へのアクセスは Ecoflow-Cloudというカスタムコンポーネントが公開されており、これを使うことで簡単にアクセスできます。
EcoFlowアプリでも手動で設定できる【エネルギー管理】-> 【バックアップ予約】を有効にして、電池を利用するレベルを設定できます。例えばこの設定を20%に設定すると、入力ACプラグを挿していてもバッテリー残量が20%になるまで、電池から出力してくれます。20%を切ると充電を開始します。が20%まで充電するとパススルーでAC入力から出力します。
この機能を利用して、以下のようなオートメーションを組んでいます。
【前提】 DELTA2のエネルギー管理設定で充電限度 90%、放電限度 10%に設定。
【充電開始】 発電余力が 1.0kWhを超えたとき、Delta2のBackup Reserve EnabledがONだったらBackup Reserve EnabledをOFFにする。(これによって90%までAC入力から充電されるようになる)
【放電開始】 18:00になった時、DELTA2のMain Battery Level が80%以上あったら、DELTA2の Backup Reserve Level を 20%に設定してBackup Reserve EnabledをONにする(これによって、20%までは電池から放電する。20%を下回ったら20%まで充電する。しかし基本的には20%の時点でパススルー運転になるので次の日の充電開始までパススルー運転を実現している)
はい。これで太陽光発電の余力を使って充電し、DELTA2を普段使いするといった使い方が実現できました 🙂
蛇足
本当は、余力が0を切ったら電池から放電って設定にもできるのですが、これをやると頻繁に電池運転に切り替わり、そのたびにリレーがカチカチ切り替わりなんか壊れそうな気がして(笑)
蛇足ですが、DELTA2はUPSではないので電池出力とACパススルーの切り替えに時に数ミリ秒切れてしまうのでPCなんかは電源落ちてしまいます。私はもともと使ってたAPCのRS550というUPSを嚙ましているので問題はないですが、それでも頻繁な切り替えは寿命を著しく縮めると思います。
そんな訳で、ちょっと妥協したオートメーションを組んでいますが、まぁ、十分かと。
他に、NASyncを置いてる部屋の温度計と連携して部屋の温度が32℃を超えたら自動でエアコンを掛けて30℃を下回ったら止めるオートメーションを組んだり。電力余力がなくなったら、29℃以下だったらエアコンを止めるオートメーションを組んだり。いろいろできるかと。
面白い使い方を思いついたらぜひ教えてください。