hue-notification-ws
v0.0.2
Published
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.
Downloads
1
Readme
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 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:
- https://github.com/owagner/hue2mqtt
- https://github.com/hobbyquaker/hue2mqtt.js