Package Eventi Naturali

HassioHelp

Package Eventi Naturali

Introduzione

L’idea di creare un package su gli eventi naturali, mi è saltata in mente quando ho iniziato a vedere i primi componenti creati da Malte Franken(exxamalte) per Home Aassistant. Dall’altra parte dell’oceano, hanno realizzato diverse integrazioni relative ad eventi “catastrofici”, anche perchè, ci sono molte istituzioni che pubblicano svariati dati. Allora pian piano ho iniziato a cercare qualcosa di simile in Italia. Beh, non ho trovato molte informazioni a riguardo, così ho raccolto quelle che per ora sembrano funzionare e mi stanno dando diverse soddisfazioni.

Sintesi

Il package invia notifiche e immagini (dove previsto) per gli eventi che si attivano.

Sono inclusi 2 tipi di allerta e varie tipologie di notifiche.

  1. Allerte
    1. Meteo (temporali, gelo, caldo estremo…)
    2. Geologiche (allagamenti, incendi, terremoti)
  2. Notifiche
    1. Caduti fulmini
    2. Criticità meteo
    3. Criticità meteo-idro (alluvioni)
    4. Terremoti
    5. Siccità
    6. Tsunami
    7. Attività vulcaniche

I componenti utilizzati sono:

  1. Burze.dzis.net (Burze) HACS compatibile 
  2. Dipartimento Protezione Civile (DPC) HACS compatibile
  3. Istituto Nazionale di Geofisica e Vulcanologia (INGV) non ancora integrato in HomeAssistant, ma si spera presto. :0) (per adesso è compreso nei file del package)
  4. MeteoAlarm integrato
  5. MeteoAlarm_m by kodi1 HACS compatibile
  6. Global Disaster Alert and Coordination System (GDACS) integrato
  7. World Wide Lightning Location Network (WWLLN) integrato (DEPRECATO da giugno 2020)

Informazioni

A Cosa servono questi componenti.

  • Burze, è un sensore che riguarda le allerte meteo, ma è valido solo per la Polonia. La parte relativa ai fulmini (storms_nearby – temporale nelle vicinanze) è però
    utilizzabile in tutta Europa. Il servizio si avvale di un’ottima fonte, Blitzortung.org. Questo sensore, ci avverte, entro un raggio impostato, quanti fulmini sono caduti negli ultimi minuti, e ci segnala la direzione di quello caduto più vicino alla zona indicata (di solito casa).
  • DPC è un semplice binary sensor che ci avverte della pubblicazione di nuovi Bollettini di criticità nazionale di allerta  Meteo-Idro rilasciati dalla Protezione Civile. Sono allerte, leggermente diverse da quelle classiche per il meteo. Infatti, sono più indicate per i danni che possono causare le condizioni avverse del tempo, che per le previsioni del tempo in se. L’idea di realizzare questo componente, anche se non sono un programmatore, mi è venuta leggendo una nota (“…non rappresentano le allerte ufficiali emanate dal Servizio Nazionale di Protezione Civile”)  sul sito di MeteoAlarm. Ringrazio, anche se non lo conosco personalmente, Giovanni Pirrotta, che ha realizzato un programma per estrarre i dati shape della Protezione Civile, renderli utilizzabile in maniera semplificata, tramite il sito Protezione Civile POP. Vorrei precisare, che per poter estrarre i dati dal sito di Pirrotta, ed averli in Hass, basta crearsi dei binary sensor con platform: rest. (Vedi esempio a fine articolo).
  • INGV è un componete, che spero di vedere presto ultimato, per l’avviso di terremoti (ovviamente già avvenuti :0)) dall’australiano Malte Franken(exxamalte) molto noto per i suoi lavori di estrazione dati in formato GeoRSS e GeoJson. Io e Gianpi, abbiamo un po’ adattato quello che è già pronto da sei mesi sulla repository dell’autore.

