Al momento stai visualizzando Radioattività in Home Assistant senza hardware

Radioattività in Home Assistant senza hardware

  • Autore dell'articolo:
  • Categoria dell'articolo:Home Assistant
  • Commenti dell'articolo:29 commenti
  • Ultima modifica dell'articolo:23 Marzo 2022

Vista la cupa situazione internazionale in cui la Russia minaccia neanche tanto velatamente di utilizzare le proprie armi nucleari ed attacca militarmente le centrali atomiche ucraine mi sono chiesto: sarà possibile monitorare la radioattività in Home Assistant senza avere un contatore geiger?

Essendo che stai leggendo questo articolo, che altrimenti non esisterebbe, la risposta è evidentemente “si”. Esiste infatti un sito dell’Unione Europea chiamato Joint Research Centre che ospita l’EURDEP (EUropean Radiological Data Exchange Platform) che è un meccanismo di interscambio dei dati relativi alla rilevazione di radioattività quasi in real time cui partecipano 39 paesi.

In tale sistema, nato dopo il disastro di Chernobyl del 1986, sono collegate innumerevoli centraline di monitoraggio delle radiazioni su tutto il territorio europeo e non solo.

Il sito di accesso per le mappe in tempo reale è il seguente: https://remon.jrc.ec.europa.eu/About/Rad-Data-Exchange (bisogna accettare i cookie e ricaricare la pagina).

Radiological Map del Joint Research Centre - radioattività in Home Assistant
Un’anteprima del sito Radiological Map del Joint Research Centre

Sensori radioattività in Home Assistant

Le mappe sono interessanti e ti consiglio di tenere da parte il bookmark, ma a noi interessa creare dei sensori nella nostra istanza di Home Assistant quindi sfrutteremo i dati JSON che il sito mette a disposizione.

Possiamo creare due tipi di sensori diversi, a loro volta divisibili in due:

  1. Sensore di un singolo punto di monitoraggio (valore medio e valore massimo)
  2. Sensore di un’area di punti di monitoraggio (valore medio e valore massimo)

Entrambe le tipologie hanno un aggiornamento piuttosto lento (1 ora) ma sufficiente per avere un valore abbastanza aggiornato e puntuale come il seguente:

Grafico radioattività in Home Assistant

La prima tipologia riporta i dati di una singola stazione prelevando il valore medio dell’ultima ora riportata ed il valore massimo che è stato riportato sempre all’interno di quest’ora.

La seconda tipologia, invece, riporta i dati di un numero di stazioni di monitoraggio tanto più elevato quanto più decrementiamo lo zoom sulla mappa e ci permette di avere una visione di insieme e più stabile relativa ad un’area di territorio.

Il codice YAML per definire i sensori di radioattività in Home Assistant

Inizio esponendo il codice YAML da inserire in un package, direttamente dalla mia istanza di Home Assistant. In seguito vedremo come personalizzarlo per le tue esigenze.

rest:
  - resource: https://rewidget.jrc.ec.europa.eu/v3/objects/point?id=ITVVF0049
    scan_interval: 1800
    headers:
      Content-Type: application/json
    sensor:
      - name: Radiazioni a Saronno
        unit_of_measurement: nSv/h 
        value_template: "{{ value_json.avg.val }}"
      - name: Radiazioni a Saronno Max
        unit_of_measurement: nSv/h 
        value_template: "{{ value_json.max.val }}"
  - resource: https://remap.jrc.ec.europa.eu/api/maps/polygon?id=142_64&zoom=5
    scan_interval: 1800
    headers:
      Content-Type: application/json
    sensor:
      - name: Radiazioni zona
        unit_of_measurement: nSv/h 
        value_template: "{{ value_json.avg }}"
      - name: Radiazioni zona Max
        unit_of_measurement: nSv/h 
        value_template: "{{ value_json.max }}"

Abbiamo definito quattro sensori, derivanti da due diverse richieste REST che verranno aggiornate ogni 1800 secondi (mezzora) per non stressare eccessivamente il sito che in questi giorni ad ogni notizia riguardante le centrali nucleari ucraine arranca un po’.

Colgo l’occasione per raccomandare, se deriviamo più sensori dai dati di una richiesta REST come in questo caso, di raggrupparli in sensori rest (come fatto qui) e non di dichiarare singoli sensori con platform rest in quanto questi ultimi effettuerebbero una singola richiesta REST per ogni sensore.
Con questa sintassi invece avviene una singola richiesta e dai dati vengono estrapolati i vari sensori. I gestori dei siti ringrazieranno… 🙂

Ti spiego ora come personalizzarli per ottenere i dati delle stazioni che desideri.

Sensori per singolo punto di monitoraggio

