Pushover: Il sistema di notifiche flessibile ed universale!

Autore: Vito
781 visite
Pushover Notifications - Featured Image

Al giorno d’oggi le notifiche fanno parte del nostro quotidiano tra social network ed applicazioni di vario genere, ma se volessimo crearci il nostro sistema di notifiche personale?

In questo articolo andremo a capire perché tra tutti i sistemi disponibili personalmente quello che prediligo e consiglio è Pushover, e vedremo come integrarlo sia all’interno di Home Assistant che altrove.

Avvicinandomi al mondo della Smart Home, ed essendo un utilizzatore di prodotti Apple, il primo tentativo di crearmi la mia gestione personale di notifiche avvenne tramite l’utilizzo del servizio Prowl, ma dopo svariati test incappai subito nei limiti di questo sistema come l’impossibilità di essere eseguito su tutte le piattaforme, non essere “cucito” sulle proprie esigenze e troppo vincolato ad un elenco unico di archiviazione notifiche. Nonostante questi limiti continuo a lasciare dormiente la sua implementazione per test o come sistema di backup.

Quindi, cosa rende Pushover il sistema per me più vantaggioso?

  • Possibilità di essere usato su praticamente ogni piattaforma;
  • API libere, ben strutturate e semplici da utilizzare;
  • Molti servizi e applicativi che lo supportano;
  • Servizio gratuito (Applicazione mobile esclusa ed entro limiti ben oltre le esigenze comuni);
  • Gestione delle priorità, suoni, non disturbare, dispositivi, applicazioni e tanto altro.
Andiamo quindi a vedere come sfruttare al meglio questo servizio, in particolare all’interno della piattaforma Home Assistant e server generici Linux, principalmente Debian/Ubuntu.

Account

Come prima operazione è necessario registrarti sul portale ufficiale di Pushover, dopo la quale ci verrà fornita una “User Key“.

Questa chiave rimarrà univoca per il nostro intero account, ma è possibile creare delle “Applicazioni” per suddividere le nostre notifiche e non avere un unico ed infinito elenco confusionario.

Come possiamo notare ogni singola applicazione permette di avere una specifica icona, nome e descrizione e sono permessi per ognuna di queste ben 7.500 notifiche mensili gratuite, ma a pagamento è possibile incrementarle (10.000 notifiche aggiuntive il costo è di 50$).

La suddivisione per applicazioni ci permetterà di dividere le notifiche in una “sezione” specifica che può anche equivalere ad un dispositivo specifico come ad esempio le notifiche relative al nostro “NAS” o “UPS”:

In aggiunta alla “User Key” ogni applicazione creata avrà un “Token” che ci permetterà di indirizzare la notifica in essa:

Home Assistant

Sfruttare Pushover in Home Assistant è veramente semplice e questo avviene tramite il dominio “notify”. Se sì possiede già una struttura di packages è possibile creare un pacchetto, ad esempio “pushover.yaml”, contenente il codice sottostante ed impostando nel file “secrets.yaml” la “User Key” ed il “Token” visti precedentemente.

notify:
  # ALLARME
  - platform: pushover
    name: 'Pushover [ALLARME]'
    user_key: !secret pushover_user_key
    api_key: !secret pushover_allarme_api_key
  # HOME ASSISTANT
  - platform: pushover
    name: 'Pushover [HOME ASSISTANT]'
    user_key: !secret pushover_user_key
    api_key: !secret pushover_home_assistant_api_key
  # INFO
  - platform: pushover
    name: 'Pushover [INFO]'
    user_key: !secret pushover_user_key
    api_key: !secret pushover_info_api_key

Per inviare una notifica è possibile eseguire un rapido test dagli strumenti di sviluppo o creare un semplice script di prova come l’esempio sottostante.

Presupponendo di avere un’entità “camera.ingresso“, ed aver creato la cartella “snapshots” nel percorso indicato, Home Assistant ci invierà una notifica con la foto scattata in priorità “1” (Alta priorità). Tutti i parametri assegnabili ad una singola notifica è possibile visionarli nella documentazione ufficiale di Pushover oppure nelle specifiche dell’integrazione di Home Assistant.

script:
  # ALLARME
  pushover_alarm_test:
    alias: 'Test Pushover [ALLARME]'
    icon: mdi:alarm-light
    sequence:
      - service: camera.snapshot
        data:
          entity_id: camera.ingresso
          filename: '/config/www/snapshots/ingresso.jpg'
      - delay: '00:00:02'
      - service: notify.pushover_allarme
        data:
          title: 'Allarme'
          message: 'Test allarme in corso!'
          data:
            priority: 1
            attachment: '/config/www/snapshots/ingresso.jpg'

Installando ed accedendo con l’applicazione sul proprio smartphone o tablet (Disponibile per iOS e Android), o tramite notifiche del proprio browser Chrome o Safari, è possibile visualizzare il messaggio appena inviato e tutti gli altri inviati precedentemente con i relativi attributi associati.

Un attributo visibile è la priorità “1” che evidenzierà il messaggio in rosso definendolo ad alta priorità e ignorando le ore impostate come “non disturbare”. Nel caso sì volesse ripetere un messaggio fino ad una conferma dell’utente è possibile sfruttare la priorità “2” chiamata “Emergency Priority” con i relativi parametri.

Server Linux

Se per sfruttare Pushover in Home Assistant è tutto molto semplice, la cosa sì complica se passiamo ad una gestione su server Linux o altri sistemi operativi.

Presupponendo di utilizzare come sistema operativo una distribuzione Linux Debian, o una basata su di essa come ad esempio Ubuntu server, procediamo installando i pacchetti necessari ad eseguire i nostri script BashPerl ed a creare il percorso dove andremo a posizionare i nostri file:

# sudo apt-get update
# sudo apt-get install build-essential libwww-perl
# sudo perl -MCPAN -e 'install Bundle::LWP'
# mkdir /etc/push/

Nello specifico esempio andremo a simulare l’esecuzione su un server NAS creato tramite OpenMediaVault su base Debian. Scaricare quindi questo pacchetto che ho creato, estrarlo e posizionare i file all’interno delle cartelle del nostro server accedendo tramite SSH, poi modificare i file con le informazioni relative ai propri account.

La struttura dei file è visibile nell’immagine sottostante e contiene:

  • /etc/init.d/:
    •  push: Eseguibile che invierà una notifica push all’avvio e spegnimento del server;
  • /etc/push/:
    • prowl_api.key: User Key di un eventuale account Prowl;
    • prowl.pl: Eseguibile Perl per inviare notifiche tramite Prowl;
    • pushover_apitoken_generic.key: Token per le notifiche di tipo generico, associato ad esempio all’applicazione “INFO”;
    • pushover_apitoken_nas.key: Token per le notifiche del nostro server NAS, associato all’applicazione “NAS”;
    • pushover_apiuser.key: User Key del nostro account Pushover;
    • pushover_notification.pl: Eseguibile Perl per inviare notifiche tramite Pushover;
  •  /sbin/:
    • cmd_push: Eseguibile Bash per comporre l’invio della notifica.

Copiati i file è necessario associargli i giusti permessi, abilitare lo script di init e riavviare per applicare tutti i cambiamenti:

# chmod 755 /etc/push/*.pl
# chmod 644 /etc/push/*.key
# chmod 755 /sbin/cmd_push
# chmod 755 /etc/init.d/push
# chmod a+x /etc/init.d/push
# sudo update-rc.d push defaults
# sudo update-rc.d push enable       // Per alcune versioni di Ubuntu potrebbe essere necessario
# sudo reboot

Per eseguire un test manuale o integrarlo in altri script è possibile sfruttare il comando “cmd_push“, al quale aggiungendo il parametro “info” mostrerà un piccolo aiuto su come strutturare il comando:

Nel caso sì volesse sfruttare lo stesso script per gestire molteplici applicazioni, ad esempio aggiungendo in questo caso specifico l’applicazione “UPS”, è possibile modificare il file “cmd_push” configurando le seguenti chiavi:

# Parameters
# Pushover [Notification]
...
pushover_tokenkeyfile_1="/etc/push/pushover_apitoken_nas.key"	  // File token per Applicazione 1 "NAS"
pushover_tokenkeyfile_2="/etc/push/pushover_apitoken_ups.key"	  // File token per Applicazione 2 "UPS"
pushover_tokenkeyfile_3=""
pushover_tokenkeyfile_4=""
pushover_tokenkeyfile_5=""
pushover_tokenkeyfile_6=""
pushover_tokenkeyfile_7=""
pushover_tokenkeyfile_8=""
pushover_tokenkeyfile_9=""
pushover_tokenkeyfile_10=""
...
pushover_token_trigger_1="NAS"			// Nome/ID Applicazione 1 "NAS"
pushover_token_trigger_2="UPS"			// Nome/ID Applicazione 2 "UPS"
pushover_token_trigger_3="-"
pushover_token_trigger_4="-"
pushover_token_trigger_5="-"
pushover_token_trigger_6="-"
pushover_token_trigger_7="-"
pushover_token_trigger_8="-"
pushover_token_trigger_9="-"
pushover_token_trigger_10="-"
...
pushover_expire="90"			// Definire il tempo massimo (s) per le notifiche priorità "2" non confermate
pushover_retry="60"				// Definire ogni quanto (s) con priorità "2" devono riapparire se non confermate
# Prowl
prowl_status="off"				// Nel caso sì volesse abilitare Prowl impostare su "on"
...

Conclusione

Sperando di aver fatto chiarezza sul perché vi potrebbe essere comodo sfruttare Pushover rispetto ad altri servizi, con magari altri specifici vantaggi, vi consiglio di testare tutti i più diffusi protocolli e applicativi per la gestione delle notifiche push e di valutare quello per voi più adeguato. In un prossimo articolo andremo invece a capire come sfruttare Pushover per creare un widget dinamico per Smart Watch tramite la funzione “Glances“.

Se ti è stato utile, perché non...
Mi offri un caffè?

Post correlati

6 commenti

Cribtp 12 Marzo 2021 - 02:36

Ottima guida👍

Rispondi
Vito 14 Marzo 2021 - 12:45

Grazie!

Rispondi
Nicola Reina 11 Marzo 2021 - 13:56

Aspetto la guida per apple watch 🙂

Rispondi
Vito 14 Marzo 2021 - 12:46

è online!

Rispondi
Domenico Pudia 11 Marzo 2021 - 09:35

Ciao intanto complimenti per la guida.
In realtà c’è necessità di acquistare la licenza pushover per il device in uso Android/iOS. Quindi il servizio non è totalmente gratuito, c’è da sottolineare che la licenza costa 5$ ed è perpetua, inoltre vale per tipo di piattaforma.

Rispondi

Lascia un commento

* Utilizzando questo modulo accetti la memorizzazione e la gestione dei tuoi dati da questo sito web.