- 
                Notifications
    You must be signed in to change notification settings 
- Fork 526
Groups
On a GET of a single group, /groups/10, the Hue API returns:
{
  "name": "Living Room",
  "lights": [
    "1",
    "2",
    "3",
    "4",
    "5",
    "6",
    "7",
    "8"
  ],
  "type": "Room",
  "state": {
    "all_on": false,
    "any_on": false
  },
  "recycle": false,
  "class": "Living room",
  "action": {
    "on": false,
    "bri": 127,
    "hue": 5500,
    "sat": 254,
    "effect": "none",
    "xy": [
      0.6468,
      0.348
    ],
    "ct": 463,
    "alert": "none",
    "colormode": "hs"
  }
}On a GET of the same group, the deCONZ REST API returns:
{
  "action": {
    "bri": 127,
    "ct": 0,
    "effect": "none",
    "hue": 0,
    "on": false,
    "sat": 127,
    "xy": [
      0,
      0
    ]
  },
  "devicemembership": [],
  "etag": "a395a7405598df6e0ac929d039e9cc8e",
  "hidden": false,
  "id": "49650",
  "lights": [
    "8",
    "17",
    "11",
    "22",
    "25",
    "26",
    "20",
    "21"
  ],
  "lightsequence": [
    "20",
    "25",
    "26",
    "8",
    "21",
    "22",
    "11",
    "17"
  ],
  "multideviceids": [],
  "name": "Living Room",
  "scenes": [],
  "state": 0
}| Attribute | Hue | deCONZ | Remarks | 
|---|---|---|---|
| action | Y | Y | |
| action.alert | Y | N | Missing from the deCONZ API. | 
| action.bri | Y | Y | |
| action.colormode | Y | Missing from the deCONZ API. | |
| action.ct | Y | Y | |
| action.effect | Y | Y | |
| action.hue | Y | Y | Different values (see Lights). | 
| action.on | Y | Y | |
| action.sat | Y | Y | Different values (see Lights). | 
| action.xy | Y | Y | Different values (see Lights). | 
| class | Y | Missing from the deCONZ API, but not used by homebridge-hue. Indicates the room type for Roomgroups, seetype. | |
| devicemembership | N | Y | Missing from the Hue API, as it does not support binding switches or sensors to groups. | 
| etag | Y | Missing from the Hue API. | |
| hidden | Y | Missing from the Hue API. Used by the Wireless Light Control web application. | |
| id | Y | Missing from the Hue API. I've been wanting an attribute like this. I could also use it on lights, sensors, and other resources. | |
| lights | Y | Y | |
| lightsequence | Y | Missing from the Hue API. Used by the Wireless Light Control web application. | |
| multideviceids | Y | Missing from the Hue API, which does not create any group resource for the FLS-PP.  Currently, homebridge-hue exposes the FLS-PP to HomeKit as a single Light accessory with two LightBulb services.  It matches the light resources corresponding to the different endpoints through (the MAC address in) the uniqueid. | |
| name | Y | Y | |
| recycle | Y | Missing from the deCONZ API, but not used by homebridge-hue. | |
| scenes | Y | Missing from the Hue API, which uses a separate /scenesresource.  homebridge-hue does not support scenes. | |
| state | Y | Y | Is an object in the Hue API, but a number in the deCONZ API. Has been deprecated in the deCONZ API. | 
| state.all_on | Y | Missing from the deCONZ API. | |
| state.any_on | Y | Missing from the deCONZ API. | |
| type | Y | Missing from the deCONZ API.  Indicates the type of group: Lightgroup,Room,Luminaire, orLightsource.  The latter two are used for multisource luminaires, like the Hue Beyond, which contain multiple ZigBee devices (light modules).  I don't have any of these, and I don't know of any homebridge-hue user who has one either, so homebridge-hue does not (yet) support these.Roomgroups are like regularLightgroupgroups, with the additional limitation that a light can belong to only oneRoomgroup.  The Hue app uses these to create HomeKit rooms and to assign HomeKit light accessories to these. | 
On a GET of /groups, the Hue API returns the full state of each group:
{
  "10": {
    "name": "Living Room",
    "lights": [
      "1",
      "2",
      "3",
      "4",
      "5",
      "6",
      "7",
      "8"
    ],
    "type": "Room",
    "state": {
      "all_on": false,
      "any_on": false
    },
    "recycle": false,
    "class": "Living room",
    "action": {
      "on": false,
      "bri": 127,
      "hue": 5500,
      "sat": 254,
      "effect": "none",
      "xy": [
        0.6468,
        0.348
      ],
      "ct": 463,
      "alert": "none",
      "colormode": "hs"
    }
  }
}Note: I've removed the other groups from the response. Also note that Group 0 (all lights) is missing from the response.
On a GET of /groups, the deCONZ API only returns a partial state of each group:
{
  "49650": {
    "devicemembership": [],
    "etag": "a395a7405598df6e0ac929d039e9cc8e",
    "hidden": false,
    "name": "Living Room"
  }
}Note: I've removed the other groups from the response. Also note that Group 0 (all lights) is missing from the response.
The deCONZ API seems to take a different approach towards polling of groups than the Hue API.  The etag attributes only changes when other attributes change, so a simple comparison on etag suffices to check whether a group state has changed.  Then, the full groups state can be retrieved using a GET on a single group.
While more efficient on network bandwidth, I doubt whether it's actually more efficient overall than returning the full group states.  Also, I don't like the inconsistency with lights or sensors, where the deCONZ API does return the full state.  As a compromise, the Get All Groups response could leave out lightsequence, multideviceids, and scenes, similar to the Hue API which leaves out the lightstates on Get All Scenes.
Home Remember : Not all devices listed here are supported by deconz.