申し訳ありません。お使いのブラウザーはJavaScriptをサポートしていません。
サインイン

Docker を使用したセルフホスト型エネルギー監視

Docker を使用したセルフホスト型エネルギー監視

セルフホスト型のエネルギー監視システムでは、監視サーバーと電力データを自分の管理下に置くことができます。エネルギー計測器はすべての測定値をパブリッククラウドに送信する代わりに、ローカルサーバー、NAS、Raspberry Pi、または対応ルーター上で動作する Docker コンテナにデータをアップロードします。

IAMMETER-Docker は、電力消費量と太陽光発電(PV)システム向けの、すぐに実行できるローカルエネルギー監視サーバーを提供します。測定値の収集、リアルタイムデータと履歴データの表示、API の公開、およびオプションとしてオフラインのデータロガーとしての動作が可能です。

IAMMETER energy meter
        │
        │ Wi-Fi / local network
        ▼
IAMMETER-Docker
        │
        ├── Local web dashboard
        ├── Historical energy data
        ├── REST API
        ├── MQTT
        ├── CSV datalogger
        └── Optional forwarding

IAMMETER-Docker は実用的なセルフホスト型の選択肢ですが、IAMMETER-Cloud のすべての機能とレポートを再現するわけではありません。まだアーキテクチャを選択中の場合は、セルフホスト型エネルギー監視ソリューションのページで選択肢を比較してください。

🎬 IAMMETER-Docker のビデオチュートリアルを見る

1. セルフホスト型エネルギー監視システムはいつ使用すべきか

IAMMETER-Docker は、次のような場合に適しています:

  • エネルギー データを自分が管理するサーバーに保持したい場合;
  • インターネット接続に依存せずに LAN 上で電力を監視したい場合;
  • ローカルの太陽光監視ダッシュボードを展開したい場合;
  • オフラインのデータロガーを使用して遠隔地でデータを収集したい場合;
  • ローカルの REST API または MQTT 経由で測定値にアクセスしたい場合;
  • 選択したデータを別のプラットフォームに転送したい場合;
  • 保存されたエネルギー データを活用してプライベートなダッシュボードや統合を構築したい場合。

一般的な導入例は次のとおりです:

  • 家庭の電力と太陽光発電(PV)の監視;
  • 工房、オフィス、小規模な商業施設;
  • 遠隔地の太陽光発電システムと機器室;
  • 開発・テスト環境;
  • ローカルなデータ経路が必要なプロジェクト。

Home Assistant、Node-RED、PLC、またはカスタムソフトウェアで計測器の直接測定値だけが必要な場合は、完全なサーバーを展開する必要はないかもしれません。選択する前に、ローカルおよびセルフホスト型の統合オプションを参照してください。

2. 必要なもの

展開前に、以下を準備してください:

  • Docker を実行できるデバイス(Linux サーバー、NAS、Raspberry Pi、対応ルーターなど);
  • アプリケーションデータベース用の永続ストレージ;
  • Web アプリケーションと API 用に TCP ポート 5050 を利用可能にすること;
  • 組み込みの MQTT サービスを使用する場合は TCP ポート 1883
  • Docker ホストの安定した IP アドレスまたは DHCP 予約;
  • IAMMETER エネルギー計測器、またはサポートされている API 形式でデータを送信できる別のデータソース。

Docker ホストと計測器は、ローカルネットワーク経由で互いに到達可能である必要があります。オフライン運用の場合、イメージと必要なソフトウェアがインストールされた後はインターネットアクセスは不要です。

3. IAMMETER-Docker を展開する

現在の Docker Hub リリースは IAMMETER-Docker V2.4 です。

3.1 オプション A:Docker run

作業ディレクトリを作成し、永続ストレージ付きでコンテナを実行します:

docker run -d \
  --name myiammeter \
  --restart always \
  -p 5050:5050 \
  -p 1883:1883 \
  -e TZ=Etc/UTC \
  -v "$PWD/data:/app/data" \
  iammeter/iammeter

TZ=Etc/UTC を監視サイトの正しいタイムゾーンに変更してください。エネルギーレポートはローカルの日時に依存するため、本番データの収集前に設定してください。

3.2 オプション B:Docker Compose

compose.yaml を作成します:

services:
  iammeter:
    image: iammeter/iammeter
    container_name: myiammeter
    restart: always
    ports:
      - "5050:5050"
      - "1883:1883"
    environment:
      TZ: Etc/UTC
    volumes:
      - ./data:/app/data

サービスを起動します:

docker compose up -d

ステータスを確認します:

docker compose ps
docker compose logs --tail=100 iammeter

3.3 ローカルダッシュボードを開く

同じネットワーク上のブラウザから次のアドレスを開きます:

http://<docker-host-ip>:5050

デフォルトの認証情報:

Username: testuser
Password: 123456

デフォルトのパスワードはすぐに変更してください。適切なファイアウォール、認証、および安全なネットワーク設計なしに、ポート 5050 または 1883 をパブリックインターネットに直接公開しないでください。

IAMMETER-Docker のログイン画面

4. 初期設定

サインイン後:

  1. 自宅、太陽光発電サイト、または監視対象施設用の Place を作成します。
  2. Meter を追加します。
  3. 計測器のシリアル番号(SN)を入力します。
  4. 正しい単相または三相の計測器タイプを選択します。
  5. 各相またはチャンネルを GridInverter、または Load として割り当てます。
  6. レポートを評価する前に、サイトのタイムゾーンと測定構成を確認します。

IAMMETER-Docker で計測器を設定

正しいチャンネル割り当ては、特に太陽光監視で重要です。システムは、意味のあるエネルギーフロー結果を表示する前に、どの測定値が系統(グリッド)、インバーター、負荷を表すかを把握する必要があります。

5. IAMMETER エネルギー計測器を接続する

IAMMETER 計測器は、ローカルの Docker サーバーに直接アップロードできます。

計測器の WebUI でサードパーティ HTTP アップロードを設定し、Docker ホストのアドレスを使用します:

<docker-host-ip>:5050/api/v1/sensor/uploadsensor

Docker ホストの IP は、計測器の Wi-Fi ネットワークから到達可能である必要があります。IAMMETER-Docker に追加したのと同じ計測器 SN を使用してください。

IAMMETER-Docker への HTTP アップロードを設定

計測器の設定を保存した後:

  1. 最初のアップロードを待ちます;
  2. IAMMETER-Docker で計測器がオンラインとして表示されることを確認します;
  3. 電圧、電力、電力量の値を計測器のローカルデータと比較します;
  4. 太陽光またはインポート/エクスポートの計算を信頼する前に、方向とチャンネル割り当てを検証します。

IAMMETER-Cloud を同時に使用する

IAMMETER-Docker は、計測器データを IAMMETER-Cloud に転送することもできます。ローカルストレージと IAMMETER-Cloud サービスの両方が必要な場合にのみ、転送を有効にしてください。

ローカルデータを IAMMETER-Cloud に転送

オフラインまたはクラウドに依存しない導入の場合は、クラウド転送を無効のままにしてください。

6. 別のデバイスまたはアプリケーションからデータをアップロードする

IAMMETER-Docker は、REST API 経由でサポートされているエネルギー データを受信することもできます。これは、IAMMETER 計測器を使用しないシミュレーター、ゲートウェイ、または顧客アプリケーションに役立ちます。

カスタム SN の計測器を作成し、各 API リクエストで同じ SN を使用してください。

インタラクティブな API ドキュメントはローカルサーバーで利用できます:

http://<docker-host-ip>:5050/docs

IAMMETER-Docker API ドキュメント

IAMMETER-Docker API リクエストをテスト

まず本番環境以外の計測器で API をテストしてください。履歴データを引き続き利用できるよう、SN、相数、フィールドの順序、単位を一貫して保ってください。

7. オフラインのエネルギー データロガーを実行する

IAMMETER-Docker V2.4 は、データロガーディレクトリがマウントされている場合、データを CSV に保存できます。これは、安定したインターネット接続がない遠隔地の太陽光発電サイト、工場、または機器室に役立ちます。

データロガーストレージ付きの Docker run

docker run -d \
  --name myiammeter \
  --restart always \
  -p 5050:5050 \
  -p 1883:1883 \
  -e TZ=Etc/UTC \
  -v "$PWD/data:/app/data" \
  -v "$PWD/datalogger:/app/datalogger" \
  iammeter/iammeter

Docker Compose の場合は、このボリュームを追加します:

volumes:
  - ./data:/app/data
  - ./datalogger:/app/datalogger

データロガーページを次のアドレスで開きます:

http://<docker-host-ip>:5050/datalogger

データロガーページの初期認証情報は次のとおりです:

Username: admin
Password: admin

このパスワードは展開の一環として変更してください。ルーターを使用した完全なワークフローと CSV エクスポートについては、IAMMETER-Docker によるオフラインエネルギー データロガーを参照してください。

8. MQTT とその他の高度な機能

ポート 1883 は IAMMETER-Docker の MQTT サービスによって使用されます。計測器や他のアプリケーションはサポートされている測定データを IAMMETER-Docker に公開でき、MQTT クライアントはリアルタイムの値にサブスクライブできます。

