# :white\_check\_mark: Intégrer les balances Xiaomi dans Home Assistant

**URL:** <https://forum.hacf.fr/t/integrer-les-balances-xiaomi-dans-home-assistant/701>\
**Category:** Add-on\
**Tags:** add-on, xmtzc04hm, balance, xmtzc01hm, xmtzc05hm, xmtzc02hm, mi-scale, xiaomi, hacs\
**Created:** [Octobre 20, 2020, 4:33 UTC](https://forum.hacf.fr/t/integrer-les-balances-xiaomi-dans-home-assistant/701 "2020-10-20T16:33:40Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![McFly](https://forum.hacf.fr/user_avatar/forum.hacf.fr/mcfly/32/1077_2.png) [@McFly](https://forum.hacf.fr/u/McFly)\
**Post date:** [Octobre 20, 2020, 4:33 UTC](https://forum.hacf.fr/t/integrer-les-balances-xiaomi-dans-home-assistant/701/1 "2020-10-20T16:33:40Z")

</div>

![licence](https://forum.hacf.fr/uploads/default/original/2X/e/e1fead3f87ba19785badbf348ffefc0c7612c613.svg)

Nous allons voir comment ajouter les balances Xiaomi dans Home Assistant et suivre nos informations corporelles. Nous allons utiliser un add-on qui permet de récupérer dans HA jusqu'à 3 personnes. La différenciation des personnes se fait sur grâce à la définition de 3 fourchettes de poids. Autant vous avertir tout de suite, si vous et votre moitié faites à peu près le même poids, seul l'un de vous pourra l'utiliser afin de suivre sa courbe de poids malheureusement.

## Niveau requis

- _Débutant_ / **Intermédiaire** / _Avancé_

## Matériels nécessaires / Matériels utilisés / Prérequis

- Mi Smart Scale 2 (XMTZCO1HM, XMTZC04HM),
- Mi Body Composition Scale (XMTZC02HM),
- Mi Body Composition Scale 2 (XMTZC05HM).

## Récupérer l'adresse MAC de votre balance.

### Mi Fit.

Lancer votre application _Mi Fit_ ([Android](https://play.google.com/store/apps/details?id=com.xiaomi.hm.health&hl=fr),[iOS](https://apps.apple.com/fr/app/mi-fit/id938688461)), _profil_ puis dans _Mes appareils_ cliquer sur votre balance.  
 ![MiFitAdresseMacXiomiMiScale](https://forum.hacf.fr/uploads/default/original/1X/4d4cca0cfa52fa40cb187f85d0fb0034b6b6cea4.gif)

### OpenScale.

> OpenScale est une application gratuite qui vous permet de suivre toutes les informations de votre balance sans les envoyer dans le cloud. Il est stipulé aussi qu'aucunes données ne seront envoyées hors de leur serveur. Elle est téléchargeable sur [Fdroid](https://f-droid.org/fr/packages/com.health.openscale/) ou le [Google Play Store](https://play.google.com/store/apps/details?id=com.health.openscale.light).  
> Si vous souhaitez tout de même utiliser la connexion Google Fit, c'est quand même possible (tout est sur le [GitHub](https://github.com/oliexdev/openScale))

Dans OpenScale allez dans le _Menu Hamburger_, _Paramètres_ et _Bluetooth_.  
 ![OpenScaleAdresseMacXiomiMiScale](https://forum.hacf.fr/uploads/default/original/1X/6342fba734980570f14bb6948fa8f57324cfb72a.gif)

## Installation de l'addons.

Je vous laisse regarder le tuto pour [ajouter un addons non officiel](https://forum.hacf.fr/t/comment-installer-un-add-on-officiel-et-non-officiel/2071).

La source à ajouter est [GitHub - lolouk44/hassio-addons: Xiaomi Mi Scale Add On for Home Assistant · GitHub](https://github.com/lolouk44/hassio-addons)

Puis rechercher l'addons nomé _Xiaomi Mi Scale_.

 ![XiaomiMiScaleAddons](https://forum.hacf.fr/uploads/default/original/1X/648f198f7df122aae10f2701f164964286514520.png)

### Configuration de l'addons.

Une fois installé, se rendre dans l'addons puis dans configuration.  
Voici ma configuration: (Sur RPi avec HA Supervised sous Raspbian. Doit marcher aussi avec HassOS et RPi avec HA supervised sous Ubuntu).

```
HCI_DEV: hci0
MISCALE_MAC: '0C:95:41:AC:AF:B8'
MQTT_PREFIX: miscale
MQTT_HOST: 127.0.0.1
MQTT_USERNAME: mcflymqtt
MQTT_PASSWORD: mcflymqttpassword
MQTT_PORT: 1883
TIME_INTERVAL: 30
MQTT_DISCOVERY: true
MQTT_DISCOVERY_PREFIX: homeassistant
USER1_GT: 85
USER1_SEX: male
USER1_NAME: Anthony
USER1_HEIGHT: 192
USER1_DOB: '1985-10-02'
USER2_LT: 50
USER2_SEX: female
USER2_NAME: Agathe
USER2_HEIGHT: 85
USER2_DOB: '2018-06-28'
USER3_SEX: female
USER3_NAME: Claire
USER3_HEIGHT: 163
USER3_DOB: '1981-10-03'

```

#### Partie MQTT serveur.

- HCI\_DEV: port de votre dongle bluetooth
- MISCALE\_MAC: adresse MAC de votre balance
- MQTT\_HOST: adresse de votre broker MQTT
- MQTT\_PORT: port de communication du serveur MQTT (par défaut: 1883)
- TIME\_INTERVAL: Intervalle de récupération des informations en secondes

Laissez le reste par défaut si vous ne savez pas ce que c'est.

#### Partie utilisateurs.

Il peut gérer 3 personnes maximum.

**Le fonctionnement:**  
Si le poids est supérieur a XXKg alors c'est tel personne, si en dessous de XXKg alors c'est tel autre personne et si entre les deux alors celle la troisième personnes.

```
USER1_GT: 85
USER1_SEX: male
USER1_NAME: Anthony
USER1_HEIGHT: 192
USER1_DOB: '1985-10-02'

```

- GT: Pèse plus de,
- LT: Pèse moins de,
- HEIGHT: taille en cm,
- DOB: Date de naissance, AAAA-MM-JJ
- SEX: `male` ou `female`
- NAME: je pense que c'est OK 😉.

Une fois votre configuration remplie, faites _SAVE_ puis _START_.

Dans l'onglet _info_ vérifier via l'onglet _Log_ si tout s'est bien passé.  
 ![XiaomiMiScaleLog](https://forum.hacf.fr/uploads/default/original/1X/45ef6e87a02566cf53cdef263ea89cb75da02b63.png)

Une fois l'addons démarré, aller dans _File Editor_ pour ajouter des sensors soit dans _configuration.yaml_ soit _sensors.yaml_ en fonction de votre [configuration](https://forum.hacf.fr/t/organisation-du-fichier-configuration-yaml/205).

Ajouter ceci : (remplacer _user1_ par votre ou vos users).

```
### Déclarations pour l'addons (1 par user)
## Remplacer *user1* par le nom donné dans la configuration du plugins
  - platform: mqtt
    name: "user1 Poids"
    state_topic: "miscale/user1/weight"
    value_template: "{{ value_json['weight'] }}"
    unit_of_measurement: "kg"
    json_attributes_topic: "miscale/user1/weight"
    icon: mdi:scale-bathroom

  - platform: mqtt
    name: "user1 BMI"
    state_topic: "miscale/user1/weight"
    value_template: "{{ value_json['bmi'] }}"
    icon: mdi:human-pregnant
    unit_of_measurement: "kg/m2"

```

Redémarrer votre Home Assistant.  
Voici les entités possibles :

 ![XiaomiScaleEntitéBMI](https://forum.hacf.fr/uploads/default/original/1X/2eab54a7ce7d8f79413e2debac5f674fdb1401cd.png) ![XiaomiScaleEntitePoid](https://forum.hacf.fr/uploads/default/original/1X/18b4878a816ef49f11fca0e8caba539ab4f4c018.png)

## Interface Lovelace

Retourner dans _File Editor_ pour ajouter des sensors soit dans _configuration.yaml_ soit _sensors.yaml_ en fonction de votre [configuration](https://forum.hacf.fr/t/organisation-du-fichier-configuration-yaml/205).  
Ajouter le code qui suit par utilisateur suivi (Remplacer _user1_ par le ou les vôtre).

```
### Template pour l'affichage des attributs
#### 1 par user
#IMC
  - platform: template
    sensors:
      user1_poids_imc:
        friendly_name: 'Mon IMC'
        value_template: "{{ state_attr('sensor.user1_poids', 'bmi') }}" #ici, on indique que la valeur de cette entité correspond à la valeur de l'attribut 'bmi' de l'entité 'sensor.mon_poids'
        attribute_templates:
          unit_of_measurement: "kg/m²"
          icon: 'mdi:human-pregnant'
          
#MB
  - platform: template
    sensors:
      user1_poids_mb:
        friendly_name: 'Mon Métabolisme de Base'
        value_template: "{{ state_attr('sensor.user1_poids', 'basal_metabolism') }}" #ici, on indique que la valeur de cette entité correspond à la valeur de l'attribut 'basal_metabolism' de l'entité 'sensor.mon_poids'
        attribute_templates:
          unit_of_measurement: "kcal/j"
          icon: 'mdi:food'
          
#graisse viscérale
  - platform: template
    sensors:
      user1_poids_gv:
        friendly_name: 'Ma Graisse Viscérale'
        value_template: "{{ state_attr('sensor.user1_poids', 'visceral_fat') }}" #ici, on indique que la valeur de cette entité correspond à la valeur de l'attribut 'visceral_fat' de l'entité 'sensor.mon_poids'
        attribute_templates:
          icon: 'mdi:water-percent'

#date
  - platform: template
    sensors:
      user1_poids_date_locale: 
        # ici, on transforme la valeur de l'attribut 'timestamp' de l'entité 'sensor.user1_poids' afin de la rendre plus agréable à lire
        # '2020-10-17-11:00:11' devient '17/10/2020 11:00'
        friendly_name: 'Date locale'
        value_template: >-
          {% set annee = state_attr('sensor.user1_poids', 'timestamp').split('-')[0] %}
          {% set mois = state_attr('sensor.user1_poids', 'timestamp').split('-')[1] %}
          {% set jour = state_attr('sensor.user1_poids', 'timestamp').split('-')[2] %}
          {% set heure = state_attr('sensor.user1_poids', 'timestamp').split('-')[3] %}
          {% set date_formatee = annee + "-" + mois + "-" + jour + "T" + heure %}
          {{as_timestamp(date_formatee) | int | timestamp_custom('%d/%m/%Y %H:%M', true)}}
        attribute_templates:
          icon: 'mdi:calendar-clock'

```

Une fois cela effectué, allez dans _Aperçus_ puis ajouter une carte manuel.

### Interface simple. (sans utilisation de custom card)

Voici deux configurations (il y en a plein d'autres. N'hésitez pas à partager la votre avec le code) **mettre un liens vers contribution**

 ![LovelaceDefaut](https://forum.hacf.fr/uploads/default/original/1X/e44a88ef2d7183d27df2624cc0a470ee999295f6.png)

```
type: entities
entities:
  - entity: sensor.user1_poids_date_locale
    name: Dernière pesée
  - entity: sensor.user1_poids
    name: Poids
  - entity: sensor.user1_poids_imc
    name: IMC
  - entity: sensor.user1_poids_gv
    name: ' Graisse viscérale'
  - entity: sensor.user1_poids_mb
    name: Besoin calorique
title: Poids de user1
show_header_toggle: false
state_color: false
footer:
  type: graph
  entity: sensor.user1_weight
  hours_to_show: 720
  detail: 1

```

 ![XiaomiMiScaleLovelaceDefaut1](https://forum.hacf.fr/uploads/default/original/1X/93e906ecd0356b95aea0a2915c8e670fb79627e5.png)

```
type: vertical-stack
cards:
  - type: entities
    entities:
      - entity: sensor.anthony_poids_date_locale
        name: Dernière pesée
      - entity: sensor.anthony_poids
        name: Poids
      - entity: sensor.anthony_poids_imc
        name: IMC
      - entity: sensor.anthony_poids_gv
        name: ' Graisse viscérale'
      - entity: sensor.anthony_poids_mb
        name: Besoin calorique
    title: Poids de Anthony
    show_header_toggle: false
    state_color: false
  - type: horizontal-stack
    cards:
      - type: sensor
        entity: sensor.anthony_weight
        graph: line
        name: Poids
        hours_to_show: 720
      - type: sensor
        entity: sensor.anthony_poids_imc
        graph: line
        name: IMC
        hours_to_show: 720

```

### Interface plus. (utilisation de custom card)

Vous avez besoin de _Swipe card_ [GitHub](https://github.com/bramkragten/custom-ui/tree/master/swipe-card),[HA](https://community.home-assistant.io/t/lovelace-swiper-card/72447) Installation via [HACS](https://forum.hacf.fr/t/installer-et-ajouter-des-plugins-et-des-custom-cards-avec-hacs/359).

Rechercher `Swipe card`.

 ![HACSFrontengSwipe Card](https://forum.hacf.fr/uploads/default/original/1X/f423e24075bfb35f9150b13d01a9c68c66c82bb4.png)

Une fois installée, il n'est pas nécessaire de redémarrer Home Assistant (comme toutes les cartes que vous installées par HACS).

Elle devrait apparaître dans la liste des carte lors de la configuration de votre Lovelace.

Sélectionnez la, puis passez en éditeur YAML et copier le code ci-dessous.

```
type: 'custom:swipe-card'
parameters:
  spaceBetween: 8
  scrollbar:
    hide: false
    draggable: true
    snapOnRelease: true
cards:
  - type: entities
    entities:
      - entity: sensor.user1_poids_date_locale
        name: Dernière pesée
      - entity: sensor.user1_poids
        name: Poids
      - entity: sensor.user1_poids_imc
        name: IMC
      - entity: sensor.user1_poids_gv
        name: Graisse viscérale
      - entity: sensor.user1_poids_mb
        name: Besoin calorique
    title: Poids de user1
  - type: entities
    entities:
      - entity: sensor.user2_poids_date_locale
        name: Dernière pesée
      - entity: sensor.user2_poids
        name: Poids
      - entity: sensor.user2_poids_imc
        name: IMC
      - entity: sensor.user2_poids_gv
        name: ' Graisse viscérale'
      - entity: sensor.user2_poids_mb
        name: Besoin calorique
    title: Poids de user2
  - type: entities
    entities:
      - entity: sensor.user3_poids_date_locale
        name: Dernière pesée
      - entity: sensor.user3_poids
        name: Poids
      - entity: sensor.user3_poids_imc
        name: IMC
      - entity: sensor.user3_poids_gv
        name: ' Graisse viscérale'
      - entity: sensor.user3_poids_mb
        name: Besoin calorique
    title: Poids de user3
show_header_toggle: false
state_color: false

```

Vous avez maintenant une carte plus interactive.

 ![HACSFrontengSwipe CardVideo](https://forum.hacf.fr/uploads/default/original/1X/0e3a19404be3e3b6ffa77a89f8a16ece1dbc52e7.png)

Un grand merci à @Clemalex pour sa participation sur les cartes Lovelace.

## Trucs & Astuces.

Si vous utilisez Raspbian comme OS pour le RPi, BluePy n'est pas installé par défaut (a confirmer je ne me rappelle plus) alors que sous Ubutnu oui.

Dans ce cas connectez vous en SSH puis taper les commandes suivantes.  
Sur python3

```auto
sudo apt-get install python3-pip libglib2.0-dev
sudo pip3 install bluepy

```

## Conclusion.

Vous avez maintenant le suivi de toutes les informations corporelle de votre famille.

## Une question, un problème

[Besoin d'aide ? Cliquez ici !](https://forum.hacf.fr/new-topic?title=Titre+de+votre+probl%C3%A8me&body=%23%23+Mon+probl%C3%A8me%0D%0A%0D%0A%2ARenseigner+votre+probl%C3%A8me%2A%0D%0A%0D%0A%23%23+Le+tutoriel+d%27origine%0D%0A%0D%0Ahttps%3A%2F%2Fforum.hacf.fr%2Ft%2Fintegrer-les-balances-xiaomi-dans-home-assistant%2F701%0D%0A%0D%0A%23%23+Ma+configuration%0D%0A___%0D%0A%5Bcenter%5DTexte+%C3%A0+remplacer+par+votre+configuration%5B%2Fcenter%5D%0D%0AComment+r%C3%A9cup%C3%A9rer+ma+configuration+%3A%0D%0ADans+votre+HA%2C+Menu+lat%C3%A9ral+%60Configuration%60+%3E+%60Info%60+%3E+bouton+copier+%3E+%60Pour+Github%60%0D%0A+++%21%5Bimage%7C648x167%2C+75%25%5D%28upload%3A%2F%2F1ietIxFU6nXP1GFrJTzwc2mh0j2.png%29%0D%0A&category=entraide-home-assistant&tags=aide)

## Annexes.

### Sources.

- [BluePy](https://github.com/IanHarvey/bluepy)

### Suivi des modifications

- _02/02/2021_ : Passage en article officiel (:hacf_tuto: ) @Clemalex
- _03/12/2020_ : Mise à jour pour V2 @McFly
- _20/10/2020_ : Création @McFly

---

_[View the full topic](https://forum.hacf.fr/t/integrer-les-balances-xiaomi-dans-home-assistant/701)._