Aggiornamento 25/06/2020. Malte Franken, ha accettato la nostra pull request , aggiornando per intero la libreria INGV. Per questo vi invito a mettere una “stellina” al suo lavoro a questo link .

  • MeteoAlarm è un sito (utlimamente un po…”ballerino”) che pubblica gli eventi critici relativi alle condizioni climatiche e non solo. La fonte da cui provengono i dati, sono principalmente quelli dell’Aeronautica Militare, e precisamente dal sito meteoam. Ci sono allerte per 12 eventi differenti (Neve/Ghiaccio, Temporali, Nebbia, Temperature massime estreme, Temperature minime estreme, Eventi Costieri, Incendi bischivi, Valanghe, Pioggia, Alluvione e Pioggia/Alluvione). Questo componente (v.1.05) è già presente ed integrato in Hass, ma da luglio, l’autore rolfberkenbosch ha realizzato la versione 1.0.6, che permette di avere un paio di attributi in più, che restituiscono valori numerici in base al tipo di evento e al livello di allerta. Personalmente l’ho provato, ed è stato molto più facile fare i template, per adesso accontentiamoci di quello integrato e con dei template non proprio “leggeri”. Prometto, di aggiornare il package, non appena, gli sviluppatori di Hass, si decideranno di aggiornare la libreria.
  • GDACS è un’integrazione realizzata da Malte Franken (exxamalte) e permette di avere informazioni sui principali disastri come siccità, terremoti, alluvioni, cicloni tropicali, tsunami e attività vulcaniche in tutto il mondo. Purtroppo, non è in italiano.
  • WWLLN è un altro componente che permette di geo-localizzare i fulmini caduti, e data la mole di dati che esso genera, è consigliabile impostare una finestra temporale(Window) ridotta, per la registrazione dei dati. Questo componente, a differenza di Burze,  geo-localizza i fulmini su mappa, ed utilizza più fonti per la raccolta dati. L’University of Washington le ha raccolte in un singolo sito. Ho preferito inserire anche questo componente, perchè mi da l’idea di quanti fulmini sono caduti nell’arco di tempo impostato.

Requisiti

Installazioni

  1. Installare HACS  Guida.
  2. Successivamente da HACS, installare i Custom Component BurzeDPC e MeteoAlarm by kodi1.
  3. ed in fine, le seguinti Cards per lovelace
    1. Lovelace Card Tools
    2. Auto Entities
    3. Lovelace Card Mod
    4. Fold Entity Row
    5. Vertical stack in card
    6. Paper-buttons-row
    7. Text Divider Row (opzionale)

N.B. Probabilmente, può capitare che la card auto-entities non funzioni sullo smartphone, provate a cambiare il resource del plugin Cards Tools in type: js.

Il “resources:” dovrebbe essere simile a questo:

Per chi utilizza lovelace in modalità Interfaccia Utente (cossìdetta UI o modalità grafica) basta selezionare dal menu in alto destra (i tre puntini verticali) Configurare l’interfaccia utente e poi scegliere nuovamente dallo stesso menu Editor di configurazione grezzo. Si aprirà l’intera configurazione di Lovelace, ed in cima basta agiungere la parte di codice del resources.

Dopo aver installato tutto l’occorrente iniziamo a procurarci i dati.

Burze. Per poter utilizzare questo sensore, occorre registrarsi al sito Burze.dzis.net, ed una volta iscritti, andare nella sezione  API (colonna a sinistra) e prelevare la chiave API. Si vedrà:

La tua chiave di accesso API: b123456789417cc77abc00ff123gg0h12345e25l Numero di richieste per metodi che restituiscono dati per 1 minuto (limite): 0 (10)

MeteoAlarm. Andare sul sito di MeteoAlarm, scegliere la propria regione cliccando sulla cartina e prendere il nome esatto della propria regione.   (come selezionato in blu qui sotto).

Per il custom component, sempre sul sito MeteoAlarm, bisogna copiare la parte finale del link della propria regione, senza “.html”, ad esempio per la Sicilia:

https://www.meteoalarm.eu/it_IT/0/0/IT018-Sicilia.html da cui si ricava il seguente codice IT018-Sicilia che servirà come ID per la configurazione.


Preparare il file /config/secrets.yaml per i dati sensibili. Non obbligatorio ma fortemente consigliato. Volendo possiamo mettere tutti i dati nel file secret. Ma ricordo che ogni dato legato al file secret, se modificato, occorre un riavvio di Hass.

Attenzione. Riguardo il numero ISTAT, poichè ha un formato alfanumerico, va messo tra apici!

Volendo, può anche essere inserito senza apici, ma senza gli zeri iniziali!! (Così vanno tutti bene… istat: 58091,  istat: ‘58091’,  istat: ‘058091’ Questo è errato istat: 058091)

Prima di installare il package, riavviare Hassio per rendere effettivi i componenti.

Scompattate il file zip (link ed istruzioni in allegati) in una cartella a piacere sul PC, poi copiate ed incollate singolarmente le varie cartelle in quella principale di Hass. (in Hassio è /config).

Configurazione

Per la configurazione, abbiamo messo tutto all’inizio del package, dove andranno inseriti i propri parametri.

Ogni riga è composta da tre parti:

  1. da una descrizione SERVIZIO Notify:
  2. da un anchor (richiamo) &notify
  3. dal parametro da utilizzare notify.telegram

L’importante è scrivere dopo gli anchors yaml (&nome_anchor) seguito da uno spazio.

Questo sistema, ovvero di scrivere qualsiasi cosa all’interno di package.node_anchors non compromette il resto della configurazione. Per adesso funziona, evitandoci così, di andare a cercare le varie opzioni da modificare lungo il codice o sostituire i dati con gli strumenti degli editor.

Alcuni esempi per non sbagliare…

Per la riga  SERVIZIO Notify: &notify notify.telegram l’elemento da modificare è l’ultima parte quella in rosso, e andremo a mettere il nostro servizio di notifica, che può essere notify.caio o notify.telegram o notify.family etc,  basta che sia sempre dello stesso dominio notify! Per avere notifiche multiple si può usare notify group.

Nella riga MEDIA PLAYER Alexa (così come altri media_player tipo Google), basta aggiungere le entità dei vostri media player (media_player.studio, media_player.echo_dot_di_caio)

Corretto.

MEDIA PLAYER Google: &media_player_google media_player.red, media_player.sala, media_player.ingresso
MAGNITUDO minimo: &magnitude 3
API KEY Burze: &burze_api_key b123456789417cc77abc00ff123gg0h12345e25l (non errato, ma è fortemente consigliato utilizzare !secret)

Sbagliato.

RAGGIO TERREMOTO km: &radius_quake ‘500’ (è un numero intero non va tra apici)
RAGGIO ZONA GeoAlert metri: &radius_geoalert1000000 (il parametro 1000000 e anchor non sono separati da uno spazio)
LATITUDINE per le zone:

&latitude !secret latitude_home (l’anchor, in questo caso non deve andare a capo)
SERVIZIO Notify: &notify telegram_bot_send_message (non è un servizio notify.)
SERVIZIO Notify: &notify notify.allarme, notify.casa, notify.geronimo (non va bene, va inserito un servizio solo.)
REGIONE MeteoAlaram: &province Emilia Romagna (La regione secondo Meteoalarm va scritta come è sul sito, ovvero, Emilia & Romagna)

Impostazioni

Chiarito il concetto di come scrivere i parametri, vediamo a cosa servono e come impostarli.

SCRIPT centro notifiche è lo script per smistare i messaggi testo e audio. (chi utilizza centro notifiche può eliminare tutti gli script nel package ed impostare script.my_notify)

SERVIZIO Notify è il servizio che utilizzate per le notifiche di testo e se usate Telegram, è valido anche per l’invio di immagini con url o file.

MEDIA PLAYER Google e MEDIA PLAYER Alexa sono i campi dove vanno inserite le vostre entità media player. (se non si posseggono, basta lasciare due apici, singoli ''o doppi  "", senza spazi)

Filtri

RAGGIO ZONA MeteoAlert metri e RAGGIO ZONA GeoAlert metri sono campi numerici e non vanno tra apici. Rappresentano l’area entro la quale, al verificarsi di un evento meteo (es. WWLLN) o geologico (es. INGV), con coordinate geografiche,  verrà registrata l’entità in Hass (es. geo_location.m_2_4_svizzera_svizzera)

RAGGIO TERREMOTO km è un campo numerico e non va messo tra apici. La distanza in chilometri attorno alle coordinate di casa in cui sono inclusi gli eventi sismici.

MAGNITUDO minimo è un campo di tipo float, non necessita di apici. Rappresenta il magnitudo entro il quale il sistema deve registrare l’entità. (Come impostazione minima è consigliabile 3.0 o 3.5 – si può scrivere anche 3 al posto di 3.0)

RAGGIO BURZE Km è un valore numerico e non va tra apici. Rappresenta il raggio entro il quale, se si verifica l’evento, si attiva il sensore.

RAGGIO WWLLN km anche questo campo è numerico e non va tra apici. Rappresenta il raggio massimo entro il quale verranno create le entità.

WWLLN finestra minuti è un valore numerico non va tra apici. Rappresenta il lasso di tempo per cui creare le entità in Hass. (di default è 10 minuti, io l’ho impostato per le ultime 6 ore)

Note.

