Notifiche Home Assistant o Uptime Kuma su Signal
Introduzione
Tanti sistemi necessitano di inviare notifiche in situazioni particolari e tra questi ci sono Home Assistant e Uptime Kuma. Ogni tanto è comodo inviare le notifiche a più persone. Signal permette d’inviare dei messaggi ad un unico numero o a un gruppo di persone. Inoltre è possibile consultare i messaggi di un account da molteplici apparecchi.
Su GitHub è possibile trovare un progetto che crea un container docker contenente le API per Signal (documentazione).
Requisiti
- dominio (in questo esempio uso signal.example.com)
- uno smartphone con Signal attivo
Questi sono dei requisiti opzionali per rendere l’untilizzo delle API migliori:
- utilizzo di un reverse proxy (in questo esempio traefik)
- un secondo smartphone con Signal (da usare come numero per l’invio di messaggi)
Container docker API Signal
Container docker
https://github.com/bbernhard/signal-cli-rest-api
version: "3"
services:
signal-cli-rest-api:
image: bbernhard/signal-cli-rest-api:latest
environment:
- MODE=normal #supported modes: json-rpc, native, normal
ports:
- "8080:8080" #use this option only without a reverse proxy
volumes:
- "/home/user/docker/signal-cli-config:/home/.local/share/signal-cli" #change the path
Attivazione Signal
L’utilizzo delle API di Signal è come aggiungere un device alla lista di quelli collegati ad un account. Ogni messaggio verrà poi inviato da quel numero e quinddi se i messaggi sono inviati ad un gruppo a chi appartiene il numereo non riceverà nessuna notifica. Per questo motivo consiglio di utilizzare un secondo numero di telefono.
Se non è possibile avere due numeri di telefono diversi, allora si deve inviare il messaggio al proprio numero e i messaggi arriveranno come Note personali
con relativa notifica.
Lo svolgimento dell’attivazione richiede uno smartphone con Signal installato e funzionante per il numero di telefono e un tablet o computer che possa accedere al container delle API. Per semplificare un po’ la guida userò solo il dominio https://signal.example.com per accedere al container, ma se non usate un reverse proxy allora dovete sostituire il tutto con: http://1.2.3.4:8080
Sul computer aprire l’indirizzo nel browser https://signal.example.com/v1/qrcodelink?device_name=NOME_DEVICE , sostituire
NOME_DEVICE
con un nome per identificare il container tra i device collegati all’account di SignalSe appare un QR code potete procedere
Sullo smartphone aprire l’app di Signal e aggiungere un nuovo device. In Android
Sul computer aprire con il browser l’indirizzo: https://signal.example/v1/receive/MOBILE_NUMBER , sostituire
OBILE_NUMBER
con il numero di telefono dello smartphone, non dimenticare il prefisso all’inizio (+41… per la Svizzera). Se appaiono parecchie informazioni vuol dire che l’API è collegata con l’account e può essere usata secondo la documentazione.
Invio di messaggi a un numero di telefono
ATTENZIONE: non è possibile inviare contemporaneamente dei messaggi a dei numeri di telefono e a dei gruppi. Le chiamate devono essere fatte separatamente.
Dal computer si può richiedere l’invio del messaggio, questo esempio mostra il comando da lanciare nel terminal su Linux (per Windows ci sono programmi come Postman)
Aprire un editor di testo (p. es.
gedit
) e modificate i punti necessari (dominio e MOBILE_NUMBER)
curl -X 'POST' \
'https://signal.example.com/v2/send' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"message": "TEST INVIO MESSAGGIO",
"number": "MOBILE_NUMBER",
"recipients": [
"MOBILE_NUMBER"
]
}'
- Copiare il comando modificato e copiarlo in un terminal, se il risultato riporta tutti i parametri inseriti a breve riceverai il messaggio nelle
Note personali
Invio di messaggi a un gruppo
ATTENZIONE: non è possibile inviare contemporaneamente dei messaggi a dei numeri di telefono e a dei gruppi. Le chiamate devono essere fatte separatamente.
Prima di tutto si deve sapere l’ID del gruppo, in un browser si può richiamare l’indirizzo modificando
MOBILE_NUMBER
: https://signal.example.com/v1/groups/MOBILE_NUMBERCopiare l’ID (inizia con
group.abcd...xyz=
)del gruppo e metterlo al posto delMOBILE_NUMBER
nel comando per l’invio di messaggi.
Utilizzo con Uptime Kuma
Aggiungere una notifica di tipo Signal con queste opzioni:
- Tipo notifica: Signal
- Nome amichevole: inserire un testo per riconosce i destinatari delle notifiche
- Post URL: https://signal.example.com/v2/send
- Number: MOBILE_NUMBER
- Recipients: MOBILE_NUMBER o ID gruppo (ATTENZIONE non è possibile aggiungere numeri di telefono e gruppi, si devono creare due notifiche diverse)
Utilizzo con Home Assistant
Documentazion ufficiale dell’integrazione di Signal su Home Assistant.
Al file di configurazione di Home Assistant aggiungere la seguente configurazione:
notify:
- name: signal_personal_number
platform: signal_messenger
url: "https://signal.example.com"
number: "MOBILE_NUMBER"
recipients:
- "MOBILE_NUMBER"
Immagine di copertina: torstensimon da Pixabay