SuperAPI AI Directory

openydt-device

Deployment & operations

View repository

Updated 10-16 06:47

About this skill

openydt-device — Device control domain (device)

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 commands without reading the shared foundation.

When to use this skill

Use this skill when the user's intent is to "issue commands to on-site parking lot devices or read device status", for example: remote gate open/close, switch the gate to normally open mode, push text to the display, have the device make voice announcements/loudspeaker announcements, capture vehicle images, control the cloud scan machine (start scanning/stop scanning/voice/update configuration), query device online status.

Intent routing:

  • "Open gate / close gate / raise barrier / lower barrier / remote door open" → for traditional/cloud sites use op-gate; for pure cloud sites open/close by channel ID use cloud-open-gate。
  • "Normally open / restore normal / change gate mode" → change-channel-mode。
  • "Display screen / LED display / voice announcement / loudspeaker announcement" → op-show-voice; set default screen display image carousel → set-default-screen。
  • "Capture / take photo" → channel-snap。
  • "Scan machine / QR code payment device" → scan cloud-scan-qr-code, stop cloud-stop-scan-code, voice cloud-scan-voice, update configuration cloud-scan-update-config。
  • "Device status / whether online" → get-cloud-equip-status。

For queries not involving on-site devices (vehicle presence, orders, monthly passes, coupons), please use the corresponding business domain skill (openydt parking / openydt trade / openydt ticket / openydt coupon etc.).

Available commands

Chinese name Command Read/Write Key parameters
Modify all-in-one gate mode openydt device change-channel-mode Write parkCode, channelCode, mode (0 normally open/1 normal)
Manual capture openydt device channel-snap Write parkCode, channelCode, operator (optional)
Cloud site channel gate open/close openydt device cloud-open-gate Write parkCode, channelId, opType (0 open/1 close)
Scan machine issue scan openydt device cloud-scan-qr-code Write parkCode, scanMachineId, deviceType, timeLength, voiceType
Scan machine update configuration openydt device cloud-scan-update-config Write scanMachineId, channelId
Scan machine voice announcement openydt device cloud-scan-voice Write parkCode, scanMachineId, voiceType, voiceNum, voiceInterval
Scan machine stop scanning openydt device cloud-stop-scan-code Write parkCode, scanMachineId, deviceType (optional)
Get cloud device status openydt device get-cloud-equip-status Read equipType (0 all-in-one/2 card machine/3 scan machine), clientId
Open/close gate openydt device op-gate Write parkCode, channelCode, opType (0 open/1 close), operator, operateTime, carNo (optional)
Display screen/voice announcement openydt device op-show-voice Write parkCode, channelCode, show/voice (at least one), qrCode (optional), operator, operateTime
Set default screen display content openydt device set-default-screen Write parkCode, deviceType, channelCode, templateData.imageArray

Except for get-cloud-equip-status(Read), all of the above arewrite operations, and when executing must add --yes confirmation.

⚠️ channel-snap A capture device is required on the channel: if it returns resultCode=908 找不到设备, it means there is no capture device on this channel; please switch to another channel and try again.

Callable interfaces not listed in this table but belonging to the device domain (setLeavePrompt/removeLeavePrompt/setShowMsg/setVipShowMsg/addMidAccount/scanMachineFlow), use openydt api <cmd> --body '{...}' to call (write --yes, first --dry-run); see [[openydt-api-explorer]] for details.

Business Flow

