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
7
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
