2Qualidade do ar no assistente doméstico

Recentemente, escrevi sobre como mostrar informações de coleta de lixo no Home Assistant, e meu próximo projeto foi obter algumas informações sobre a qualidade do ar. Felizmente, tenho uma conta ‘Tado’, o que significa que eu poderia extrair essas informações de seus API usando o seguinte código

Atualizado em 20 de dezembro de 2021

This was updated to tweak an issue where home assist­ant con­verts the text value “none” into “unknown”.

Much of the inform­a­tion for this was taken from a thread on the home assist­ant for­ums, but I was able to add pol­lu­tion as well as pol­len inform­a­tion, and I also had to tweak the code to resolve an issue with “none” being treated as “unknown” rather than as a string of text. Lots of cred­it to Drillbit on the for­ums though.

Detalhes da conta Tado

  • You will need some inform­a­tion for your Tado account
  • Vis­it https://my.tado.com/api/v2/me?username=you@emailaddress.tld&senha = sua senha
  • Near the top of the out­put you need the numer­ic ID that is lis­ted under homes: 0: o:
  • Próximo, vamos para https://www.latlong.net/ and loc­ate your home and make a note of the lat­it­ude and longitude
  • Next vis­it https://acme.tado.com/v1/homes/sua-casa-ID/airComfort?latitude =12.34&longitude =12.34&nome de usuário =seu email&senha =your-pass­word para ter certeza de que carrega

Código para assistente de casa

  • Add the fol­low­ing code to your configuration.yaml
    sensor:
     - plataforma: resto
       # API ligue para obter a qualidade do ar
       # Result goes into outdoorQuality attribute in JSON format
       name: TadoAir
       verify_ssl: true
       scan_interval: 1800
       recurso: https://acme.tado.com/v1/homes/sua-casa-ID/airComfort?latitude =12.34&longitude =12.34&nome de usuário =seu email&senha =sua senha
       cabeçalhos:
         Agente de usuário: Home Assistant
         Content-Type: application/json
       method: GET
       json_attributes:
         - roomMessages
         - outdoorQuality
       value_template: 'Tado air Comfort'
    
     # Enumere JSON para preencher vários sensores de modelo
     - plataforma: template
       sensors:
         qualidade do ar:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["aqi"]["nível"] | capitalizar }}'
           friendly_name: "Qualidade do ar"
           icon_template: mdi:air-filter
           unique_id: "qualidade do ar"
    
         # Pollen sensors
         air_pollen_level:
           value_template: >
             {% se estados('sensor.tadoair.attributes["outdoorQuality"]["pólens"]["dominante"]["nível"]') == 'desconhecido' %}
               Nenhum.
             {% outro %}
               {{estados('sensor.tadoair.attributes["outdoorQuality"]["pólens"]["dominante"]["nível"]')}}
             {% endif %}
           nome amigável: "Nível de Pólen"
           icon_template: mdi:flower
           unique_id: "nível de pólen"
    
         air_pollen_level_grass:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pólens"]["tipos"][0]["previsão"][0]["nível"] | capitalizar }}.'
           friendly_name: "Pólen de Grama"
           icon_template: mdi:flower
           unique_id: "grass_pollen_level"
    
         air_pollen_level_grass_tomorrow:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pólens"]["tipos"][0]["previsão"][1]["nível"] | capitalizar  }}.'
           friendly_name: "Grass Pollen Tomo."
           icon_template: mdi:flower
           unique_id: "grass_pollen_level_tomorrow"
    
         air_pollen_level_weed:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pólens"]["tipos"][1]["previsão"][0]["nível"] | capitalizar  }}.'
           friendly_name: "Pólen de planta"
           icon_template: mdi:sprout
           unique_id: "plant_pollen_level"
    
         air_pollen_level_weed_tomorrow:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pólens"]["tipos"][1]["previsão"][1]["nível"] | capitalizar  }}.'
           friendly_name: "Plant Pollen Tomo."
           icon_template: mdi:sprout
           unique_id: "plant_pollen_level_tomorrow"
    
         air_pollen_level_tree:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pólens"]["tipos"][2]["previsão"][0]["nível"] | capitalizar  }}.'
           friendly_name: "Pólen de árvore "
           icon_template: mdi:tree
           unique_id: "tree_pollen_level"
    
         air_pollen_level_tree_tomorrow:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["pólens"]["tipos"][2]["previsão"][1]["nível"] | capitalizar }}.'
           friendly_name: "Tree Pollen Tomo."
           icon_template: mdi:tree
           unique_id: "tree_pollen_level_tomorrow"
    
         air_pollution_level_pm10:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][0]["nível"] | capitalizar }}: {{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][0]["concentração"]["valor"]}}μg/m³'
           friendly_name: "PM 10"
           icon_template: mdi:tree
           unique_id: "poluição_pm10"
    
         air_pollution_level_pm25:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][1]["nível"] | capitalizar }}: {{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][1]["concentração"]["valor"]}}μg/m³'
           friendly_name: "PM 2.5"
           icon_template: mdi:tree
           unique_id: "poluição_pm25"
    
         air_pollution_level_ozone:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][2]["nível"] | capitalizar }}: {{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][2]["concentração"]["valor"]}}ppb'
           friendly_name: "Ozônio"
           icon_template: mdi:tree
           unique_id: "poluição_ozona"
    
         air_pollution_level_sulphur:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][3]["nível"] | capitalizar }}: {{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][3]["concentração"]["valor"]}}ppb'
           friendly_name: "Dióxido de enxofre"
           icon_template: mdi:tree
           unique_id: "poluição do enxofre"
    
         air_pollution_level_carbon:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][4]["nível"] | capitalizar }}: {{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][4]["concentração"]["valor"]}}ppb'
           friendly_name: "Monóxido de carbono"
           icon_template: mdi:tree
           unique_id: "poluição_carbono"
    
         air_pollution_level_nitrogen:
           value_template: '{{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][5]["nível"] | capitalizar }}: {{ states.sensor.tadoair.attributes["outdoorQuality"]["poluentes"][5]["concentração"]["valor"]}}ppb'
           friendly_name: "Dióxido de nitrogênio"
           icon_template: mdi:tree
           unique_id: "poluição_nitrogênio"
    

Deixe uma resposta

2 Comments

Fflavio

CIao
stavo seguendo la tua guida. Ti risulta che la stringa di tado fun­zioni ancora? per­chè mi restituisce errore {“message”:“User is not author­ized to access this resource with an expli­cit deny”} oppure ins­er­en­dola in ver­sione codice yaml mi restituisce {“message”:“Token di autenticazione man­cante”} . Grazie

Resposta
JSJon Scaife

Hi Fla­vio

Sim, this is still work­ing for me.
Minhas URL é https://acme.tado.com/v1/homes/123456/airComfort?latitude=11.11&longitude=11.11&username=me@myemail.com&password=mypassword

Obvi­ously I’ve removed the home ID, lat­it­ude, lon­git­ude, email address, and pass­word I use. But if you get those right then it should load fine

Have you double checked your email address and pass­word? Have you checked your home ID at https://my.tado.com/api/v2/me?username=you@emailaddress.tld&password=yourpassword

I don’t know if the Tado sys­tem is dif­fer­ent out­side of the Reino Unido — maybe they don’t have data for lat­it­ude and lon­git­ude where you are? Do you get air qual­ity data in your Tado app when you’re logged into your account?

Resposta