Problem getin Alexa work with intents

i now added an ssl certificate to my dyndns url and used this url in amazon developer, but same error.

If you use your ddns in the browser with https to access https://your.ddns.com/api/alexa?api_password=xxx you get 405 Method not allowed still?

~Cheers

yes still 405 not allowed

Sorry I am out of ideas here…there must be something that I am not thinking of right now…just don’t know what. Just double check all your settings in the amazon development console…maybe even try starting from scratch with a new skill on alexa?

Sorry for not being of much help.

~Cheers

is there a way to lacily test if hass Alexa component is working correct? Like for lights or media player where i can add a json object for testing.

Maybe you have an unsupported Key in your API-Password. I had the same Problem, with a # in my Password. Changing my Password to contain only Letters and Numbers solved it.

Head over hear for more information:

1 Like

the api password is the same i use to login to hass Gui correct?

Yes, you also provide it in the Link on the Amazon Developer Console.

ok got it now, the response came after i made port redirect from 443 to hass port. So problem was that the url uses a port. Thats a problem because i also have other website on the same server that want to use https and not only hass.

Any idea how to use url like https://my.url.com:8123/api/alex?api_password=XXXXXXX

He,

this is not possible. Amazon only allow using Port 443.

Just as documented here in the Requirments Section:

https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/developing-an-alexa-skill-as-a-web-service#requirements-for-your-web-service

1 Like

I don’t think this is possible with amazon. But you should be able to use a reverse proxy like nginx to map different locations.

~Cheers

ok thanks for the help, extra thanks to @PhyberApex :slight_smile:

I will try with that at the moment

1 Like

Completely OT, but @PhyberApex - TIL that English was your second language. Never would have guessed. I’m so disappointed with my country; it seems like everyone I meet outside it speaks multiple languages and most Americans can’t even speak their own language well enough.

1 Like

@rpitera You are now officially known as OT-King. But thank you for your kind words. My English skills probably originate from the amount of anime I watched as a kid (and still do) and the fact that I watch all movies (and tv shows) in their original audio if possible (I don’t even have my tv plugged into cable at this point). Also I am a software engineer so English is a must.

~Cheers

I’m sorry. I should have PM’d you but I wanted to complement you in the clear. :wink:

1 Like

I’m having the same issue, but only with certain intents. Simple ones, like this:

SpeakIntent:
  speech:
    type: plaintext
    text: This is magic

…work fine and get a “good” response back from Amazon:

{
  "version": "1.0",
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "This is magic"
    },
    "speechletResponse": {
      "outputSpeech": {
        "text": "This is magic"
      },
      "shouldEndSession": true
    }
  },
  "sessionAttributes": {}
}

However, more difficult ones – like situations where long-running scenes are in play – will “work” (in that they do the correct action in our home), but Amazon will give me an error. For example, this intent:

ActivateSceneIntent:
  action:
    service: scene.turn_on
    data_template:
      entity_id: scene.{{ Scene | replace(" ", "_") }}
  speech:
    type: plaintext
    text: !include alexa-confirmations.yaml

…has the aforementioned wonky behavior when I run my “Good Night” scene:

name: Good Night
entities:
  alarm_control_panel.simplisafe:
    state: armed_home
  cover.garage_door:
    state: closed
  lock.front_door_locked:
    state: locked
  lock.garage_door_locked:
    state: locked
  group.living_room_lights:
    state: off
  group.living_room_tv:
    state: off

…which returns this Amazon response:

The remote endpoint could not be called, or the response it returned was invalid.

My gut tells me that since the “easier” one works, there’s some sort of timeout going on.

Do other scenes work? Do any of your scenes work? How about a simple scene where a single light is turned on?

This may help rule some things out.

Great question – yes, other scenes work (i.e., the action is performed and Amazon returns the correct response). For instance, this scene works as expected:

scene:
  name: Watch Plex
  entities:
    switch.media_center:
      state: on
    remote.watch_roku:
      state: on
    script.switch_roku_to_plex:
      state: on

switch:
  platform: wake_on_lan
  mac_address: "4C:AE:6A:1234: :90:D4"
  name: "Media Center"
  host: "media-center.lan"

remote:
  platform: harmony
  name: Watch Roku
  host: harmony-hub.phil.lan
  activity: 22580034

script:
  switch_roku_to_plex:
  sequence:
    - service: 'media_player.select_source'
      data:
        entity_id: 'media_player.roku_yp005n794105'
        source: 'Plex'

I’m kinda stumped then - your code looks fine to me. I’m guessing it is more in the config of the connection somehow.

What do you mean by “I made port redirect from 443 to hass port”?
What all did you change?
Did you change the url to amazon to be https://myurl.com:443… , then foward 443 to 8123 in your router?
or did you leave the url as httpsL//my.url.com:8123… and forward 443 to 8123 in your router?

I’m having a very similar issue I think.