プロトコルバージョン変更履歴
このページはTensor Cloud蓄電池最適化プロトコルの変更を記録します。ここに記載されたバージョンは AsyncAPI仕様 の info.version およびEMSが各メッセージに含める schema_version フィールドに反映されます。
バージョニングはsemver形式(MAJOR.MINOR.PATCH)に従います。
- MAJOR - トピック構造、ペイロード形状、必須フィールドへの後方非互換変更。既存のインテグレーションがコード変更なしに対応できないもの。
- MINOR - 追加的な変更(新規フィールド、新規条件付きバリデーション、新規挙動)で、保証は強化されるが旧バージョンのクライアントでも読み取り可能。Tensor Cloudは旧マイナーリビジョンで送信されたメッセージとの後方互換性を維持します。
- PATCH - ドキュメントの明確化、例の修正、ペイロードに影響しない変更。PATCHリリースはペイロードに影響しないため、ワイヤ上の
schema_versionは変更されません。MINORまたはMAJORリリースでペイロードが変わるまで、連携は現行のMINORバージョン(例:2.3.0)を送出し続けます。
2.8.0 - 2026-08-17
瞬時電力および系統周波数のバッチテレメトリ。 追加的かつ任意であり、単一メッセージ形式のテレメトリは変更ありません。
- 任意のトピック
dt/{siteId}/{gatewayId}/{metric}/power/batchおよびdt/{siteId}/{gatewayId}/frequency/batchを追加し、PowerInstantBatchとGridFrequencyBatchを定義しました。他のチャネルにバッチ形式はありません。 - バッチは
unit、aggregation、aggregation_window、pre_qualificationを一度だけ指定し、measurementsの各要素が自身のmessage_id、measurement_ts、valueを持ちます。指定したフィールドが変わる場合はバッチを分割します。 - 要素は
measurement_tsの昇順に厳密に並べ、タイムスタンプと要素のmessage_idはバッチ内で一意とします。要素のmessage_idがバッチ自身のmessage_idと一致してはなりません。minItemsは1、maxItemsは900、エンコード後のペイロードは最大122,880バイトです。 - バッチは全体が受理されるか、全体が拒否されるかのいずれかです(2.7.0のコマンド検証と同様)。
- 重複排除は各要素の
message_idをキーとします。バッチ自身のmessage_idは送信の試行を識別するだけであり、元のIDのまま異なるバッチへ組み直すことも、単一メッセージ形式で再送することもできます。 - バッチトピックではQoS 1が必須であり、MQTTのRETAINフラグを設定してはいけません。
DUPLICATEの定義を明確化しました。元のmessage_idのまま内容を変更せずに再送することは、重複ではなく冪等な成功です。単一メッセージ形式のテレメトリにも当てはまり、挙動の変更はありません。- バッチ送信はサイトごとに有効化し、既定ではバックフィルのみが対象です。詳細はインテグレーターガイドを参照してください。
- インテグレーターチェックリストに項目
BA-1からBA-6を追加しました。 - ワイヤ上の
schema_versionを2.8.0に更新しました。
2.7.0 - 2026-08-13
GRID_OTHER アラートコードの追加と、コマンド検証の全件一括化。 追加的かつ後方互換です。
AlertCodeにGRID_OTHERを追加しました。既存のコードでは表現できないAC側の系統障害、すなわち系統連系の喪失、保護リレーや系統連系用遮断器のトリップ、受電点における電圧・周波数の許容範囲逸脱、EMSがなお報告可能なサイト全体の停電などに使用します。従来はサブシステムの情報を持たないUNKNOWN_FAULTで報告するほかありませんでした。詳細はインテグレーターガイドの「アラートコードリファレンス」節を参照してください。- 1つの障害が複数のアラートコードに該当しうること、およびTensor Cloudがそれを重複排除せず想定される挙動として扱うことを明記しました。DCリンクのシステムで、太陽光アレイと蓄電池が共有するハードウェア(ハイブリッドインバータ、共通のパワーコンディショニング設備、共通の制御・集約装置)に障害が発生した場合は、
PV_OTHERとBATT_OTHERの両方で報告します。EMSが単一の集約装置を介して両サブシステムに接続しており、BMS単位・PVPCS単位の通信状態を把握できない場合、当該集約装置との通信途絶時にBATT_COMM_FAILとPV_COMM_FAILを同時に発報して差し支えありません。インテグレーターチェックリストに項目A-6 - 共有ハードウェア障害での全該当コードの発報を追加しました(検証方法はインテグレーターテストのみ)。 - コマンドの検証が**全件一括(all-or-nothing)**であることを明記しました。
control.scheduleの項目が1件でも検証に失敗した場合、EMSはそのコマンドの項目を、妥当だったものも含めていずれも適用せず、直前まで有効だったスケジュールの実行を継続します。これはBatteryPowerCommandとBatteryFcrCommandの双方、および一次調整力のaction: "execute"とaction: "cancel"の双方に適用されます。CommandResponse.statusには部分適用を表す値がないため、部分的に適用されたコマンドを正確に応答することはできません。また、適用されなかったスロットはスロット単位の解決規則により古いコマンドにフォールバックし、置き換えるはずだったスケジュールを暗黙に復活させます。errors[]には、最初のエラーで打ち切らず不正な項目ごとに1件を含めてください。インテグレーターチェックリストに、電力設定値コマンド向けのAR-15 - 妥当な項目と不正な項目が混在するスケジュールと、一次調整力のexecute/cancel向けのFC-10 - 妥当な項目と不正な項目が混在するスケジュール(一次調整力)を追加しました(いずれも検証方法はインテグレーターテストのみ)。 alertStateのスナップショットを、アラートの発報有無にかかわらず所定の周期で発行することを明記しました。アクティブなアラートがない場合は、発行を省略せずmeasurement_valueを空配列として発行します。空配列は「サイトが正常である」ことを積極的に示すものであり、これがないとTensor Cloud側で正常なサイトと報告が止まったEMSを区別できません。チェックリストに項目A-5 - アクティブなアラートがない場合のalertStateスナップショットを追加しました。BatteryPowerCommandのスケジュール区間に、任意フィールドreference_point("battery"または"grid")を追加しました。その区間のpower_kwがどの地点を指すかを示します。"battery"は値が蓄電池そのものを指し、併設の発電はそのまま通過することを意味するため、0は蓄電池の待機となります。"grid"はサイトの計量地点(受電点。meter_export_acおよびmeter_import_acを計測する地点であり、構内需要があるサイトではインバータのAC出力とは一致しません)を指すため、0は受電点をゼロに保ち、蓄電池がその時点の発電量を吸収することを意味します。フィールドを省略した場合は"battery"となるため、2.7.0より前に発行されたコマンドは従来どおりの意味を保ちます。基準点をサイトの構成から推測することはありません。蓄電池と太陽光がインバータを共有するDC連系のシステムでは、EMSは実測の太陽光出力に基づきAC設定値を補正することで"battery"を実現し、太陽光の予測誤差が蓄電池に及ばないようにします。Tensor Cloudはすべてのコマンドでこのフィールドを明示し、"grid"はEMSがschema_version2.7.0以降を報告するサイトにのみ送信します。チェックリストに項目AR-16 - reference_pointの解釈を追加し、仕様書にBatteryPowerCommandの実例を初めて掲載しました。AlertCodeにSETPOINT_UNREACHABLEを追加し、スケジュール解釈ルール9を新設しました。EMSが指令された設定値を実現できない場合("battery"の区間でのインバータ制限、"grid"の区間での蓄電量の制限など)は、到達可能な最も近い値にクランプして実行を継続し、到達を妨げた制限を示すこのアラートを発報します。コマンドの拒否も蓄電池の停止も行いません。これは、確認応答が受信時点の検証のみを対象とするという2.3.1の規定と整合します。従来このケースの挙動は定義されていませんでした。チェックリストに項目AR-17 - 到達できない設定値のクランプと発報を追加しました(検証方法はインテグレーターテストのみ)。- 出力抑制テレメトリの要否に関する記述の矛盾を解消しました。
Curtailmentメッセージのサマリーは任意と記載し、しかも系統用蓄電池システムで特に有用であるとしていた一方、インテグレーターガイドは全構成で🔴必須としていました。出力抑制は系統用蓄電池を含むすべての構成で必須です。太陽光を併設しないサイトであってもTSOの出力抑制の対象となる場合があります。インテグレーターガイドの記載が正しく、変更していません。メッセージのサマリーとcurtailmentチャネルの説明をこれに合わせ、チェックリストのPT-Sには、日射量が対象外となる一方で出力抑制は系統用蓄電池でも引き続き必須であることを明記しました。SO-3は太陽光固有のケースを検証する項目であるため、従来の適用範囲のままです。ペイロードの変更はありません。チャネルおよびメッセージの構造は従来どおりです。 - ワイヤ上の
schema_versionが2.7.0に更新されます。バージョニングポリシーに従い、MINORリリースではワイヤバージョンが更新されるため、連携は今後schema_version: "2.7.0"を送出してください。Tensor Cloudは旧バージョンで送信されたメッセージとの後方互換性を維持します。
2.6.1 - 2026-07-28
ウィンドウ測定における measurement_ts を明確化しました。 ドキュメントのみの変更で、ペイロードの変更はありません。
- 一定の期間を対象とする測定では、
measurement_tsが常にその期間の開始時刻を表し、終了時刻や中間時刻を表さないことを明記しました。これはウィンドウエネルギーテレメトリ(measurement_value.start_tsと一致します)、およびaggregation: "average"で送信する電力・系統周波数テレメトリ(aggregation_windowの開始時刻となります)に適用されます。瞬時値のテレメトリ(ライフタイム積算値、aggregation: "instant"の電力、日射量、太陽光のDC電圧・電流、蓄電池状態、アラート)では、従来どおり測定した時点そのものを表します。 EnergyWindowed、PowerInstant、GridFrequencyのmeasurement_tsの説明、および仕様のinfo.descriptionにこの規則を明記しました。詳細はインテグレーターガイドの「タイムスタンプ境界規則」節を参照してください。Curtailmentは測定値ではなくスケジュールであるため、そのmeasurement_tsの扱いを明記しました。一般送配電事業者(TSO)のデータにスケジュールの作成時刻が含まれる場合はその作成時刻を、含まれない場合はEMSがTSOからスケジュールを受信した時刻を設定します。スケジュールが対象とする期間は従来どおりmeasurement_value[].start_tsおよびmeasurement_value[].end_tsで表します。- インテグレーターチェックリストに項目
E-7 - measurement_tsの整合を追加しました(ページおよびダウンロード可能なExcelチェックリストの両方)。 - インテグレーターガイドの「イベントとアラート」節に、アラートメッセージのフローを示すシーケンス図を追加しました。
- バージョニングポリシーに従い、PATCHリリースではワイヤ上の
schema_versionは変更されません。連携は引き続き2.6.0を送出してください。
2.6.0 - 2026-07-13
DCリンクシステム向けの太陽光DC電圧・電流テレメトリ。 追加的かつ後方互換です。
- 新しい
solarDcTelemetryチャネル(dt/{siteId}/{gatewayId}/solar)を、SolarDcElectricalメッセージおよびsendSolarDcオペレーションとともに追加しました。DCリンクの太陽光発電+蓄電池サイトは、太陽光アレイのDC電圧(V)および電流(A)を、インバータより上流のDCリンクで、アレイ全体を集約した単一の値として公開します。電圧と電流は同一時刻にサンプリングし、一組の測定値として、1分間隔でまとめて送信します。measurement_valueはvoltageとcurrentを含み、それぞれ{value, unit}オブジェクト(unitはVまたはA、値は0以上)です。DCリンクのサイトにのみ適用され、ACリンクおよびスタンドアロンのサイトでは送信しません。詳細はインテグレーターガイドの「DC連系テレメトリ」節を参照してください。 - ワイヤ上の
schema_versionが2.6.0に更新されます。バージョニングポリシーに従い、MINORリリースではワイヤバージョンが更新されるため、連携は今後schema_version: "2.6.0"を送出してください。Tensor Cloudは旧バージョンで送信されたメッセージとの後方互換性を維持します。
2.5.0 - 2026-07-10
不正な形式のテレメトリにもACKを返せるようになりました。 追加的かつ後方互換です。
TelemetryFeedback.correlation_idからmsg_UUIDパターンの制約を撤廃しました。受信したテレメトリを解析できず(MESSAGE_MALFORMED)、そのmessage_idを復元できない場合、Tensor Cloudはcorrelation_idにセンチネル文字列"unknown"を設定します。従来はこのパターン制約のためフィードバックメッセージ自体を構成できず、ACKがまったく送出されないため、インテグレーターはメッセージが拒否されたことを知る手段がありませんでした。message_idが一部復元できる場合は、復元した値を設定します。これはCommandResponse.command_idで既に使用されている"unknown"センチネルと同じ方式です。TelemetryFeedbackに任意のtopicフィールドを追加しました。問題となったメッセージがパブリッシュされたトピックを示します。statusがerrorの場合にのみ含まれ、correlation_idが"unknown"の場合に拒否されたメッセージを特定する唯一の手段となります。status: "ok"の場合にtopicを含めてはならないことは、既にcodeとdetailを制御しているif/then/elseブロックで強制されます。- 日本語版の
TelemetryFeedback定義を修正しました。schema_versionが必須として列挙されているにもかかわらずプロパティが定義されておらず、例が自身のスキーマに対して不正な状態でした。 - ワイヤ上の
schema_versionが2.5.0に更新されます。バージョニングポリシーに従い、MINORリリースではワイヤバージョンが更新されるため、連携は今後schema_version: "2.5.0"を送出してください。Tensor Cloudは旧バージョンで送信されたメッセージとの後方互換性を維持します。
2.4.0 - 2026-07-06
一次調整力向けの系統周波数テレメトリと、事前審査フラグ。 いずれも追加的かつ後方互換です。
- 新しい
gridFrequencyTelemetryチャネル(dt/{siteId}/{gatewayId}/frequency)を、GridFrequencyメッセージおよびsendGridFrequencyオペレーションとともに追加しました。一次調整力に約定したリソースは、すべての一次調整力約定コマの全期間にわたり、系統周波数を各1秒ウィンドウの平均として1 Hzで公開する必要があります。周波数は系統接続ポイントで実際のAC電圧波形から測定し、0.0001 Hz以上の分解能で報告します。これらの測定値は一次調整力アセスメントⅡで用いる1 Hzの供出電力テレメトリと時刻が揃えられます。詳細はインテグレーターガイドの「アセスメントⅡ報告」節を参照してください。 PowerInstantとGridFrequencyに任意のpre_qualificationブール値を追加しました。EMSは、一次調整力の事前審査(プレクオリフィケーション)モードで送信する瞬時電力および系統周波数のテレメトリにtrueを設定します。このモードはTensor CloudではなくEMS運用者が有効化します。Tensor Cloudはこのフラグを用いて、該当期間を最適化および一次調整力アセスメントⅡの提出対象から除外します。任意かつ後方互換であり、省略した場合は通常運用時の意味のままです。- ワイヤ上の
schema_versionが2.4.0に更新されます。バージョニングポリシーに従い、MINORリリースではワイヤバージョンが更新されるため、連携は今後schema_version: "2.4.0"を送出してください。Tensor Cloudは旧バージョンで送信されたメッセージとの後方互換性を維持します。
2.3.1 - 2026-06-29
ACKと INTERNAL_ERROR の意味を明確化。 ドキュメントのみの変更で、ペイロードへの影響はありません。
CommandResponse.statusフィールドが、実行結果ではなく受信時点の検証・受理結果を表すことを明確化しました。ACKはコマンドを受信・パースし、コミット(受理)した直後に送出され、実行時には送出されず、実行時にのみ顕在化する失敗は報告できません。INTERNAL_ERRORが、形式は妥当なコマンドがACK送出前の受信時処理で受理・コミットできずに失敗した場合(例: 要求されたスケジュール変更のコミットに内部的に失敗した場合)も対象とすることを明確化しました。detailに内容を記載したうえでINTERNAL_ERRORを使用してください。実行時にのみ顕在化する失敗は、ACKではなくアラート/テレメトリで報告します。- PATCHリリースではワイヤ上の
schema_versionが変更されないことを明記しました(上記のバージョニング注記を参照)。
2.3.0 - 2026-06-16
アセスメントⅡ用テレメトリ:
- 瞬時電力トピック(
dt/{siteId}/{gatewayId}/{metric}/power)が、オフラインの一次調整力アセスメントⅡデータの送信チャネルとして文書化されました。一次調整力を提供するリソースは、すべての一次調整力約定コマについて、meter_export_ac/meter_import_ac(受電点参入)またはbattery_discharge_ac/battery_charge_ac(機器点参入)で1秒解像度の供出電力を公開する必要があります。Tensor CloudはこのデータからTSOのアセスメントⅡ様式(様式35)を作成し、アグリゲーターに代わって提出します。詳細はインテグレーターガイドの「アセスメントⅡ用テレメトリ」を参照してください。 - AsyncAPI仕様の
powerTelemetryチャネルの説明を、このアセスメントⅡ用途を示すように更新しました。 PowerInstant.measurement_valueに2つの任意フィールドを追加しました:aggregation(デフォルトinstant、またはaverage)とaggregation_window(ISO-8601期間、例:PT1S)。aggregationがaverageのときaggregation_windowが条件付き必須になります(JSON Schemaのif/thenで強制)。これにより電力サンプルが瞬時点の値か区間平均かを宣言できます。一次調整力アセスメントⅡではaverageをPT1Sで使用します。追加的かつ後方互換: 両フィールドを省略すると従来の瞬時値の意味のままであり、旧バージョンのメッセージも引き続き受け入れられます。
2.2.0 - 2026-05-28
アラート、確認応答、コマンドの強化:
AlertEventとAlertStateのペイロードでschema_versionが必須になりました。以前はフィールドは定義されていましたが、どちらのアラートメッセージのrequiredリストにも含まれていませんでした。Tensor Cloudはschema_versionを省略する旧バージョンで送信されたアラートペイロードも引き続き受け入れます。EMS実装は今後アラートペイロードにこのフィールドを追加してください。CommandResponse.errorsがスキーマで条件付き必須になりました:status: "error"のとき存在(≥ 1件)、status: "ok"のとき不在。JSON Schemaのif/then/elseで強制されます。以前は散文のみで規定されていました。既に散文ルールに従っていたEMS実装には送信側の変更は不要です。TelemetryFeedback.codeとTelemetryFeedback.detailがスキーマで条件付き必須になりました:status: "error"のとき両方存在、status: "ok"のとき両方不在。JSON Schemaのif/then/elseで強制されます。テスト専用のテレメトリフィードバックチャネルに影響します。Tensor Cloudが送信側であり、EMS実装は受信のみを行います。BatteryFcrCommand.control.schedule[*].capacity_kwがスキーマで条件付きになりました:control.actionがexecute(デフォルト)のとき必須、cancelのとき禁止。JSON Schemaのif/then/elseで強制されます。BatteryPowerCommand.control.scheduleとBatteryFcrCommand.control.scheduleにminItems: 1を宣言しました。空のスケジュールはスキーマ層で拒否されます。- 埋め込みスキーマ例を修正:
CommandResponseの例に必須のschema_versionを追加。一次調整力 キャンセル例のmessage_id値を文書化された^msg_[0-9a-f]{8}-…$パターンに合致する値に修正。 - すべてのメッセージファミリーのトップレベル
additionalPropertiesをtrueに統一しました(BatteryPowerCommandとBatteryFcrCommandを含む)。以前はコマンドが厳密で他のファミリーが寛容という非対称性がありましたが、これを解消してプロトコル全体で前方互換性を統一しました。
2.1.0 - 以前のベースライン
変更履歴ページ以前のベースライン。インテグレーションガイドおよびAsyncAPI仕様に記載されたテレメトリ、コマンド、アラート、レスポンスの全チャネル一式を含みます。