Простой способ получать уведомления от 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.yaml:
# 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_sid, twilio_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 платный, с тарифами можно ознакомиться у них на сайте.
А файл именно notify.yam ? Или всё-таки yaml ? Я пишу notify.yaml.
Но у меня так и не появляется сервис notify.twilio_whatsapp.
Что делать?
Опечатка. Правильно, конечно же, notify.yaml
Кстати насчёт работоспособности компонента на данный момент не уверен..
Спасибо! Похоже, что да, не работает.