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

IAMMETER のエネルギー データを自社サーバーで受信する

IAMMETER のエネルギー データを自社サーバーで受信する

IAMMETER の Wi-Fi エネルギー メーターは、測定データを顧客が管理するサーバー、MQTT ブローカー、またはデータ プラットフォームに直接送信できます。これにより、開発者やシステム インテグレーターは、IAMMETER-Cloud をデータの送信先とせずに、独自の EMS、BMS、IoT サービス、データベース、監視ダッシュボードを構築できます。

このガイドでは、受信サーバー側からの統合について説明します。

  • テスト用レシーバーを起動する
  • 最初のメーター ペイロードを取得する
  • メーターと測定チャンネルを識別する
  • データを正規化して保存する
  • 取り込み量を見積もる
  • レシーバーを本番展開に向けて準備する
IAMMETER meter
      │
      │ HTTP/HTTPS, MQTT/MQTTS or TCP/TLS
      ▼
Customer ingestion service
      │
      ├── Raw-payload log
      ├── Time-series or relational database
      ├── EMS / BMS / ERP
      └── Dashboard, report and alarm services

メーター側のファームウェア機能とアドレス形式については、IAMMETER ローカル API とオープン インターフェース ガイドを参照してください。アーキテクチャの選択については、独自のエネルギー監視システムを開発するを参照してください。

1. レシーバーのアーキテクチャを選択する

メーターは、複数のトランスポートを使用して測定値を送信できます。受信システムは、主要な取り込み経路を 1 つ選択する必要があります。

トランスポート レシーバー コンポーネント 適した用途
HTTP / HTTPS Web エンドポイント REST バックエンドと最も簡単な最初の統合
MQTT / MQTTS MQTT ブローカーとサブスクライバー 既存の IoT プラットフォームとメッセージ パイプライン
TCP / TLS ソケット リスナー 専用コレクターとカスタム プロトコル サービス

HTTP は、公式のテスト レシーバーを小さな Node.js のサンプルで起動できるため、通常は最初のペイロードを確認する最も簡単な方法です。MQTT は、ブローカーがシステムの一部としてすでに存在する場合に有力な選択肢です。TCP/TLS はより低レベルのソケット統合を提供しますが、レシーバー側でのより多くの開発作業が必要です。

安全なトランスポートとカスタム ポートの形式は、現在のファームウェア ガイドで管理されており、ここでは繰り返しません。

2. クイック スタート:HTTP で最初のペイロードを受信する

IAMMETER は、統合テスト用の公式 Node.js HTTP レシーバー サンプルを提供しています。

2.1 テスト レシーバーを起動する

サンプルは以下からダウンロードしてください。

実行:

node Server.js

このサンプルはポート 8000 で待ち受けます。リクエストが到着すると、次のことを行います。

  • HTTP リクエスト本文を収集する
  • リクエスト URL を出力する
  • アップロードされた本文を出力する
  • 小さな成功 JSON レスポンスとともに HTTP ステータス 200 を返す

このサンプルは意図的に最小限の構成です。認証、永続化、検証、レート制限、本番セキュリティは提供されません。

2.2 レシーバーに到達できるようにする

メーターを設定する前に、以下を確認してください。

  • サーバーが期待するインターフェースとポートで待ち受けていること
  • ファイアウォールが接続を許可していること
  • ドメイン名を使用する場合、メーターがドメイン名を解決できること
  • NAT、リバース プロキシ、VPN の経路が機能していること
  • 最終的な URL が意図したアプリケーション ルートに到達すること

LAN テストの場合、メーターとレシーバーはインターネット接続なしで同じローカル ネットワークを使用できます。リモート レシーバーの場合、サイトからサーバーへのルートが必要です。

2.3 メーターをレシーバーに向ける

現在のメーター WebUI で、HTTP 実行モードを選択し、次のような宛先を入力します。

{server-address}:8000/upload

現在の IAMMETER WebUI で受信 HTTP エンドポイントを設定する

