Al momento stai visualizzando Radioattività in Home Assistant senza hardware

Radioattività in Home Assistant senza hardware

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

ATTENZIONE!
I sensori non funzionano più attualmente in quanto il sito ha cambiato URL per le richieste singole e cambiato formato per quelle di una zona.
Cercherò di trovare il tempo di scavare un po’ per aggiornare la sintassi così da renderla funzionante.
Se hai informazioni utili contattami così aggiorno l’articolo e cito ovviamente il tuo contributo!

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 34 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!

  12. Graziano

    Ho provato a fare il package ma poi mi sono accorto che non funziona più. Tra l’altro serbe andata bene anche a me la centralina di Saronno (abito a Limbiate) ma non compare più.
    Comunque sito molto interessante.

    1. Henrik Sozzi

      Ciao Graziano, si purtroppo hai ragione. E’ già da un po’ che il sito ha cambiato delle richieste e non funziona più come l’ho scritto al tempo. Purtroppo non ho avuto tempo di mettermi lì ad aggiornare, nel frattempo ho messo un warning nell’articolo per evitare di far perdere tempo come è successo a te (perdonami).
      La richiesta di zona funziona ancora solo che restituisce i dati in XML anzi che in JSON. Bisognerà quindi cambiare leggermente la sintassi per prelevare i campi ma non ho mai provato a fare richieste xml in Home Assistant quindi finchè non mi ci metto a muso duro non ho una soluzione pronta.
      Grazie per la segnalazione.

  13. daniele

    Ciao Henrik, scusami ma ho una curiosità/preoccupazione, personalmente è dal giorno della notizia della nube radioattiva (credo venerdi 19/05) che cerco di vedere le mappe dal sito che hai linkato nel tuo articolo ma non riesco più a collegarmi, a te riesce di vedere i dati? speriamo!. I giornali parlano di fake news ma fanno specie le coincidenze.

    1. daniele

      Tutto è ritornato a posto, valori nella media. sorry.

    2. Henrik Sozzi

      Ciao Daniele, perdonami se ti rispondo così in ritardo, è un periodo in cui il lavoro mi sta rubando l’anima e quando ho letto la notifica sul cell del tuo commento “devo rispondergli con cura” rimandando alla sera sul PC e… mi sono dimenticato 🙁
      Non ti preoccupare per quella notizia sembra del tutto la solita disinformazione russa per mettere pressione e paura alla popolazione Europea (come mille altri casi precedenti). Il sito di monitoraggio europeo è andato in tilt perchè evidentemente è un po’ sottodimensionato, già normalmente è lento e a volte va ko per cose molto minori. Quella notizia ha aumentato enormemente il traffico mandando ko il sito (giocando ulteriormente a favore della disinformazione russa… “avete visto? Hanno spenso la rete di monitoraggio per nascondere la contaminazione alla popolazione…”)
      Nello specifico se fosse esploso il deposito di munizioni all’uranio impoverito si sarebbe contaminata (pochissimo) solo quella piccolissima zona. L’uranio impoverito è pesantissimo (viene usato nei proiettili proprio per quello) e ricadrebbe immediatamente al suolo, non si soffermerebbe come polvere nell’aria.
      Inoltre non genererebbe emissioni gamma ma alfa (così ho letto dai vari esperti).
      Se la situazione ti impensierisce e vuoi informarti sul conflitto in Ucraina non posso non consigliarti il canale youtube e telegram di Parabellum.

Rispondi

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