0.0.2 • Published 5 years ago
hue-notification-ws v0.0.2
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: