aqara-open-api
Query and control Aqara/Lumi Studio smart home devices and manage spaces via the Aqara Open Platform API (HTTP JSON).
Skill by LeoYeAI
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/leoyeai-aqara-open-api
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/aqara-open-api
What's inside
- Skill name
aqara-open-api- Description
- Query and control Aqara/Lumi Studio smart home devices and manage spaces via the Aqara Open Platform API (HTTP JSON). Use when the user asks to list Aqara devices, get device status, control lights/switches/sensors, or manage rooms/spaces. Requires AQARA_OPEN_API_TOKEN and AQARA_ENDPOINT_URL.
- License
- MIT
- Instructions
- 469 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions call the network
Files (6)
- README-CLAWHUB.md
- SKILL.md
- _meta.json
- examples.md · references/
- trait-codes.md · references/
- fetch_all_devices.sh · scripts/
SKILL.md (first lines)
# Aqara Open API Skill
This skill equips the agent to operate Aqara/Lumi Studio smart home devices via HTTPS requests to the Aqara Open Platform API. **All operations are performed exclusively through `curl` commands**, except `GetAllDevicesWithSpaceRequest`, which must be executed through `bash scripts/fetch_all_devices.sh` to refresh the local cache file `data/devices.json`.
This skill supports only:
- device discovery and device type lookup
- device state queries from cache
- device control
- space listing, creation, update, and device assignment
## Configuration
The following environment variables are required:
- `AQARA_ENDPOINT_URL`: The base URL
- `AQARA_OPEN_API_TOKEN`: Your Long-Lived Access Token.
## AI Quick Navigation (Read This First)
> This section is a navigation and execution summary only. It **does not add new rules** or change existing constraints.
### What This Skill Can Do
- **Device discovery**: load all devices, space mappings, endpoints, functions, traits, and current values
- **Device type catalog**: query all device types in the project with code and display name
- **Device queries**: filter by type, name, room/space, or online status; read current trait values
- **Device control**: send control requests using real `deviceId`, `endpointId`, `functionCode`, and `traitCode` from cache
- **Space management**: list spaces, create spaces, update spaces, and assign devices to spaces
### Intent to Fastest Path
- **List all devices / devices by type / devices in a room / device state**
- Check `data/devices.json`
- If cache exists: read the file
- If cache is missing: run `bash scripts/fetch_all_devices.sh`
- **Control a device**
- Ensure `data/devices.json` exists
- Read `deviceId + endpointId + functionCode + traitCode` from cache
- Then use bash + `curl` for `ExecuteTraitRequest`
- **What device types are there?**
- Use bash + `curl` for `GetDeviceTypeInfosRequest`
- **Refresh all device data**
- Only run `bash scripts/fetch_all_devices.sh`
- **List spaces**
- Use bash + `curl` for `GetSpacesRequest`
- **Create or update a space**
- First get the real `spaceId` from `GetSpacesRequest`
- Then call `CreateSpaceRequest` or `UpdateSpaceRequest`
- **Assign devices to a space**
- First get the real `spaceId` from `GetSpacesRequest`
- Read real `deviceId` values from `data/devices.json`
- Then call `AssociateDevicesToSpaceRequest`
### Six Highest-Priority Rules
1. **All-device loading only goes through the script**: `GetAllDevicesWithSpaceRequest` may only be executed via `bash scripts/fetch_all_devices.sh`.
2. **All other requests only go through curl**: except for the refresh script above, every other API call must use bash + `curl`.
3. **Request bodies may only contain four fields**: `type`, `version`, `msgId`, and `data`; **`version` must always be `"v1"`**.
4. **`type` is whitelist-only**: use only the exact request types listed in this document; never test guessed alternatives such as `GetAllSpacesRequest`, `GetSpaceListRequest`, or `QuerySpaceListRequest`.
5. **All IDs and codes must come from real API data**: never guess `deviceId`, `endpointId`, `functionCode`, `traitCode`, or `spaceId`.
### Required Preconditions
- **Before listing devices, reading state, or filtering by room/type**: check whether `data/devices.json` exists
- **Before controlling a device**: obtain the real `deviceId`, `endpointId`, `functionCode`, and `traitCode` from the cache file
- **Before creating or updating a space**: if `spaceId` is needed, call `GetSpacesRequest` first
- **Before assigning devices to a space**: get `spaceId` from `GetSpacesRequest` and `deviceId` values from `data/devices.json`
### Terms and Field Reference
- **Cache file**: `data/devices.json`, which stores the `data` array from `GetAllDevicesWithSpaceRequest`
- **deviceId**: device identifier used for control and space assignment
- **endpointId**: endpoint identifier, only from cached `endpoints[].endpointId`
- **functionCode / traitCode**: capability identifiers from cache
- **spaceId**: space identifier from `GetSpacesRequest` or cached `space.spaceId`
### Section Index
- **Protocol and four-field request body**: see `## API Protocol`
- **Script vs curl execution rules**: see `### Execution Model`
- **Cache file rules**: see `### File Cache Model (Cache-First Data Model)`
- **Device APIs**: see `## API Commands` under `### Device Management`
- **Space APIs**: see `### Space Management`
- **Standard workflows**: see `## Standard Operating Procedures (SOP)`
- **Decision trees**: see `## Cache Decision Tree` and `## API Call Decision Tree`
- **Forbidden behavior**: see `## Forbidden Behavior`
- **Trait code reference**: see `references/trait-codes.md`
## 1. Role and Core Philosophy
**Role**: You are a strict hardware interface controller. Never infer or guess IDs or capability fields.
## 2. Hard Safety Rules
### 2.1 Valid Value Rule
Any operation involving live device state, such as power, brightness, or temperature, must follow this rule:
| Power status | Valid interpretation | Response style |
|-------------|----------------------|----------------|
| `Switch == "false"` | Brightness / color temperature / power should be treated as 0 or "off" | "The device is currently off" |
| `Switch == "true"` | Use the actual returned value | "Brightness is X%" |
**Never** produce logically inconsistent output such as "the light is off but brightness is 100%".
## Quick Start (Operator)
1. Set environment variables:
- `AQARA_OPEN_API_TOKEN`: your Aqara Open API Bearer token (JWT)
- `AQARA_ENDPOINT_URL`: the API base URL
**Real environment value rule**: `AQARA_ENDPOINT_URL` and `AQARA_OPEN_API_TOKEN` **must be read from the runtime environment** (via `$AQARA_ENDPOINT_URL` and `$AQARA_OPEN_API_TOKEN`). **Do not guess, fabricate, or use example placeholders** as real request values. If either variable is missing or empty, tell the user to configure it first.
2. Test connectivity:
```bash
curl -s -X POST "$AQARA_ENDPOINT_URL" \
-H "Authorization: Bearer $AQARA_OPEN_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"GetAllDevicesWithSpaceRequest","version":"v1","msgId":"test-1"}'
```From LeoYeAI/openclaw-master-skills, MIT.
More from LeoYeAI/openclaw-master-skills
- 0.734score
audit-website
squirrelscan
Audit websites for SEO, performance, security, technical, content, and 15 other issue cateories with 230+ rules using the squirrelscan CLI.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.734score
arista-device-health
network-security-skills-suite
Arista EOS device health check and triage procedure.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.733score
analyticscli-ts-sdk
wotaso
Use when integrating or upgrading the AnalyticsCLI TypeScript SDK in web, TypeScript, React Native, or Expo apps.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.731score
ai-headshot-generation
eachlabs
Generate professional AI headshots from casual photos using each::sense AI.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.731score
acl-rule-analysis
network-security-skills-suite
Vendor-agnostic ACL and firewall rule analysis with shadowed rule detection, overly permissive rule identification, unused rule discovery, redundant rule…
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.729score
agentic-street
agentic-street
Earn yield on USDC by investing in AI-managed DeFi funds, or launch your own fund and build a public track record on Base.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.728score
agent-bom
msaad00
Open security platform for agentic infrastructure — broad scanning plus MCP discovery, CVEs, blast radius, SBOMs, CIS benchmarks (AWS, Azure, GCP, Snowflake)…
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.728score
aureus-arena
aureus-arena
Build and operate autonomous AI agents that compete in Aureus Arena, a fully on-chain Colonel Blotto game on Solana.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.727score
aster-futures
Aster
Aster Futures request using the Aster API.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.725score
anvevoice
AnveVoice
Add AI voice assistants to your website.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.724score
anima
animaapp
Turns ideas into live, full-stack web applications with editable code, built-in database, user authentication, and hosting.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.719score
xaut-trade
aurehub
Buy or sell XAUT (Tether Gold) on Ethereum.
SkillCFreshness: C★ 2.2KClaude Code +9
Signals
- Stars
- 2,168
- Forks
- 325
- Open issues
- 13
- Last commit (this folder)
- May 5, 2026 (5 months ago)
- Last release
- Jul 20, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Website
- myclaw.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from LeoYeAI
- 0.552score
aavegotchi-gbm-skill
LeoYeAI
View, create, cancel, bid, and claim Aavegotchi GBM auctions on Base mainnet (8453).
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.552score
adaptive-learning-playbook
LeoYeAI
World-Class Adaptability & Learning Playbook.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.552score
aawp
LeoYeAI
AAWP (AI Agent Wallet Protocol) — the only crypto wallet protocol built exclusively for AI Agents on EVM-compatible blockchains.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.552score
ai-task-hub
LeoYeAI
AI task hub for image analysis, background removal, speech-to-text, text-to-speech, markdown conversion, and async execute/poll/presentation orchestration.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.552score
animation-shader
LeoYeAI
READ this skill when implementing or configuring animation-style shaders (Toon/Cel Shaders) — including outlines, rim lighting, toon shading, MatCap…
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.552score
adclaw
LeoYeAI
Ad creative search assistant.
SkillCFreshness: C★ 2.2KClaude Code +9
Cite this page
aqara-open-api skill. Agent Mart. https://agentmart.dev/skills/leoyeai-aqara-open-api (last updated 2026-10-24)