question

sean gracey avatar image
sean gracey asked

ModeController interface example "Garagedoor" not working in Canada

I have been working on adding the new Garage Door and Blinds Feature ( https://developer.amazon.com/en-US/blogs/alexa/device-makers/2019/11/update-on-new-smart-home-features-that-are-now-generally-availab ) to my existing SmartHome skill "Homebridge", but I can't get the new features to work via Voice. For the discovery response code, I literally copied and pasted the example out of the BLOG entry, but no luck against my Amazon Canada test account.

When using my US account, "raise garage door" or "lower garage door" works fine, but when I use my Canada account Alexa responds with "Sorry, the device garage door is no longer supported" or "garage door doesn't support that".


I'm thinking that semantics or ModeController support is not fully rolled out yet. Can this be confirmed

alexa skills kitalexa smart home
10 |5000

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

Anand@Amazon avatar image
Anand@Amazon answered

Hello there,

Thanks for reaching out to us !!

"Text String" is not available for other locale except en-US. But you can use assetId to raise or lower commands until test string will be available for other regions.


7 comments
10 |5000

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

Hi Anand! Can you give me an example or a link what you mean with "Text String"?

0 Likes 0 ·

I'm sorry I don't understand your response.


I did try removing


{
  "@type": "text",
  "value": {
    "text": "Open",
    "locale": "en-US"
  }
}


From the discovery response, but it made no change in the behaviour.

0 Likes 0 ·

I believe you will need to provide that for every locale you want to support

0 Likes 0 ·

Hey there,

It would be easier for us if you share the complete Discover Response JSON with us.

0 Likes 0 ·

Attached is my discovery response, this contains both garage door and blinds examples and both are not working in Canada


And my test skill id is

amzn1.ask.skill.a28c43e1-cba6-4aac-93ca-509e8c7ce39b


modeControllerDiscovery.txt

0 Likes 0 ·
Show more comments
newuser-f55a478f-a02f-455f-af1a-2ebd48d35e09 avatar image
newuser-f55a478f-a02f-455f-af1a-2ebd48d35e09 answered

I'm having similar problems working with Italian locale... the semantics doesn't seem like are being recognized at all. Is there a complete list of what is supported or not in each locale?

If i add the "semantics" object to my discovery response, the devices aren't recognized at all. If I comment it out, it succeed. I tried with the garage door example...

4 comments
10 |5000

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

Hi there,

It would be helpful to find out issue if you share discover response JSON detail over here.

0 Likes 0 ·

Hi, thanks for the reply. This is the discover response: discoveryresponse.txt

0 Likes 0 ·
Anand@Amazon avatar image Anand@Amazon ♦ newuser-f55a478f-a02f-455f-af1a-2ebd48d35e09 ·

Hey there,

You are getting this error because you have used "ActionToDirective" instead of "ActionsToDirective" as type value in semantics.

Please apply above changes and it will not give you any error.

1 Like 1 ·
Show more comments
Anand@Amazon avatar image
Anand@Amazon answered

Hello NorthernMan54,

There is only one change from en-US to any other locale. You can't set customized text value for non en-US locale.

Check below non EN-US Discovery Response for more details

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "<message id>"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<unique ID of the endpoint>",
          "manufacturerName": "<manufacturer name>",
          "description": "<Smart Blinds by Manufacturer>",
          "friendlyName": "<Blinds>",
          "displayCategories": ["INTERIOR_BLIND"],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.ModeController",
              "instance": "Blinds.Position",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "mode"
                  }
                ],
                "retrievable": true,
                "proactivelyReported": true
              },
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "asset",
                    "value": {
                      "assetId": "Alexa.Setting.Opening"
                    }
                  }
                ]
              },
              "configuration": {
                "ordered": false,
                "supportedModes": [
                  {
                    "value": "Position.Up",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "asset",
                          "value": {
                            "assetId": "Alexa.Value.Open"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "value": "Position.Down",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "asset",
                          "value": {
                            "assetId": "Alexa.Value.Close"
                          }
                        }
                      ]
                    }
                  }
                ]
              },
              "semantics": {
                "actionMappings": [
                  {
                    "@type": "ActionsToDirective",
                    "actions": ["Alexa.Actions.Close", "Alexa.Actions.Lower"],
                    "directive": {
                      "name": "SetMode",
                      "payload": {
                        "mode": "Position.Down"
                      }
                    }
                  },
                  {
                    "@type": "ActionsToDirective",
                    "actions": ["Alexa.Actions.Open", "Alexa.Actions.Raise"],
                    "directive": {
                      "name": "SetMode",
                      "payload": {
                        "mode": "Position.Up"
                      }
                    }
                  }
                ],
                "stateMappings": [
                  {
                    "@type": "StatesToValue",
                    "states": ["Alexa.States.Closed"],
                    "value": "Position.Down"
                  },
                  {
                    "@type": "StatesToValue",
                    "states": ["Alexa.States.Open"],
                    "value": "Position.Up"
                  }  
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

Let me know if you need further help.

6 comments
10 |5000

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

I'm still stuck. I validated my discovery response against this and it matches except the top portion ( endpoint, name etc ).


Open Fake Blinds - "Fake blinds doesn't support that"

Raise Fake Blinds - "Sorry the device fake blinds is no longer supported"

Set Fake Blinds to Open - "Ok" and a Alexa.ModeController directive is sent

Close Fake Blinds - "Fake blinds doesn't support that"

Lower Fake Blinds - "Sorry the device fake blinds is no longer supported"

Set Fake Blinds to Close - "Ok" and a Alexa.ModeController directive is sent

Is Fake Blinds Open - ReportState directive received, and responded to. "I'm not quite sure what went wrong" - This could be my response, I didn't spend a lot of time on this

Is Fake Blinds Closed - ReportState directive received, and responded to. "I'm not quite sure what went wrong" - This could be my response, I didn't spend a lot of time on this

0 Likes 0 ·

Please share changed Discovery Response JSON with us for further investigation.

0 Likes 0 ·
Anand@Amazon avatar image
Anand@Amazon answered

Hello Everyone,

Sorry for late response !!

After some investigation we got to know that Garage Door feature currently only available for en-US locale. So if you try with any other region it will not work. We are trying to get this added for other locale as well but unfortunately we will not able to commit timeline here.

We are also working to get this added to our tech documentation.

Thanks for your patience & co-operation !!

10 |5000

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

newuser-48a8ef58-967e-4cfe-a721-c56c0696b4b2 avatar image
newuser-48a8ef58-967e-4cfe-a721-c56c0696b4b2 answered

Did you get anywhere with the Garage Door functionality? I have the same problem but in en-AU locale.

I can make it work if I change it to en-US or display_categories other than GARAGE_DOOR. But then they are missing the pin code functionality.


I have done all the things as suggested in this thread, but cannot make it work.

Thanks

Allister

2 comments
10 |5000

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

Hi there,

Currently Garage_Door feature is only available for English US locale and that's why it is working for you in US locale but not working in AU locale.

1 Like 1 ·
Hi @Anand@Amazon, has the language support for this feature been expanded since then? Thanks
0 Likes 0 ·
newuser-9c7be119-dc3c-40ef-b2b1-cb84be37ac9e avatar image
newuser-9c7be119-dc3c-40ef-b2b1-cb84be37ac9e answered

@NorthernMan54 I, too, am in Canada and have been struggling with GARAGE_DOOR and ModeController. After many hours of searching, your email is the ONLY one I've found that seems to have identified the real issue (CA vs US).


Could you possibly explain what you changed to US? I have my echo on an amazon.ca account but I have set the language to en_US. My Smart Home Skill was en_CA so I added en_US then deleted en_CA. That didn't help. So I ask: what did you do to make it work (I have an amazon.com acct). Also, did you find that there was any compromise in using en_US (e.g. harder to understand roof, out, about etc.)?

1 comment
10 |5000

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

I'm a skill developer ( Homebridge ) and all I did for US was link a US Amazon account with my skill. Nothing beyond that

0 Likes 0 ·