Nelle automazioni troverete:

  1. Title. Il titolo dell’evento che andrà in automatico nei messaggi di testo o nella didascalia delle foto.
  2. Message. Il messaggio di testo che verrà inviato. Se è presente un’immagine, il messaggio verrà incorporato nella foto come didascalia.
  3. Message_tts. Messaggio solo per la parte audio. Se omesso o vuoto, non verrà riprodotto alcun messaggio.
  4. File. Ho inserito delle immagini (per lo più stickers telegram) nella cartella config/www/hassiohelp/pkg_natural_events inerenti ai sensori attivi.
  5. Url. Principalmente utilizzato per l’invio dell’immagine con epicentro del terremoto. Ricordo che sotto a magnitudo 3.0 non verranno inviate immagini, in quanto INGV non le pubblica.
  6. Notify e media_player e script, sono gli alias YAML (esempio *notify) dove verranno inseriti i parametri già configurati con gli anchor yaml.
  7. Input boolean per la condizione di invio immagini (per adesso solo per Burze e MeteoAlarm).
  8. Data o data_template. Al disotto di questi parametri, ci possono essere delle opzioni che riguardano il centro notifiche. Queste, non influiscono se non avete il package Centro Notifiche, e se usate lo script presente nel package eventi naturali.

Nello script troverete:

  1. Invio messaggio testo a condizione che url e file non siano presenti, e che il servizio notify è definito.
  2. Invio di immagini da url e file più eventuale titolo e messaggio come didascalia. (evitando di ricevere due messaggi)
  3. Notifica audio, nell’orario tra le 07:00-23:00 e che il campo(o pseudo-variabile) message_tts non sia vuoto.
  4. Invio dei messaggi tts ai rispetivi media player.

Nello zip troverete le seguenti cartelle:

  • config/packages/natural_events.yaml (File del package)
  • config/custom_components/ingv_centro_nazionale_terremoti_client (Anteprima componente Terremoti)
  • config/www/hassiohelp/pkg_natural_events (Immagini usate nel package)
  • config/lovelace/cards/ (Cards per lovelace)

Si potrebbe dividere il package dalla configurazione, come abbiamo già visto in altri (xiaomi allarm, centro notifiche, controllo carichi) ma obiettivamente, questo package non è nulla di complesso… quindi un file unico va più che bene :0)

Per chi utilizza il centro notifiche, deve sostituire lo script script.natural_events_notifications con il solito script.my_notify, modificare le automazioni eliminando il superfluo, e fare attenzione al servizio notify (non va inserita l’entità completa ma solo il nome, esempio ‘telegram’). L’ultimo aggiornamento l’ho pubblicato su GitHub. Ho inserito Url e File per l’invio di foto con telegram, Ariela e qualche correzione. Per chi è interessato, altre informazioni le può trovare sul sito e sul forum.

Suggerimenti

Riguardo gli avvisi DPC, come accennato in precedenza, per chi NON volesse utilizzare il custom_component, allego un paio di esempi.

Allegati

Lovelace

Personalmente utilizzo lovelace in modalità YAML, per cui le cards si trovano nella cartella lovelace.

  1. card_natural_events_light.yaml
  2. card_natural_events_picture.yaml
  3. card_natural_events_picture_menu.yaml

Per chi usa la modalità grafica (storage), deve selezionare e copiare il contenuto della card, o con un editor di testo o direttamente su Github scegliendo modalità RAW (vedi link qui sopra). Successivamente, attraverso l’interfaccia grafica, nella scheda panoramica, andare sui tre pallini in alto a destra e scegliere configura l’interfaccia utente, in basso a destra comparirà un’icona a forma di cerchio con il simbolo “+”. Cliccare sull’icona e scegliere manual card. Selezionare tutto nella parte a sinistra e incollare il contenuto precedentemente copiato. Dovreste già vedere l’anteprima, quindi salvare e chiudere cliccando sulla x in alto a sinistra.

All’interno delle cards, c’è da sostituire il “person.” per calcolare la distanza tra il dispositivo e il terremoto… (visualizzato solo se si è fuori casa).

Per la card_natural_events_picture.yaml, realizzata in pochi minuti, ringrazio Enrico per la collaborazione.  La card_natural_events_picture_menu.yaml, è un mix delle prime due card. (Altri esempi non aggiornati, con text divider row sono qui)

 

Packages

Poiché il sito è molto limitato, ho caricato i file su github Package-Natural-Events. (Aggiornato per Home Assistant versione 0.112 e successive).

Per scaricarlo, basta cliccare su clone or download e salvare il file zip sul pc. Estrarre il contenuto, e copiare la cartella config che si trova in Package-Natural-Events-master nel percorso principale di Hassio, o come detto in precedenza, ed è il mio consiglio, copiare le cartelle una per una in base a ciò che vi interessa.

Spero che sia di vostro gradimento, poichè, è stato abbastanza faticoso mettere tutto insieme. Ovviamente, siete liberi di apportare tutte le modifiche che volete.

Ed infine, mi auguro che la card sia sempre verde :0). 

