Slack
The slack
platform allows you to deliver notifications from Home Assistant to Slack.
If you are planning to use Slack as yourself then you need to obtain a Slack API token to be able to send notifications.
It is also possible to use Slack bots as users. Just create a new bot at https://[YOUR_TEAM].slack.com/apps/build/custom-integration and use the provided token for that. You can add an icon from the frontend for Home Assistant and give the bot a meaningful name.
Don’t forget to invite the bot to the room where you want to get the notifications.
To enable the Slack notification in your installation, add the following to your configuration.yaml
file:
# Example configuration.yaml entry
notify:
- name: NOTIFIER_NAME
platform: slack
api_key: ABCDEFGHJKLMNOPQRSTUVXYZ
default_channel: '#general'
Configuration variables:
- name (Optional): Setting the optional parameter
name
allows multiple notifiers to be created. The default value isnotify
. The notifier will bind to the servicenotify.NOTIFIER_NAME
. - api_key (Required): The Slack API token to use for sending Slack messages.
- default_channel (Required): The default channel to post to if no channel is explicitly specified when sending the notification message.
- username (Optional): Setting username will allow Home Assistant to post to Slack using the username specified. By default not setting this will post to Slack using the user account or botname that you generated the api_key as.
- icon (Optional): Use one of the Slack emoji’s as an Icon for the supplied username. Slack uses the standard emoji sets used here.
Slack service data
The following attributes can be placed data
for extended functionality.
Service data attribute | Optional | Description |
---|---|---|
file |
yes | Groups the attributes for file upload. If present, either url or path have to be provided. |
path |
yes | Local path of file, photo etc to post to slack. Is placed inside file . |
url |
yes | URL of file, photo etc to post to slack. Is placed inside file . |
username |
yes | Username if the url requires authentication. Is placed inside file . |
password |
yes | Password if the url requires authentication. Is placed inside file . |
auth |
yes | If set to digest HTTP-Digest-Authentication is used. If missing HTTP-BASIC-Authentication is used. Is placed inside file . |
Example for posting file from URL
{
"message":"Message that will be added as a comment to the file.",
"title":"Title of the file.",
"data":{
"file":{
"url":"http://[url to file, photo, security camera etc]",
"username":"optional user, if necessary",
"password":"optional password, if necessary",
"auth":"digest"
}
}
}
Example for posting file from local path
{
"message":"Message that will be added as a comment to the file.",
"title":"Title of the file.",
"data":{
"file":{
"path":"/path/to/file.ext"
}
}
}
Please note that path
is validated against the whitelist_external_dirs
in the configuration.yaml
.
To use notifications, please see the getting started with automation page.