Can't get AWS SNS notifications to work

Tags: #<Tag:0x00007f325ee0bb30>

I’m trying to set up Home Assistant to send me SMS messages via the AWS SNS notification.

I have put the following into my configuration.yaml file:

    - name: name-of-aws-credential
      aws_access_key_id: !secret aws_access_key_id
      aws_secret_access_key: !secret aws_secret_access_key
    - service: sns
      region_name: eu-west-1

Now I go to Developer Tools > Services and select Notify.Notify as the service.

In the Service Data (YAML, optional) entry box I put the following JSON:

  message: "Test Message",
  title: "Test Title"

If I submit this, it works and I get a notification on the Home Assistant app on my Andrioid Phone.

When I expand the JSON to include the SNS arn as follows I cannot get it to work:

  message: "Test Message",
  title: "Test Title",
  target: "arn:aws:sns:eu-west-1:nnnnnnnnnnnn:hass-notifications"

This fails with the following log entry:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/", line 133, in handle_call_service
  File "/usr/src/homeassistant/homeassistant/", line 1235, in async_call
    await asyncio.shield(self._execute_service(handler, service_call))
  File "/usr/src/homeassistant/homeassistant/", line 1260, in _execute_service
    await handler.func(service_call)
  File "/usr/src/homeassistant/homeassistant/components/notify/", line 120, in async_notify_message
    await notify_service.async_send_message(**kwargs)
  File "/usr/src/homeassistant/homeassistant/components/mobile_app/", line 114, in async_send_message
    entry =[DOMAIN][DATA_CONFIG_ENTRIES][target]
KeyError: 'arn:aws:sns:eu-west-1:nnnnnnnnnnnn:hass-notifications'

I kind of get that the python code is looking for a nested structure but I’m not sure what it wants due to the constants used for the keys in the stack trace.

I’m guessing that I enter in Service Data goes into so therefore I need some extra levels in my JSON to get target into the right place.

Can anyone provide a sample of some JSON that would work here? Ideally I could also do with a sample that would work in an automation as well.


1 Like

Sam problem here. Any luck resolving it?

I was able to get mine working. I may be doing something wrong here but I had to specify the access/secret keys twice and also name the notify’er:

in configuration.yaml:

    - name: Default Profile
      aws_access_key_id: <MY KEY ID>
      aws_secret_access_key: <MY ACCESS KEY>
      validate: false
    - service: sns
      region_name: us-east-1
      name: sns_us_east_1
      credential_name: Default Profile
      aws_access_key_id: <MY KEY ID>
      aws_secret_access_key: <MY ACCESS KEY>

Then when sending a message from Developer Tools -> Services:

Service: notify.sns_us_east_1
Service Data:

  "target": "arn:aws:sns:us-east-1:.......",
  "message": "Hello There"