Douglas, muito obrigado!!!
Funcionou aqui…
galera da pra enviar imagens igual o telegram ou so menssagens mesmo?
Pessoal,
Após algumas tentativas, descobri que só é possível enviar mensagens para celulares que estiverem cadastrados no TWILIO.
Tentei enviar para o telefone da minha esposa, e no log da plataforma do TWILIO foi exibida a mensagem abaixo:
(Error: 63015) Channel Sandbox can only send messages to phone numbers that have joined the Sandbox
Tive que criar um conta pra ela, com um SID e TOKEN especifico, habilitar o whatsapp sandbox e configurar o Home assistant com uma NOTIFY para ela tb.
A minha configuração ficou assim:
notify:
- name: home_assistant_whats_cadu
platform: twilio_whatsapp
from_number: whatsapp:<meu numero twilio>
account_sid: !secret twilioaccount
auth_token: !secret twiliotoken
- name: home_assistant_whats_fer
platform: twilio_whatsapp
from_number: whatsapp:<numero_fer_twilio>
account_sid: !secret twilioaccountfer
auth_token: !secret twiliotokenfer
Valeu Douglas, funcionou perfeitamente.
Ele permite enviar imagens e vídeos? como seria?
Obs: estou sentindo falta dos seus vídeos no canal kkkk
abraço
Para contornar essa situação bastaria que a sua esposa enviasse o join code para o numero do Twilio.
Acabei de fazer essa configuração, criei um contato com o numero Twilio, enviei para o meu filho e bastou ele enviar o mesmo texto join code para o contato que passou a aceitar mensagens.
Para enviar para múltiplos contato basta criar um array
de números no target
:
{
"message": "Mensagem para múltiplos contatos",
"target": ["+55618XXXYYYY", "+55618YYYXXXX"]
}
Parabéns por mais esse excelente tutorial, @douglas .
Deu certinho aqui, eu gostaria de acrescentar uma pequena modificação que eu fiz para permitir enviar anexos, como fotos, videos, documentos e etc. Nesse link podemos ver a lista de arquivos permitidos.
No arquivo “notify.py” vamos fazer uma pequena modificação nas 3 ultimas linhas para permitir o envio de arquivos:
Substitua isso:
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)
Por isso:
def send_message(self, message="", **kwargs):
"""Send Whatsapp to specified target user cell."""
targets = kwargs.get(ATTR_TARGET)
data = kwargs.get(ATTR_DATA) or {}
twilio_args = {"body": message, "from_": self.from_number}
if "media_url" in data:
twilio_args["media_url"] = data["media_url"]
if not targets:
_LOGGER.info("At least 1 target is required")
return
for target in targets:
self.client.messages.create(to='whatsapp:'+target, **twilio_args)
Utilize os formato abaixo para testar o serviço de notificação:
{
"message": "Enviando Anexo",
"target": "+55DD########",
"data": {
"media_url": "https://brands.home-assistant.io/homeassistant/icon.png"
}
}
A URL do arquivo deve ser publica, ou seja, acessível pela internet.
Por exemplo: https://[meu-ha].duckdns.org:8123/local/minha-foto.jpg
Onde minha-foto.jpg esta armazenado na pasta www
do seu HA
Para enviar a mensagem para vários destinatários basta criar um array com os números.
{
"message": "Mensagem para varios destinatarios",
"target": ["+55DD########", "+55DD0000000"],
"data": {
"media_url": "https://brands.home-assistant.io/homeassistant/icon.png",
}
}
Aproposito, para enviar mensagens para outros contatos basta que a pessoa envie o mesmo join code para o seu número Twilio, não é necessário que o contato se cadastre.
Agora caso você não queira seguir todos os passos do tutorial do Douglas e ter o trabalho de criar arquivos de custom components você pode apartir desse ponto do tutorial, com Account_sid, auth_token e numero Twilio
, utilizar o component de integração Twilio SMS do HA (https://www.home-assistant.io/integrations/twilio_sms/)
Basicamente apos adicionar o Twilio em seu arquivos de configuração voce deve adiciona o Twilio SMS
# Example configuration.yaml entry
notify:
- name: twilio_whatsapp
platform: twilio_sms
from_number: whatsapp:+[o número para o qual você enviou a mensagem inicial, que foi criado no twilio]
Utilizando esse component é importante que o telefone esteja no padrão whatsapp:+5511987654321
Exemplo de teste:
{
"message": "Enviando Anexo",
"target": "whatsapp:+5511987654321",
"data": {
"media_url": "https://brands.home-assistant.io/homeassistant/icon.png"
}
}
Exemplo de automação
# Example automation notification entry
automation:
- alias: The sun has set
trigger:
platform: sun
event: sunset
action:
service: notify.twilio_whatsapp
data:
message: 'The sun has set'
target:
- 'whatsapp:+14151234567'
- 'whatsapp:+15105555555'
data:
- media_url: 'https://www.home-assistant.io/images/supported_brands/home-assistant.png'
Show,
Muito obrigado pela informação.
Abs
Alvaro, muito obrigado pela ajuda.
Eu realizei as mudanças que você sugeriu para envio dos anexos e deu tudo certo.
Eu uso o Node-Red e não estou conseguindo integrar essa solução.
Antes dessa implementação eu fazia dessa forma e qualquer mensagem que eu passava no payload ele enviava no whatsapp
{“message”: “{{payload}}”,“target”:"+55XXXXXXXXXXX"}
Tentei fazer dessa forma:
{“message”: “{{payload}}”,“target”:"+55XXXXXXXXXXX",“data”:{{playload}}}
Passando no payload o seguinte: media_url: https://brands.home-assistant.io/homeassistant/icon.png
mas não deu certo.
o que estou fazendo errado:
Obrigado
Cara eu nunca utilizei o Node-Red, mas eu acredito que pode ser um erro na sintaxe do payload que vc esta passando, você tentou verificar o que diz o log do sistema?
Eu imagino que o erro pode estar aqui:
Nesse exemplo é bem provável que o data fique dessa forma:
“data”: media_url: https://brands.home-assistant.io/homeassistant/icon.png
Quando o correto seria ele ficar dessa forma:
“data”: { media_url: "https://brands.home-assistant.io/homeassistant/icon.png" }
Verifique o log e tente ajustar esse trecho que eu acredito que possa ser esse o problema.
Abraço.
Alvaro,
Agradeço a ajuda, mas tentei de tudo e não consegui. Então contornei da seguinte forma:
Criei uma automação no HA da forma que você ensinou acima e do meu fluxo do Node-Read eu chamei a automação.
Tudo funcionando perfeitamente.
Muito obrigado
Explêndido!
A integração ‘Home Assistant x Twilio’ para envio de alertas via ligação telefônica (call phone) funciona muito bem! Vale observar que, uma vez não atendida a ligação telefônica quando da entrada da chamada, o destinatário não tomará conhecimento do teor do alerta.
A integração ‘Home Assistant x Twilio x Whatsapp’ para envio de alertas por meio de mensagem de texto também funciona muito bem. Além disso, possibilita ao usuário tomar conhecimento do conteúdo do alerta a qualquer tempo desde o seu recebimento, já que a mensagem permanece na sua caixa do Whatsapp, tal como na integração ‘Home Assistant x Telegram’.
Parabéns pela didática, Douglas!
Muito obrigado pelo compartilhamento!
Alvaro, me ajuda por gentileza.
estou tentando enviar um video capturado pelo HA de uma das cameras,
porem ele não busca o video na pasta, só manda o texto “Enviando Anexo”
no Telegram eu consigo enviar esse video,
tem alguma outra configuração que eu devo fazer?
estou com o seguinte código:
{
"message": "Enviando Anexo",
"target": "+5511xxxxxxxxx",
"data": {
"media_url": "/config/www/imgs/cameras/gar_fechada.mp4"
}
}
Alguém pode dizer quantas mensagens gratuitas eu ganho?
Não sei o que fiz de errado. se alguem puder fazer um video mostrando melhor como é a configuração…
o meu fica dando esse erro abaixo…