hub.data.list
- Version: 1.0
- Classes: UI
- Title: Hub data list
- The command allows to request data from multiple collections from a hub in one request, allows data filtering by id and field names.
				
				Edit
			
			- devices, items, rooms, scenes
- All of them are optional, but at least on is required.
| Name | Required | Description | 
|---|---|---|
| devices | – | If this field is present: a response with the devices will be sent anyway. If it has null value than all devices will be sent. | 
| devices.ids | – | Array of IDs of requested devices. Only requested devices will be in the answer. If the controller doesn’t have requested device then null will be send instead of device data. | 
| devices.fields | – | Description of fields filtering. If this field is missed than all fields will be present in answer. | 
| devices.fields.include | – | Name of fields which should be in answer. Possible values: parentDeviceId, category, subcategory, deviceTypeId, gatewayId, name, type, batteryPowered, reachable, armed, roomId, persistent, info, serviceNotification, security, ready, status | 
| items | – | If this field is present: a response with the items will be sent anyway. If it has null value than all items will be sent. | 
| items.ids | – | Array of IDs of requested items. Only requested items will be in the answer. If the controller doesn’t have requested item then null will be send instead of item data. | 
| items.fields | – | Description of fields filtering. If this field is missed than all fields will be present in answer. | 
| items.fields.include | – | Name of fields which should be in answer. Possible values: deviceId, enum, hasGetter, hasSetter, name, show, scale, valueType, valueFormatted, value, minValue, maxValue, elementsMaxNumber, userCodeRestriction, elementsMaxNumberPerArray, oneWeekDayCost, oneShiftedWeekDayCost | 
| rooms | – | If this field is present: a response with the rooms will be sent anyway. If it has null value than all rooms will be sent. | 
| rooms.ids | – | Array of IDs of requested rooms. Only requested rooms will be in the answer. If the controller doesn’t have requested room then null will be send instead of room data. | 
| rooms.fields | – | Description of fields filtering. If this field is missed than all fields will be present in answer. | 
| rooms.fields.include | – | Name of fields which should be in answer. Possible values: enabled, group_id, is_group, name, parent_id, then, when | 
| scenes | – | If this field is present: a response with the scenes will be sent anyway. If it has null value than all scenes will be sent. | 
| scenes.ids | – | Array of IDs of requested scenes. Only requested scenes will be in the answer. If the controller doesn’t have requested scene then null will be send instead of scene data. | 
| scenes.fields | – | Description of fields filtering. If this field is missed than all fields will be present in answer. | 
| scenes.fields.include | – | Name of fields which should be in answer. Possible values: enabled, group_id, is_group, name, parent_id, then, when | 
| features | – | If this field is present: a response with the features will be sent anyway. If it has null value than all features will be sent. | 
| features.names | – | Array of features names. Only requested features will be in the answer. If the controller doesn’t have requested feature then null will be send instead of feature data. | 
| features.fields | – | Description of fields filtering. If this field is missed than all fields will be present in answer. | 
| features.fields.include | – | Name of fields which should be in answer. Possible values: status, version | 
| settings | – | If this field is present: a response with the settings will be sent anyway. If it has null value than all settings will be sent. | 
| settings.names | – | Array of settings names. Only requested settings will be in the answer. If the controller doesn’t have requested setting then null will be send instead of setting data. | 
| settings.fields | – | Description of fields filtering. If this field is missed than all fields will be present in answer. | 
| settings.fields.include | – | Name of fields which should be in answer. Possible values: name, valueType, value, enum | 
				
				Edit
			
			
				
				Edit
			
			
				
					{
    "api": "1.0",
    "method": "hub.data.list",
    "id": "<REQUEST_ID>",
    "params": {
        "devices":null,
        "items":null,
        "rooms": null,
        "scenes":null
    }
}				
			
            
				
				Edit
			
			
				
					{
    "api": "1.0",
    "method": "hub.data.list",
    "id": "<REQUEST_ID>",
    "params": {
        "devices":{ 
            "ids":[], "fields": { "include":[] }
         },
        "items":{ 
            "ids":[], "fields": { "include":[] }
         },
        "rooms":{ 
            "ids":[], "fields": { "include":[] }
         },
        "scenes":{ 
            "ids":[], "fields": { "include":[] }
         },
        "features":{
            "names":[], "fields": { "include":[] }
         },
        "settings":{
            "names":[], "fields": { "include":[] }
         }
    }
}				
			
            
				
				Edit
			
			| Type of error | Error code | Reason | Data Field | 
|---|---|---|---|
| Invalid parameters | -32602 | Empty params | rpc.params.invalid | 
| Wrong format of request fields | -32602 | Wrong params | rpc.params.invalid.[NAME] | 
				
				Edit
			
			
							Answers: Request will send a few answers with same request and sender info in each answer. Each type of controller sends in a separate answer.						
				
				
					{
    "api": "1.0",
    "error": null,
    "method": "hub.data.list",
    "id": "<REQUEST_ID>",
    "result": {
        "devices": {
            "5e6b361746abd40dfb1494c1":{
                "name": "Smart Plug",
                "reachable": true,
                "armed": false,
                "serviceNotification": false,
                "roomId": "",
                "status": "idle"
            }
        }
    }
}
{
    "api": "1.0",
    "error": null,
    "method": "hub.data.list",
    "id": "<REQUEST_ID>",
    "result": {
        "items": {
            "5e6b361746abd40dfb1494c2":{
                "value": "idle"
            },
            "5e6b361746abd40dfb1494c3":null
        }
    }
}
{
    "api": "1.0",
    "error": null,
    "method": "hub.data.list",
    "id": "<REQUEST_ID>",
    "result": {
        "rooms": {
            "8e6b361746abd40dfb1494c4":{
                "name": "Living Room"
            },
            "8e6b361746abd40dfb149417":{
                "name": "Hall"
            }
        }
    }
}
{
    "api": "1.0",
    "error": null,
    "method": "hub.data.list",
    "id": "<REQUEST_ID>",
    "result": {
        "scenes": {
            "5c7ff48b7f00002a07a408e3":{
                "name": "Scene1"
            },
            "5c6ec961cc01eb07f86f9dd9":{
                "name": "Test Scene"
            }
        }
    }
}				
			
            
				
					The order of requests to be sent is always the same: devices, items, rooms, scenes.				
			
             
                                    