@bradgarropy/hue-sdk
    TypeScript icon, indicating that this package has built-in type declarations

    1.5.8Β β€’Β PublicΒ β€’Β Published

    πŸ’‘ philips hue sdk

    version downloads size github actions codecov typescript contributing contributors discord

    Philips Hue SDK for managing smart devices.

    πŸ“¦ Installation

    This package is hosted on npm.

    npm install @bradgarropy/hue-sdk

    🚦 Setup

    In order to use the Philips Hue API you must have a Philips Hue Bridge installed. You need the ip address and a user account to send commands to the bridge.

    Locate the ip address by navigating to https://discovery.meethue.com in a web browser. This should respond with an array of all discovered bridges on your wifi network, typically there will only be one. You'll see the ip address in the json object which we will call the HUE_BRIDGE_IP.

    [
        {
            "id": "001728fdfe70920f",
            "internalipaddress": "192.168.84.129"
        }
    ]

    Then navigate to https://<BRIDGE_IP_ADDRESS>/debug/clip.html. Use the API Debugger to create a new user as follows.

    url:    /api
    method: POST
    body:   {"devicetype": "<USERNAME>"}
    

    You should receive a response with the message "link button not pressed".

    Now go press the large button on top of your Philips Hue Bridge, then send the same command again. You should get back a success message with a username property, this will be the HUE_USERNAME.

    You can find more information on the Philips Hue Developer Get Started page.

    πŸ₯‘ Usage

    Now that all of the setup is done, here's how to send your first command to the bridge. Use the HUE_BRIDGE_IP and the HUE_USERNAME from the Setup section above to initialize a Hue client.

    const Hue = require("@bradgarropy/hue-sdk")
    
    const hue = new Hue(process.env.HUE_BRIDGE_IP, process.env.HUE_USERNAME)
    const lights = await hue.readLights()
    
    console.log(lights)

    πŸ“– API Reference

    Hue(ip, username)

    Name Example Description
    ip "192.168.84.129" Philips Hue bridge ip.
    username "bradgarropy" Philips Hue bridge username.
    const hue = new Hue("192.168.84.129", "bradgarropy")

    hue.readLight(id)

    Name Example Description
    id "abc123" Light id.

    Get all information for a specific light.

    hue.readLight("abc123")

    hue.readLights()

    Get all information for all lights.

    hue.readLights()

    hue.updateLight(id, state)

    Name Example Description
    id "abc123" Light id.
    state {on: false} Light state.

    Update a light's state.

    hue.updateLight("abc123", {on: false})

    hue.turnOnLight(id)

    Name Example Description
    id "abc123" Light id.

    Turn on a specific light.

    hue.turnOnLight("abc123")

    hue.turnOnLights(ids)

    Name Example Description
    id ["abc123", "def456"] Array of light ids.

    Turn on multiple lights.

    hue.turnOnLights(["abc123", "def456"])

    hue.turnOnAllLights()

    Turn on all lights.

    hue.turnOnAllLights()

    hue.turnOffLight(id)

    Name Example Description
    id "abc123" Light id.

    Turn off a specific light.

    hue.turnOffLight("abc123")

    hue.turnOffLights(ids)

    Name Example Description
    id ["abc123", "def456"] Array of light ids.

    Turn off multiple lights.

    hue.turnOffLights(["abc123", "def456"])

    hue.turnOffAllLights()

    Turn off all lights.

    hue.turnOffAllLights()

    hue.blinkLight(id, interval, count)

    Name Required Default Example Description
    id true "abc123" Light id.
    interval false 500 750 Time (ms) between blinks.
    count false 1 5 Number of blinks.

    Blink a specific light.

    hue.blinkLight("abc123")
    hue.blinkLight("abc123", 750)
    hue.blinkLight("abc123", 750, 5)

    hue.blinkLights(ids, interval, count)

    Name Required Default Example Description
    id true ["abc123", "def456"] Array of light ids.
    interval false 500 750 Time (ms) between blinks.
    count false 1 5 Number of blinks.

    Blink multiple lights.

    hue.blinkLights(["abc123", "def456"])
    hue.blinkLights(["abc123", "def456"], 750)
    hue.blinkLights(["abc123", "def456"], 750, 5)

    hue.setBrightness(id, brightness)

    Name Example Description
    id "abc123" Light id.
    brightness 128 Brightness level (1-254).

    Set the brightness of a specific light.

    hue.setBrightness("abc123", 128)

    hue.setBrightnesses(ids, brightness)

    Name Example Description
    id ["abc123", "def456"] Array of light ids.
    brightness 128 Brightness level (1-254).

    Set the brightness of multiple lights.

    hue.setBrightnesses(["abc123", "def456"], 128)

    hue.setColor(id, color)

    Name Example Description
    id "abc123" Light id.
    color "blue" Light color.

    Set the color of a specific light.

    Colors must be chosen from a preset list.

    • random
    • white
    • red
    • orange
    • yellow
    • green
    • blue
    • purple
    • lime
    • teal
    • pink
    hue.setColor("abc123", "blue")

    hue.setColors(ids, color)

    Name Example Description
    id ["abc123", "def456"] Array of light ids.
    color "blue" Light color.

    Set the color of multiple lights.

    Colors must be chosen from a preset list.

    • random
    • white
    • red
    • orange
    • yellow
    • green
    • blue
    • purple
    • lime
    • teal
    • pink
    hue.setColors(["abc123", "def123"], "blue")

    setRandomColor(id)

    Name Example Description
    id "abc123" Light id.

    Set a specific light to a random color.

    hue.setRandomColor("abc123")

    setRandomColors(ids)

    Name Example Description
    id ["abc123", "def456"] Array of light ids.

    Set a multiple lights to a random color.

    hue.setRandomColors(["abc123", "def456"])

    colorLoopLight(id, duration)

    Name Required Default Example Description
    id true abc123 Light id.
    duration false infinity 60000 Duration (ms) of color loop.

    Color loop a specific light.

    hue.colorLoopLight("abc123")
    hue.colorLoopLight("abc123", 60000)

    colorLoopLights(ids, duration)

    Name Required Default Example Description
    id true ["abc123", "def456"] Array of light ids.
    duration false infinity 60000 Duration (ms) of color loop.

    Color loop multiple lights.

    hue.colorLoopLights(["abc123", "def456"])
    hue.colorLoopLights(["abc123", "def456"], 60000)

    ❔ Questions

    πŸ› report bugs by filing issues
    πŸ“’ provide feedback with issues or on twitter
    πŸ™‹πŸΌβ€β™‚οΈ use my ama or twitter to ask any other questions

    ✨ Contributors


    Brad Garropy

    πŸ’» πŸ“– ⚠️ πŸš‡

    willparr

    πŸ’» πŸ“– ⚠️

    Install

    npm i @bradgarropy/hue-sdk

    DownloadsWeekly Downloads

    21

    Version

    1.5.8

    License

    MIT

    Unpacked Size

    34.5 kB

    Total Files

    18

    Last publish

    Collaborators

    • avatar