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

Docker MQTT エネルギー監視:IAMMETER-Docker の高度な設定

Docker MQTT エネルギー監視と高度な設定

基本的な IAMMETER-Docker サーバーが稼働した後、それをローカルの MQTT エネルギー監視サーバーに拡張したり、大規模なデータセットに対して MySQL を使用したり、太陽光発電データを PVOutput に転送したり、互換性のあるサードパーティ製の計測データを受け入れたりすることができます。

このガイドでは、高度なデータ経路とストレージオプションについて説明します。インストール、永続ボリューム、初回ログイン、メーターの設定、バックアップ、コンテナのアップグレードについては、Docker によるセルフホスト型エネルギー監視 から始めてください。

IAMMETER meter / compatible device / custom application
                         │
             ┌───────────┼───────────┐
             │           │           │
            HTTP        MQTT       REST API
             │           │           │
             └───────────┼───────────┘
                         ▼
                  IAMMETER-Docker
                         │
       ┌─────────────────┼─────────────────┐
       ▼                 ▼                 ▼
 SQLite / MySQL     MQTT subscribers     PVOutput

プロジェクトに必要なインターフェースのみを使用してください。シンプルなローカル監視のインストールには、MySQL、外部の MQTT クライアント、データ転送は必要ありません。

1. 高度な機能を有効にする前に

基本的なインストールが安定していることを確認してください:

  • IAMMETER-Docker コンテナが稼働していること
  • /app/data が永続ストレージにマッピングされていること
  • Docker ホストが安定した LAN アドレスを使用していること
  • サイトのタイムゾーンが正しいこと
  • 少なくとも 1 台のメーターまたはテスト用データソースが動作していること
  • デフォルトのパスワードが変更されていること
  • 最新のバックアップが存在すること

デフォルトのデプロイでは、次のポートが公開されます:

  • Web アプリケーションと API 用の 5050
  • MQTT 用の 1883

どちらのポートもインターネットに直接公開しないでください。リモートアクセスが必要な場合は、ファイアウォール、VPN、またはその他のアクセス制御層を使用してください。

2. SQLite と MySQL の選択

IAMMETER-Docker は、シンプルなデフォルト構成では SQLite を使用し、大規模なデータセットを扱うインストールでは MySQL をサポートしています。

データベース 最適な用途 利点 注意点
SQLite 家庭、テスト、小規模なローカル環境 別途データベースサービスが不要。初期設定が簡単 データベースがアプリケーションのボリュームに紐づいたままになる
MySQL 大規模または長期運用のインストール 独立したデータベースサービスで、増加するデータセットに適している データベースの導入、認証情報、バックアップ、メンテナンスが必要

MySQL が利用可能だからという理由だけで移行しないでください。予想されるデータ量、保持期間、またはデータベース管理の要件が追加サービスの導入を正当化する場合にのみ使用してください。

2.1 最初に MySQL を準備する

IAMMETER-Docker で MySQL を選択する前に:

  1. 到達可能な MySQL サーバーを導入する
  2. 専用のデータベースとユーザーを作成する
  3. そのユーザーを必要なデータベースのみに制限する
  4. IAMMETER-Docker コンテナからのネットワークアクセスを確認する
  5. 定期的なデータベースバックアップを設定する
  6. データベースのホスト、ポート、名前、認証情報を安全に記録する

その後、IAMMETER-Docker に MySQL の接続設定を入力し、新しい計測値が保存されていることを確認してください。

IAMMETER-Docker で MySQL を設定

データベースモードを変更する前に、既存の IAMMETER-Docker データをバックアップしてください。変更後は、履歴データと新しいアップロードを確認してください。

3. IAMMETER-Docker を MQTT エネルギー監視サーバーとして使用する

IAMMETER-Docker は、2 つの異なる方向の MQTT サポートを備えています:

  1. IAMMETER-Docker への公開(Publish): メーターまたは互換アプリケーションが計測データを Docker サーバーに送信します。
  2. IAMMETER-Docker からの購読(Subscribe): Node-RED、カスタムサービス、またはその他の MQTT クライアントがサーバーからリアルタイムの計測データを受信します。

これらの経路は同じトピックパターンを使用しますが、認証モードが異なります。

3.1 MQTT トピック

ドキュメントで定義されているリアルタイムトピックは次のとおりです:

device/<SN>/realtime

<SN> は、IAMMETER-Docker に登録されているシリアル番号に置き換えてください。MQTT トピックとクライアント設定の SN は、ローカルプラットフォームで作成したメーターと一致している必要があります。

