CRITICAL: Before starting, MUST first use the Read tool to read
../openydt-shared/SKILL.md(authentication / profile / signature / status codes / rate limiting / security rules). Do not execute any command without reading the shared base.
When to use this skill
Use this skill when the user needs to perform read-only queries/statistics on theEV charging platform, for example: list the charging stations under a certain operator (agent), view the details of a certain charging station, query the real-time status of charging piles and gun connectors, count the operation data of stations/piles (order count, charging electricity, electricity fee/service fee), query the charging order list or the details of a single order.
Intent routing:
- Forstations: list stations by operator account/mobile number →
station-list; view a single station by station code (including operatorName, pileCount) →station-detail。 - Forcharging piles/gun connectors →
pile-list(returnsguns[]gun connector status). - Foroperation data/revenue/electricity →
station-statistics(aggregated by station down to each pile). - Fororders → for the list use
order-list(by time period, can add plotCodes/pileId/useraccount filters); for a single order useorder-detail(by orderNo). - If you need to doparking(non-charging) fee queries/payments, parking records/presence, monthly passes/coupons/devices/blacklists and whitelists, etc., please switch to the corresponding parking domain skills [[openydt-billing]] / [[openydt-record]] / [[openydt-park]] / [[openydt-monthticket]] / [[openydt-coupon]] / [[openydt-device]] / [[openydt-list]].
- If the charging platform has cmd not covered by this skill, use [[openydt-api-explorer]] with
openydt api <cmd>as a fallback.
Available commands
| Chinese name | Command | Read/Write | Key parameters |
|---|---|---|---|
| Get charging station list | openydt evcharge station-list |
Read | useraccount / mobile (choose one), pageNum, pageSize |
| Get charging station details | openydt evcharge station-detail |
Read | plotCode (required) |
| Get charging pile device list | openydt evcharge pile-list |
Read | useraccount (required), plotCodes (array, only --body), pageNum, pageSize |
| Get station operation data | openydt evcharge station-statistics |
Read | useraccount (required), plotCodes (array), startDate, endDate (required, ≤30 days), pagination |
| Get charging order list | openydt evcharge order-list |
Read | startDate, endDate (required, ≤30 days), useraccount/plotCodes/pileId (optional filters), pagination |
| Get order details | openydt evcharge order-detail |
Read | orderNo (required) |
All are read-only commands, no
--yes. Command names have had redundant domain prefixes removed (station-listinstead ofevcharge-station-list); the original business codesevchargeStationListetc. can still be used as aliases.
Input parameter constraints (from platform rules)
station-list:useraccountandmobileat least one must be provided。plotCodesis asite number array: can only be passed via--body(not a single-value flag); if not provided or an empty array, it means no filtering by site, defaulting to at most 50.startDate/endDate: formatyyyy-MM-dd HH:mm:ss,the interval cannot exceed 30 days(if exceeded, returns status=2 / resultCode=909 "The query time range cannot exceed 30 days").- Pagination:
pageSizemaximum 50(if exceeded, returns business failure "pageSize cannot be greater than 50"); the command will inject the default value from the catalog documentation when omittedpageNum=1/pageSize=10。
Business process
The charging domain is entirely read-only queries; the typical chain isfirst locate the operator/site, then drill down to chargers and orders, emphasizing using fields from previous responses as subsequent input parameters:
- Locate site: use
station-list(pass--useraccountor--mobile) to get the site'splotCode/plotName; or if theplotCodeis already known, directlystation-detailto view details (returnsoperatorName、pileCount, latitude/longitude, operating status). - Drill down to chargers: put the
plotCodefrom step 1 into thepile-listof the--bodyofplotCodesarray (with--useraccount), to get each charger'spileId、enabled、runningStatusandguns[]connector status. - Business statistics:
station-statistics(useraccount + plotCodes + time range) aggregated by site down to each charger, givingorderCount/chargeTotalTimes/totalPower/totalAmount/totalElectricFee/totalServiceFee。 - Order analysis:
order-list(time range required; can use theplotCodes、pileId、useraccountfrom steps 1/2 to filter) lists orders and gets theorderNo; if single-order details are needed, then useorder-detail --order-no <orderNo>。
Field passing key points:
station-list/station-detailtheplotCode→pile-list/station-statistics/order-listtheplotCodesarray (via --body);pile-listthepileId→order-listthe--pile-idfilter;order-listtheorderNo→order-detailthe--order-no。
Response fields/enum quick reference (prod-tested, differs from integration documentation)
⚠️ The following are actual test results in the production environment; the single
orderStatusEnglish enum (PAID/CHARGING…) written in the integration documentation did not appearin prod. The platform's actual test results shall prevail; if the platform later clarifies, the platform shall prevail.
- Order(
order-list/order-detail) hastwo status dimensions:chargeStatus/chargeStatusName— Charging status:9002=charging,9003=completed.orderState/orderStatusName— Order status:1=placed,3=paid.- Amount field (
totalAmount/electricFee/serviceFee) unit "yuan", electricitychargingPowerunit "kWh",chargingDurationin the form "12 min" "1 min 12 sec".
- Charger(
pile-list):enabled0 disabled/1 enabled; chargerrunningStatus(original value) 0 running/1 offline;plotCodeis the site it belongs to;guns[].statusactual test 0=offline / 2=idle / 4=connector plugged in(the integration documentation only gives 2=idle). - Site operations(
station-statistics):piles[]includeschargeTotalTimes(number of charging sessions, not listed in the documentation) and orderCount/totalDuration/totalPower/totalAmount/totalElectricFee/totalServiceFee; recordList items containstationName。 - Station(
station-list/station-detail):runningStatus1 in operation/0 closed;station-detailalso containsoperatorName、pileCount、lng/lat、region。
Error self-healing quick reference
| Symptom | Meaning | Recovery action |
|---|---|---|
| resultCode 909 "query time range cannot exceed 30 days" | order-list/station-statistics time window >30 days |
narrow startDate/endDate to ≤30 days |
| Business failure "pageSize cannot be greater than 50" | pagination exceeds limit | --page-size ≤ 50 |
station-list reports parameter error |
useraccount and mobile neither passed |
provide at least one |
plotCodes did not take effect |
passed as a single-value flag | use --body '{"plotCodes":["C3CMHJX"]}'(arrays can only be passed via body) |
| returns empty / nodata | mostly no business in the time window, or querying charging in the test environment(charging data is currently verified in prod) | change the time window, or --env prod + corresponding prod credentials to verify; not an interface failure |
For general status/resultCode, exit codes, rate-limit retries, and signature versions, see [[openydt-shared]]. Charging reuses the same signature authentication (default v2).
Example
Charging business data is currently verified in prod (the test environment may have no charging data); to query prod, add
--env prodand configure prod credentials. The following are read-only commands and are safe. Sample stationC3CMHJX, operatorDLS001are measured values.
# 1) 按运营商账号列充电站(二选一:--useraccount 或 --mobile)
openydt evcharge station-list --useraccount DLS001 --page-size 10
# 2) 看单站详情(含运营商、桩数、运行状态)
openydt evcharge station-detail --plot-code C3CMHJX
# 3) 列站内充电桩与枪口(plotCodes 是数组,必须经 --body)
openydt evcharge pile-list --body '{"useraccount":"DLS001","plotCodes":["C3CMHJX"],"pageNum":1,"pageSize":10}'
# 4) 站点经营数据(时间段 ≤30 天)
openydt evcharge station-statistics --body '{"useraccount":"DLS001","plotCodes":["C3CMHJX"],"startDate":"2026-06-01 00:00:00","endDate":"2026-06-18 23:59:59","pageNum":1,"pageSize":10}'
# 5) 充电订单列表(时间段必填,可按站点/桩/运营商过滤),拿到 orderNo
openydt evcharge order-list --body '{"plotCodes":["C3CMHJX"],"startDate":"2026-06-01 00:00:00","endDate":"2026-06-18 23:59:59","pageNum":1,"pageSize":10}'
# 6) 单笔订单详情(用第 5 步响应里的 orderNo)
openydt evcharge order-detail --order-no 26061820675194016111704626880659