IAMMETER-Docker は次のような機能もサポートしています:

  • 大規模なデータセット向けに、デフォルトのローカルデータベースの代わりに MySQL;
  • MQTT の公開とサブスクリプション;
  • PVOutput への転送;
  • 互換性のある Tasmota エネルギー データ;
  • リアルタイムアラームと 1 秒間隔のデータロガーシナリオ。

これらの機能は、基本の展開手順には意図的に含まれていません。まずコアコンテナを設定してテストし、その後高度な IAMMETER-Docker ガイドに進んでください。

9. エネルギー データをバックアップする

/app/data ボリュームには永続的なアプリケーションデータが含まれます。対応するホストディレクトリを定期的にバックアップしてください。

安全な基本的な手順は次のとおりです:

  1. コンテナへの書き込みを停止または一時停止します;
  2. マウントされている data ディレクトリ全体をバックアップストレージにコピーします;
  3. CSV ロギングが有効な場合は datalogger ディレクトリも含めます;
  4. 複数世代のバックアップを保持します;
  5. バックアップ計画に依存する前に、別のコンテナで復元をテストします。

コンテナのファイルシステムを永続ストレージとして扱わないでください。/app/data がマウントされていない場合、コンテナを削除すると監視データベースも一緒に削除される可能性があります。

10. IAMMETER-Docker をアップグレードする

アップグレード前に、永続データディレクトリをバックアップしてください。

Docker Compose の場合:

docker compose pull
docker compose up -d
docker compose logs --tail=100 iammeter

docker run で作成したコンテナの場合:

  1. 既存のポート、タイムゾーン、ボリュームのマウントを記録します;
  2. 新しいイメージをプルします;
  3. 古いコンテナを停止して削除します;
  4. 同じ永続ボリュームでコンテナを再作成します;
  5. ログイン、計測器のステータス、履歴データを確認します。
docker pull iammeter/iammeter
docker stop myiammeter
docker rm myiammeter

その後、元の docker run コマンドを再実行します。コンテナの削除が安全なのは、アプリケーションデータが正しくマウントされバックアップされたホストディレクトリに保存されている場合のみです。

11. トラブルシューティング

Web ページが開かない

  • docker ps または docker compose ps でコンテナが実行中であることを確認します。
  • ホストポート 5050 がすでに使用されていないか確認します。
  • コンテナのログを確認します。
  • ファイアウォールがローカルネットワークからのアクセスを許可していることを確認します。

計測器がオンラインとして表示されない

  • 計測器が Docker ホストの IP に到達できることを確認します。
  • アップロード URL とポートを確認します。
  • IAMMETER-Docker の SN が計測器の SN と一致していることを確認します。
  • 計測器のサーバーアドレスに localhost を使用しないでください。これは Docker ホストではなく計測器自身を指します。
  • クライアント分離またはゲスト Wi-Fi ネットワークが LAN トラフィックをブロックしていないことを確認します。

太陽光データが正しく見えない

  • CT の向きと配線を確認します。
  • どのチャンネルが Grid に割り当てられ、どのチャンネルが Inverter に割り当てられているかを確認します。
  • インポート時とエクスポート時の有効電力の符号を確認します。
  • 日次の電力量合計を比較する前に、タイムゾーンを確認します。

コンテナ再作成後にデータが消える

  • /app/data が永続的なホストディレクトリにマウントされていることを確認します。
  • ディレクトリの権限を確認します。
  • 元のボリュームが利用できない場合は、検証済みの最新バックアップを復元します。

12. IAMMETER-Docker、IAMMETER-Cloud、それともカスタムシステム?

選択肢 最適な用途 データの保存場所 セットアップの手間 主なトレードオフ
IAMMETER-Docker すぐに使えるローカル監視サーバー 自分の Docker ホスト 低〜中 管理されたクラウド機能が少ない
IAMMETER-Cloud すぐに使える監視・レポート・リモートアクセス IAMMETER-Cloud ホスト型クラウドサービスを使用
Home Assistant / Node-RED スマートホームエンティティとカスタム自動化 自分のプラットフォーム ダッシュボードとワークフローを自分で設計
Custom server 製品、EMS、または専門的なデータパイプライン 自社のインフラ システムを自分で開発・保守

次の記事もご覧ください:

13. 展開チェックリスト

  • Docker ホストに安定した LAN アドレスがある。
  • /app/data が永続ストレージにマウントされている。
  • タイムゾーンが監視サイトと一致している。
  • デフォルトのパスワードが変更されている。
  • ポート 50501883 が不必要にインターネットに公開されていない。
  • 計測器の SN とチャンネル割り当てが正しい。
  • 実測値でローカルアップロードが検証されている。
  • クラウド転送が必要な場合のみ有効になっている。
  • バックアップとアップグレードの手順がテストされている。
  • CSV エクスポートが必要な場合、データロガーボリュームがマウントされている。

最終更新日:2026年7月17日。

トップ