I’m only seeing the behavior with Locks. ContactSensor ‘contact’ seems to be working as setup from a sub-page.
Here’s the render result for ‘main’ which is the response for firstPageID on INITALIZE:
{
"configurationData": {
"page": {
"pageId": "main",
"name": "Configure Lock Manager",
"nextPageId": null,
"previousPageId": null,
"complete": true,
"sections": [
{
"name": "Lock Manager",
"settings": [
{
"id": "members",
"name": "Edit Members",
"image": "---",
"description": "Tap to view",
"type": "PAGE",
"page": "members:index"
},
{
"id": "locks",
"name": "Edit Doors",
"image": "---",
"description": "Tap to view",
"type": "PAGE",
"page": "locks:index"
}
]
},
{
"name": "Device selections",
"hideable": true,
"hidden": true,
"settings": [
{
"id": "locks",
"name": "Select Locks",
"type": "DEVICE",
"required": true,
"multiple": true,
"capabilities": [
"lock"
],
"permissions": [
"r",
"x"
]
},
{
"id": "contact",
"name": "Select Contact Sensors",
"type": "DEVICE",
"required": false,
"multiple": true,
"capabilities": [
"contactSensor"
],
"permissions": [
"r",
"x"
]
}
]
}
]
}
}
}
Update permission grant request:
I would like to not render the device settings section on this page, but doing so, makes it so that the app does not request permissions for any ‘lock’ device not listed on the “firstPage”
If I render a page like this:
{
"configurationData": {
"page": {
"pageId": "main",
"name": "Configure Lock Manager",
"nextPageId": null,
"previousPageId": null,
"complete": true,
"sections": [
{
"name": "Lock Manager",
"settings": [
{
"id": "members",
"name": "Edit Members",
"image": "---",
"description": "Tap to view",
"type": "PAGE",
"page": "members:index"
},
{
"id": "locks",
"name": "Edit Doors",
"image": "---",
"description": "Tap to view",
"type": "PAGE",
"page": "locks:index"
}
]
}
]
}
}
}
(Lock and contact device selections happen in the ‘Edit Doors’ page)
Then on the next UPDATE cycle, the user’s permission grant page looks like this:
(note missing grant permission for ‘lock’ device)