Skip to content

AI Art Frame status API: displayMode always returns 0 (never reflects static vs slideshow) #487

@dcox8806

Description

@dcox8806

Analysis

GET /v1.1/devices/{deviceId}/status for an AI Art Frame always returns "displayMode": 0, regardless of the frame's actual display mode. Switching the frame between static (single image) and slideshow — on the device or in the SwitchBot app — never changes the value; it stays 0 on every poll. The field appears to be stuck/never updated server-side, so there is no reliable way to read the frame's current mode via the API.
Observed response (deviceId / imageUrl redacted):
{
"version": "V0.7-1.1",
"battery": 34,
"onlineStatus": "online",
"displayMode": 0,
"imageUrl": "",
"deviceId": "",
"deviceType": "AI Art Frame",
"hubDeviceId": ""
}

Expected Behavior

displayMode should reflect the frame's real state — 0 for static / single image, 1 for slideshow — and update whenever the mode changes on the device or via the app, so API clients can tell whether the frame is cycling or holding a single image.

Steps To Reproduce

  1. GET /v1.1/devices/{deviceId}/status for an AI Art Frame → note displayMode (returns 0).
  2. Put the frame into slideshow mode (device or SwitchBot app).
  3. GET the status again.
  4. displayMode is still 0 — it never changes to 1.

Logs

Observed response (deviceId / imageUrl redacted):
{
  "version": "V0.7-1.1",
  "battery": 34,
  "onlineStatus": "online",
  "displayMode": 0,
  "imageUrl": "<presigned S3 URL omitted>",
  "deviceId": "<redacted>",
  "deviceType": "AI Art Frame",
  "hubDeviceId": "<redacted>"
}

Configuration

Custom client calling the SwitchBot Cloud API v1.1 directly (no SDK).
Request:
  GET https://api.switch-bot.com/v1.1/devices/{deviceId}/status
  Headers: Authorization, sign, t, nonce  (standard HMAC-SHA256 signing per the API docs)
No special configuration — the issue is in the API response payload (displayMode),

Environment

  • OS: macOS 26.4.1 (build 25E253)
  • Software: SwitchBot Cloud API v1.1 ; device firmware V0.7-1.1 (AI Art Frame)
  • Client runtime: Python 3.12.4 (urllib, no SDK) — not a Node project, so node/npm N/A
  • Note: this is a server-side API behavior, reproducible from any HTTP client regardless of language/runtime

Additional Context

The displayMode field is the only documented way to detect whether the frame is holding a single image vs. running a slideshow. Because it is stuck at 0, integrations cannot tell the frame's actual mode. Polling the status repeatedly always returns displayMode: 0 even after the mode is changed on the device and in the SwitchBot app. All other fields (battery, onlineStatus, imageUrl) update correctly — only displayMode appears stale/hardcoded.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions