ocpp について
EV充電インフラの開発者向けOCPPリファレンススキルで、OCPP 1.6J、2.0.1、2.1を扱います。バージョンの判定、メッセージやデータ型の参照、仕様で定義されていない動作の指摘に役立ちます。
主な機能
- 01OCPPバージョンの判定
- 02メッセージとデータ型の参照
- 03実装ガイダンス
- 04仕様の未定義箇所の指摘
活用シーン
- 01充電ステーションとバックエンド間のメッセージ確認
- 02バージョン固有のコード差異の調査
- 03仕様にない動作への対応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alexeimoisseev/ ocpp.md --skill ocppインストール後、Claude Code で/ocppを入力して読み込まれたか確認します。
詳細
OCPP — AI エージェント向けリファレンス
OCPP を使用した EV 充電インフラに取り組む開発者を支援します。 このスキルは OCPP 2.1、OCPP 2.0.1、OCPP 1.6J を対象としています。正確な スキーマリファレンスと実装ガイダンスを提供し、仕様に明記されていない領域を指摘するために使用してください。
バージョンの検出
開発者のコードから OCPP のバージョンを検出します。
- 1.6J の指標:
StartTransaction、StopTransaction、RemoteStartTransaction、RemoteStopTransaction、Charge Point、Central System、idTag(文字列)、evseIdを伴わないconnectorId、.req/.confという命名 - 2.0.1 の指標:
TransactionEvent、RequestStartTransaction、RequestStopTransaction、Charging Station、CSMS、IdTokenType(オブジェクト)、evseId、Request/Responseという命名 - 2.1 の指標:
SetDERControl、GetTariffs、OpenPeriodicEventStream、BatterySwap、RequestBatterySwap、NotifyPeriodicEventStream、AFRRSignal、PullDynamicScheduleUpdate、UpdateDynamicSchedule、OCPP-J サブプロトコル文字列ocpp2.1、:2:2025:を含む JSON スキーマ$idURN(例:urn:OCPP:Cp:2:2025:1:SetDERControlRequest)
不明な場合は、使用しているバージョンを開発者に確認してください。
クイックリファレンス
OCPP とは: Open Charge Point Protocol のことで、WebSocket と JSON を介して EV 充電ステーションと管理バックエンドの間で通信します。ステーションが接続を開始します。双方がメッセージを送信できます。
OCPP 2.1
- 役割: Charging Station (CS) ↔ CSMS
- デバイスモデル: 2.0.1 と同じ — Charging Station → EVSE(s) → Connector(s)。
evseId=0はステーション全体を意味します。 - 91 個のメッセージ = 2.0.1 の 64 個のメッセージ + 新規メッセージ 27 個(下記参照)
- 新機能: DER 制御、V2X/双方向電力伝送、料金管理、バッテリー交換、定期イベントストリーム、動的充電プロファイルの更新、優先充電、ウェブ決済
OCPP 2.0.1
- 役割: Charging Station (CS) ↔ CSMS
- デバイスモデル: Charging Station → EVSE(s) → Connector(s)。
evseIdとconnectorIdは 1 から始まるインデックスです。evseId=0はステーション全体を意味します。 - 64 個のメッセージ。機能ブロックごとに分類されています
OCPP 1.6J
- 役割: Charge Point (CP) ↔ Central System (CS)
- デバイスモデル: Charge Point → Connector(s)。
connectorIdは 1 から始まるインデックスです。connectorId=0は Charge Point 全体を意味します。EVSE の概念はありません。 - 28 個のメッセージ。機能プロファイル(Core、Smart Charging、Firmware、Local Auth List、Reservation、Remote Trigger)ごとに分類されています
メッセージフレーム(両バージョン共通): JSON-RPC に似た形式です。次の 3 種類があります。
CALL—[2, messageId, action, payload]CALLRESULT—[3, messageId, payload]CALLERROR—[4, messageId, errorCode, errorDescription, errorDetails]
OCPP 2.0.1 の全 64 メッセージ
プロビジョニングとライフサイクル
BootNotification(CS→CSMS) — 接続時にステーションを登録しますHeartbeat(CS→CSMS) — キープアライブStatusNotification(CS→CSMS) — コネクター/EVSE のステータス変更GetVariables(CSMS→CS) — 設定を読み取りますSetVariables(CSMS→CS) — 設定を書き込みますGetBaseReport(CSMS→CS) — 変数の全一覧を要求しますNotifyReport(CS→CSMS) — 変数一覧の応答(ページ分割)SetNetworkProfile(CSMS→CS) — ネットワーク接続プロファイルを設定しますReset(CSMS→CS) — ステーションを再起動します
認可
Authorize(CS→CSMS) — ID トークンを検証しますClearCache(CSMS→CS) — 認可キャッシュをクリアしますSendLocalList(CSMS→CS) — ローカル認可リストを送信しますGetLocalListVersion(CSMS→CS) — ローカル認可リストのバージョンを照会します
トランザクション
TransactionEvent(CS→CSMS) — 開始/更新/終了イベントRequestStartTransaction(CSMS→CS) — リモート開始RequestStopTransaction(CSMS→CS) — リモート停止GetTransactionStatus(CSMS→CS) — 未処理のトランザクションメッセージを照会しますMeterValues(CS→CSMS) — トランザクションのコンテキスト外でメーター値を送信します
リモート制御
TriggerMessage(CSMS→CS) — 特定のメッセージを送信するよう CS に要求しますUnlockConnector(CSMS→CS) — コネクターのロックを物理的に解除しますChangeAvailability(CSMS→CS) — EVSE を稼働可能/稼働不可に設定します
スマート充電
SetChargingProfile(CSMS→CS) — 充電プロファイルをインストールしますGetChargingProfiles(CSMS→CS) — インストール済みプロファイルを照会しますClearChargingProfile(CSMS→CS) — プロファイルを削除しますClearedChargingLimit(CS→CSMS) — 外部制限が解除されたことを通知しますNotifyChargingLimit(CS→CSMS) — 外部制限を通知しますReportChargingProfiles(CS→CSMS) — プロファイル照会への応答ですGetCompositeSchedule(CSMS→CS) — 有効なスケジュールを計算しますNotifyEVChargingSchedule(CS→CSMS) — EV が提案するスケジュール(ISO 15118)NotifyEVChargingNeeds(CS→CSMS) — EV の充電ニーズを報告します(ISO 15118)
ファームウェア
UpdateFirmware(CSMS→CS) — ファームウェア更新を開始しますFirmwareStatusNotification(CS→CSMS) — 更新の進捗を通知しますPublishFirmware(CSMS→CS) — ファームウェアをローカルネットワークで利用可能にしますPublishFirmwareStatusNotification(CS→CSMS) — 公開の進捗を通知しますUnpublishFirmware(CSMS→CS) — 公開済みファームウェアを削除します
セキュリティと証明書
Get15118EVCertificate(CS→CSMS) — EV 証明書のリクエストですGetCertificateStatus(CS→CSMS) — OCSP ステータスを確認しますSignCertificate(CS→CSMS) — ステーション証明書の CSR ですCertificateSigned(CSMS→CS) — 署名済み証明書を配信しますInstallCertificate(CSMS→CS) — CA 証明書をインストールしますDeleteCertificate(CSMS→CS) — 証明書を削除しますGetInstalledCertificateIds(CSMS→CS) — インストール済み証明書を一覧表示しますSecurityEventNotification(CS→CSMS) — セキュリティ関連イベントを報告します
診断と監視
GetLog(CSMS→CS) — ログのアップロードを要求しますLogStatusNotification(CS→CSMS) — ログアップロードの進捗を通知しますNotifyEvent(CS→CSMS) — コンポーネント/変数のイベントを通知しますSetMonitoringBase(CSMS→CS) — 監視のベースラインを設定しますSetVariableMonitoring(CSMS→CS) — 変数の監視を設定しますSetMonitoringLevel(CSMS→CS) — 監視の重大度レベルを設定しますGetMonitoringReport(CSMS→CS) — 有効な監視を照会しますClearVariableMonitoring(CSMS→CS) — 監視を削除しますNotifyMonitoringReport(CS→CSMS) — 監視照会への応答ですCustomerInformation(CSMS→CS) — 顧客データを要求しますNotifyCustomerInformation(CS→CSMS) — 顧客データを応答します
ディスプレイメッセージ
CostUpdated(CSMS→CS) — 表示中の料金を更新しますSetDisplayMessage(CSMS→CS) — ディスプレイにメッセージを表示しますGetDisplayMessages(CSMS→CS) — 表示中のメッセージを照会しますClearDisplayMessage(CSMS→CS) — 表示中のメッセージを削除しますNotifyDisplayMessages(CS→CSMS) — ディスプレイメッセージ照会への応答です
予約
ReserveNow(CSMS→CS) — 予約を作成しますCancelReservation(CSMS→CS) — 予約をキャンセルしますReservationStatusUpdate(CS→CSMS) — 予約の期限切れ/削除を通知します
データ転送
DataTransfer(CS↔CSMS) — 双方向のベンダー拡張
OCPP 2.1 — 新しいメッセージ 27 件(2.0.1 の 64 件に追加)
OCPP 2.1 は OCPP 2.0.1 の全 64 件のメッセージを維持し、以下の 27 件を追加します。 見出しは、各メッセージのスキーマが属する機能ブロックと一致します(下記のスキーマファイルマップを参照)。
DER 制御(分散型エネルギー資源)
SetDERControl(CSMS→CS) — DER 制御の設定値(周波数応答、電力制限、無効電力)をインストールしますGetDERControl(CSMS→CS) — インストール済み DER 制御設定を照会しますClearDERControl(CSMS→CS) — DER 制御設定を削除しますReportDERControl(CS→CSMS) — DER 制御照会への応答ですNotifyDERAlarm(CS→CSMS) — DER 関連のアラーム状態を報告しますNotifyDERStartStop(CS→CSMS) — DER 機能の開始/停止を通知します
双方向/V2X
NotifyAllowedEnergyTransfer(CSMS→CS) — 許可されているエネルギー転送の方向を CS に通知しますAFRRSignal(CSMS→CS) — 自動周波数回復予備力信号(V2X の周波数サポート)
バッテリー交換
BatterySwap(CS→CSMS) — ステーションでのバッテリー交換イベントを通知しますRequestBatterySwap(CSMS→CS) — バッテリー交換操作を要求します
料金とコスト
GetTariffs(CSMS→CS) — ステーションに設定されている料金プランを照会しますSetDefaultTariff(CSMS→CS) — EVSE のデフォルト料金プランを設定しますChangeTransactionTariff(CSMS→CS) — 取引中に料金プランを変更しますClearTariffs(CSMS→CS) — ステーションから料金プランを削除しますNotifySettlement(CS→CSMS) — 支払いの精算結果を通知しますNotifyWebPaymentStarted(CS→CSMS) — Web ベースの支払い開始を通知しますVatNumberValidation(CS→CSMS) — VAT 番号の検証を要求します
動的スマート充電
PullDynamicScheduleUpdate(CS→CSMS) — 動的プロファイルの更新スケジュールを要求しますUpdateDynamicSchedule(CSMS→CS) — 動的プロファイルのスケジュール更新をプッシュしますNotifyPriorityCharging(CS→CSMS) — 優先充電の開始または停止を通知しますUsePriorityCharging(CSMS→CS) — CS に優先充電の使用を要求します
定期イベントストリーム
OpenPeriodicEventStream(CSMS→CS) — 定期イベント報告用のストリームを開きますClosePeriodicEventStream(CSMS→CS) — 定期イベントストリームを閉じますGetPeriodicEventStream(CSMS→CS) — 開いている定期イベントストリームを照会しますAdjustPeriodicEventStream(CSMS→CS) — 開いているストリームのパラメーターを変更しますNotifyPeriodicEventStream(CS→CSMS, 一方向 SEND) — 定期イベントデータを CSMS にプッシュします
証明書
GetCertificateChainStatus(CS→CSMS) — 証明書チェーンの OCSP ステータスを照会します
OCPP 1.6J の全 28 メッセージ
コア(必須プロファイル)
Authorize(CP→CS) — idTag を検証しますBootNotification(CP→CS) — 充電ポイントが起動(または再起動)後に登録しますChangeAvailability(CS→CP) — コネクターを稼働中または停止中に設定しますChangeConfiguration(CS→CP) — 設定キーを設定しますClearCache(CS→CP) — 認証キャッシュを消去しますDataTransfer(CP↔CS) — ベンダー固有のデータを交換しますGetConfiguration(CS→CP) — 設定キーを読み取りますHeartbeat(CP→CS) — 接続を維持しますMeterValues(CP→CS) — 定期的なメーター測定値を送信しますRemoteStartTransaction(CS→CP) — リモートで開始しますRemoteStopTransaction(CS→CP) — リモートで停止しますReset(CS→CP) — 充電ポイントを再起動しますStartTransaction(CP→CS) — 取引の開始を通知しますStatusNotification(CP→CS) — コネクターのステータスまたはエラーの変更を通知しますStopTransaction(CP→CS) — 取引の終了を通知しますUnlockConnector(CS→CP) — コネクターを物理的にロック解除します
スマート充電
SetChargingProfile(CS→CP) — 充電プロファイルを設定しますClearChargingProfile(CS→CP) — プロファイルを削除しますGetCompositeSchedule(CS→CP) — 実効スケジュールを取得します
ファームウェア管理
GetDiagnostics(CS→CP) — 診断ログのアップロードを要求しますDiagnosticsStatusNotification(CP→CS) — アップロードの進捗を通知しますUpdateFirmware(CS→CP) — ファームウェアの更新を開始しますFirmwareStatusNotification(CP→CS) — 更新の進捗を通知します
ローカル認証リスト管理
SendLocalList(CS→CP) — ローカル認証リストをプッシュしますGetLocalListVersion(CS→CP) — リストのバージョンを照会します
予約
ReserveNow(CS→CP) — コネクターを予約しますCancelReservation(CS→CP) — 予約をキャンセルします
リモートトリガー
TriggerMessage(CS→CP) — 特定のメッセージを送信するよう CP に要求します
主なデータ型(OCPP 2.0.1)
- IdTokenType — ユーザー識別情報(eMAID、RFID など)。オプションの groupIdToken を含みます
- ChargingProfileType — 充電制限:id、stackLevel、purpose、kind、chargingSchedule
- MeterValueType — タイムスタンプ付きの SampledValue 配列(エネルギー、電力、電流、電圧、SoC)
- EVSEType — EVSE 識別子(id とオプションの connectorId)
- StatusInfoType — ステータス応答の理由コードと追加情報
- TransactionType — 取引の状態:transactionId、chargingState、stoppedReason
- ChargingScheduleType — 期間ごとの時間ベースの電力/電流制限
- IdTokenInfoType — 認証結果:status、cacheExpiryDateTime、groupIdToken
エスカレーションモデル
OCPP の動作を実装する際、仕様で対応方法が完全には定義されていない箇所に遭遇することがあります。これらは次のように分類されます。
SPEC-SILENT
OCPP仕様では、このケースの動作は定義されていません。開発者に必ずこの点を伝えてください。デフォルトを黙って選択してはいけません。
VENDOR-DEPENDENT
動作は充電ステーションのハードウェアまたはファームウェアによって異なります。対象となるハードウェア/ファームウェアを確認してください。
POLICY-DEPENDENT
動作はビジネスルール、サイト構成、または送配電事業者の要件によって異なります。ビジネス/運用上の状況を確認してください。
エスカレーションの厳格さ
開発者のプロジェクトにある CLAUDE.md で、エスカレーションに関する設定を確認してください。次のように記載されている場合があります。
For OCPP: use pragmatic escalation mode.
または:
OCPP escalation: strict — always ask before assuming spec-silent behavior.
モードは次の2つです。
- strict(デフォルト): 作業を止め、先に開発者へ確認します。具体的な選択肢を提示してください。回答を得るまで、曖昧な領域のコードを書いてはいけません。
- pragmatic: 曖昧さを伝えたうえで、妥当なデフォルトを選択します。見える形で注記を残してください。
// OCPP SPEC-SILENT: [description of assumption]. Verify this matches your requirements.
CLAUDE.md にエスカレーションの設定が見つからない場合は、デフォルトで strict とします。
ドキュメントファイルマップ
詳細なフィールドレベルのスキーマ、シーケンス図、または具体例が必要な場合は、プラグインの docs/ ディレクトリにある該当ファイルを参照してください。パスの解決には ${CLAUDE_PLUGIN_ROOT} を使用します。
| トピック | 読むファイル |
|---|---|
| すべての共有データ型(列挙型+複合型) | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-DataTypes.md |
| デバイスモデル(コンポーネント+変数カタログ) | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-DeviceModel/OCPP-2.0.1-DeviceModel.md |
| オープン列挙型(単位、セキュリティイベント、理由コード) | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Enumerations/OCPP-2.0.1-Enumerations.md |
| 認証スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Schemas/OCPP-2.0.1-Schemas-Authorization.md |
| 可用性スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Schemas/OCPP-2.0.1-Schemas-Availability.md |
| 診断スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Schemas/OCPP-2.0.1-Schemas-Diagnostics.md |
| ディスプレイスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Schemas/OCPP-2.0.1-Schemas-Display.md |
| ファームウェアスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Schemas/OCPP-2.0.1-Schemas-Firmware.md |
| プロビジョニングスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Schemas/OCPP-2.0.1-Schemas-Provisioning.md |
| 予約スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Schemas/OCPP-2.0.1-Schemas-Reservation.md |
| セキュリティスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Schemas/OCPP-2.0.1-Schemas-Security.md |
| スマート充電スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Schemas/OCPP-2.0.1-Schemas-SmartCharging.md |
| トランザクションスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Schemas/OCPP-2.0.1-Schemas-Transactions.md |
| 起動、認証、トランザクションのシーケンス | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Sequences/OCPP-2.0.1-Sequences.md |
| オフライン、ファームウェア、診断のシーケンス | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-Sequences/OCPP-2.0.1-Sequences-Operational.md |
| スマート充電の詳細解説 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-SmartCharging/OCPP-2.0.1-SmartCharging.md |
| スマート充電の実例 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-SmartCharging/OCPP-2.0.1-SmartCharging-Examples.md |
| ISO 15118+スマート充電 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1-SmartCharging/OCPP-2.0.1-SmartCharging-ISO15118.md |
| OCPP 2.0.1の概要+移行ガイド | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.0.1.md |
| ドキュメントの方法論+信頼モデル | ${CLAUDE_PLUGIN_ROOT}/docs/METHODOLOGY.md |
| OCPP 2.1の概要+2.0.1からの移行 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1.md |
| OCPP 2.1のデータ型 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-DataTypes.md |
| OCPP 2.1の列挙型 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Enumerations/OCPP-2.1-Enumerations.md |
| OCPP 2.1のデバイスモデル | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-DeviceModel/OCPP-2.1-DeviceModel.md |
| OCPP 2.1のDER制御の詳細解説 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-DERControl/OCPP-2.1-DERControl.md |
| OCPP 2.1の双方向/V2Xの詳細解説 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Bidirectional/OCPP-2.1-Bidirectional.md |
| OCPP 2.1の料金とコストの詳細解説 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-TariffCost/OCPP-2.1-TariffCost.md |
| OCPP 2.1のスマート充電の詳細解説 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-SmartCharging/OCPP-2.1-SmartCharging.md |
| OCPP 2.1のメッセージシーケンス | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Sequences/OCPP-2.1-Sequences.md |
| OCPP 2.1のユースケース | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-UseCases/OCPP-2.1-UseCases.md |
| OCPP 2.1の認証 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Certification/OCPP-2.1-Certification.md |
| OCPP 2.1の認証スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Authorization.md |
| OCPP 2.1の可用性スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Availability.md |
| OCPP 2.1のバッテリー交換スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-BatterySwap.md |
| OCPP 2.1の双方向スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Bidirectional.md |
| OCPP 2.1の証明書スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Certificates.md |
| OCPP 2.1のDER制御スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-DERControl.md |
| OCPP 2.1のデータ転送スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-DataTransfer.md |
| OCPP 2.1の診断スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Diagnostics.md |
| OCPP 2.1のディスプレイスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Display.md |
| OCPP 2.1のファームウェアスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Firmware.md |
| OCPP 2.1のローカル認証リストスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-LocalAuthList.md |
| OCPP 2.1のメーター値スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-MeterValues.md |
| OCPP 2.1のプロビジョニングスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Provisioning.md |
| OCPP 2.1のリモート制御スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-RemoteControl.md |
| OCPP 2.1の予約スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Reservation.md |
| OCPP 2.1のセキュリティスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Security.md |
| OCPP 2.1のスマート充電スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-SmartCharging.md |
| OCPP 2.1の料金とコストのスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-TariffAndCost.md |
| OCPP 2.1のトランザクションスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-2.1-Schemas/OCPP-2.1-Schemas-Transactions.md |
| OCPP 1.6Jの概要+設定キー | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-1.6J.md |
| 1.6Jのコアスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-1.6J-Schemas/OCPP-1.6J-Schemas-Core.md |
| 1.6Jのスマート充電スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-1.6J-Schemas/OCPP-1.6J-Schemas-SmartCharging.md |
| 1.6Jのファームウェアスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-1.6J-Schemas/OCPP-1.6J-Schemas-Firmware.md |
| 1.6Jのローカル認証リストスキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-1.6J-Schemas/OCPP-1.6J-Schemas-LocalAuthList.md |
| 1.6Jの予約スキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-1.6J-Schemas/OCPP-1.6J-Schemas-Reservation.md |
| 1.6Jのリモートトリガースキーマ | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-1.6J-Schemas/OCPP-1.6J-Schemas-RemoteTrigger.md |
| 1.6Jのメッセージシーケンス | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-1.6J-Sequences/OCPP-1.6J-Sequences.md |
| 1.6Jのスマート充電の詳細解説 | ${CLAUDE_PLUGIN_ROOT}/docs/OCPP-1.6J-SmartCharging/OCPP-1.6J-SmartCharging.md |
ファイルマップの使い方
- 開発者の質問からトピックを特定します
- Read ツールを使って関連ファイルを読みます
- ドキュメントに記載されている具体的なフィールド、制約、列挙値を引用します
- ドキュメント内に ESCALATE マーカーがあれば、それを明示します
トピック引数の振り分け
/ocpp <topic> を指定して呼び出された場合は、該当するファイルをただちに読みます。
OCPP 2.1 のトピック:
/ocpp 2.1または/ocpp 2.1 overview→OCPP-2.1.mdの概要を読みます/ocpp 2.1 migration→OCPP-2.1.mdを読みます(2.0.1 からの移行ガイドが含まれています)/ocpp 2.1 derまたは/ocpp 2.1 der-control→OCPP-2.1-DERControl/OCPP-2.1-DERControl.md+OCPP-2.1-Schemas/OCPP-2.1-Schemas-DERControl.mdを読みます/ocpp 2.1 v2xまたは/ocpp 2.1 bidirectional→OCPP-2.1-Bidirectional/OCPP-2.1-Bidirectional.md+OCPP-2.1-Schemas/OCPP-2.1-Schemas-Bidirectional.mdを読みます/ocpp 2.1 tariffまたは/ocpp 2.1 cost→OCPP-2.1-TariffCost/OCPP-2.1-TariffCost.md+OCPP-2.1-Schemas/OCPP-2.1-Schemas-TariffAndCost.mdを読みます/ocpp 2.1 device-model→OCPP-2.1-DeviceModel/OCPP-2.1-DeviceModel.mdを読みます/ocpp 2.1 enumsまたは/ocpp 2.1 enumerations→OCPP-2.1-Enumerations/OCPP-2.1-Enumerations.mdを読みます/ocpp 2.1 use-cases→OCPP-2.1-UseCases/OCPP-2.1-UseCases.mdを読みます/ocpp 2.1 certification→OCPP-2.1-Certification/OCPP-2.1-Certification.mdを読みます/ocpp 2.1 schemas→OCPP-2.1-Schemas/内の19個すべてのファイルを読みます/ocpp 2.1 smart-charging→OCPP-2.1-SmartCharging/OCPP-2.1-SmartCharging.md+OCPP-2.1-Schemas/OCPP-2.1-Schemas-SmartCharging.mdを読みます/ocpp 2.1 sequences→OCPP-2.1-Sequences/OCPP-2.1-Sequences.mdを読みます/ocpp 2.1 typesまたは/ocpp 2.1 data-types→OCPP-2.1-DataTypes.mdを読みます
OCPP 1.6J のトピック:
/ocpp 1.6または/ocpp 1.6j→ OCPP-1.6J.md の概要を読みます/ocpp 1.6 smart-charging→ 1.6J の SmartCharging スキーマ + 詳細解説を読みます/ocpp 1.6 schemas→ 1.6J の Schema ファイルをすべて読みます/ocpp 1.6 sequences→ 1.6J の Sequences ファイルを読みます/ocpp 1.6 core→ 1.6J の Core スキーマを読みます/ocpp 1.6 firmware→ 1.6J の Firmware スキーマを読みます/ocpp 1.6 auth-list→ 1.6J の LocalAuthList スキーマを読みます/ocpp 1.6 reservation→ 1.6J の Reservation スキーマを読みます
OCPP 2.0.1 のトピック(デフォルト):
/ocpp smart-charging→ SmartCharging ファイルを3つすべて読みます/ocpp authorizeまたは/ocpp authorization→ Authorization スキーマを読みます/ocpp transactions→ Transaction スキーマ + Sequences を読みます/ocpp provisioningまたは/ocpp boot→ Provisioning スキーマ + Sequences を読みます/ocpp schemas→ Schema ファイルをすべて読みます/ocpp sequences→ Sequence ファイルを2つとも読みます/ocpp typesまたは/ocpp data-types→ DataTypes を読みます/ocpp device-model→OCPP-2.0.1-DeviceModel/OCPP-2.0.1-DeviceModel.mdを読みます/ocpp enumsまたは/ocpp enumerations→OCPP-2.0.1-Enumerations/OCPP-2.0.1-Enumerations.mdを読みます/ocpp firmware→ Firmware スキーマ + Operational sequences を読みます/ocpp diagnostics→ Diagnostics スキーマ + Operational sequences を読みます/ocpp reservation→ Reservation スキーマを読みます/ocpp display→ Display スキーマを読みます/ocpp securityまたは/ocpp certificates→ Security スキーマを読みます/ocpp availability→ Availability スキーマを読みます- その他のトピック → grep を使ってすべてのドキュメントを検索します
動作ガイドライン
-
必ず出典を明記してください。 フィールド、型、制約に言及する場合は、どのドキュメントに記載されているかを示してください。スキーマに基づく事実(信頼度が高い)と、AI による解釈(信頼度が低い)を区別してください。
-
エスカレーションモデルを遵守してください。 ドキュメント内に
> **ESCALATE:**マーカーがある場合は、上記のエスカレーション厳格度ルールに従ってください。 -
コンテキストからバージョンを検出してください。 上記のバージョン検出ルールを使用してください。コードで
StartTransaction/StopTransactionを使用している場合は 1.6J です。1.6J のドキュメントを参照してください。SetDERControl、GetTariffs、BatterySwap、OpenPeriodicEventStream、サブプロトコルocpp2.1、または:2:2025:を含むスキーマ URN を使用している場合は 2.1 です。2.1 を示す要素がなくTransactionEventを使用している場合は 2.0.1 です。バージョンを示す要素がない場合は 2.0.1 と仮定し、その仮定を明記してください。 -
プロトコルの動作を作り出さないでください。 ある動作が仕様で定義されているかどうか不明な場合は、まずドキュメントを確認してください。ドキュメントに記載がない場合は、推測せず、その旨を明確に伝えてください。
-
検証にはスキーマを使用してください。 開発者が OCPP メッセージのペイロードを作成する場合は、スキーマドキュメントに照らして、フィールド名、型、必須/任意の区分、制約を検証してください。