La prima delle due richieste REST definite preleva le radiazioni medie e massime del punto di monitoraggio di Saronno. L’identificativo della centralina è indicato dal parametro id della querystring: https://rewidget.jrc.ec.europa.eu/v3/objects/point?id=ITVVF0049

Basta che lo sostituisci con quello di tuo interesse. Per trovare questo valore devi usare la mappa avanzata, posizionare il mouse sulla centralina di tuo interesse e rilevare l’id dal tooltip oppure cliccando su di essa appare nell’elenco di sinistra:

Dettagli punto di monitoraggio di Saronno - Radioattività in Home Assistant

Cliccando sul link della richieta possiamo vedere i dati JSON restituiti (formattati per chiarezza):

{
	"avg": {
		"title": "Average Gamma Dose Rate",
		"val": 82.57
	},
	"footer": {
		"cnt": "Networks in selected area",
		"common": "Calculated from measurements over last 24 hours",
		"info": "Station name"
	},
	"max": {
		"title": "Maximum Gamma Dose Rate",
		"val": 88.7
	}
}

Prendiamo in esame il primo sensore definito per la richiesta per capire come funziona:

      - name: Radiazioni a Saronno
        unit_of_measurement: nSv/h 
        value_template: "{{ value_json.avg.val }}"

Oltre al nome e all’unità di misura definiamo tramite il valore di value_template il percorso in cui prelevare il valore dal JSON restituito. In questo caso verrà prelevato il valore dell’attributo "val" dall’insieme "avg" dell’oggetto JSON restituito (identificato dall’oggetto value_json nel template). Nell’esempio il valore restituito dal template sarà "82.57".

Sensori di una intera zona di monitoraggio

La seconda delle due richieste REST definite preleva le radiazioni medie e massime da un insieme di centraline presenti nell’area desiderata, definita anch’essa nella querystring:
https://remap.jrc.ec.europa.eu/api/maps/polygon?id=142_64&zoom=5

Per trovare questi valori devi invece usare la mappa semplice, zoomando fino a trovare un esagono che corrisponda all’area di tuo interesse. Per trovare i valori dovrai usare gli strumenti sviluppatori del browser per vedere la richiesta fatta dalla pagina al click dell’esagono.

Se usi Chrome, per esempio, sarà sufficiente premere F12 e cliccare nel pannello Network, che ci mostra tutte le risorse HTTP richieste.

Ora clicca sull’esagono che ti interessa e troverai una richiesta fatta così:

polygon?id=143_63&zoom=5&_=1647991987998

I due valori 143_63 e 5 sono i due valori da sostituire nell’url per avere i valori delle centraline della zona (i nomi delle quali sono riportati nel pannello di sinistra nella pagina web):

Come interpretare i valori di radioattività in Home Assistant?

I valori restituiti da tali sensori sono espressi in nSv/ora (nanosievert/ora).
Senza entrare nei dettagli (se sei interessato qui la pagina di Wikipedia) basti sapere che, come in tutto il sistema decimale, i sottomultipli sono:

  • Sievert: dose equivalente che misura gli effetti/danni sull’organismo
  • mSv/h (millisievert): 10-3 Sievert, ovvero per fare un Sievert sono necessari 1.000 Millisievert
  • μSv/h (microsievert/ora): 10-6 Sievert, ovvero per fare un Sievert sono necessari 1.000.000 microsievert
  • nSv/h (nanosievert): 10-9 Sievert, ovvero per fare un Sievert sono necessari 1.000.000.000 nanosievert.

Avendo chiara questa scala di sottomultipli vediamo dei valori di riferimento per farci un’idea di come interpretare i dati nelle giuste proporzioni:

CausaDose equivalente
Fondo naturale (media mondiale)2,4 mSv (all’anno)
Massima dose fondo naturale (a Ramsar)131 mSv (all’anno)
Radiografia convenzionale0,05 ~ 0,7 mSv (seduta)
Tomografia computerizzata (TAC)2 ~ 15 mSv (seduta)
Inizio limite rischio100 mSv
Radioterapia1.500 ~ 2.000 mSv (seduta)
Radiazioni assorbite con varie pratiche mediche (fonte: Wikipedia)

Per intenderci: la stazione di Saronno riporta un valore mediamente intorno ai 75 nSv/h. Per avere le radiazioni assorbite annualmente di fondo: 75 x 24 x 365 = 657.000 nSv/anno, ovvero 657 μSv/anno, o ancora 0,657 mSv/anno.

Gli USA hanno fissato il limite assorbibile e, secondo loro, curabile a 500 mSv per gli operatori volontari che intervengono in caso di incidenti nucleari (fonte).

Quali effetti possono avere delle alte concentrazioni di radiazioni ionizzanti nel breve periodo?

Dose equivalenteEffetti biologici
1 SvAlterazioni temporanee dell’emoglobina
2 ~ 3 SvNausea, perdita di capelli, emoragie
4 SvMorte nel 50% dei casi
6 SvSopravvivenza improbabile
Effetti sulla salute di radiazioni assorbite in brevi periodi (fonte: Wikipedia)

Altro parametro di riferimento possono essere le radiazioni assorbite dai liquidatori del disastro di Chernobyl (le persone che sono state più esposte): più di 100 mSv.

Conclusione

Non far si che questi dati diventino una fobia, spero solo di aver mostrato con degli esempi pratici come creare dei sensori REST creando al contempo delle entità in Home Assistant altamente inerenti al periodo storico in cui viviamo, nella speranza di non vederli mai discostare in maniera significativa.

Ti è piaciuto questo contenuto?

Se ti è stato utile l’articolo che hai letto potresti pensare di darmi una mano offrendomi qualche caffè!
Oltre ad aiutarmi a star sveglio nelle nottate di ricerche e scrittura mi daresti una mano concreta nel sostenere le spese del server web, incentivandomi a produrre altri contenuti di qualità.

Puoi usare Paypal:

Oppure Buymeacoffee:

Henrik Sozzi

Sono un analista programmatore per lavoro e per passione. Amo la domotica, la stampa 3D e la tecnologia in generale. Mastodon: @pixel

