Nouvelle intégration : AtmoFrance - Qualité de l'air

bonjour,
merci pour cette intégration :slight_smile:
petite question, en combien de temps votre demande de compte pour accéder à l’api a t’elle été traitée ?
merci

Bonjour,
Bon du coup, après 1 semaine, mon compte a bien été validé et j’ai pu exploiter les données sur mon dashbord:


merci pour l’intégration

2 « J'aime »

@thetux J’étais dans le même cas que toi ! J’ai eu l’activation ce matin !
Je viens de tester l’intégration et de mon côté je vais rester avec WAQI qui reste plus précis pour ma commune.
avec ATMO :
Capture d'écran 2024-02-09 120058

avec WAQI :


De plus, les données présentes sur WAQI proviennent, pour partie, d’ATMO :

Joli ta carte !!!
moi j’ai fait ca:

type: vertical-stack
cards:
  - type: horizontal-stack
    title: Qualité de l'air
    cards:
      - type: custom:button-card
        color_type: card
        entity: sensor.dioxyde_de_soufre_mezidon_les_2_pognes
        name: SO² dioxyde de soufre
        state:
          - value: 1
            color: lightgreen
          - value: 2
            color: green
          - value: 3
            color: yellow
          - value: 4
            color: red
          - value: 5
            color: darkred
          - value: 6
            color: darkviolet
        styles:
          card:
            - height: 90px
            - font-size: 15px
      - type: custom:button-card
        color_type: card
        entity: sensor.dioxyde_d_azote_mezidon_les_2_pognes
        name: NO² dioxyde d'azote
        state:
          - value: 1
            color: lightgreen
          - value: 2
            color: green
          - value: 3
            color: yellow
          - value: 4
            color: red
          - value: 5
            color: darkred
          - value: 6
            color: darkviolet
        styles:
          card:
            - height: 90px
            - font-size: 15px
      - type: custom:button-card
        color_type: card
        entity: sensor.ozone_mezidon_les_2_pognes
        name: 03  Ozone
        state:
          - value: 1
            color: lightgreen
          - value: 2
            color: green
          - value: 3
            color: yellow
          - value: 4
            color: red
          - value: 5
            color: darkred
          - value: 6
            color: darkviolet
        styles:
          card:
            - height: 90px
            - font-size: 15px
  - type: horizontal-stack
    title: Particules
    cards:
      - type: custom:button-card
        color_type: card
        entity: sensor.pm10_mezidon_les_2_pognes
        name: PM < 10µm
        state:
          - value: 1
            color: lightgreen
          - value: 2
            color: green
          - value: 3
            color: yellow
          - value: 4
            color: red
          - value: 5
            color: darkred
          - value: 6
            color: darkviolet
        styles:
          card:
            - height: 90px
            - font-size: 15px
      - type: custom:button-card
        color_type: card
        entity: sensor.pm25_mezidon_les_2_pognes
        name: PM < 2.5µm
        state:
          - value: 1
            color: lightgreen
          - value: 2
            color: green
          - value: 3
            color: yellow
          - value: 4
            color: red
          - value: 5
            color: darkred
          - value: 6
            color: darkviolet
        styles:
          card:
            - height: 90px
            - font-size: 15px
      - type: custom:button-card
        color_type: card
        entity: sensor.qualite_globale_mezidon_les_2_pognes
        name: Qualité globale
        state:
          - value: 1
            color: lightgreen
          - value: 2
            color: green
          - value: 3
            color: yellow
          - value: 4
            color: red
          - value: 5
            color: darkred
          - value: 6
            color: darkviolet
        styles:
          card:
            - height: 90px
            - font-size: 15px
  - type: gauge
    entity: sensor.qualite_globale_mezidon_les_2_pognes
    min: -0.5
    max: 6.5
    needle: true
    segments:
      - from: -0.5
        color: white
      - from: 0.5
        color: lightgreen
      - from: 1.5
        color: green
      - from: 2.5
        color: yellow
      - from: 3.5
        color: red
      - from: 4.5
        color: darkred
      - from: 5.5
        color: darkviolet
    name: Qualité Globale de l'air
    unit: sur 6

