question

Jeremy avatar image
Jeremy asked

Non-Retrievable Generic Controllers As Window Blinds Alexa App Integration Issue

If an endpoint is set as OTHER display category, any of its non-retrievable (command only) generic capability controls would be available along side retrievable ones in the Alexa app.

However, the same configuration as INTERIOR_BLIND or EXTERIOR_BLIND display category would result in no controls being available in the Alexa app going directly to the settings page.

This is an issue when modeling a connected blind that also supports, besides percent values, one way commands to change directions (Up/Down/Stop).

Expected controls available in Alexa app as INTERIOR_BLIND:

screenshot1.jpgscreenshot2.jpg

Here is a discovery example of such endpoint:

{
  "endpointId": "Blind",
  "manufacturerName": "manufacturer",
  "description": "description",
  "friendlyName": "Blind",
  "displayCategories": [
    "INTERIOR_BLIND"
  ],
  "cookie": {},
  "capabilities": [
    {
      "type": "AlexaInterface",
      "interface": "Alexa.ModeController",
      "instance": "Blind.Command",
      "version": "3",
      "properties": {
        "supported": [
          {
            "name": "mode"
          }
        ],
        "proactivelyReported": false,
        "retrievable": false,
        "nonControllable": false
      },
      "capabilityResources": {
        "friendlyNames": [
          {
            "@type": "text",
            "value": {
              "text": "Command",
              "locale": "en-US"
            }
          }
        ]
      },
      "configuration": {
        "ordered": false,
        "supportedModes": [
          {
            "value": "UP",
            "modeResources": {
              "friendlyNames": [
                {
                  "@type": "text",
                  "value": {
                    "text": "Up",
                    "locale": "en-US"
                  }
                }
              ]
            }
          },
          {
            "value": "DOWN",
            "modeResources": {
              "friendlyNames": [
                {
                  "@type": "text",
                  "value": {
                    "text": "Down",
                    "locale": "en-US"
                  }
                }
              ]
            }
          },
          {
            "value": "STOP",
            "modeResources": {
              "friendlyNames": [
                {
                  "@type": "text",
                  "value": {
                    "text": "Stop",
                    "locale": "en-US"
                  }
                }
              ]
            }
          }
        ]
      }
    },
    {
      "type": "AlexaInterface",
      "interface": "Alexa.RangeController",
      "instance": "Blind.Opening",
      "version": "3",
      "properties": {
        "supported": [
          {
            "name": "rangeValue"
          }
        ],
        "proactivelyReported": false,
        "retrievable": true,
        "nonControllable": false
      },
      "capabilityResources": {
        "friendlyNames": [
          {
            "@type": "asset",
            "value": {
              "assetId": "Alexa.Setting.Opening"
            }
          }
        ]
      },
      "configuration": {
        "supportedRange": {
          "minimumValue": 0,
          "maximumValue": 100,
          "precision": 1
        },
        "unitOfMeasure": "Alexa.Unit.Percent"
      },
      "semantics": {
        "actionMappings": [
          {
            "@type": "ActionsToDirective",
            "actions": [
              "Alexa.Actions.Close"
            ],
            "directive": {
              "name": "SetRangeValue",
              "payload": {
                "rangeValue": 0
              }
            }
          },
          {
            "@type": "ActionsToDirective",
            "actions": [
              "Alexa.Actions.Open"
            ],
            "directive": {
              "name": "SetRangeValue",
              "payload": {
                "rangeValue": 100
              }
            }
          }
        ],
        "stateMappings": [
          {
            "@type": "StatesToValue",
            "states": [
              "Alexa.States.Closed"
            ],
            "value": 0
          },
          {
            "@type": "StatesToRange",
            "states": [
              "Alexa.States.Open"
            ],
            "range": {
              "minimumValue": 1,
              "maximumValue": 100
            }
          }
        ]
      }
    },
    {
      "type": "AlexaInterface",
      "interface": "Alexa.EndpointHealth",
      "version": "3",
      "properties": {
        "supported": [
          {
            "name": "connectivity"
          }
        ],
        "proactivelyReported": false,
        "retrievable": true
      }
    },
    {
      "type": "AlexaInterface",
      "interface": "Alexa",
      "version": "3"
    }
  ]
}
alexa smart home
screenshot1.jpg (168.3 KiB)
screenshot2.jpg (108.8 KiB)
10 |5000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

0 Answers