3.2 IAMMETER-Docker にエネルギー データを公開する

公開側のデバイスまたはアプリケーションの場合:

設定
ブローカー IAMMETER-Docker サーバーの IP アドレスまたはホスト名
ポート デフォルトは 1883
認証 クライアント ID
クライアント ID IAMMETER-Docker に登録されているメーターの SN
トピック device/<SN>/realtime
ペイロード IAMMETER がサポートするアップロードデータ形式

MQTT 経由で IAMMETER-Docker にエネルギー データを公開

本番データを使用する前に:

  1. IAMMETER-Docker に SN を登録する
  2. テスト用のペイロードを 1 件公開する
  3. 電圧、電流、電力、電力量のフィールドを確認する
  4. 相数またはチャンネル数を確認する
  5. 単位と有効電力の方向を確認する
  6. その後でのみ、継続的な公開を有効にする

3.3 リアルタイムのエネルギー データを購読する

MQTT 購読側の場合:

設定
ブローカー IAMMETER-Docker サーバーのアドレス
ポート デフォルトは 1883
認証 IAMMETER-Docker のユーザー名とパスワード
トピック device/<SN>/realtime

IAMMETER-Docker のリアルタイムデータを購読

代表的な購読者は次のとおりです:

  • Node-RED の自動化フロー
  • ローカルのデータ処理サービス
  • MQTT デバッグクライアント
  • 選択した計測データを転送するゲートウェイ
  • カスタムダッシュボードまたはアラートサービス

Node-RED が主要なアプリケーションであり、IAMMETER-Docker に履歴データの保存が必要ない場合は、メーターを MQTT、Modbus TCP、またはローカル API 経由で Node-RED に直接接続することもできます。各オプションの比較は、Node-RED エネルギー メーターガイド を参照してください。

4. MQTT のテストとトラブルシューティング

広範なワイルドカード購読ではなく、1 台のメーターと正確なトピックから始めてください。

データが表示されない場合は、以下を確認してください:

  • ポート 1883 がコンテナからマッピングされていること
  • クライアントが LAN 経由で Docker ホストに到達できること
  • SN が IAMMETER-Docker に存在すること
  • MQTT クライアント ID とトピックが同じ SN を使用していること
  • トピックが device/<SN>/realtime であり、大文字小文字が期待どおりであること
  • 公開用と購読用の認証モードを取り違えていないこと
  • JSON ペイロードがサポートされているフィールドの順序と単位に一致していること
  • 他の MQTT クライアントが同じクライアント ID を再利用してセッションを切断していないこと

信頼性の高いフローを実現するには:

  • 各購読者に一意のクライアント ID を使用する
  • 再接続と重複メッセージを処理する
  • データベースに書き込む前にペイロードを検証する
  • 保存するすべての計測データに送信元 SN を記録する
  • 暗号化されていない MQTT ポートを公開するのではなく、ネットワークを分離する

5. 太陽光発電データを PVOutput に転送する

PVOutput は、太陽光発電量とエネルギー消費量のデータを共有・比較するためのサードパーティサービスです。IAMMETER-Docker はサイトデータを PVOutput に転送できます。

IAMMETER-Docker をローカルの収集サーバーとして維持しつつ、公開または外部向けの太陽光レポートに PVOutput が必要な場合は、このオプションを使用してください。

転送を有効にする前に:

  1. 正しい PVOutput システムを作成または選択する
  2. 必要な PVOutput の認証情報を取得する
  3. IAMMETER-Docker で Grid チャンネルと Inverter チャンネルが正しく割り当てられていることを確認する
  4. サイトのタイムゾーンを確認する
  5. 目的のサイトのみで転送を有効にする
  6. 最初の完全な 1 日が経過した後、両システムの日次合計を比較する

IAMMETER-Docker の太陽光発電データを PVOutput に転送

PVOutput への転送には、Docker ホストからのインターネットアクセスが必要です。これはローカル監視とは別の機能です。PVOutput への接続が一時的に失敗しても、メーターがローカルサーバーへのアップロードを継続できるようにしてください。

6. 互換性のある Tasmota デバイスからデータを受信する

IAMMETER-Docker には、Tasmota を実行する計量対応デバイス向けの MQTT ワークフローがドキュメント化されています。元の例では Sonoff POW R2 が使用されていました。

これはサポート対象のエネルギーペイロードに対する互換性パスであり、すべての Tasmota デバイスやテンプレートが同じ計測構造を生成することを保証するものではありません。導入前に実際のデバイスとファームウェアでテストしてください。

