Простой способ получать уведомления от HomeAssistant в WhatsApp

Для этого воспользуемся сервисом Twilio

После регистрации нам предложат воспользоваться разными сервисами, жмем на SMS Chatbot:

Далее даем проекту имя:

На следующем этапе жмем Skip:

После попадаем на экран со схемой и жмем Programmable SMS:

И выбираем WhatsApp:

Подтверждаем:

Тут нас попросят отправить в WhatsApp кодовую фразу на указанный номер, это нужно для привязки. Именно через этот номер HA в будет отсылать уведомления, которые вы получите:

Как только сообщение будет отправлено и прочитано, вы увидите уведомление об успешной привязке:

Теперь перейдем на страницу настроек User Settings нажав на имя пользователя и попадем на страницу с ACCOUNT SID и AUTH TOKEN, которые нам нужны для привязки к HomeAssistant.

 

Прописываем в configuration.yaml:

# Сервис twilio для отправки и получения уведомлений WhatsApp
twilio:
  account_sid: !secret twilio_account_sid
  auth_token: !secret twilio_auth_token

 

в notify.yam:

# Twilio Whatsapp
- name: twilio_whatsapp
  platform: twilio_whatsapp
  from_number: !secret twilio_whatsapp_number

 

в secrets.yaml:

# Twilio
twilio_account_sid: AC7bbae38e2014aa4c2d0d07ef48530049
twilio_auth_token: 2911caa1e5079390dd1515dfcbe300a8
twilio_whatsapp_number: whatsapp:+14557248888

сменив twilio_account_sidtwilio_auth_token и twilio_whatsapp_number на ваши. Номер телефона тот, на который вы отправляли кодовое слово для привязки.

 

Создадим в папке custom_components папку twilio_whatsapp а в ней файл notify.py со следующим содержимым:

"""
Twilio Whatsapp platform for notify component.

For more details about this platform, please refer to the documentation at

"""
import logging

import voluptuous as vol

from homeassistant.components.twilio import DATA_TWILIO
import homeassistant.helpers.config_validation as cv
from homeassistant.components.notify import (
    ATTR_TARGET, PLATFORM_SCHEMA, BaseNotificationService)

_LOGGER = logging.getLogger(__name__)
DEPENDENCIES = ["twilio"]


CONF_FROM_NUMBER = "from_number"

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
    vol.Required(CONF_FROM_NUMBER):
        vol.All(cv.string),
    
})


def get_service(hass, config, discovery_info=None):
    """Get the Twilio Whatsapp notification service."""
    return TwilioWhatsappNotificationService(
        hass.data[DATA_TWILIO], config[CONF_FROM_NUMBER])


class TwilioWhatsappNotificationService(BaseNotificationService):
    """Implement the notification service for the Twilio Whatsapp service."""

    def __init__(self, twilio_client, from_number):
        """Initialize the service."""
        self.client = twilio_client
        self.from_number = from_number

    def send_message(self, message="", **kwargs):
        """Send Whatsapp to specified target user cell."""
        targets = kwargs.get(ATTR_TARGET)

        if not targets:
            _LOGGER.info("At least 1 target is required")
            return

        for target in targets:
            self.client.messages.create(
                to='whatsapp:'+target, body=message, from_=self.from_number)
                

 

Перезагружаем HA.

В автоматизациях уведомления выглядят следующим образом:

# Тест уведомлений Ватсап
- alias: whatsapptestnotify
  hide_entity: True
  trigger:
    entity_id: binary_sensor.testsensor
    platform: state
    from: 'on'
    to: 'off'
  action:
    service: notify.twilio_whatsapp
    data:
      message: "Тестовое сообщение HomeAssistant"
      target: "+79620000000"

где target это Ваш номер телефона, с которого вы отправляли код для привязки.

P.S:

Сервис twilio платный, с тарифами можно ознакомиться у них на сайте. 

 

 

Оставить комментарий

avatar

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Подписаться  
Уведомление о