Skip to content

REST API

The zigduck service serves a REST API that the dashboard, the GNOME extension and zigduck-cli all use. Most endpoints answer on both /path and /api/path. GET / lists every endpoint.

Set the API password with services.zigduck.dashboard.passwordFile.

Endpoint Method Description Parameters
/state GET Full state of all Zigbee devices None
/state/{device} GET State of one device {device} friendly name
/state/room/{room} GET State of every device in a room {room}
Endpoint Method Description Parameters
/device/list GET List all devices from devices.json None
/device/rooms GET Devices grouped by room None
/device/types GET Devices grouped by type None
/device/{device}/{command}/{value}... POST Control a device. Chain several command and value pairs. {device} name, then pairs like state/on, brightness/200, color/%23FF5733, temperature/300
/scene/{scene} POST Activate a scene {scene} name
Endpoint Method Description Parameters
/cards GET All status cards with their resolved value, details and history None
/cards/{id} GET One status card {id} card name
Endpoint Method Description Parameters
/timers GET List all timers None
/timers/set POST Create a timer hours, minutes, seconds (at least one above 0), topic, payload, optional name
/timers/pause POST Pause a running timer id
/timers/resume POST Resume a paused timer id
/timers/cancel POST Cancel and delete a timer id
Endpoint Method Description Parameters
/alarms GET List all alarms None
/alarms/add POST Add an alarm hours (0 to 23), minutes (0 to 59), name, optional days (comma-separated, 0 is Sunday through 6 is Saturday)
/alarms/remove POST Remove an alarm id
/alarms/toggle POST Turn an alarm on or off id
Endpoint Method Description Parameters
/notify POST Add or update a notification message as a query parameter or the raw POST body, optional tag. A notification with the same tag replaces the old one.
/get-notify GET All notifications as JSON None
/clear-notify POST Clear all notifications None
Endpoint Method Description Parameters
/media/power/on POST Wake the media device device (IP)
/media/power/off POST Put the media device to sleep device
/media/next POST Next track device
/media/previous POST Previous track device
/media/play, /media/pause POST Toggle play and pause device
/media/volume/up POST Volume up device
/media/volume/down POST Volume down device
/media/playlist POST Launch a playlist on the device with an ADB intent device, optional url (defaults to the web server’s /playlist.m3u)
Endpoint Method Description Parameters
/browse GET Browse the media folder with ls path, relative to the media root
/browsev2 GET Browse the media folder with find, returning full paths path, relative to the media root
/playlist/list GET List the current m3u playlist None
/playlist/add POST Add an entry entry (path)
/playlist/remove POST Remove an entry by index, starting at 0 index
/playlist/shuffle POST Shuffle the playlist None
/playlist/clear POST Clear the playlist None