Questo articolo ha 29 commenti.

  1. ClaudioG

    Bella idea e, soprattutto attuale!
    Peccato che io viva nel mezzo del… deserto dei sensori!

    1. Henrik Sozzi

      Grazie, era anche uno stimolo a capire i sensori rest. Purtroppo ci sono effettivamente zone scoperte ma si può supporre che eventuali contaminazioni (speriamo mai…) arriverebbero da una certa parte quindi potresti inserire i sensori più vicini nella direzione della probabile provenienza.

  2. daniele

    Prezioso come sempre nello spiegare tutto il processo – c’è da imparare ;). Infatti ho dovuto lottare con il punto di bologna che da val 0. alla fine leggendo e rileggendo ho capito come verificare l’url della richiesta, il mio è

    https://rewidget.jrc.ec.europa.eu/v3/objects/point?id=ITER2204

    e sembra, se interpreto bene, un problema di manutenzione server; risposta link:

    {“avg”:{“title”:”Average Gamma Dose Rate”,”val”:0},”error”:”Service is under maintenance”,”footer”:{“cnt”:”Networks in selected area”,”common”:”Calculated from measurements over last 24 hours”,”info”:”Station name”},”max”:{“title”:”Maximum Gamma Dose Rate”,”val”:0}}

    1. Henrik Sozzi

      Grazie per le belle parole! 🙂
      Si, non è l’unico in manutenzione, a quanto pare… Configura anche la zona, quella è più probabile che funzioni in modo più costante in quanto coinvolgendo diverse centraline se una specifica non funziona le altre comunque forniscono i dati.

  3. Corrado

    Ottima idea che ho subito implementato in parallelo al mio sensore HW. Peccato che alcuni siti sulla mappa, tipo quello di CREMONA, siano non aggiornati dal 23 che corrisponde alla data di pubblicazione dell’articolo.
    Strano…

    Grazie Henrik per i tuoi contributi sempre molto interessanti !!!

    1. Henrik Sozzi

      Che sensore HW hai? Come lo integri in HA?
      Si, alcune centraline riportano di essere in manutenzione ma credo sia complice anche l’enorme richiesta di questi giorni. Siamo a vedere.
      Grazie per bene parole! ❤️

  4. Christian

    ciao, ho seguito la tua guida, come buona parte delle altre, sei bravissimo, ma non mi compaiono i sensori in HA. Cosa sbaglio?

  5. Christian

    no certo che funziona, errore stupido mio, grazie 🙂

  6. Corrado

    Ciao Henrik, dopo l’aggiornamento di HA 2022.9.x non ricevo più informazioni dai sensori, a te funziona ancora ?

  7. Corrado

    Problema temporaneo é ripartito tutto.

    1. Henrik Sozzi

      Ottimo, non ho fatto in tempo a risponderti 😜
      Comunque mi è capitato che il sito non funzionasse bene per giorni interi e quindi i sensori andassero in unavailable.

  8. ClaudioG

    Buongiorno.
    Facendo riferimento a quanto tristemente accaduto nelle Marche, sarebbe possibile implementare lo stesso sistema di acquisizione dati per autoinviarsi l’allerta meteo prelevandolo dal sito della protezione civile e gestendolo in Ha, magari con una notifica sui cellulari di famiglia?
    Grazie dell’attenzione

    1. Henrik Sozzi

      Ottima idea! Ci proverò a guardare. Se espongono dei dati fruibili si può fare ma non ci contare troppo… In Italia ci pensano raramente 😓

  9. Matteo

    Package interessante che ho implementato da un po. Oggi però da questo errore in verifica configurazione: Package controllo_radiazioni setup failed. Component rest cannot be merged. Expected a dict.
    Chissà che cosa è successo?

    1. Henrik Sozzi

      Grazie, appena ho un attimo cerco di verificare. Dal messaggio che da sembra che sia cambiata la sintassi dei componenti REST (che ho disattivato da un po’ quindi non mi sono accorto). Se scopro qualcosa ti avviso 🙂

    2. Henrik Sozzi

      E’ un errore nella versione 2022.11.2! Qui l’issue che lo documenta. Fortunatamente c’è già una PR che corregge l’errore che sarà inclusa nella versione 2022.11.3.
      Se volessi tornare alla versione 2022.11.1 come ho fatto io puoi dare questo comando dalla console o da SSH: ha core update --version 2022.11.1
      Oppure aspetti l’aggiornamento 2022.11.3. Ciao!

  10. daniele

    Ciao Henrik scusami ma il pakage mi da questo errore:

    Logger: homeassistant.config
    Source: config.py:357
    First occurred: 14:20:14 (5 occurrences)
    Last logged: 18:19:17
    Package radiazioni setup failed. Integration rest cannot be merged. Expected a dict. (See /config/packages/radiazioni.yaml:0).

    a te nulla? io non ho cambiato nulla del file radiazioni, sai dirmi cosa fare?

    1. maat2

      Ho lo stesso problema

    2. Henrik Sozzi

      Appena ho un attimo cerco di verificare. Dal messaggio sembra che sia cambiata la sintassi dei componenti REST (che ho disattivato da un po’ quindi non mi sono accorto). Se scopro qualcosa ti avviso 🙂

    3. Henrik Sozzi

      E’ un errore nella versione 2022.11.2! Qui l’issue che lo documenta. Fortunatamente c’è già una PR che corregge l’errore che sarà inclusa nella versione 2022.11.3.
      Se volessi tornare alla versione 2022.11.1 come ho fatto io puoi dare questo comando dalla console o da SSH: ha core update --version 2022.11.1
      Oppure aspetti l’aggiornamento 2022.11.3. Ciao!

      1. ClaudioG

        La versione 2022.11.3 a me ha risolto!

  11. ClaudioG

    Azz… hanno tolto la centralina a Trapani.
    Buon nuovo anno a tutti!

    1. Henrik Sozzi

      Ciao Claudio, purtroppo hanno tolto anche la centralina di Saronno, che era la più vicina a me. Non bastasse ho visto che hanno deprecato l’url per le centraline singole che non funziona più e il formato dei dati non è più JSON ma XML (anche per i dati di zona). Almeno da un’occhiata rapida che ho dato.
      Bisogna che un giorno mi metta lì ad aggiornare l’articolo…

      1. Aljosha

        Ciao Henrik,

        effettivamente anche io ho notato da diverso tempo che l’Url delle singole centraline non funzionava di più, ma sto diventando pazzo a prendere i dati di zona in XML.
        Questo è il mio XML:
        https://remap.jrc.ec.europa.eu/api/maps/polygon?id=1139_518&zoom=8

        non dovrebbe essere sufficiente fare la richiesta in questo modo?
        rest:
        – resource: https://remap.jrc.ec.europa.eu/api/maps
        scan_interval: 1800
        headers:
        Content-Type: application/json
        sensor:
        – name: Radiazioni a Crevoladossola
        unit_of_measurement: nSv/h
        value_template: “{{ value_json.MapInfo.Avg}}”

        Non ne sto venendo a capo :-/

        1. Henrik Sozzi

          Ciao Aljosha,
          francamente non ci ho ancora sbattuto la testa con l’XML. L’ultima volta che ci avevo provato andava fatto un parse con RegEx trattandolo come testo (terribile) ma vedo dalla documentazione che se la risposta ha content-type:application/xml viene automaticamente convertita in JSON secondo queste regole.
          Puoi usare questo tool, come indicato nella documentazione, per convertire l’XML in JSON come fa Home Assistant, così da saperti regolare. Puoi anche indicare una stringa di ricerca json path per verificare se funziona e che risultato ti restituisce (basta che sostituisci value_json con $).
          Io l’ho provato come l’hai scritto te e funziona, restituisce il risultato atteso (in quel tool).
          Su Home Assistant ora non ho tempo di effettuare verifiche ma quando potrò sistemo i sensori e revisiono l’articolo con il risultato del lavoro.
          Se nel frattempo riesci ad ottenere un risultato fai un fischio 😉

          1. Aljosha

            Se ci riesco sarai il primo a saperlo 😉 Grazie!

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.