HTTPS エンドポイントは、デフォルト ポートまたはカスタム ポートを使用できます。https://host:port を含む現在のアドレス規則は、HTTP/HTTPS ファームウェア セクションに記載されています。

設定を保存したら、レシーバーのコンソールでリクエスト パスとアップロードされた JSON を確認してください。この最初の生ペイロードは、後でパーサーとデータベースのテストを行うためのテスト フィクスチャとして保管してください。

3. 受信する IAMMETER ペイロードを理解する

IAMMETER は、サポートされているプッシュ トランスポート全体で一貫したコア測定 JSON 構造を使用します。トランスポートによってペイロードの到着方法は変わりますが、測定モデルは一貫しています。

ペイロードには通常、次のようなデバイス レベルのフィールドが含まれます。

  • SN — デバイスの識別に使用されるメーターのシリアル番号
  • version — メーターのファームウェア バージョン
  • method — メッセージのメソッドまたはペイロードの種類
  • Data または Datas — 測定配列

Data は単一の測定チャンネルに使用されます。Datas には、マルチチャンネルまたは三相メーターの複数の測定配列が含まれます。

単一チャンネル構造の例:

{
  "method": "uploadsn",
  "mac": "B0F8932A295C",
  "version": "i.75.98.71y",
  "server": "em",
  "SN": "12345678",
  "Data": [228.91, 1.61, 225, 15066.47, 0]
}

すべてのメーターに対して 1 つの配列数をハードコードしないでください。チャンネル数と利用可能なフィールドは、メーターのモデルと有効になっている測定機能によって異なります。

パーサーを実装する際は、信頼できる定義を使用してください。

3.1 モデル固有の処理

モデル固有の処理は、トランスポート レシーバーから分離してください。

たとえば、WEM3046T と WEM3046TE は、外部変流器の 5 A 二次側出力を測定します。これらの値は、該当する CT 比で変換して一次側の測定値を取得する必要があります。これはメーターと CT の特性であり、HTTP、MQTT、TCP の違いではありません。

したがって、実用的な取り込みパイプラインでは、次の処理を分離します。

  1. トランスポートのデコード
  2. JSON の検証
  3. メーターとチャンネルの識別
  4. モデル固有のスケーリングまたは正規化
  5. 保存とビジネス計算

4. 取り込みデータ モデルを設計する

元の測定値を再現して診断するのに十分な情報を保存してください。

有用な最小限のモデルには、次のものが含まれます。

Field Purpose
Meter SN ペイロードを登録済みデバイスに対応付ける
Channel or phase index 単相、分相、三相のデータを区別する
Server receive time 一貫した取り込みタイムスタンプを提供する
Voltage 電気測定値
Current 電気測定値
Active power リアルタイムのインポート/エクスポートまたは負荷計算の入力
Import kWh 累積インポート エネルギー
Export kWh 累積エクスポート エネルギー
Firmware version トラブルシューティングとパーサー互換性をサポートする
Raw payload リプレイ、監査、パーサーの修正を可能にする

周波数、力率、無効電力などの追加フィールドは、選択したモデルと設定で提供される場合に保存してください。

4.1 生データと正規化データを分離して保持する

本番システムでは、次の保持を検討してください。

  • 不変または短期保持の生取り込みレコード
  • アプリケーションが使用する正規化されたチャンネル レベルの測定値
  • 時間別、日別、月別に集計された値

これにより、元のペイロードを失うことなく、解析ロジックや CT 比ロジックを修正しやすくなります。

4.2 サーバー受信時刻を慎重に使用する

サーバーがペイロードを受け付けた時刻を記録してください。ビジネス システムがデバイスまたはソースのタイムスタンプも使用する場合は、一方を他方で置き換えるのではなく、両方の値を別々に保存してください。

ネットワーク遅延、再接続、キュー処理により、取り込み時刻が測定時刻と異なる場合があります。本番展開の前に、チャート、請求、アラームで使用するタイムスタンプを定義してください。

5. 他のレシーバー タイプを実装する

5.1 MQTT または MQTTS レシーバー

MQTT 取り込みの場合、顧客システムは以下を提供します。

  • 到達可能な MQTT ブローカー
  • 認証とアクセス制御ルール
  • サブスクライバーまたはコンシューマー サービス
  • ペイロードの検証と永続化
  • ブローカーとコンシューマーの健全性の監視

IAMMETER は、次のようなデバイス トピックでリアルタイム データを公開します。

device/{SN}/realtime

ブローカーの設定、認証情報、トピック、MQTTS に関する注意点については、専用ガイドを使用してください。

一般的な顧客サーバー統合では、Home Assistant MQTT Discovery は必須ではありません。

5.2 TCP レシーバー

IAMMETER は、最小限の Node.js TCP リスナーを提供します。

このサンプルはポート 8000 で待ち受け、受信したデータを出力します。本番用 TCP レシーバーは、さらに以下を提供する必要があります。

  • 接続ライフサイクル管理
  • ペイロードのバッファリングと検証
  • 部分的なソケット チャンクや結合されたチャンクの安全な処理
  • デバイスの識別
  • 永続化とエラー処理
  • 監視と制御されたリソース制限

1 つのソケット data イベントが常に 1 つの完全なアプリケーション メッセージと等しいとは想定しないでください。

5.3 TLS レシーバー

公式の TLS サンプルは、サーバー キーと証明書を使用した TLS リスナーを示しています。

本番使用の前に、デモ用の証明書と設定を、組織が承認した証明書、キー管理、セキュリティ設定に置き換えてください。レシーバーは、TLS の障害をペイロード検証の障害とは別にログに記録する必要があります。

TCP と TLS のメーター側アドレス形式は、ファームウェア インターフェース ガイドで管理されています。

6. アップロード間隔とサーバー容量を計画する

現在のファームウェアは、サードパーティへのアップロード間隔を最短 2 秒 までサポートしています。短い間隔が役立つのは、受信システム、ストレージ、アプリケーションが追加の分解能を必要とする場合だけです。

メーター 1 台あたりに生成されるおおよそのレコード数:

アップロード間隔 メーター 1 台あたりの 1 日あたりのレコード数 100 台で 1 日あたり 1,000 台で 1 日あたり
60 秒 1,440 144,000 1,440,000
10 秒 8,640 864,000 8,640,000
2 秒 43,200 4,320,000 43,200,000

これらの数値はアップロード イベントを表しており、必ずしもデータベースの行数ではありません。三相ペイロードは複数のチャンネル レコードに正規化される場合があり、インデックス、生ペイロードの保持、またはレプリケートされたストレージによって実際のデータベース容量は増加します。

容量計画には、以下を含める必要があります。

  • ピーク時の同時接続数
  • 1 秒あたりのリクエスト数またはメッセージ数
  • JSON 解析コスト
  • チャンネル レベルの行の乗算
  • データベースのインデックスと保持
  • ダッシュボードと集計クエリ
  • ログ、再試行、デッド レター ストレージ
  • バックアップとレプリケーションのトラフィック

同じ LAN 上で 1 秒単位の制御または自動化を行う場合は、リモートのアップロード パイプラインを使用する代わりに、Modbus TCP を検討してください。

7. 信頼性とデータ品質を管理する

本番レシーバーは、ネットワークとアプリケーションの障害を想定する必要があります。

7.1 すべてのペイロードを検証する

少なくとも以下を検証してください。

  • JSON 構文
  • 必須の識別フィールド
  • 期待される配列構造
  • 数値型と妥当な範囲
  • サポートされているモデルまたはチャンネル マッピング
  • ファームウェアに依存するフィールドのバリエーション

不正なペイロードは、正常なデバイスをブロックしないように、管理された診断パスに保持してください。

7.2 重複アップロードと欠落アップロードに備える

すべての間隔で正確に 1 つの永続レコードが生成されるとは想定しないでください。ネットワークの中断、再接続動作、サーバーの再試行、またはアプリケーション処理によって、取り込みイベントの欠落や重複が発生する可能性があります。

ビジネス システムで以下の方法を定義してください。

  • 重複レコードを検出する
  • ギャップを特定する
  • 応答のないメーターと障害のあるレシーバーを区別する
  • 累積 kWh レジスタを盲目的に合計してエネルギーを計算しない
  • 中断後に累積エネルギーを調整する

7.3 完全なデータ パスを監視する

Web やソケットのプロセスだけでなく、より広範囲を監視してください。有用なシグナルには、以下が含まれます。

  • メーターごとの最終ペイロード時刻
  • 無効ペイロード数
  • レシーバーの応答時間とエラー率
  • アクティブな TCP/TLS 接続
  • MQTT コンシューマー ラグ
  • データベースの書き込み遅延
  • キューの深さ
  • ディスク使用量と保持ジョブ

8. 受信システムを保護する

インターネットに公開されるレシーバーの場合:

  • 展開環境でサポートされている暗号化トランスポートを優先する
  • 可能な場合は、公開ポートとネットワーク ソースを制限する
  • MQTT 認証とトピック認可を適用する
  • 周囲のネットワークまたはアプリケーションのセキュリティ アーキテクチャで HTTP エンドポイントを保護する
  • TLS 証明書と秘密鍵を安全に管理する
  • 認証情報や機密性の高い完全なペイロードをアプリケーション ログに書き込まない
  • 不正または悪意のあるトラフィックをレート制限して分離する
  • オペレーティング システム、ランタイム、依存関係を最新の状態に保つ

セキュリティ設計を選択する前に、ファームウェアとオープン インターフェース ガイドで現在の MQTTS、TLS、HTTPS のファームウェア動作を確認してください。

9. 本番展開チェックリスト

メーターとネットワーク

  • ファームウェア バージョンが記録され、検証されている
  • メーターの SN が正しいサイトとチャンネルに対応付けられている
  • 宛先アドレスとポートが検証されている
  • DNS、ファイアウォール、NAT、VPN の経路がテストされている
  • 必要なアップロード間隔が確認されている

レシーバー

  • 対象となるすべてのメーター モデルから生ペイロードが取得されている
  • 実際のペイロード フィクスチャからパーサー テストが作成されている
  • 単一チャンネルとマルチチャンネルのペイロードが処理されている
  • 該当する場合、WEM3046T/E の CT 比処理が検証されている
  • 不正なペイロードとサポート外のペイロードが安全に分離されている
  • レシーバーが、選択したトランスポートで期待される動作を返す、または維持している

ストレージと運用

  • タイムスタンプ ポリシーが文書化されている
  • 重複データと欠落データのポリシーが文書化されている
  • デバイス数と間隔に基づいてデータベース容量が計算されている
  • ログ、メトリクス、メーターごとの最終確認アラートが有効化されている
  • 保持、バックアップ、復旧がテストされている
  • 証明書、認証情報、アクセス ルールがレビューされている
  • ネットワークの中断とレシーバーの再起動がテストされている

10. 関連ドキュメント

11. レガシーなメーター側設定のスクリーンショット

このドキュメントの元のバージョンは、古いメーター ファームウェアの設定に焦点を当てていました。これらのスクリーンショットは、既存の設置環境を特定するユーザーのためにのみ保持されています。新しい統合には、現在の WebUI と最新ファームウェアを使用してください。

レガシー TCP ページ

レガシー IAMMETER TCP サーバー設定

レガシー TLS ページ

レガシー IAMMETER TLS サーバー設定

レガシー HTTP/HTTPS ページ

レガシー IAMMETER HTTP/HTTPS サーバー設定

以前のファームウェアのドキュメントでは、ローカルの /api/uploadinterval 設定方法も使用され、最短 6 秒と説明されていました。現在のファームウェアでは、間隔は WebUI で公開され、文書化された最短 2 秒 をサポートしています。

最終更新日:2026 年 7 月 16 日

トップ