Discussione e problematiche vedi spazio sul Forum 

Sostienici, dona un caffè al nostro sito

 

 

13 risposte

  1. Avatar matteo ha detto:

    dove trovo la hui-markdown-card?

    • Caio Sweet Caio Sweet ha detto:

      Non esiste, è la markdown normale messa sotto una card type: entities… per usare le card come entities, va messo hui-cardufficiali-card

  2. Avatar jokerigno ha detto:

    Ciao,

    solo una nota. Dark Sky è necessario perchè il package chiama il sensore dark_sky_daily_summary.

    Se non presente compare un fastidioso ‘unknown’ al centro della card.

    Ciao e GRAZIE !

    • Caio Sweet Caio Sweet ha detto:

      Beh, basta che lo levi e lasci vuoto ?
      O ne metti un altro che ti piacerebbe vedere li… O ci scrivi un qualcosa di tuo… ?
      esempio
      elimini la parte da font size=”3″{{states(‘sensor.dark_sky_daily_summary’)}} /font
      oppure ci metti {{states(‘group.natural_events’)}}
      o un altro sensore…

    • Caio Sweet Caio Sweet ha detto:

      ok, ho aggiornato la card… non dovrebbe più uscire nulla se non c’è quel sensore.

  3. Avatar Gianluca ha detto:

    salve, complimenti per le ottime guide e packages,
    avevo intenzione di implementare solo il servizio DPC e creare un’automazione che mi avvisasse in caso di avvisi ,
    ho creato il binary sensor con queste entità:

    – binary_sensor.dpc_idrogeologico_oggi
    – binary_sensor.dpc_idraulico_oggi
    – binary_sensor.dpc_temporali_oggi
    – binary_sensor.dpc_idrogeologico_domani
    – binary_sensor.dpc_idraulico_domani
    – binary_sensor.dpc_temporali_domani

    ho poi creato un’automazione modificando quella da voi postata in questo modo:
    automation:
    – alias: natural_events_protezione_civile_notifications
    initial_state: true
    trigger:
    platform: state
    entity_id:
    – binary_sensor.dpc_idrogeologico_oggi
    – binary_sensor.dpc_idraulico_oggi
    – binary_sensor.dpc_temporali_oggi
    – binary_sensor.dpc_idrogeologico_domani
    – binary_sensor.dpc_idraulico_domani
    – binary_sensor.dpc_temporali_domani
    condition:
    – condition: and
    conditions:
    – condition: or
    conditions:
    – condition: template
    value_template: “{{ trigger.to_state.state == ‘on’ }}”
    – condition: or
    conditions:
    – condition: template
    value_template: “{{ trigger.from_state.state == ‘off’ }}”
    – condition: template
    value_template: “{{ trigger.to_state.attributes.data != trigger.from_state.attributes.data }}”
    – condition: template
    value_template: “{{ trigger.to_state.attributes.allerta != trigger.from_state.attributes.allerta }}”
    – condition: template
    value_template: “{{ trigger.to_state.attributes.info != trigger.from_state.attributes.info }}”
    action:
    – service: notify.gianluca
    data_template:
    title: >-
    Protezione Civile –
    {% if trigger.from_state.state == ‘off’ %}
    {{ trigger.to_state.attributes.friendly_name }}.
    {% else %} AGGIORNAMENTO DPC. {% endif %}
    message: >-
    {% if trigger.from_state.state == ‘off’ %}
    Bollettino Protezione Civile
    {% else %} Aggiornamento bollettino. {% endif %}
    Rischio {{trigger.to_state.attributes.rischio}}. Allerta {{trigger.to_state.attributes.allerta}} {{trigger.to_state.attributes.info}}.
    – service: tts.google_say
    data_template:
    entity_id: media_player.google_home, media_player.google_home_mini
    message: >-
    {{ trigger.to_state.attributes.friendly_name }}. Allerta {{trigger.to_state.attributes.allerta}} {{trigger.to_state.attributes.info}}.
    language: ‘it’
    cache: false

    mi sapreste dire se è corretta? da verifica tramite Convalida configurazione nelle impostazioni di Hassio risulta corretta ma non ho modo di verificare se non arriva un avviso dalla Protezione CIvile…
    grazie

    • Caio Sweet Caio Sweet ha detto:

      Da cellulare non riesco a vedere bene la formattazione, ma mi pare corretta.
      Per vedere se funziona, vai in dev-tools stati, e gli cambi lo stato da off a on e premi su set… Dovrebbe partire la notifica, chiaro, con gli attributi none

  4. Avatar matteo ha detto:

    wwlln non funziona piu ?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *