I have been using Home-Assistant for a long time, and was looking for the best way to send Notification based in Event Triggers. I know, you’ll probably Thinking, Hey… you have Pushbulet, Facebook Messenger or even telegram. well, you partially right. we do have this options but my goal was to get notifications using the apps i’m already using.
In this article i’ll explain how to use your whatsapp to get notification from Home-Assistant without have to install Parallel or even get a new number.
actualy it will be very easy thing to do.
Let’s start…
Step 1 – Opening Twilio Account:
in order to open Twilio account go to this address:
https://www.twilio.com/ and click on Sign up
Enter your personal details and click Get Started
now, you will be asked to enter your Phone number for verification.
enter it and click on Verify
After a few moment you will receive an sms with confirmation code,
enter it and hit submit.
Step 2 – Create Twilio app for our notifications
So now, after we created the Twilio app we need to create an Application that will be use for sending the notification. select SMS chatbot to continue.
Now, give your project a name (‘Home Assistant’ etc.)
In the next step you will be asked to invite team members, no need to do that. just hit “skip this Step”.
Next, you’ll get a FlowChart, ignore it and click on “Programmable SMS” on the left side of the page.
And then hit the Whatsapp Application.
Now you’ll get a message that explains about this service and will be asked to confirm whatrsapp Terms of service. check the I agree box and hit Confirm To continue.
In the next step you’ll get a Whatsapp number to send message to. in order to activate the Sendbox you have to send the Bolded text to this number.
you can see that Twilio got your message:
and will also get a confirmation message back in your Whatsapp application.
Part 3 – Impimenting Twilio in Home Assistant
So now, the only thing left to do is integraing Twilio Whatsapp and using it to get Whatsapp notification from home assistant.
for doing that we need to get the Account SID and Auth token from Twilio account. go to user setting in the Upper Right corner of the page.
Now click on “Console” on the menu, then you will be able to see your sid and token, write it down.
Now, go to your Home Assistant configuration file and add the following code:
twilio:
account_sid: [your account sid]
auth_token: [your account auth token]
and Create a new folder and name it”custom_components” and under it crerate another one named “twilio_whatsapp”.
create new file within notify and call it ”
notify.py” and copy the following text into the file.
"""
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)
now, create new file and name it “manifest.json” and copy the following text into the file:
{
"domain": "https://techblog.co.il/2019/01/easily-send-home-assistant-notifications-using-whatsapp/",
"name": "twilio_whatsapp",
"documentation": "https://techblog.co.il/2019/01/easily-send-home-assistant-notifications-using-whatsapp/",
"dependencies": ["twilio"],
"codeowners": ["@T0merr"],
"requirements": []
}
now create last file needed and call it “__init__.py and leave it empty.
and the for final configuration step add the following lines to your Configuration.yam file:
notify:
- name: Home-Assistant
platform: twilio_whatsapp
from_number: whatsapp:+[the number you sent the initial message to]
Save it and restart Home Assistant.
Part 4 – Configuration test
Now, browse to Home Assistant and under Devloper tools hit Services
You should see a service calld “notify.home_assistant”
Under Data field add the following text (be sure to replace the target with your phone number including country code (“+1-77555-66” etc).
{"message":"Home Assistant Test Notification","target":"[your phone number include country code]"}
if you did everything correctly you should recive Whatsapp message with your message.
Great find, will follow along this weekend :). Could this be set-up to send a message to more than one phone number? Thank you so much!
Awesome stuff, thank you!
Bummer, Twilio limited the allowed messages to there own pre-made templates for sandbox usage 🙁
does this problem still exist?
Hello.
I’m experiencing a problem.
I’ve create project, linked with my phone from twilio page.
I’m able to setup account twilio into home assistant (using sid and key). From log file i can see information related to twillo account correctly set up.
but no feedback related to custom_component neither to the notify component. the service notify.home_assistant seems not be present.
what can i do?
thanks
Hi Giorgio, i have updated the tutorial to be compatible with with the new custom component layout
Thank you!!!
now I’m able to load it.
but i’ve a problem.
when I’m trying to send message I received
“twilio.base.exceptions.TwilioRestException: HTTP 400 error: Unable to create record: Twilio could not find a Channel with the specified From address”
in Notify i’ve put the number confirmed by twilio…
– name: Home-Assistant
platform: twilio_whatsapp
from_number: whatsapp:+39XXXXXXXXXXX
what could you suggest me to do?
thanks
found my mystake! thanks
Same trouble… How did you solved this ?
Hi Giorgio.
I’m having the same error ([HTTP 400] Unable to create record: Twilio could not find a Channel with the specified From address) trying to send a whatsapp template message. How did you solve this error? Thank you.
Hi,
Did you try this method?:
https://www.callmebot.com/blog/whatsapp-text-messages-from-homeassistant/
No account creation is required. It is free and just doing the job.