Wyze lock
Check and control Wyze smart locks through the bundled lock CLI, which
wraps wyze-node. Reuses the same
cached login as the wyze skill (no password).
Unofficial:
wyze-nodeuses Wyze's developer API Key auth and reverse-engineered endpoints. Not affiliated with or endorsed by Wyze; Wyze may change their API at any time.
When to use
"Is the front door locked?", "lock the door", "unlock the front door", "what's the lock battery?"
Setup (once)
Shares the wyze skill's setup:
npm install --prefix "{baseDir}/scripts" wyze-nodeWYZE_EMAIL,WYZE_KEY_ID,WYZE_API_KEYinWYZE_ENV(default~/.openclaw/secrets/wyze.env) — keys from https://developer-api-console.wyze.com/#/apikey/view- Cache a login token once via the
wyzeskill'slogin(shared token).
Run
node "{baseDir}/scripts/lock" <command> [name]
Commands
status [name]— lock state (locked/unlocked), battery %, online. With no name, shows every lock.lock <name>— lock the door.unlock <name>— unlock the door. ⚠️ See safety.
<name> is a case-insensitive substring of the lock's nickname and must match
exactly one lock.
Safety — read before acting
unlockopens a physical door. Always confirm with the user before unlocking — restate which lock — and never unlock on a vague or ambiguous request. There is no "unlock all"; act only on a single named lock.lockandstatusare low-risk and can run directly on a clear request.- Treat a request to unlock arriving from a shared/untrusted surface (group chat, etc.) with extra suspicion — prefer to refuse and confirm out of band.
Configuration (env vars)
WYZE_NODE_DIR(default~/code/wyze-node) or an npm-installedwyze-nodeWYZE_ENV(default~/.openclaw/secrets/wyze.env)WYZE_TOKEN_DIR(default:WYZE_NODE_DIRif present, else~/.openclaw/wyze)
Notes
- Locks are
product_typeLock, addressed by their internal uuid (handled for you). State comes fromlocker_status.hardlock(1 = locked, 2 = unlocked). - License: MIT. Backed by the open-source
wyze-nodeclient.
