Skip to content
This repository has been archived by the owner on Apr 19, 2022. It is now read-only.

paolotremadio/hue-notification-ws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Philips Hue "push" notifications over WebSocket

THIS REPO IS NOW DEPRECATED. Please use the official Hue API v2

Intro

Looking to get "push" notifications from your Hue Bridge? Look no further: this app will poll the Hue Bridge for changes and send notifications over WebSocket every time something has changed.

Supports notifications for:

  • Lights
  • Groups / Rooms
  • Sensors

How to install

sudo npm install -g hue-notification-ws 

How to run

hue-notification-ws  

How to configure

You can configure this app by passing the following environment variables:

Variable name Type Default Description
Hue Bridge configs
HUE_HOST String localhost The hostname / IP address of the Hue Bridge
HUE_PORT Number 80 The port of the Hue Bridge (80 by default, set to 443 if you're using SSL)
HUE_USERNAME String `` A valid Hue API username. See Hue docs to find out how to get one
HUE_USE_SSL Boolean false Whether or not use HTTPS or not. Valid values: true or 1 / false or 0
Polling configs
POLL_LIGHTS Boolean true Whether or not polling for light changes. Valid values: true or 1 / false or 0
POLL_GROUPS Boolean true Whether or not polling for groups/rooms changes. Valid values: true or 1 / false or 0
POLL_SENSORS Boolean true Whether or not polling for sensor changes. Valid values: true or 1 / false or 0
POLL_INTERVAL_SECONDS Number 2 The polling interval, in seconds
WebSocket server configs
WEBSOCKET_SERVER_HOST String localhost The hostname to bind the websocket server to. Use 0.0.0.0 to bind to all IP addresses
WEBSOCKET_SERVER_PORT Number 7000 The WebSocket server port

Example of running with variables

HUE_HOST=192.168.1.2 HUE_USERNAME=abcd hue-notification-ws  

Notification message format

In the interest of interoperability, notifications follow the format of the deCONZ server.

Messages received over a WebSocket connection contain data in JSON format.

Message fields

Field Type Description
t String The type of the message (only event is supported)
e String The event type of the message (only change is supported)
r String The resource type to which the message belongs (groups, lights, sensors)
id String The id of the resource to which the message relates, e.g. 5 for /sensors/5
state Map A map containing all the changed state attributes of a group, light, or sensor resource.

Examples

Light

{
    "t": "event",
    "e": "changed",
    "r": "lights",
    "id": "29",
    "state": {
        "on": false,
        "bri": 229,
        "ct": 370,
        "alert": "select",
        "colormode": "ct",
        "mode": "homeautomation",
        "reachable": true
    }
}

Group

{
    "t": "event",
    "e": "changed",
    "r": "groups",
    "id": "5",
    "state": {
        "all_on": true,
        "any_on": true
    }
}

Sensor

{
    "t": "event",
    "e": "changed",
    "r": "sensors",
    "id": "18",
    "state": {
        "temperature": 2277,
        "lastupdated": "2019-06-26T14:33:45"
    }
}

Credits

This project is heavily inspired on: