협업시스템(Slack)


slack 플랫폼을 통해 Home Assistant에서 Slack으로 알림을 전달할 수 있습니다.

셋업

Bot posting as you

  1. Create a new app under your Slack.com account
  2. Click the OAuth & Permissions link in the sidebar, under the Features heading
  3. In the Scopes section, add the chat:write:user scope, Send messages as user
  4. Scroll up to OAuth Tokens & Redirect URLs and click Install App
  5. Copy your OAuth Access Token and put that key into your configuration.yaml file – see below

앱의 기본 설정에 앱 자격 증명 확인 토큰(credential Verification Token)이 있습니다. 이는 여기에 필요한 API 키가 아닙니다.

Bot posting as its own user

Slack bot을 사용자로 사용할 수도 있습니다. https://[YOUR_TEAM].slack.com/apps/build/custom-integration 에서 new bot을 생성하고 제공된 토큰을 사용하십시오. 홈어시스턴트의 프론트 엔드에서 아이콘을 추가하고 bot에게 의미있는 이름을 지정할 수 있습니다.

알림을 받으려는 방에 bot을 초대하는 것을 잊지 마십시오.

설정

설치시 slack 알림을 활성화하려면 configuration.yaml 파일에 다음을 추가하십시오.

# Example configuration.yaml entry
notify:
  - name: NOTIFIER_NAME
    platform: slack
    api_key: YOUR_API_KEY
    default_channel: '#general'

Configuration Variables

name

(string)(Optional)

Setting this parameter allows multiple notifiers to be created. The notifier will bind to the service notify.NOTIFIER_NAME.

Default value:

notify

api_key

(string)(Required)

The Slack API token to use for sending Slack messages.

default_channel

(string)(Required)

The default channel to post to if no channel is explicitly specified when sending the notification message. A channel can be specified adding a target attribute to the JSON at the same level as “message”.

username

(string)(Optional)

Home Assistant will post to Slack using the username specified.

Default value:

The user account or botname that you generated the API key as.

icon

(string)(Optional)

Use one of the Slack emojis as an Icon for the supplied username. Slack uses the standard emoji sets used here.

Slack 서비스 데이터

확장된 기능을 위해 다음 속성을 data 안에 배치할 수 있습니다.

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.
attachments yes Array of Slack attachments. See the attachment documentation for how to format. NOTE: if using attachments, they are shown in addition to message

URL에서 파일을 게시하는 예 :

{
  "message":"Message that will be added as a comment to the file.",
  "title":"Title of the file.",
  "target": ["#channelname"], 
  "data":{
    "file":{
      "url":"http://[url to file, photo, security camera etc]",
      "username":"optional user, if necessary",
      "password":"optional password, if necessary",
      "auth":"digest"
    }
  }
}

로컬 경로에서 파일을 게시하는 예 :

{
  "message":"Message that will be added as a comment to the file.",
  "title":"Title of the file.",
  "data":{
    "file":{
      "path":"/path/to/file.ext"
    }
  }
}

pathconfiguration.yamlwhitelist_external_dirs에 대해 검증된다는 걸 알아두십시오.

포맷이 지정된 첨부 파일을 게시하는 예 :

{
  "message": "",
  "data": {
    "attachments": [
      {
        "title": "WHAT A HORRIBLE NIGHT TO HAVE A CURSE.",
        "image_url": "https://i.imgur.com/JEExnsI.gif"
      }
    ]
  }
}

message는 필수키이지만 항상 표시되므로 여분의 텍스트를 원하지 않으면 message에 빈 문자열 ("")을 사용하십시오.

알림을 사용하려면 getting started with automation page를 참조하십시오.