0.0.2 • Published 5 years ago

hue-notification-ws v0.0.2

Weekly downloads
3
License
MIT
Repository
-
Last release
5 years ago

Philips Hue "push" notifications over WebSocket
--

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 nameTypeDefaultDescription
Hue Bridge configs
HUE_HOSTStringlocalhostThe hostname / IP address of the Hue Bridge
HUE_PORTNumber80The port of the Hue Bridge (80 by default, set to 443 if you're using SSL)
HUE_USERNAMEString | A valid Hue API username. See Hue docs to find out how to get one
HUE_USE_SSLBooleanfalseWhether or not use HTTPS or not. Valid values: true or 1 / false or 0
Polling configs
POLL_LIGHTSBooleantrueWhether or not polling for light changes. Valid values: true or 1 / false or 0
POLL_GROUPSBooleantrueWhether or not polling for groups/rooms changes. Valid values: true or 1 / false or 0
POLL_SENSORSBooleantrueWhether or not polling for sensor changes. Valid values: true or 1 / false or 0
POLL_INTERVAL_SECONDSNumber2The polling interval, in seconds
WebSocket server configs
WEBSOCKET_SERVER_HOSTStringlocalhostThe hostname to bind the websocket server to. Use 0.0.0.0 to bind to all IP addresses
WEBSOCKET_SERVER_PORTNumber7000The 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

FieldTypeDescription
tStringThe type of the message (only event is supported)
eStringThe event type of the message (only change is supported)
rStringThe resource type to which the message belongs (groups, lights, sensors)
idStringThe id of the resource to which the message relates, e.g. 5 for /sensors/5
stateMapA 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:

0.0.2

5 years ago

0.0.1

5 years ago