d’accord merci pour l’info :slight_smile: mais pour ce que je souhaites pour le moment, atmo me suffit largement, mais si un jour je vois que ça ne suffit plus je serai vers quelle intégration me tourner :slight_smile:

c’est très sympa aussi :wink:

C’est bien le problème avec AtmoFrance qui n’affiche pas les valeurs que la note global , …
Du coup, impossible a comparer, suivre les évolutions, …

Or, les données existe sur les Atmo par régions,
c’est pour ça que je me connecte sur le serveur d’api atmo auvergnerhones alpes ( https://www.atmo-auvergnerhonealpes.fr ) et pas atmo france …

De plus, avoir des valeurs, m’a permis de me crée un dashboard grafana pour voir l’évolution dans le temps

Super, mais comment récupères-tu les données.
J’ai un équivalent aquitaine d’Atmo, mais je ne vois pas de lien vers une Api ?

je le fait avec l’integration multiscrape et voici le code associé ( il suffit de remplace xxxx par ton token, yyyy par le code de la ville et zzz par le nom de ta ville :

PS: le code est assez gros mais 80% des lignes sont pour convertir le niveau d’alerte en texte
PS2: le token n’expire jamais ( ce qui est fort pratique)

- name: Qualité de l'air zzzzz
  resource: http://api.atmo-aura.fr/api/v1/communes/yyyy/indices/atmo?api_token=xxxxxxx&date_calcul=yesterday&echeance=1
  scan_interval: 43200
  button:
    - unique_id: air_qualite_zzzzz_refresh
      name: Qualite Air Refresh
  sensor:
    - name: Qualite Air Indice global du jour
      unique_id: air_qualite_zzzzz_indice_global
      value_template: "{{ value_json.data[0].indice }}"
      attributes:
        - name: Qualificatif
          value_template: "{{ value_json.data[0].qualificatif }}"
        - name: Date
          value_template: "{{ value_json.data[0].date_echeance }}"
      icon: mdi:air-filter
    - name: Particules fines PM2.5
      unique_id: air_qualite_zzzzz_pm2.5
      device_class: PM25
      unit_of_measurement: µg/m³
      value_template: "{{ value_json.data[0].sous_indices[0].concentration | round(1) }}"
      icon: mdi:air-filter
      attributes:
        - name: indice
          value_template: "{{ value_json.data[0].sous_indices[0].indice }}"
        - name: label
          value_template: >
            {% set value = value_json.data[0].sous_indices[0].indice %}
            {% if (value == 0) %}
              Indisponible
            {% elif (value == 1) %}
              Bon
            {% elif (value == 2) %}
              Moyen
            {% elif (value == 3) %}
              Dégradé
            {% elif (value == 4) %}
              Mauvais
            {% elif (value == 5) %}
              Très mauvais
            {% elif (value == 6) %}
              Extrêmement mauvais
            {% elif (value == 7) %}
              Evénement
            {% else %}
              {{ value }}
            {% endif %}
    - name: Particules fines PM10
      unique_id: air_qualite_zzzzz_pm10
      device_class: PM10
      unit_of_measurement: µg/m³
      value_template: "{{ value_json.data[0].sous_indices[1].concentration | round(1) }}"
      icon: mdi:air-filter
      attributes:
        - name: indice
          value_template: "{{ value_json.data[0].sous_indices[1].indice }}"
        - name: label
          value_template: >
            {% set value = value_json.data[0].sous_indices[1].indice %}
            {% if (value == 0) %}
              Indisponible
            {% elif (value == 1) %}
              Bon
            {% elif (value == 2) %}
              Moyen
            {% elif (value == 3) %}
              Dégradé
            {% elif (value == 4) %}
              Mauvais
            {% elif (value == 5) %}
              Très mauvais
            {% elif (value == 6) %}
              Extrêmement mauvais
            {% elif (value == 7) %}
              Evénement
            {% else %}
              {{ value }}
            {% endif %}
    - name: Qualite Air Dioxyde de soufre
      unique_id: air_qualite_zzzzz_s02
      # device_class: ???
      unit_of_measurement: µg/m³
      value_template: "{{ value_json.data[0].sous_indices[2].concentration | round(2) }}"
      icon: mdi:air-filter
      attributes:
        - name: indice
          value_template: "{{ value_json.data[0].sous_indices[2].indice }}"
        - name: label
          value_template: >
            {% set value = value_json.data[0].sous_indices[2].indice %}
            {% if (value == 0) %}
              Indisponible
            {% elif (value == 1) %}
              Bon
            {% elif (value == 2) %}
              Moyen
            {% elif (value == 3) %}
              Dégradé
            {% elif (value == 4) %}
              Mauvais
            {% elif (value == 5) %}
              Très mauvais
            {% elif (value == 6) %}
              Extrêmement mauvais
            {% elif (value == 7) %}
              Evénement
            {% else %}
              {{ value }}
            {% endif %}
    - name: Qualite Air Ozone
      unique_id: air_qualite_zzzzz_o3
      device_class: OZONE
      unit_of_measurement: µg/m³
      value_template: "{{ value_json.data[0].sous_indices[3].concentration | round(1) }}"
      icon: mdi:air-filter
      attributes:
        - name: indice
          value_template: "{{ value_json.data[0].sous_indices[3].indice }}"
        - name: label
          value_template: >
            {% set value = value_json.data[0].sous_indices[3].indice %}
            {% if (value == 0) %}
              Indisponible
            {% elif (value == 1) %}
              Bon
            {% elif (value == 2) %}
              Moyen
            {% elif (value == 3) %}
              Dégradé
            {% elif (value == 4) %}
              Mauvais
            {% elif (value == 5) %}
              Très mauvais
            {% elif (value == 6) %}
              Extrêmement mauvais
            {% elif (value == 7) %}
              Evénement
            {% else %}
              {{ value }}
            {% endif %}
    - name: Qualite Air Dioxyde d'azote
      unique_id: air_qualite_zzzzz_no2
      device_class: NITROGEN_DIOXIDE
      unit_of_measurement: µg/m³
      value_template: "{{ value_json.data[0].sous_indices[4].concentration | round(1) }}"
      icon: mdi:air-filter
      attributes:
        - name: indice
          value_template: "{{ value_json.data[0].sous_indices[4].indice }}"
        - name: label
          value_template: >
            {% set value = value_json.data[0].sous_indices[4].indice %}
            {% if (value == 0) %}
              Indisponible
            {% elif (value == 1) %}
              Bon
            {% elif (value == 2) %}
              Moyen
            {% elif (value == 3) %}
              Dégradé
            {% elif (value == 4) %}
              Mauvais
            {% elif (value == 5) %}
              Très mauvais
            {% elif (value == 6) %}
              Extrêmement mauvais
            {% elif (value == 7) %}
              Evénement
            {% else %}
              {{ value }}
            {% endif %}

Bonsoir,
J’avais fait pareil que toi au départ mais les valeurs n’étaient pas à jour avec yestarday et 1 ou now et 0
Du coup j’ai conservé l’intégration mais tu as aussi les valeurs individuelles aussi pourtant il me semble

Oui, mais il y a une api spécifique pour ARA (et IDF), mais pas pour l’Aquitaine.
En tout cas je ne l’ai pas trouvée.

A ce que j’ai compris (et que je le rappel), avec le now, tu a un e valeurs instantanée (donc si tu la lance plusieurs fois dans la journée, il peut y avoir pas mal de variation,…

1 « J'aime »