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