Device control is a high-risk operation that directly affects on-site hardware. Standard sequence:First locate the device → you may check the status before intervention → use --dry-run to preview → after confirming it is correct, add --yes to actually issue. Be sure to pass through the fields from the previous command response to the subsequent command inputs; do not manually fill in guessed values.

  1. Locate channel / device: in the parking lot domain (openydt parking / openydt park) obtain parkCode, channel channelCode or channelId, device scanMachineId / clientId. These are the input sources for all subsequent device commands.

  2. (Optional) First check device online status: for cloud devices, first run get-cloud-equip-status(equipType + clientId); confirm the device is available from the device online/status field in the response, then decide whether to issue the command.clientId is the scan machine's scanMachineId。

  3. preview write command (high-risk, be sure to dry-run first): for op-gate、cloud-open-gate、op-show-voice、change-channel-mode、set-default-screen、channel-snap and scan machine series commands, first use --dry-run to view the request body and target to be sent, and verify that parkCode / channelCode / channelId / opType and so on are correct.

  4. Confirm issuance: after reviewing the dry-run output, add the same set of parameters with --yes to execute for real.

    • Gate open/close: for traditional lots/cloud lots use op-gate(channelCode + opType); for pure cloud lots, by channel ID use cloud-open-gate(use the channelId obtained in step 1 rather than channelCode).
    • Gate normally open:change-channel-mode(mode=0 normally open / mode=1 normal).
    • Screen display/announcement:op-show-voice(show and voice provide at least one); for scan machine announcements use cloud-scan-voice(scanMachineId obtained from step 1/2).
    • Scan flow:cloud-scan-qr-code start scanning → (if needed)cloud-scan-voice prompt → cloud-stop-scan-code stop, all three reuse the same scanMachineId。
  5. Verify result: check the returned status code (see the base specification). Actions such as gate open/close can be checked again with get-cloud-equip-status or by reviewing the presence records in the parking lot domain to confirm they took effect.

📖 Result interpretation: gate open/close/capture status=1 meansthe command has been issued, which does not mean the physical action is complete—rely on get-cloud-equip-status online status or a parking lot domain recheck. For the three-layer interpretation, see [[openydt-shared]]'s references/result-reading-sop.md。 🔑 Duplicate issuance risk: gate open/close/capture/scanhas no idempotency key, and automatic retries triggered by gateway 404s may duplicate gate opening/capture. For high-risk writesdry-run first, execute once, if unsure whether it took effect use get-cloud-equip-status to recheck rather than blindly resending. See [[openydt-shared]]'s references/write-idempotency.md。

Error Self-Healing Quick Reference (Devices)

Symptom Meaning Recovery Action
resultCode=908 找不到设备 There is no corresponding device on this channel (capture/scan machine) Switch to a channel that has a device; for scan machines verify scanMachineId
status=7 Incomplete parameters channelId and channelCode used incorrectly (cloud venues use channelId) Pure cloud venues use channelId; traditional/cloud use channelCode; verify against the schema
No response from device after issuing Device offline get-cloud-equip-status Check online status before issuing

For common codes/exit codes/retries see [[openydt-shared]]; for result interpretation (three-layer interpretation/amount/empty result) see its references/result-reading-sop.md; for write idempotency rules see its references/write-idempotency.md。

Example

Example parkCode/time are documented test values (test only); copying historical sampleBody will hit an invalid venue/expired time.--client-id of 3571F003 is taken from the device query; replace with the actual device ID.

# 1) 开闸(写,高危):先预览
openydt device op-gate \
  --park-code 1ZS7H5PQH9 --channel-code 001 --op-type 0 \
  --operator operator --operate-time "2026-06-01 14:04:04" --dry-run
# 预览无误后真正执行
openydt device op-gate \
  --park-code 1ZS7H5PQH9 --channel-code 001 --op-type 0 \
  --operator operator --operate-time "2026-06-01 14:04:04" --yes

# 2) 显示屏 + 语音播报(写,需 --yes;show/voice 至少一个)
openydt device op-show-voice \
  --park-code 1ZS7H5PQH9 --channel-code 001 \
  --show "欢迎光临" --voice "请缴费" \
  --operator operator --operate-time "2026-06-01 14:04:04" --yes

# 3) 查询云端扫码机状态(读,无需 --yes)
openydt device get-cloud-equip-status --equip-type 3 --client-id 3571F003