次の Tasmota MQTT 構成を使用してください:

設定
ホスト IAMMETER-Docker の IP アドレス
ポート IAMMETER-Docker の MQTT ポート(通常は 1883
クライアント IAMMETER-Docker に登録されている SN
ユーザー このドキュメント化された公開ワークフローでは空白のままにします
パスワード このドキュメント化された公開ワークフローでは空白のままにします
トピック IAMMETER-Docker に登録されている SN
フルトピック device/%topic%/%prefix%/

互換性のある Tasmota メーターを IAMMETER-Docker 用に設定

設定後は、IAMMETER-Docker で報告される各値を確認してください。デバイスがサポートしている場合は、電圧、電流、有効電力、電力量、力率も含めて確認します。

IAMMETER-Docker の Tasmota 電力データ

7. IAMMETER-Docker REST API を使用する

IAMMETER-Docker は、ローカルサーバー上で対話型の API ドキュメントを公開しています:

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

REST API は以下の用途に使用できます:

  • カスタムゲートウェイからサポート対象の計測データをアップロードする
  • プライベートダッシュボード用にデータを照会する
  • ローカルアプリケーションをセルフホスト型サーバーに接続する
  • 統合を自動化する前にペイロードをテストする

API へのアクセスは信頼できるネットワーク内に留めてください。外部システムがリモートで接続する必要がある場合は、アプリケーションポートを保護なしで公開するのではなく、適切なセキュアなアクセス層の背後にサービスを配置してください。

IAMMETER-Docker を使用せずに完全なレシーバーまたはカスタムプラットフォームを構築する開発者は、独自のエネルギー監視システムを開発する を参照してください。

8. ローカルストレージとクラウドサービスを組み合わせる

セルフホスティングは、すべての外部サービスを無効にすることを意味するわけではありません。IAMMETER-Docker をローカルの記録システムとして維持しながら、選択したデータを他の場所に転送することができます。

構成 ローカルデータ インターネット依存 最適な用途
ローカルのみ IAMMETER-Docker 導入後は不要 プライバシー重視、オフラインサイト、LAN ダッシュボード
ローカル + IAMMETER-Cloud IAMMETER-Docker と IAMMETER-Cloud 転送に必要 ローカルコピーに加え、IAMMETER-Cloud のレポートとリモートアクセス
ローカル + PVOutput IAMMETER-Docker と PVOutput 転送に必要 PVOutput を利用する太陽光発電ユーザー
ローカル + MQTT 購読 IAMMETER-Docker と購読者が定義するストレージ ローカル購読者の場合は不要 Node-RED、自動化、カスタム処理

明確な目的がある送信先のみを有効にしてください。送信先が増えるほど、認証情報、ネットワーク依存、トラブルシューティングの経路も増えます。

9. 高度な導入チェックリスト

  • 基本的な IAMMETER-Docker の収集がすでに安定している。
  • 永続データとデータベースのバックアップが確認されている。
  • MySQL は、その運用コストが正当化される場合にのみ使用されている。
  • MQTT ポート 1883 には信頼できるネットワークからのみアクセスできる。
  • すべての MQTT クライアントが適切で一意なクライアント ID を使用している。
  • メーターの SN、トピック、登録済みデバイスが一致している。
  • ペイロードの単位、相数、電力の方向がテストされている。
  • PVOutput またはクラウド転送の失敗がローカル収集を中断しない。
  • Tasmota の互換性が実際のデバイスとファームウェアで確認されている。
  • 変更は大規模な導入に適用する前に、1 台のメーターでテストされている。

10. バージョン履歴とレガシーノート

上記のセクションは、現在ドキュメント化されている IAMMETER-Docker のワークフローについて説明しています。元のページは V1.8 と V1.9 頃に書かれたものです。以下の履歴は、古いインストールを保守しているユーザーのために残されています。

V2.4

V2.3

  • PVOutput のアップロードの問題を修正しました。

V2.2

  • IAMMETER-Cloud 転送失敗のログを追加しました。

V2.1

V1.9

  • MySQL サポートを追加しました。
  • 各 Place にカスタム画像オプションを追加しました。

IAMMETER-Docker V1.9

V1.8

  • IAMMETER-Docker への MQTT アップロードを追加しました。
  • リアルタイムデータの MQTT 購読を追加しました。
  • PVOutput への直接転送を追加しました。
  • ドキュメント化された Tasmota/Sonoff 計量ワークフローを追加しました。

11. 関連リソース

最終更新: 2026年7月17日

トップ