Back
Featured image of post Intégration Humidificateur Xiaomi dans HA

Intégration Humidificateur Xiaomi dans HA

Tutoriel pour intégrer Humidificateur Xiaomi dans HA

But

Ajouter un humidificateur Xiaomi dans Home Assistant et pouvoir le gérer entièrement sans passer par l’application Xiaomi home.

Modèle testé

Humidificateur antibactérien intelligent Mi acheté sur le site officiel : lien vers mi.com

Ajout dans Xiaomi Home

Pas besoin de Gateway, il suffit d’installer l’appliation Xiaomi Home et d’ajouter l’humidificateur.

Seul un serveur Européen permettra de le voir dans l’application (device Européen = serveur Européen, cf RGPD). On peut l’ajouter sur le serveur Chinois par exemple, mais on ne le verra pas dans l’application mais ça n’empêchera pas de l’ajouter dans Home Assistant. Donc qu’importe le serveur si on ne compte pas utiliser l’application Xiaomi Home par la suite.

Récupération des informations

Il faut récupérer le token de l’humidificateur auprès des serveurs de Xiaomi.

Un repo sur Github propose un outil token_extrator qui fonctionne très bien : Lien vers Github

Sur Windows, il suffit d’éxécuter le token_extrator.exe et de se laisser guider.

Installation Intégration xiaomi_airpurifier

C’est via cette intégration non officielle que l’on pourra ajouter l’humidificateur.

Pour info, cette intégration n’est ni plus ni moins que la béta de l’intégration officielle Xiaomi Miio disponible sur Home Assistant.

On peut l’installer via HACS directement ou alors mannuellement via le repo github suivant : Lien vers Github

Ajout de l’entité

Dans le fichier configuration.yaml, ajouter cela :

fan:
  - platform: xiaomi_miio_airpurifier
    name: Humidificateur Chambre
    host: 192.168.1.X
    token: le_token_recupere_avec_le_script
    model: deerma.humidifier.jsq

Puis il faut redémarrer HA pour que ce soit pris en compte.

Exemple de templates

Sensors

- platform: template
  sensors:
    humidificateur_chambre_temperature:
      friendly_name: Humidificateur Chambre - Température
      value_template: '{{ states.fan.humidificateur_chambre.attributes.temperature }}'
      unit_of_measurement: '°C'

    airpurifier_humidity:
      friendly_name: Humidificateur Chambre - Humidité
      value_template: '{{ states.fan.humidificateur_chambre.attributes.humidity }}'
      unit_of_measurement: '%'
      icon_template: mdi:water-percent

    humidificateur_chambre_target_humidity:
      friendly_name: Target humidity
      value_template: '{{ states.fan.humidificateur_chambre.attributes.target_humidity }}'
      unit_of_measurement: '%'
      icon_template: mdi:water-percent

    humidificateur_chambre_water_presence:
      friendly_name: "Eau"
      value_template: >-
        {% if is_state_attr('fan.humidificateur_chambre', 'no_water', false) %}
          Présence
        {% else %}
          Vide
        {% endif %}        
      icon_template: >-
        {% if is_state_attr('fan.humidificateur_chambre', 'no_water', false) %}
          mdi:water-check
        {% else %}
          mdi:water-off
        {% endif %}        

    humidificateur_chambre_waterbank:
      friendly_name: "Bac à Eau"
      value_template: >-
        {% if is_state_attr('fan.humidificateur_chambre', 'water_tank_detached', false) %}
          Présent
        {% else %}
          Non Présent
        {% endif %}        
      icon_template: >-
        {% if is_state_attr('fan.humidificateur_chambre', 'water_tank_detached', false) %}
          mdi:water-boiler
        {% else %}
          mdi:water-boiler-off
        {% endif %}        

switchs

- platform: template
  switches:
    humidificateur_chambre_buzzer:
      friendly_name: "Buzzer"
      value_template: "{{ is_state_attr('fan.humidificateur_chambre', 'buzzer', True) }}"
      turn_on:
        service: xiaomi_miio_airpurifier.fan_set_buzzer_on
        data:
          entity_id: fan.humidificateur_chambre
      turn_off:
        service: xiaomi_miio_airpurifier.fan_set_buzzer_off
        data:
          entity_id: fan.humidificateur_chambre
      icon_template: "mdi:volume-off"

    humidificateur_chambre_led:
      friendly_name: "LED"
      value_template: "{{ is_state_attr('fan.humidificateur_chambre', 'led', True) }}"
      turn_on:
        service: xiaomi_miio_airpurifier.fan_set_led_on
        data:
          entity_id: fan.humidificateur_chambre
      turn_off:
        service: xiaomi_miio_airpurifier.fan_set_led_off
        data:
          entity_id: fan.humidificateur_chambre
      icon_template: "mdi:lightbulb-outline"

inputs personnalisés

input_select:    
  humidificateur_chambre_mode:
    name: Mode de fonctionnement
    options:
     - Low
     - Medium
     - High
     - Humidity

input_number:
  humidificateur_chambre_mode_target_humidity:
    name: Humidité souhaitée
    min: 1
    max: 100
    step: 1

Automations

- id: '1619629365787'
  alias: Mode fonctionnement humidificateur chambre
  description: ''
  trigger:
  - platform: state
    entity_id: input_select.humidificateur_chambre_mode
  condition: []
  action:
  - service: fan.set_preset_mode
    target:
      entity_id: fan.humidificateur_chambre
    data_template:
      preset_mode: '{{ states.input_select.humidificateur_chambre_mode.state }}'
  mode: single
- id: '1619631855910'
  alias: Cible humidité chambre
  description: ''
  trigger:
  - platform: state
    entity_id: input_number.humidificateur_chambre_mode_target_humidity
  condition: []
  action:
  - service: xiaomi_miio_airpurifier.fan_set_target_humidity
    data:
      entity_id: fan.humidificateur_chambre
      humidity: '{{ states.input_number.humidificateur_chambre_mode_target_humidity.state|int
        }}'
  mode: single
- id: '1619633335261'
  alias: Update Mode fonctionnement humidificateur chambre
  description: ''
  trigger:
  - platform: state
    entity_id: fan.humidificateur_chambre
    attribute: preset_mode
  condition: []
  action:
  - service: input_select.select_option
    target:
      entity_id: input_select.humidificateur_chambre_mode
    data_template:
      option: '{{ states.fan.humidificateur_chambre.attributes.preset_mode }}'
  mode: single
- id: '1619633467307'
  alias: Update Humidité Chambre
  description: ''
  trigger:
  - platform: state
    entity_id: fan.humidificateur_chambre
    attribute: target_humidity
  condition: []
  action:
  - service: input_number.set_value
    target:
      entity_id: input_number.humidificateur_chambre_mode_target_humidity
    data_template:
      value: '{{ states.fan.humidificateur_chambre.attributes.target_humidity }}'
  mode: single

Généré avec Hugo
Thème Stack conçu par Jimmy