Install
openclaw skills install govee-controlScript-free Govee OpenAPI setup and control guide. Use when the user wants to get a Govee API key, connect Govee, list devices, check state, or send power/br...
openclaw skills install govee-controlControl Govee devices using manual curl commands only.
bash available.curl installed.https://developer-api.govee.com and https://developer.govee.com.jq for pretty-printing JSON responses.Quick check:
bash --version | head -n 1
curl --version | head -n 1
command -v jq >/dev/null && jq --version || echo "jq not installed (optional)"
GOVEE_API_KEY (required)GOVEE_API_KEY from your chosen per-user secrets file.https://developer-api.govee.comhttps://developer.govee.comhttps://developer.govee.com/.If the portal UI changes, use the same flow: sign in to Govee Developer → find API key management → create key.
Never store API keys in skill files, git, or chat logs.
Create a per-user secrets file (avoid /root unless intentionally running as root):
mkdir -p "$HOME/.openclaw/secrets"
cat > "$HOME/.openclaw/secrets/govee.env" <<'EOF'
export GOVEE_API_KEY='<YOUR_API_KEY>'
EOF
chmod 600 "$HOME/.openclaw/secrets/govee.env"
Load only this variable into the current shell (no set -a):
source "$HOME/.openclaw/secrets/govee.env"
https://developer-api.govee.com/v1
Before controlling lights, list devices and copy your own device + model:
curl -sS -X GET "https://developer-api.govee.com/v1/devices" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json"
curl -sS -X GET "https://developer-api.govee.com/v1/devices/state?device=<DEVICE>&model=<MODEL>" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json"
curl -sS -X PUT "https://developer-api.govee.com/v1/devices/control" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"device":"<DEVICE>","model":"<MODEL>","cmd":{"name":"turn","value":"on"}}'
curl -sS -X PUT "https://developer-api.govee.com/v1/devices/control" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"device":"<DEVICE>","model":"<MODEL>","cmd":{"name":"turn","value":"off"}}'
curl -sS -X PUT "https://developer-api.govee.com/v1/devices/control" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"device":"<DEVICE>","model":"<MODEL>","cmd":{"name":"brightness","value":75}}'
curl -sS -X PUT "https://developer-api.govee.com/v1/devices/control" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"device":"<DEVICE>","model":"<MODEL>","cmd":{"name":"color","value":{"r":120,"g":180,"b":255}}}'
Success usually returns:
{"code":200,"message":"Success"}
If code is not 200, treat it as failure.
401 / unauthorized: key missing, expired, or invalid.429 / rate limit: slow retries.supportCmds).<DEVICE>, <MODEL>, <YOUR_API_KEY>).