Skip to main content

evse-simulator

Control and monitor an OCPP charging station simulator via CLI. Use when users ask to manage charging stations, trigger OCPP messages from stations to the CSMS, start/stop the simulator or ATG, list stations or templates, or check simulator state.

معلومات المصدر

المستودع
SAP/e-mobility-charging-stations-simulator
آخر نشاط في المصدر
٢٧ مايو ٢٠٢٦ في ٢٣:١١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢٢٧
التفرعات
٩٩

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
evse-simulator
description
Control and monitor an OCPP charging station simulator via CLI. Use when users ask to manage charging stations, trigger OCPP messages from stations to the CSMS, start/stop the simulator or ATG, list stations or templates, or check simulator state.
license
Apache-2.0
compatibility
Requires the simulator UI server to be running with WebSocket enabled.
metadata
{"author":"SAP"}
# e-Mobility Charging Station Simulator CLI ## Status !`evse-cli --version 2>/dev/null || echo "Not installed — see ui/cli/README.md"` ## Configuration The CLI connects to the simulator UI server via WebSocket (SRPC protocol). Config file location: `${XDG_CONFIG_HOME:-$HOME/.config}/evse-cli/config.json` ```json { "uiServer": { "host": "localhost", "port": 8080, "protocol": "ui", "version": "0.0.1", "authentication": { "enabled": true, "type": "protocol-basic-auth", "username": "admin", "password": "admin" } } } ``` Precedence: defaults < config file < `--config <path>` < `--server-url <url>`. ## Global Options | Option | Description | | --------------------- | ---------------------------- | | `--json` | Machine-readable JSON output | | `-C, --config <path>` | Path to configuration file | | `--server-url <url>` | WebSocket URL override | `NO_COLOR` environment variable disables color output (see [no-color.org](https://no-color.org/)). ## Commands ### Simulator ```shell evse-cli simulator state # Get state, version, template statistics evse-cli simulator start # Start the simulator evse-cli simulator stop # Stop the simulator ``` ### Stations ```shell evse-cli station list # List all stations evse-cli station start [hashId...] # Start station(s) evse-cli station stop [hashId...] # Stop station(s) evse-cli station add -t <template> -n <count> # Add stations evse-cli station add -t <template> -n 2 --auto-start # Add and auto-start evse-cli station add -t <template> -n 1 --supervision-url ws://csms:8180/path evse-cli station add -t <template> -n 1 --base-name MY-CS --fixed-name evse-cli station add -t <template> -n 1 --name-suffix -EU # Suffix appended to derived id evse-cli station add -t <template> -n 1 --ocpp-strict # Enable OCPP strict compliance evse-cli station add -t <template> -n 1 --persistent-config # Enable persistent OCPP config evse-cli station add -t <template> -n 1 --supervision-user alice --supervision-password s3cret evse-cli station delete [hashId...] # Delete station(s) evse-cli station delete --delete-config [hashId...] # Delete with config files ``` ### Templates ```shell evse-cli template list # List available station templates ``` ### Connections ```shell evse-cli connection open [hashId...] # Open WebSocket to CSMS evse-cli connection close [hashId...] # Close WebSocket to CSMS ``` ### Connectors ```shell evse-cli connector lock --connector-id <id> [hashId...] # Lock connector evse-cli connector unlock --connector-id <id> [hashId...] # Unlock connector ``` ### ATG (Automatic Transaction Generator) ```shell evse-cli atg start [hashId...] # Start ATG on all connectors evse-cli atg start --connector-ids 1,2 [hashId...] # Start on specific connectors evse-cli atg stop [hashId...] # Stop ATG on all connectors evse-cli atg stop --connector-ids 1,2 [hashId...] # Stop on specific connectors ``` ### Transactions ```shell evse-cli transaction start --connector-id <id> --id-tag <tag> [--evse-id <id>] [hashId...] evse-cli transaction stop --transaction-id <id> [--connector-id <id>] [hashId...] ``` Both commands auto-detect the station's OCPP version and adapt the procedure and payload. The `-p` option uses the OCPP 1.6 procedure; for 2.0.x raw payloads use `ocpp transaction-event -p`. ### OCPP Messages Request station(s) to send OCPP messages to the CSMS: ```shell evse-cli ocpp heartbeat [hashId...] evse-cli ocpp boot-notification [hashId...] evse-cli ocpp authorize --id-tag <tag> [hashId...] evse-cli ocpp status-notification --connector-id <id> [--error-code <code>] --status <status> [--evse-id <id>] [hashId...] evse-cli ocpp meter-values --connector-id <id> [hashId...] # OCPP 1.6 evse-cli ocpp meter-values --evse-id <id> [hashId...] # OCPP 2.0.x evse-cli ocpp data-transfer [--vendor-id <id>] [--message-id <id>] [--data <data>] [hashId...] ``` `meter-values` requires `--connector-id` for OCPP 1.6 and `--evse-id` for OCPP 2.0.x. Other OCPP commands (no extra options): `diagnostics-status-notification`, `firmware-status-notification`, `get-15118-ev-certificate`, `get-certificate-status`, `log-status-notification`, `notify-customer-information`, `notify-report`, `security-event-notification`, `sign-certificate`, `transaction-event`. All OCPP and transaction commands accept `-p, --payload <json|@file|->` for custom JSON payloads: ```shell evse-cli ocpp boot-notification -p '{"reason":"PowerUp"}' [hashId...] # Inline evse-cli ocpp boot-notification -p @payload.json [hashId...] # From file cat payload.json | evse-cli ocpp boot-notification -p - [hashId...] # From stdin ``` For typed-option commands (`authorize`, `meter-values`, `status-notification`, `transaction start|stop`), `-p` conflicts with typed options and the two cannot be combined. For `data-transfer`, command options merge with `-p` and typed options take precedence over `-p` fields. ### Version-aware commands Commands with typed options (`authorize`, `meter-values`, `status-notification`, `transaction start`, `transaction stop`) auto-detect the target station's OCPP version and build the appropriate payload. Key differences: - `--id-tag`: sent as `idTag` (1.6) or wrapped as `idToken` (2.0.x) - `--error-code`: required for `status-notification` on 1.6 only - `--evse-id`: OCPP 2.0.x only; required for `meter-values` - `--connector-id`: OCPP 1.6 for `meter-values`; required for `transaction stop` on 2.0.x - `--transaction-id`: integer (1.6) or UUID string (2.0.x) When `-p` is provided, version detection is skipped and the raw payload is passed through. ### Supervision ```shell evse-cli supervision set-url --supervision-url <url> [--supervision-user <user>] [--supervision-password <password>] [hashId...] ``` ### Performance ```shell evse-cli performance stats # Get performance statistics ``` ## Output Modes - **Human** (default): borderless tables, status icons, colored output - **JSON** (`--json`): structured JSON on stdout, parseable by scripts ## Exit Codes | Code | Meaning | | ----- | -------------------------------- | | `0` | Success | | `1` | Error (connection, server, auth) | | `130` | Interrupted (Ctrl+C) | | `143` | Terminated (SIGTERM) | ## hashId Convention Omitting `[hashId...]` applies the command to ALL stations. Pass one or more hash IDs to target specific stations. Hash IDs support prefix matching — a short unambiguous prefix works in place of the full ID. Get hash IDs from `evse-cli station list` or `evse-cli --json station list`. ## Common Workflows ### Start simulator and check state ```shell evse-cli simulator start evse-cli simulator state ``` ### Add stations from template and start ATG ```shell evse-cli template list evse-cli station add -t keba-ocpp2.station-template -n 3 --auto-start evse-cli atg start ``` ### Request all stations to send OCPP Heartbeat ```shell evse-cli ocpp heartbeat ``` ### Change supervision URL and reconnect ```shell evse-cli station stop <hashId> evse-cli supervision set-url --supervision-url ws://new-csms:8180/path <hashId> evse-cli station start <hashId> ```
عرض على GitHub