Reference · Tools

Philips Hue

Control Philips Hue smart lights -- get, update, and delete lights via the Hue Remote API

Action Utility v1

The Philips Hue node controls smart lights through the Hue Remote API — switching them, adjusting brightness, colour and effects, and managing the lights on a bridge. A typical build is turning a lamp red when a production alert fires and back to normal when it clears.

Node type
Action
Parameters
11
Outputs
Output, Error
Credentials
Philips Hue OAuth2

Philips Hue

Control Philips Hue smart lights via the Hue Remote API.

Overview

Philips Hue is a smart lighting system. This tool controls Hue lights via the Philips Hue Remote API (cloud). It supports retrieving individual light details, listing all lights on a bridge, updating light state (on/off, brightness, color, hue, saturation, color temperature, effects, transitions), and deleting lights from the bridge. Requires OAuth2 authentication with the Philips Hue developer portal.

Category: Utility
Tool Name: philips_hue
Version: 1

Appearance: Icon: lucide-Lightbulb | Color: #4A90D9

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Philips Hue OAuth2 credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Lightlight

Operations

OperationValueDescription
DeletedeleteDelete a light from the bridge
GetgetRetrieve a light
Get ManygetAllRetrieve many lights
UpdateupdateUpdate a light state

Parameters

Light: Get

ParameterTypeRequiredDefaultDescription
Light IDstringYesThe numeric ID of the light on the Hue bridge. Supports expressions like {{ $json.lightId }}.

Light: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. Between 1 and 500. (shown when Return All is false)

Light: Update

ParameterTypeRequiredDefaultDescription
Light IDstringYesThe numeric ID of the light on the Hue bridge. Pick from the list to see lights with their room names. Supports expressions.
OnbooleanYestrueOn/Off state of the light. Supports expressions.
Additional FieldscollectionNo{}Additional light properties to update. Add only the ones you want to change — anything left empty is not sent.
— Alert EffectoptionsNoThe alert effect — a temporary change to the bulb’s state.
Options: none (the light is not performing an alert effect), select (one breathe cycle), lselect (breathe cycles for 15 seconds or until an alert of none is received)
— BrightnessnumberNo100The brightness value to set the light to. Scale from 1 (min) to 254 (max).
— Brightness IncrementsnumberNo0Increments or decrements the brightness. Ignored if Brightness is provided. Between -254 and 254.
— Color TemperaturenumberNo0The Mired color temperature. 153 (6500K) to 500 (2000K).
— Color Temperature IncrementsnumberNo0Increments or decrements the color temperature. Ignored if Color Temperature is provided.
— CoordinatesstringNoCIE color space x,y coordinates. Both values between 0 and 1. Enter them comma-separated, e.g. 0.64394,0.33069.
— Coordinates IncrementsstringNoIncrements or decrements the CIE coordinates. Ignored if Coordinates is provided. Max value [0.5, 0.5]. Comma-separated, e.g. 0.5,0.5.
— Dynamic EffectoptionsNoThe dynamic effect of the light.
Options: none, colorloop
— HuenumberNo0The hue value (0-65535). Both 0 and 65535 are red, 25500 is green, 46920 is blue.
— Hue IncrementsnumberNo0Increments or decrements the hue. Ignored if Hue is provided. Between -65534 and 65534.
— SaturationnumberNo0Saturation of the light. 254 is most saturated (colored), 0 is least (white).
— Saturation IncrementsnumberNo0Increments or decrements the saturation. Ignored if Saturation is provided. Between -254 and 254.
— Transition TimenumberNo4The duration in seconds of the transition from the light’s current state to the new state.

Light: Delete

ParameterTypeRequiredDefaultDescription
Light IDstringYesThe numeric ID of the light on the Hue bridge. Supports expressions like {{ $json.lightId }}.

All Operations

ParameterTypeRequiredDefaultDescription
Philips Hue AccountcredentialNoConnect your Philips Hue account via OAuth2. Pick the connected account this node should use.
Max ConcurrencynumberNo5Maximum number of items to process concurrently. Lower values recommended for Hue bridge rate limits.

Output Data

The Hue API response is merged onto the input item JSON — the incoming fields pass through unchanged, and binary data is forwarded.

OperationOutput
getOne output item per input item, carrying the light’s full record (name, state, type, model and so on).
getAllFans out: one output item per light on the bridge, each carrying id (the light’s numeric ID on the bridge) plus that light’s own fields. With Return All off, only the first Limit lights are emitted.
updateOne output item per input item. The bridge’s per-property acknowledgements are merged together, so the item carries one key per property that was actually changed.
deleteOne output item per input item, carrying the bridge’s delete response.

Because getAll turns one input item into many, index-based pairing with the upstream node no longer holds downstream. Reference the result by expression, e.g. {{ $json.id }} or {{ $json.name }}.

Usage Examples

  • Turn on a Philips Hue light
  • Set brightness of a Hue light to 50%
  • Get details of all lights on the Hue bridge
  • Change light color temperature to warm white
  • Delete a light from the Hue bridge
  • Set a colorloop effect on a Hue light

Example Configuration

Read one light’s state:

{
  "type": "philips_hue",
  "parameters": {
    "resource": "light",
    "operation": "get",
    "lightId": "1"
  }
}

List every light on the bridge — one output item per light:

{
  "type": "philips_hue",
  "parameters": {
    "resource": "light",
    "operation": "getAll",
    "returnAll": true,
    "maxConcurrency": 3
  }
}

Turn a light on with a specific brightness and a gentle fade:

{
  "type": "philips_hue",
  "parameters": {
    "resource": "light",
    "operation": "update",
    "lightId": "1",
    "on": true,
    "additionalFields": {
      "bri": 127,
      "transitiontime": 4
    }
  }
}

Set a warm colour temperature on a light chosen by the incoming item:

{
  "type": "philips_hue",
  "parameters": {
    "resource": "light",
    "operation": "update",
    "lightId": "{{ $json.lightId }}",
    "on": true,
    "additionalFields": {
      "ct": 300,
      "bri": 150,
      "transitiontime": 5
    }
  }
}

Set a blue, fully saturated colour by hue and saturation:

{
  "type": "philips_hue",
  "parameters": {
    "resource": "light",
    "operation": "update",
    "lightId": "2",
    "on": true,
    "additionalFields": {
      "hue": 46920,
      "sat": 254,
      "bri": 200
    }
  }
}

Combine an alert, a colour-loop effect and CIE coordinates:

{
  "type": "philips_hue",
  "parameters": {
    "resource": "light",
    "operation": "update",
    "lightId": "4",
    "on": true,
    "additionalFields": {
      "alert": "select",
      "bri": 180,
      "effect": "colorloop",
      "xy": "0.3,0.3",
      "transitiontime": 20
    }
  }
}

Remove a light from the bridge:

{
  "type": "philips_hue",
  "parameters": {
    "resource": "light",
    "operation": "delete",
    "lightId": "3"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Control Philips Hue smart lights — turn on/off, adjust brightness, color, effects, and manage lights on a Hue bridge.

Behavior notes

  • Transition Time is in seconds here. Enter 4 for a four-second fade; the node converts it to the units the bridge expects.
  • Coordinates are typed as text. Enter x,y comma-separated (for example 0.64394,0.33069) and the node converts it to the pair the bridge wants. The same applies to Coordinates Increments.
  • Empty additional fields are dropped, so adding a field and leaving it blank is the same as not adding it at all.
  • Absolute values beat increments. Brightness, Color Temperature, Hue and Saturation each override their matching Increments field when both are set.
  • Colour needs the light on. Update always sends the On state alongside your changes, so leaving On off will turn the light off no matter what colour you asked for.
  • Keep concurrency low. The Hue bridge rate-limits aggressively; the default of 5 is a sensible ceiling.

Parameter dependencies

  1. operation becomes available once resource is light
  2. lightId is required for get, update and delete
  3. limit only appears when returnAll is false and operation is getAll
  4. on and additionalFields only appear for update

Frequently asked questions

What units does Transition Time use?

Seconds. Enter `4` for a four-second fade and the node converts it into the units the bridge expects.

How do I specify a colour by coordinates?

As comma-separated text — for example `0.64394,0.33069` — which the node converts into the pair the bridge wants. The same applies to Coordinates Increments.

Can it manage the lights themselves, not just their state?

Yes — get, update and delete operations cover the lights on the bridge as well as their current settings.

Which credential does it need?

A Philips Hue OAuth2 credential for the Hue Remote API.

Build with the Philips Hue node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Philips Hue OAuth2 credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.