hueDynamic SMART HOME API Get the app

Experiences & Home Smart Home API

LOCAL HTTP API · PRO 2.0

Control hueDynamic from your smart home.

Switch on the Smart Home API and hueDynamic becomes part of Home Assistant, Node-RED, Homey or anything that can send an HTTP request. Start experiences and playlists, set colours and run motion triggers from your own automations — all over your home network.

See the endpoints Home Assistant setup

Local network only. No cloud account, no port forwarding. iPhone, iPad, Mac and Android.

$ curl -X POST …/huedynamic/v1/modes/start
{"modeId":"fireplace","roomId":"lounge"}
{"success":true,"code":"ok","message":"Started"}

Works with the hub you already use

  • Home Assistantrest_command, scripts and automations
  • Node-REDhttp request node
  • HomeyHTTP request flow cards
  • HubitatHTTP POST from Rule Machine
  • openHABHTTP binding or rules
  • Stream Deck & scriptsany tool that can send HTTP

Turn it on in under a minute

  1. 1

    Enable hosting

    Settings → Automation → Smart Home. Switch on hosting; turn on background mode if you want it running while the phone is locked.

  2. 2

    Copy the URL and key

    The app shows your address (like http://192.168.1.20:58761/huedynamic) and a private API key.

  3. 3

    Grab your IDs

    Pick rooms and experiences in the Integration IDs picker, or call GET /v1/rooms and /v1/modes. The app even builds the curl for you.

What you can call

Paths follow your base URL. POST requests send JSON with Content-Type: application/json and the header Authorization: Bearer <API_KEY>.

METHODPATHWHAT IT DOESEXAMPLE BODY
GET/v1/statusApp and bridge state—
GET/v1/roomsRoom IDs and names—
GET/v1/lightsLight IDs and names—
POST/v1/rooms/{id}/powerTurn a room on or off{"on":true}
POST/v1/rooms/{id}/brightnessSet room brightness{"brightnessPercent":75}
POST/v1/rooms/{id}/colourSet a colour{"hexColour":"#FF8800","brightnessPercent":100}
POST/v1/rooms/{id}/whiteSet a white temperature{"mirek":250,"brightnessPercent":100}
POST/v1/lights/{id}/powerThe same controls for a single light{"on":false}
GET/v1/modesExperiences and scenes you can start—
GET/v1/running-modesWhat is running right now—
POST/v1/modes/startStart an experience in a room{"modeId":"…","roomId":"…","durationMinutes":0}
POST/v1/rooms/{id}/modes/stopStop everything in one room{}
POST/v1/modes/stop-allStop every running effect{}
GET/v1/playlistsSaved playlists—
POST/v1/playlists/startStart a playlist, optionally in another room{"playlistId":"…","roomId":"…"}
POST/v1/playlist-sessions/{id}/nextSkip to the next entry{}
POST/v1/playlist-sessions/{id}/stopStop the playlist and restore lights{}
GET/v1/motion-triggersConfigured motion triggers—
POST/v1/motion-monitoring/startArm motion triggers{}
POST/v1/motion-monitoring/stopDisarm motion triggers{}

Every response includes success, a stable code and a message. Brightness and speed for experiences run 1–200%; white temperature is 153–500 mirek; duration 0 means run until stopped.

HOME ASSISTANT

Two blocks of YAML and you’re done.

Add a rest_command for hueDynamic, then call it from any automation, script or dashboard button. Fireplace at sunset, Ocean Worlds when the bath fills, a spooky scare when the doorbell rings.

  • Keep the key in secrets.yaml
  • Branch on code, not the message text
  • Use the same calls from Node-RED, Homey or Hubitat
# configuration.yaml
rest_command:
  huedynamic_start:
    url: "http://192.168.1.20:58761/huedynamic/v1/modes/start"
    method: POST
    headers:
      Authorization: !secret huedynamic_auth   # "Bearer <API_KEY>"
    content_type: "application/json"
    payload: '{"modeId":"{{ mode }}","roomId":"{{ room }}"}'

  huedynamic_stop_all:
    url: "http://192.168.1.20:58761/huedynamic/v1/modes/stop-all"
    method: POST
    headers:
      Authorization: !secret huedynamic_auth
    content_type: "application/json"
    payload: "{}"

Stays in your home

Only devices on the same Wi-Fi or Ethernet network can connect. No cloud, no account. Never forward the port to the internet.

Your key, your rules

Every request needs your private key by default. Regenerate it at any time; child lock still applies to remote commands.

Runs in the background

Optional background mode keeps the API available while your iPhone is locked or Android is in your pocket. On Mac, keep the app open.

Siri and Shortcuts too

Prefer voice? Start experiences and playlists with Siri, or chain them in Apple Shortcuts.

Questions

Do I need Pro?

Yes, the Smart Home API is part of Pro 2.0.

Is there a Home Assistant integration?

You don’t need one. Home Assistant’s built-in rest_command talks to hueDynamic directly, as shown above.

Can I control it from outside my home?

No. The API only accepts devices on your local network, and requests aren’t encrypted, so it should never be exposed to the internet.

What if my phone’s IP address changes?

Copy the new URL from Settings and update your integrations. Giving the device a fixed IP in your router avoids this.

More to explore

Playlists →Chain experiences and loop them.Every room →A different effect in each room.Movie night →Lights that follow the screen.Switches & sensors →Make every button do more.

LITERALLY EVERYTHING FOR HUE LIGHTS

Make hueDynamic part of your smart home.

App Store Google Play

Free to try on iPhone, iPad, Mac and Android. Requires a Philips Hue Bridge.