Closeli Open Device status Query
/install api-device-status
Device Status Query API
POST /api/device/status is used to batch query the online/offline status of devices.
⚠️ Display Rules (MUST be strictly followed)
The script outputs structured data in JSON format, which is the expected behavior. The display rules below are formatting instructions for the agent: the agent MUST parse the JSON output from the script, convert it into a user-friendly format according to the following rules before displaying it, and MUST NOT display the raw JSON directly.
The script output includes the _device_names field (device_id → device_name mapping), which is used to display device names.
- When
code == 0anddatais not empty, display it as a table:
| Device Name | MAC Address | Status |
|---|---|---|
| Living Room Camera | aabbccddeeff | 🟢 Online |
| Front Door Camera | 112233445566 | 🔴 Offline |
Key rules:
- Look up the device name corresponding to
device_idfrom_device_names; if not found, display "Unknown Device" device_idMUST be displayed as the MAC address after removing thexxxxS_prefix- Status mapping:
"online"→🟢 Online,"offline"→🔴 Offline
- When
datais an empty{}, reply: "None of the requested devices belong to the current user. No queryable devices are available." - When
code != 0, reply: "API call failed, error code {code}, reason: {message}"
Prerequisites
The script depends on httpx. If it is not installed, the script will prompt python3 -m pip install httpx.
Configuration Declaration
This skill depends on the following configuration items. The agent and user MUST confirm that they are correctly configured before running.
Required Configuration
| Configuration Item | Delivery Method | Description |
|---|---|---|
| AI_GATEWAY_API_KEY | Environment variable (recommended), ~/.openclaw/.env (fallback), command line --api-key |
API key used for API authentication. The script automatically retrieves it according to this priority order |
Optional Configuration
| Configuration Item | Delivery Method | Default Value | Description |
|---|---|---|---|
| AI_GATEWAY_HOST | Environment variable, ~/.openclaw/.env |
https://ai-open.icloseli.com |
Gateway address |
| AI_GATEWAY_VERIFY_SSL | Environment variable | true | Set to false to disable TLS certificate verification (development environments only) |
| AI_GATEWAY_NO_ENV_FILE | Environment variable | false | Set to true to disable fallback reading from ~/.openclaw/.env (recommended for production environments) |
Fallback Configuration Path
By default, the script reads the ~/.openclaw/.env file as the fallback configuration source. This file is shared by all skills and uses the format KEY=VALUE (one per line). In production environments, you MUST set AI_GATEWAY_NO_ENV_FILE=true to disable this fallback and instead pass all configuration directly through environment variables.
Security Notes
- The shared credential file
~/.openclaw/.envcan be read by all skills under the same user. In production environments, you MUST pass API_KEY through environment variables and MUST NOT rely on the shared credential file - TLS certificate verification is enabled by default. You MUST NOT disable it in production environments (disabling it introduces man-in-the-middle attack risks, and attackers may intercept API_KEY and device data)
- Before use, you MUST confirm that AI_GATEWAY_HOST points to a trusted domain
- You MUST use a least-privilege API_KEY to avoid reusing high-privilege credentials. This skill only requires device status query permission
Network Access Declaration
This skill only accesses the following endpoints (all under AI_GATEWAY_HOST):
| Endpoint | Method | Purpose |
|---|---|---|
| /api/device/list | POST | Obtain device name mapping |
| /api/device/status | POST | Query device online/offline status |
The script does not access any other network resources.
Quick Start
python3 check_status.py --device-ids "xxxxS_aabbccddeeff"
Query multiple devices (comma-separated):
python3 check_status.py --device-ids "xxxxS_aabbccddeeff,xxxxS_112233445566"
Request Format
Request Body
| Parameter Name | Type | Required | Description |
|---|---|---|---|
| device_ids | string[] | Yes | Device ID list, cannot be an empty array. Format: xxxxS_\x3Cmac> |
Response Format
{
"code": 0,
"message": "success",
"request_id": "\x3C32-character request trace ID>",
"data": {
"xxxxS_aabbccddeeff": { "status": "online" },
"xxxxS_112233445566": { "status": "offline" }
},
"_device_names": {
"xxxxS_aabbccddeeff": "Living Room Camera",
"xxxxS_112233445566": "Front Door Camera"
}
}
data Field (Map Structure)
The key is device_id, and the value is the status object:
| Parameter Name | Type | Description |
|---|---|---|
| status | string | Device status, value is "online" or "offline" |
Error Codes
| Error Code | HTTP Status Code | Description |
|---|---|---|
| 1001 | 401 | api_key not provided |
| 1002 | 401 | api_key is invalid or disabled |
| 2001 | 400 | Missing required parameter (device_ids is an empty array) |
| 3001 | 502 | Internal gateway service call failed |
| 3002 | 502 | Internal gateway service call failed |
| 3004 | 502 | Internal gateway service call failed |
| 5000 | 500 | Internal error |
Notes
device_idscannot be an empty array, otherwise error code 2001 is returned- IMPORTANT:
device_idis case-sensitive. The prefix MUST be lowercasexxxxS_, NOT uppercaseXXXXS_. The script will auto-correct the case, but the agent SHOULD always pass the correct lowercase format - Devices that do not belong to the current user are silently filtered and do not return an error
- Global request timeout is 120 seconds
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install api-device-status - After installation, invoke the skill by name or use
/api-device-status - Provide required inputs per the skill's parameter spec and get structured output
What is Closeli Open Device status Query?
Closeli Device Status Query API. Used to query the current status of specified devices and supports determining whether a device is online, offline, or sleep... It is an AI Agent Skill for Claude Code / OpenClaw, with 138 downloads so far.
How do I install Closeli Open Device status Query?
Run "/install api-device-status" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Closeli Open Device status Query free?
Yes, Closeli Open Device status Query is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Closeli Open Device status Query support?
Closeli Open Device status Query is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Closeli Open Device status Query?
It is built and maintained by CloseliOpenTeam (@closeli-open); the current version is v1.0.2.