Qualité de l'Eau
Le site Hubeau propose une API dans le cadre de l'open data du l'Etat. Dès lors il est relativement facile de remonter ces informations dans Home Assistant. Le code qui suit est prêt à l’emploi, il suffit de replacer le code INSEE de votre commune. Bien sur ça ne remonte que ce qui est testé par les autorités.
Il est hélas difficile de réaliser ces test à titre individuels, ce qui permettrait de valider un filtre ou un adoucisseur.
Merci à Christophe pour la base du code.
Le code à ajouter
rest:
# Code 1302 -> PH
- resource: "https://hubeau.eaufrance.fr/api/v1/qualite_eau_potable/resultats_dis?code_commune=84007&code_parametre=1302&size=1"
scan_interval: 43200
sensor:
- name: "Qualité Eau - PH"
value_template: "{{ value_json.data[0].resultat_numerique | float(default=0) }}"
unit_of_measurement: "pH"
json_attributes_path: "$.data[0]"
json_attributes: &hubeau_attr
- date_prelevement
- libelle_parametre
- reference_qualite_parametre
- conclusion_conformite_prelevement
# Code 1340 -> Nitrates
- resource: "https://hubeau.eaufrance.fr/api/v1/qualite_eau_potable/resultats_dis?code_commune=84007&code_parametre=1340&size=1"
scan_interval: 43200
sensor:
- name: "Qualité Eau - Nitrates"
value_template: "{{ value_json.data[0].resultat_numerique | float(default=0) }}"
unit_of_measurement: "mg/L"
json_attributes_path: "$.data[0]"
json_attributes: *hubeau_attr
# Code 1303 -> Conductivité
- resource: "https://hubeau.eaufrance.fr/api/v1/qualite_eau_potable/resultats_dis?code_commune=84007&code_parametre=1303&size=1"
scan_interval: 43200
sensor:
- name: "Qualité Eau - Conductivité"
value_template: "{{ value_json.data[0].resultat_numerique | float(default=0) }}"
unit_of_measurement: "µS/cm"
json_attributes_path: "$.data[0]"
json_attributes: *hubeau_attr
# Code 1345 -> Dureté de l'eau (Calcaire)
- resource: "https://hubeau.eaufrance.fr/api/v1/qualite_eau_potable/resultats_dis?code_commune=84007&code_parametre=1345&size=1"
scan_interval: 43200
sensor:
- name: "Qualité Eau - Dureté"
value_template: "{{ value_json.data[0].resultat_numerique | float(default=0) }}"
unit_of_measurement: "°f"
json_attributes_path: "$.data[0]"
json_attributes: *hubeau_attr
# Code 1399 -> Chlore libre
- resource: "https://hubeau.eaufrance.fr/api/v1/qualite_eau_potable/resultats_dis?code_commune=84007&code_parametre=1399&size=1"
scan_interval: 43200
sensor:
- name: "Qualité Eau - Chlore"
value_template: "{{ value_json.data[0].resultat_numerique | float(default=0) }}"
unit_of_measurement: "mg/L"
json_attributes_path: "$.data[0]"
json_attributes: *hubeau_attr
# Code 1301 -> Température de l'eau
- resource: "https://hubeau.eaufrance.fr/api/v1/qualite_eau_potable/resultats_dis?code_commune=84007&code_parametre=1301&size=1"
scan_interval: 43200
sensor:
- name: "Qualité Eau - Température"
value_template: "{{ value_json.data[0].resultat_numerique | float(default=0) }}"
unit_of_measurement: "°C"
json_attributes_path: "$.data[0]"
json_attributes: *hubeau_attrLe code pour la carte
type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: Qualité de l'Eau à Avignon
- type: custom:mushroom-template-card
primary: "Nitrates : {{ states('sensor.qualite_eau_nitrates') }} mg/L"
secondary: >
{% set conf = state_attr('sensor.qualite_eau_nitrates',
'conclusion_conformite_prelevement') %} {% set date =
state_attr('sensor.qualite_eau_nitrates', 'date_prelevement') %} {{
'Conforme' if conf and 'NON' not in conf.upper() else 'NON CONFORME' }} |
Analyse du : {{ as_timestamp(date) | timestamp_custom('%d/%m/%Y') if date
else 'Inconnue' }}
icon: mdi:water-percent
icon_color: >
{% set conf = state_attr('sensor.qualite_eau_nitrates',
'conclusion_conformite_prelevement') %} {{ 'cyan' if conf and 'NON' not in
conf.upper() else 'red' }}
entity: sensor.qualite_eau_nitrates
- type: custom:mushroom-template-card
primary: "Potentiel Hydrogène (pH) : {{ states('sensor.qualite_eau_ph') }}"
secondary: >
{% set conf = state_attr('sensor.qualite_eau_ph',
'conclusion_conformite_prelevement') %} {{ 'Conforme' if conf and 'NON'
not in conf.upper() else 'NON CONFORME' }}
icon: mdi:ph
icon_color: >
{% set conf = state_attr('sensor.qualite_eau_ph',
'conclusion_conformite_prelevement') %} {{ 'green' if conf and 'NON' not
in conf.upper() else 'red' }}
entity: sensor.qualite_eau_ph
- type: custom:mushroom-template-card
primary: "Conductivité : {{ states('sensor.qualite_eau_conductivite') }} µS/cm"
secondary: >
{% set conf = state_attr('sensor.qualite_eau_conductivite',
'conclusion_conformite_prelevement') %} {{ 'Conforme' if conf and 'NON'
not in conf.upper() else 'NON CONFORME' }}
icon: mdi:lightning-bolt-outline
icon_color: >
{% set conf = state_attr('sensor.qualite_eau_conductivite',
'conclusion_conformite_prelevement') %} {{ 'blue' if conf and 'NON' not in
conf.upper() else 'red' }}
entity: sensor.qualite_eau_conductivite
- type: custom:mushroom-template-card
primary: "Dureté de l'eau : {{ states('sensor.qualite_eau_durete') }} °f"
secondary: >
{% set durete = states('sensor.qualite_eau_durete') | float(0) %} {% if
durete < 15 %} Douce {% elif durete < 30 %} Moyenne {% else %} Très
calcaire {% endif %} | {% set conf =
state_attr('sensor.qualite_eau_durete',
'conclusion_conformite_prelevement') %} {{ 'Conforme' if conf and 'NON'
not in conf.upper() else 'NON CONFORME' }}
icon: mdi:opacity
icon_color: >
{% set durete = states('sensor.qualite_eau_durete') | float(0) %} {% if
durete < 15 %} green {% elif durete < 30 %} orange {% else %} red {% endif
%}
entity: sensor.qualite_eau_durete
- type: custom:mushroom-template-card
primary: "Chlore libre : {{ states('sensor.qualite_eau_chlore') }} mg/L"
secondary: >
{% set conf = state_attr('sensor.qualite_eau_chlore',
'conclusion_conformite_prelevement') %} {{ 'Conforme' if conf and 'NON'
not in conf.upper() else 'NON CONFORME' }}
icon: mdi:pool
icon_color: blue
entity: sensor.qualite_eau_chlore
- type: custom:mushroom-template-card
primary: >-
Température au prélèvement : {{ states('sensor.qualite_eau_temperature')
}} °C
secondary: >-
Analyse du : {{ as_timestamp(state_attr('sensor.qualite_eau_temperature',
'date_prelevement')) | timestamp_custom('%d/%m/%Y') }}
icon: mdi:thermometer-water
icon_color: orange
entity: sensor.qualite_eau_temperature
Et voilà !
