Purificator de aer Xiaomi integrat in Home Assistant – fara Cloud

Xiaomi Mi Air Purifier PRO V3 Home Assistant
Xiaomi Mi Air Purifier PRO V3 Home Assistant

Daca zilele recute integram Purificatorul de aer Xiaomi Mi Air PRO cu sistemul smart home FHEM, astazi a venit randul lui Home Assistant sa primeasca un tutorial al integrarii Purificatoarelor de aer Xiaomi astfel incat sa putem folosi toate functiile acestuia integrate complet in sistemul de casa inteligenta dar fara a folosi serviciile cloud oferite de producator. Nu am sa enumar inca odata beneficiile utilizarii unui purificator de aer, avantajele sau dezavantajele utilizarii acestuia. Am facut-o in scurta introducere de la integrarea cu FHEM. Vom incepe direct cu integrarea acestuia in sistemul Smart Home.

Echipamente necesare

Home Assistant instalat asa cum am aratat in acest tutorial sau aici (Home Assistant + Docker).

Extragere token din aplicatia Mi Home

Procedura de extragere a token-ului Xiaomi MI Air am descris-o in tutorialul anterior si este valabila si in cazul de fata.

Urmand pasii descrisi vom intra in posesia cheii de comunicare cu purificatorul de aer. Odata ce avem salvata acea cheie putem sterge aplicatia Mi Home, astfel rupand legatura cu Cloud-ul Xiaomi.

Instalare integrare Xiaomi MIIO

Pentru a putea comunica cu purificatorul de aer, Home Assistant are nevoie de un modul Xiaomi Miio si trebuie sa il instalam. Navigam in meniul Home Assistant in sectiunea Configuration – Integrations. Din dreapta jos selectam butonul pentru a adauga o noua interfata.

In fereastra de cautare scriem „Xiaomi”.

Xiaomi Miio

Odata selectata integrarea, va trebui sa confirmam ca ne conectam la un Gateway. Suna confuz pentru ca noi nu vom folosi Gateway-ul de la Xiaomi Mi Home, insa este conditie obligatorie.

Xiaomi Miio

In ecranul urmator ni se vor cere datele de identificare a dispozitivului Xiaomi. Aici va trebui sa completati intocmai adresa IP obtinuta de purificatorul de aer de indata ce este conectat la routerul vostru, si token-ul pe care l-ati obtinut anterior. Desigur puteti scimba numele deviceului asa cum doriti. Pentru ca eu pentru aceasta integrare am folosit un Xiaomi Mi Air PRO, l-am denunmit ca atare.

xiaomi mi air pro

Odata confirmate cele de mai sus, modulul va verifica informatiile si va stabili legatura cu purificatorul de aer

Din pacate modulul nu suporta autodiscovery, asa ca va trebui sa editam fisierul de configurare al Home Assistant pentru a putea aduce datele furnizate de purificatorul de aer in front-end.

Editare configuratie

Ne conectam prin SSH la IP-Ul serverului de smart home si editam fisierul /config/configuration.yaml, in care adaugam urmatoarele date. Alternativ puteti edita acest fisier direct din interfata Home Assistant, folosind editorul de fisiere.

nano /config/configuration.yaml
fan:
  - platform: xiaomi_miio
    name: "Mi Air Purifier PRO"
    host: 192.168.1.IP-Xiaomi-mi-air
    token: tOKeN-XiaomiMIair
    model: zhimi.airpurifier.v7 #nu este important

#Selectare mod Auto, Silent, Favorit
input_select:
  xiaomi_airpurifier_mode:
    name: "Mode"
    options:
      - Auto
      - Silent
      - Favorite
    icon: "mdi:animation-outline"

#Selectare nivel ventilatie favorit
input_number:
  xiaomi_airpurifier_favorite_level:
    name: "Favorite level"
    initial: 0
    min: 0
    max: 14
    step: 1
    icon: "mdi:weather-windy"

#definirea Switchurilor
switch:
  - platform: template
    switches:
      xiaomi_airpurifier_led:
        friendly_name: "LED"
        value_template: "{{ is_state_attr('fan.xiaomi_mi_air_purifier_pro', 'led', true) }}"
        turn_on:
          service: xiaomi_miio.fan_set_led_on
          data:
            entity_id: fan.xiaomi_mi_air_purifier_pro
        turn_off:
          service: xiaomi_miio.fan_set_led_off
          data:
            entity_id: fan.xiaomi_mi_air_purifier_pro
        icon_template: "mdi:lightbulb-outline"
      xiaomi_airpurifier_child_lock:
        friendly_name: "Child lock"
        value_template: "{{ is_state_attr('fan.xiaomi_mi_air_purifier_pro', 'child_lock', true) }}"
        turn_on:
          service: xiaomi_miio.fan_set_child_lock_on
          data:
            entity_id: fan.xiaomi_mi_air_purifier_pro
        turn_off:
          service: xiaomi_miio.fan_set_child_lock_off
          data:
            entity_id: fan.xiaomi_mi_air_purifier_pro
        icon_template: "mdi:lock-outline"
      xiaomi_airpurifier_buzzer:
        friendly_name: "Buzzer"
        value_template: "{{ is_state_attr('fan.xiaomi_mi_air_purifier_pro', 'buzzer', true) }}"
        turn_on:
          service: xiaomi_miio.fan_set_buzzer_on
          data:
            entity_id: fan.xiaomi_mi_air_purifier_pro
        turn_off:
          service: xiaomi_miio.fan_set_buzzer_off
          data:
            entity_id: fan.xiaomi_mi_air_purifier_pro
        icon_template: "mdi:volume-high"
  
#Definirea senzorilor
sensor:
  - platform: template
    sensors:
      xiaomi_airpurifier_temp:
        friendly_name: "Temperature"
        value_template: "{{ state_attr('fan.xiaomi_mi_air_purifier_pro', 'temperature') }}"
        unit_of_measurement: "°C"
        device_class: "temperature"
      xiaomi_airpurifier_humidity:
        friendly_name: "Humidity"
        value_template: "{{ state_attr('fan.xiaomi_mi_air_purifier_pro', 'humidity') }}"
        unit_of_measurement: "%"
        device_class: "humidity"
      xiaomi_airpurifier_air_quality_pm25:
        friendly_name: "Air quality"
        value_template: "{{ state_attr('fan.xiaomi_mi_air_purifier_pro', 'aqi') }}"
        unit_of_measurement: "μg/m³"
        icon_template: "mdi:weather-fog"
      xiaomi_airpurifier_speed:
        friendly_name: "Fan speed"
        value_template: "{{ state_attr('fan.xiaomi_mi_air_purifier_pro', 'motor_speed') }}"
        unit_of_measurement: "rpm"
        icon_template: "mdi:speedometer"
      xiaomi_airpurifier_filter_remaining:
        friendly_name: "Filter remaining"
        value_template: "{{ state_attr('fan.xiaomi_mi_air_purifier_pro', 'filter_life_remaining') }}"
        unit_of_measurement: "%"
        icon_template: "mdi:heart-outline"
      xiaomi_airpurifier_filter_used:
        friendly_name: "Filter used"
        value_template: "{{ state_attr('fan.mi_air_purifier_pro', 'filter_hours_used') }}"
        unit_of_measurement: "hrs"
        icon_template: "mdi:heart-off"

Daca folositi doua sau mai multe purificatoare de aer si/sau in combinatie cu un robot de aspirare Xiaomi, atunci le veti diferentia folosind alt nume, host (-IP) si token, ca de exemplu.

# 2 Purificatoare de Aer in acelasi sistem diferentiate prin nume/host/token
## Purificator 1 -Xiaomi Air PRO
fan:
  - platform: xiaomi_miio
    name: "Mi Air Purifier PRO"
    host: 192.168.1.ip-1-Xiaomi-mi-air
    token: tOKeN-XiaomiMIairPrO

## Purificator 2 -Xiaomi Air 3H
fan:
  - platform: xiaomi_miio
    name: "Mi Air Purifier 3H"
    host: 192.168.1.ip-2-Xiaomi-mi-air
    token: XiaomiMIair3H-tOKeN-abc

De asemenea si pentru definirea senzorilor va trebui sa folositi nume diferentiate, ca de ex:

## Purificator 1 -Xiaomi Air PRO

sensor:
  - platform: template
    sensors:
      xiaomi_airpurifier_temp:
        friendly_name: "Temperature"
        value_template: "{{ state_attr('fan.xiaomi_mi_air_purifier_pro', 'temperature') }}"
        unit_of_measurement: "°C"
        device_class: "temperature"

### Purificator 2 -Xiaomi Air 3H

sensor:
  - platform: template
    sensors:
      xiaomi_airpurifier_temp:
        friendly_name: "Temperature"
        value_template: "{{ state_attr('fan.xiaomi_mi_air_purifier_3h', 'temperature') }}"
        unit_of_measurement: "°C"
        device_class: "temperature"

De indata ce am adaugat datele de mai sus putem salva configuratia si reporni serverul. Entitatile nou create le vom gasi desigur in meniul Configurations – Entities, filtrand din fereastra de cautare.

De indata ce avem aceste date le putem integra in interfata Home Assistant, in diferite carduri functie de necesitati si de ce informatii sunt relevante pentru voi.

Xiaomi MI Air Pro

Concluzie

Desi pentru integrarea Xiaomi cu Home Assistant a trebuit sa editam fisierul de configurare principal, facuta cu atentie obtinem rezultatele scontate. Interesant este la acest aparat de purificat aerul ca transmite date si atunci cand este oprit, astfel ca se pot realiza automatizari pe baza datelor furnizate de senzorii interni, cum ar fi pornirea automata la depasirea unei anumite valori a PM2.5, reglajul intensitatii, comutarea din modul automat in manual.

De Iulian Susnea

Pasionat de tehnologie, gadgeturi smart home si automatizari si am pornit la drum in crearea acestui site cu tutoriale pentru cele mai importante sisteme Smart Home ale momentului din dorinta de a-i ajuta pe cei la inceput de drum.

Lasă un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *