You are currently viewing Ventilateur Connecté avec Suivi d’Emplacement via Aqara FP2 sur domotique Jeedom

Ventilateur Connecté avec Suivi d’Emplacement via Aqara FP2 sur domotique Jeedom

Lien affilié

Aqara Détecteur de Présence FP2, Radar mmWave Détecteur de Présence Filaire

  • Positionnement de zone
  • Détection Multi-personnes et chute
  • Compatible Homekit, alexa, Google Home
  • Compatible Jeedom et Home assistant
Lien affilié

Smartmi Standing Fan 2S XM220001, Ventilateur sur Pied, Aluminium, Blanc, 50 W, 29 décibeles

  • Le ventilateur sur pied intelligent proposé par Xiaomi offre une bouffée d’air frais à votre quotidien. Le système novateur de circulation d’air génère un souffle d’air naturel qui le différencie clairement d’un ventilateur conventionnel.
  • Grâce à sa batterie lithium-ion intégrée, il peut également vous être utile chaque fois que vous avez besoin d’air frais
  • Peut fonctionner sans fil partout jusqu’à 16 heures d’autonomie, que ce soit sur un balcon, dans un jardin ou sur une terrasse ce ventilateur sur pied très polyvalent s’utilise partout sans raccordement électrique
  • Le ventilateur se commande directement sur l’appareil, via la télécommande qui l’accompagne ou de manière confortable via l’appli Mi Home depuis votre smartphone. Ou encore depuis l’assistant vocal Alexa d’Amazon et Google Assistant
  • Les 7 pales du rotor en forme d’ailettes simulent naturellement la circulation du vent
  • Fonctionnement très silencieux avec seulement 29 dB grâce à un moteur CC sans balai
  • Commande de la vitesse à variation continue (entre 1 et 100 %) et 4 angles d’oscillation (30 °, 60 °, 90 ° et 120 °)
  • Tige et base en aluminium

Ventilateur connecté Xiaomi, Aqara FP2, Jeedom

 

o.Contexte

Hello,

Aujourd’hui, je partage une petite automatisation utilisant un ventilateur connecté Xiaomi et un capteur d’occupation Aqara FP2. Cette automatisation nous permettra d’avoir un ventilateur avec suivi d’emplacement.

Avec les températures actuelles élevées, j’ai sorti mes ventilateurs connectés Xiaomi (mi fan 2S), les ventilateurs connectés offrent une praticité indéniable :
allumage et extinction basés sur la détection de présence dans une pièce où dans une zone, gestion de la puissance de ventilation selon la température ambiante, etc.

Cependant, subsiste une contrainte non résolue : l’intervention humaine requise pour basculer entre les modes statique (fixe) lorsqu’une personne est seule et rotatif lorsque plusieurs personnes sont présentes, ce n’est pas la contrainte la plus importante, car une simple requête vocale permet de basculer rapidement du mode fixe au mode rotatif.
La vraie contrainte survient lorsqu’il s’agit de réorienter le ventilateur en mode fixe vers soi. Lorsqu’on arrête le ventilateur après qu’il a oscillé, sa position d’arrêt est aléatoire. Ainsi, à chaque fois que l’on souhaite le diriger vers soi, il faut soit prendre son téléphone en main, ouvrir l’application et enchaîner les commandes « tourner à droite/gauche » jusqu’à ce qu’il atteigne notre position, soit passer plusieurs requêtes vocales, et si le ventilateur s’est arrêté à l’extrémité gauche, il peut falloir en passer plus d’une dizaine.
Cette situation devenait pénible lorsque je me retrouvais seul sur le canapé et que le ventilateur oscillait encore pour une brève sensation de ventilation. Il fallait que je stoppe la rotation avant de le réorienter dans ma direction. Et vice versa, réactiver le mode oscillation lorsqu’il y avait plusieurs personnes sur le canapé.
Certaines personnes pourraient penser qu’il leur suffit de se lever et d’orienter manuellement la ventilation. Mais à quoi bon disposer d’un serveur domotique si l’on ne tire pas parti de son plein potentiel ?

Solution Proposée

C’est ainsi qu’après la sortie des nouveaux capteurs d’occupation Aqara FP2, j’ai eu l’idée d’upgrader celui qui ventile la zone du canapé pour en faire un ventilateur a suivi d’emplacement. En d’autres termes, il détecte les places occupées sur le canapé et s’y dirige en adaptant son mode de rotation (fixe ou rotatif) en fonction du nombre de personnes assises, ajustant également le degré de rotation en fonction de l’espace entre les places occupé(s).

Déroulement du scénario

Initialement, le ventilateur s’allume automatiquement (si besoin) dès qu’une personne s’assoit sur le canapé et s’éteint lorsqu’il n’y a plus personne. De plus, la vitesse de ventilation varie en fonction de la température ambiante du salon. Plus la température est élevée, plus la vitesse de ventilation est rapide, car nos besoins en puissance de ventilation diffèrent en fonction de la chaleur ressentie. Ce paramètre répond à une nécessité personnelle et fonctionne indépendamment de l’automatisation de suivi d’emplacement, donc je ne vais pas m’attarder davantage dessus.

Cas de Figure

 

    1. Une Personne Assise : Si une seule personne est assise sur le canapé, le ventilateur s’allume, passe en mode fixe et se dirige vers cette personne, garantissant une ventilation optimale sans pertes d’énergie.

    1. Plusieurs Personnes Assises : Lorsqu’une deuxième personne s’assoit sur le canapé, la rotation s’active et en fonction de sa position (extrémité gauche, milieu, extrémité droite), l’angle de rotation s’ajuste pour ventiler les deux personnes en tenant compte de l’espace entre elles. L’objectif est toujours de fournir une ventilation optimale aux deux personnes assises sur le canapé sans pertes d’énergie. Par exemple, si la première personne est assise à l’extrémité gauche et la deuxième au milieu (les deux sont côte à côte), le ventilateur effectue des rotations à 30°. Si la première personne est à l’extrémité gauche et la deuxième à l’extrémité droite (lorsque ma femme et moi boudons 😄), le ventilateur effectue des rotations à 120°.

    1. Passage De Plusieurs Personnes à Une Seule Personne : Si plusieurs personnes étaient assises sur le canapé et qu’il n’en reste plus qu’une seule, le ventilateur passe en mode fixe et se dirige vers la personne qui est désormais seule sur le canapé, lui permettant ainsi de profiter pleinement de la ventilation.

Configuration Matérielle et Prérequis

 

    • Ventilateur Connecté : Doit prendre en charge les commandes Rotation On/Off, Tourner à Droite/Gauche (Xiaomi dans cet exemple).

    • Aqara FP2 : Capteur d’occupation utilisé pour détecter les places occupées.

    • Plugin groupe : facultatif mais plus simple pour configurer le scénario.

Création des Zones

Pour commencer, nous entamons en divisant les places du canapé en zones distinctes depuis l’application Aqara. Dans mon cas, j’ai divisé le mien en trois zones : la place à gauche, la place au milieu et la place à droite.
J’ai veillé à ce qu’une place occupe au moins deux carrés du quadrillage en largeur, sachant qu’un carré équivaut à 40 cm x 40 cm. Cette approche permet une précision de place de 80 cm x 80 cm, vous permettant ainsi de bouger sans que le capteur interprète un changement de place, comme lorsque vous étirez vos bras. Ce qui donne un maximum de 3 zones de 80cm pour un canapé de 2m40 de largeur.
*Même si vous dépassez brièvement sur une place, le scénario inclut un délai (sleep) de 4 secondes pour compenser ce problème. La place ne sera validée que si vous y restez pendant au moins 4 secondes.
*Si vous vous demandez comment le capteur réagira lorsque vous vous allongerez seul sur toute la longueur du canapé, il suivra simplement la dernière partie de votre corps en mouvement. En vous allongeant, il vous attribuera la place où se trouve votre tête, et si vous déplacez vos pieds, il ajustera la place en conséquence. Si cet aspect vous gêne, vous pouvez désactiver le scénario le temps que vous êtes allongé ».

 

Ventilateur connecté

Création d’un Groupe

Une fois les zones du canapé créées et remontées dans Jeedom, on fait un groupe (en utilisant le plugin « Groupe »), comprenant les 3 zones du canapé. Lorsqu’une personne est sur le canapé, le groupe passe à 1. S’il y a deux personnes, il passe à 2, s’il y a trois personnes, il passe à 3, et s’il n’y a personne, il passe a 0.
La commande info « Nombre On » du groupe sera l’unique déclencheur du scénario.

Calcul du Positionnement

Ensuite, il sera nécessaire de déterminer combien de fois le ventilateur doit tourner à droite et à gauche pour ventiler une place du canapé. Une fois que l’emplacement occupé est connu, nous attribuerons à une variable le numéro de cet emplacement, afin d’enregistrer la position actuelle du ventilateur.
Comme précédemment expliqué, lorsque le ventilateur est arrêté après avoir oscillé, sa position d’arrêt est aléatoire. Par conséquent, le scénario commence par vérifier l’état de rotation « On/Off » (indépendamment du statut de fonctionnement, l’info de la rotation reste dans son dernier état avant l’arrêt).
Ainsi, si une personne se retrouve seule sur le canapé alors que le ventilateur était précédemment en mode rotation, un « reset » de sa position est effectué en sachant qu’il doit tourner 18 fois pour passer d’une extrémité à l’autre, Cela correspond au même processus natif lorsqu’on active la rotation pour l’étalonnage. Même s’il est à seulement 1 tournant de l’extrémité gauche, un court délai s’écoule avant que l’oscillation ne démarre.
*Le reset de la position ne se produira que dans deux cas de figure :

Lorsqu’il y avait plusieurs personnes sur le canapé (avec l’oscillation activée), mais désormais, il n’en reste qu’une seule (nécessité d’une ventilation fixe).

Lorsqu’il y avait plusieurs personnes sur le canapé et que tout le monde est parti simultanément (oscillation activée et ventilateur éteint). Dans ce cas, un reset sera effectué si une personne se rassoit seule.
Pour déterminer le nombre de commandes « tourner » nécessaires pour ventiler les différentes places du canapé, commencez par placer le ventilateur complètement à gauche (18 fois tourner à gauche). Ensuite, comptez les commandes « tourner à droite » requises pour ventiler chaque place, dans mon cas :
7 fois tourner à droite pour être face à la place de gauche.
9 fois tourner à droite pour être face à la place du milieu .
11 fois tourner à droite pour être face à la place de droite.

Après un « reset » de sa position, quand quelqu’un s’assoit à une place, on affecte à la variable_position le numéro de la place. Si le ventilateur n’a pas besoin de reset sa position car il n’était pas en mode rotation, c’est la variable_position qui va déterminer le sens et le nombre de rotations nécessaires pour ventiler la nouvelle place occupée.

Par exemple, entre la place 1 et 2, ou 2 et 1, le ventilateur doit tourner 2 fois.
Entre la place 2 et 3, ou 3 et 2, il doit tourner 2 fois.
Entre la place 1 et 3, ou 3 et 1, il doit tourner 4 fois.
Donc, si je m’assois à la place 2 (milieu) et que je change pour la place 3 (droite), le ventilateur va tourner 2 fois à droite. Si je pars de la place 3 pour aller chercher une bière, puisque je m’assois à la place 1 (gauche), le ventilateur va tourner 4 fois à gauche.

Scénario

 

Ventilateur connecté

Explications du scénario

On commence par mettre la commande « Nombre On » du groupe des zones du canapé en déclencheur.

Une seule personne sur le canapé, Ventilateur connecté

Un premier bloc SI teste la présence sur le canapé et la température ambiante.
Si le groupe est > 0, c’est qu’il y a une ou plusieurs personnes sur le canapé et donc on a besoin d’une ventilation:

 

    • On allume le ventilateur

    • On fait un refresh de l’équipement

    • Pause de 4 secondes
      Sinon on l’éteint.

*Il y a un délai de 4 secondes entre le refresh et l’actualisation des infos qui est nécessaire pour connaître l’état de la rotation, peu importe la manière dont a été intégré le ventilateur (plugin Xiaomi, miiocli, mqtt).
Dans le cas où l’actualisation mettrai plus de 4 secondes suite à une lenteur du refresh, je passe la variable_position à 0 quand le scénario met le ventilateur en mode rotation, de la sorte si la rotation est activée mais que l’équipement n’a pas fini de refresh avant les 4 secondes (rotation restait sur off), je sais que la rotation est activée avant même que le statut soit actualisé.

*Il y a un sleep de 2 secondes avant d’éteindre le ventilateur, il permet de ne pas faire un Off/On lors d’un bref changement de place, car en changeant de place, soit le groupe passe de 0 à 1, soit il reste sur 1.

*A la fin de chaque bloc SI/SINON qui teste la position du ventilateur, il y a un bloc SI: si groupe nombre On = 0 alors arrêter le ventilateur. Sans cette action, lorsqu’on s’assoie brièvement sur une place et qu’on y sort avant le sleep de 4 secondes, le ventilateur ne s’éteint pas car il s’éteint quand le groupe est à 0, alors si quelqu’un s’assoit moins de 4 secondes puis part le scénario continue après le sleep de 4 secondes, il va analyser la place occupée. Mais puisqu’aucune place n’est occupée, alors il s’éteint.

Si l’oscillation était activée

Un deuxième bloc SI (après le sleep) teste le nombre de places occupées.
Si le groupe < 2, c’est qu’il y a qu’une seule personne et donc on a besoin d’une ventilation fixe, alors un troisième bloc SI détermine l’état de la rotation afin de savoir si on doit reset ou non la position du ventilateur.
Si rotation ventilateur = on OU variable_position = 0, on reset la position du ventilateur :

 

    • Désactiver la rotation

 

    • Reset la position du ventilateur via un bloc boucle qui tourne 18 fois le ventilateur a gauche

Un quatrième bloc SI détermine la place occupée.
Si zone gauche = 1, alors :

 

    • Tourner 7 fois à droite

 

    • Variable_position = 1

Sinon, si zone milieu = 1, alors

 

    • Tourner 9 fois à droite

 

    • Variable_position = 2

Sinon

 

    • Tourner 11 fois à droite

 

    • Variable_position = 3

*Ne tenez pas compte de la dernière action qui lance un scenario, c’est simplement mon scénario qui adapte la vitesse de ventilation en fonction de la T° ambiante. La fin du scénario étant illisible, j’ai préféré séparer les actions.

Si l’oscillation était désactivée

Sinon, si l’oscillation du ventilateur n’est pas activée et que la variable_position est différente de 0, alors un bloc SINON avec un premier bloc SI va analyser la position actuelle du ventilateur ainsi que place qui est occupée.

Si variable_position = 1 (le ventilateur est face à la place de gauche)
Alors
Si zone milieu = 1 (on s’est assis à la place du milieu)

 

    • Tourner 2 fois à droite

    • Variable_position = 2
      Sinon, si zone droite = 1 (on s’est assis à la place de droite)

    • Tourner 4 fois à droite

    • Variable_position = 3
      *Pas besoin d’orienter le ventilateur vers la place de gauche s’il était déjà face à cette place et que vous vous y asseyez.

Sinon,

Si variable_position = 2 (le ventilateur est face à la place du milieu)
Alors
Si zone gauche = 1 (on s’est assis à la place de gauche)

 

    • Tourner 2 fois à gauche

    • Variable_position = 1
      Sinon, si zone droite = 1 (on s’est assis à la place de droite)

    • Tourner 2 fois à droite

    • Variable_position = 3

Sinon,

Si variable_position = 3 (le ventilateur est face à la place de droite)
Alors
Si zone gauche = 1 (on s’est assis à la place de gauche)

 

    • Tourner 4 fois à gauche

    • Variable_position = 1
      Sinon, si zone milieu = 1 (on s’est assis à la place du milieu)

    • Tourner 2 fois à gauche

    • Variable_position = 2

Plusieurs personnes sur le canapé

Lorsqu’il y a plusieurs personnes, il est nécessaire d’activer l’oscillation et d’ajuster l’angle en fonction de l’écart entre les places occupées. Maintenant que nous avons achevé la section concernant l’orientation fixe, nous abordons la partie consacrée à l’oscillation, qui va ajuster l’angle en fonction de l’écart entre les places occupées.

Plusieurs possibilités en fonction de l’emplacement du ventilateur par rapport au canapé.

Première Possibilité:
Dans mon cas, le ventilateur est positionné sur la gauche du canapé. Ainsi, si deux personnes occupent deux places côte à côte, par exemple la place de gauche et la place du milieu, j’ajusterai l’oscillation sur un angle de 30° afin de ventiler exclusivement ces deux places.
J’ai légèrement décalé la position du ventilateur vers la droite de manière à ce que l’angle de 30° débute à partir de la place de gauche et s’arrête à la place du milieu.

Si les places occupées sont la place de gauche et la place de droite (deux personnes occupant des places opposées), alors une oscillation à 60° est nécessaire, indépendamment de la présence d’une troisième personne au milieu.
Il en va de même si les places occupées sont celles du milieu et celle de droite, je suis obligé de régler l’oscillation à 60°.

Deuxième Possibilité:
Si le ventilateur se trouve au centre du canapé, l’ajustement de l’angle sera moins étendu. En étant au centre, le ventilateur peut couvrir toutes les places avec un angle de 30°.

*Tous ces paramètres varient en fonction de la longueur de votre canapé, de sa forme (qu’il soit en U ou en L), du nombre de places disponibles ainsi que de l’emplacement du ventilateur. Il sera nécessaire d’ajuster le scénario en conséquence.

Conclusion

En conclusion, si vous avez l’habitude de déplacer le ventilateur qui présente l’avantage d’avoir une batterie intégrée, cela ne pose aucun problème. Sur les socles des ventilateurs Xiaomi, vous trouverez un petit repère qui indique le centre. Il vous suffit de marquer un repère. Par exemple, le mien est placé sur une petite table basse pour avoir une ventilation en hauteur de la tête aux jambes. Lorsque je le retire pour faire les poussières, je replace le repère pile-poil sur un motif de la table. Si le vôtre est posé sur du carrelage, vous pouvez aligner sur le joint, en créant ainsi un repère pour remettre le ventilateur à sa place d’origine.

Voilà, votre ventilateur connecté avec suivi d’emplacement est prêt à fonctionner selon les schémas que vous avez mis en place. Ce projet démontre parfaitement comment les objets connectés et l’automatisation peuvent rendre notre vie quotidienne plus confortable et efficace.

Gustavo