Bonjour à tous,
Je partage ici mon expérience dans l’installation d’un compteur Geiger derrière MQTT et Home Assistant avec publication des données sur la carte GMC Counter World map.
1 ) Choix du matériel
Mon choix s’est porté sur la matériel de la société CQ Electronics dont les produits sont disponibles en ligne sur les grandes plates-formes, sont réputés fiables, bien intégrés à MQTT, bien documentés (par RFC) et sont très bons marchés. Il existe deux produits phares :
Le GMC-320S doté d’une interface série. Compter environ 100€.
Le GMC-500+ doté de deux tubes, d’une interface série et d’une connexion WIFI pour publier les informations directement sur la carte mondiale GMC. Compter environ 160€.
Mon choix s’est porté sur le GMC-320S car je n’utilise pas le WIFI et je voulais une solution 24h/24 derrière Home Assistant et MQTT. Quand j’ai fait mon choix, je ne savais pas que le GMC-500+ comportait deux tubes et qu’il avait un spectre de détection plus élevé. Mais je suis satisfait de mon achat.
2 ) Mise en service du compteur Geiger
Pour la mise en service, il faut simplement connecter le compteur Geiger via le câble USB fourni à la Raspberry Pi (mon cas) ou à l’ordinateur qui héberge MQTT/Home Assistant. Le compteur Geiger se recharge (une batterie lui permet de tenir plusieurs jours en autonomie) et surtout il compte les premières radiations en CPM (count per minute). Il faut un certain nombre minimum de CPM pour que le compteur Geiger les affiche. Cela prend plusieurs heures et c’est normal.
3 ) Acquisition des données via MQTT
J’ai fait le choix d’acquérir les données via MQTT. Il existe plusieurs projets d’acquisition de matériel GMC, pas toujours à jour. Mon choix s’est porté sur gqmqtt, un projet écrit en GO :
J’ai publié un Dockerfile et un fichier docker-compose sous forme d’une pull-request pour ceux que cela intéresse. Notez que je suis dans Docker et pas dans HA-OS en mode supervisé.
Pour HA-OS en mode supervisé, il existe ce projet d’acquisition, qui semble maintenu, mais je ne l’ai pas testé vu que je n’utilise pas HA-OS :
4 ) Configuration Home Assistant
Dans Home Assistant, j’ai créé les entités suivantes :
mqtt:
sensor:
- name: "GMC320.cpm"
state_topic: "tele/geiger/cpm"
unit_of_measurement: "cpm"
sensor:
- platform: template
sensors:
gmc320_usvh:
friendly_name: "GMC320.uSvh"
value_template: "{{ ((states('sensor.gmc320_cpm') | float) / 157) | round(2) }}"
unit_of_measurement: "uSv/h"
Dans l’interface de Home Assistant, j’ai créé l’agrégat statistique sensor.gmc320_acpm, qui est la moyenne des CPM sur une semaine.
5 ) Publication des données sur la GMC World map
J’ai créé un compte sur la GMC Counter World map (userID), et ajouté mon compteur Geiger (counterID).
Ensuite, j’ai ajouté la configuration suivante pour publier un relevé toutes les 5 minutes :
rest_command:
publier_capteur_gmc:
url: 'http://www.GMCmap.com/log2.asp?AID=XXXX&GID=YYYY&CPM={{ states("sensor.gmc320_cpm") }}&ACPM={{ states("sensor.gmc320_acpm") }}&uSV={{ states("sensor.gmc320_usvh") }}'
method: 'GET'
automation:
- alias: Publier la valeur du capteur Geiger sur GMC
trigger:
platform: time_pattern
minutes: '/5' # Toutes les 5 minutes
seconds: '12'
action:
service: rest_command.publier_capteur_gmc
Et voilà tout est en ligne !
6 ) Récupération des données depuis GMC World map
Pour ceux qui utilisent un GMC-500+ publiant directement les données sur la GMC Counter World map ou ceux qui souhaitent récupérer les données d’un compter Geiger publié sur la GMC Counter World map.
D’abord il faut aller sur la carte et cliquer sur le compteur Geiger qui vous intéresse et afficher les données historique. Dans l’URL, vous lirez l’identifiant PARAM_ID du compteur Geiger :
Muni de l’identifiant du compteur Geiger, l’intégration suivante fonctionne parfaitement :
template:
- sensor:
- name: geiger_meter_cpm
icon: mdi:radioactive-circle-outline
unique_id: geiger_meter_cpm
unit_of_measurement: "CPM"
state: >
{{ state_attr('sensor.geiger_meter', 'CPM') }}
- name: geiger_meter_acpm
icon: mdi:radioactive-circle-outline
unique_id: geiger_meter_acpm
unit_of_measurement: "ACPM"
state: >
{{ state_attr('sensor.geiger_meter', 'ACPM') }}
- name: geiger_meter_usv
icon: mdi:radioactive-circle-outline
unique_id: geiger_meter_usv
unit_of_measurement: "uSv"
state: >
{{ state_attr('sensor.geiger_meter', 'uSv') }}
sensor:
- platform: rest
icon: mdi:radioactive-circle-outline
name: geiger_meter
unique_id: geiger_meter
scan_interval: 60
value_template: "OK"
resource: http://www.gmcmap.com/historyData-plain.asp?Param_ID=XXXXXX
json_attributes:
- CPM
- ACPM
- uSv
- time
J’espère que cet article vous aura été utile.
Cordialement,
Kellogs