Bonjour, C’est Pierre-Yves. Aujourd’hui on va avoir un article plutôt court. Du moins je vais essayer. Il va concerner la surveillance des modules que l’on utilise au sein de notre domotique. Cet article va porter sur les plugins suivants : Z-WAVE / BLEA / XIAOMI HOME.

Pourquoi faire de la surveillance de modules

La question Pourquoi est à se poser. Et bien j’ai rencontré un jour un soucis de non désactivation de mon alarme de manière automatique. La raison était simple, mon nut n’avait plus de batterie et je n’ai pas été prévenu par ma domotique de ce soucis. Bien entendu on pourrait envisager de surveiller l’information batterie restante et de mettre une alerte sur batterie (fonctionnalité native jeedom). Mais le nut n’est pas interrogé pour obtenir son niveau de batterie, ça épuiserait sa pile trop vite.

Capteur communique bien avec le maitre jeedom ?

La batterie c’est bien comme information, mais si le niveau de batterie est transmis (cas d’un module envoyant l’information batterie), mais pas l’information sur son statut. Prenons l’exemple d’un détecteur d’ouverture. Il envoit son niveau de batterie, mais l’information sur son état n’est pas envoyée. C’est pas pratique pour une gestion d’alarme. qu’en dites-vous ?

Vous verrez un peu plus loin que ce que j’ai dis ici est à adapter en fonction de chaque type de capteurs. Cet article couvrira les différents type de capteurs dont je dispose, je n’ai pas tout en stock malheureusement.

Liste des capteurs sous surveillance

Voici la liste des types de capteurs que je surveille :

  • Ouverture Xiaomi
  • Inondation Xiaomi
  • Température Xiaomi
  • Mouvement Xiaomi
  • Gaz Xiaomi
  • Nut BLEA
  • Incendie Z-Wave
  • Ouverture Z-Wave
  • Inondation Z-Wave
  • Mouvement Z-Wave

Pourquoi je distingue les capteurs d’ouverture et mouvement entre Xiaomi et Z-wave ? Nous allons le voir dans le paragraphe dédié à la surveillance de ces capteurs.

Quelques explications sur la suite de l’article

Comme vous pouvez le voir dans le paragraphe précédent, la liste est assez importante. Et bien entendu il ne suffit pas de se dire, je prend tous mes capteurs, je fais une vérification de la date de dernière communication et c’est plié. En effet, chaque type de capteur possède un délais de communication spécifique, certains peuvent être forcé pour avoir un refresh de la date de dernière communication. Certains attributs sont mis à jour fréquemment, d’autres moins. Tout ça fait que c’est un vite un chantier à gérer :).

Panneau chantier

Je vais donc faire un paragraphe par type de capteurs. ça sera un peu répétitif en terme de lecture, mais vous aurez mon analyse sur le pourquoi du comment de chaque seuil ou type d’information utilisé sur les différents capteurs.
ça m’a pris pas mal de temps de tester et confirmer le type d’information et le seuil de non communication sur certains capteurs.

Surveillance – Partie Déclencheur du scénario

Juste un point commun, vu que tout est sur un seul scénario, voici le déclencheur :

déclencheur scénario surveillance module

Le déclencheur est donc de type programmé et il s’exécute toute les 2h à heure pile, tous les jours de l’année.
Pour rappel, si vous souhaitez des informations sur la programmation, vous pouvez suivre ce lien.

Surveillance – Capteur d’ouverture

Concernant les capteurs d’ouverture, j’ai deux types distinct, du Z-Wave (neocoolcam) et du Xiaomi Aqara.
Pour ces deux types de protocoles, j’utilise la valeur de la dernière collecte du statut Ouverture.

L’interrogation concernant les Xiaomi est faite après un appel à la fonction refresh qui est une fonction implémenté il y a quelques mois maintenant. ça fonctionne parfaitement bien et permet d’avoir un retour d’état du capteur très fréquent et donc fiable.
L’interrogation concernant les capteurs Z-wave est bien plus longue, j’ai mis une vérification à 3 jours. En effet, si on n’ouvre pas la fenêtre associée à un capteur, la date de collecte ne bouge pas. Et le refresh battery est fait tous les 1 mois chez moi via scénario. Par contre je dispose d’un scénario permettant de m’alerter si les fenêtres n’ont pas été ouvertes depuis 2 jours, donc normalement, si je respecte ce que mon autre scénario m’indique, je ne dois pas avoir de soucis de signalement de capteur n’ayant pas communiqué récemment.

Capteur d'ouverture scenario

  1. Bloc commentaire pour me faciliter la lecture si j’y reviens plus tard
  2. SI la maison n’est pas en mode Vacances et que je suis Présent (ça permet d’éviter le spam)
  3. Seuil en seconde pour les capteurs Z-WAVE (3 jours pour rappel)
  4. Seuil en seconde pour les capteurs Xiaomi (30 minutes)
  5. Fonction refresh expliquée plus haut, tous les capteurs Xiaomi ont un appel à cette fonction qui est fait.
  6. Ok, le 6 n’apparait pas, mais je met une pause de 30 secondes à la fin de tous les refresh, pour l’instant, pas de faux positif.
Ensuite on va passer au traitement et l’alerting en cas de besoin, je ne détaille qu’une pièce, ensuite c’est du copié collé, ça alourdirait inutilement l’article :

scénario capteur de porte

  1. SI (#timestamp# – conversion en date (strtotime) de la date de collecte (collectdate) du capteur de la Fenêtre du salon) > à la variable des capteurs Z-wave (variable(SeuilAlerteOuverture) OU  ainsi de suite sur les capteurs des fenêtres du salon ALORS
  2. Je m’envoi un message telegram
  3. Je désactive les notifications avec l’option disable_notify=1
  4. Le message contiendra une information sur la pièce en question et un état des capteurs afin que je sache quel capteur a généré l’alerte

#timestamp# permet d’avoir une valeur contenant le nombre de secondes écoulées depuis 1970 que l’on va donc soustraire à la date de la dernière collecte et comparer à un des seuils définis dans les variables.

Voici à quoi ressemble un message telegram

surveillance capteur porte message telegram

Attention, la date est au format Anglais. AAAA-MM-DD

Il vous suffit donc de répéter la surveillance sur chaque pièce ou chaque fenêtre selon votre préférence d’alerting.

Voici ci-dessous le contenu du bloc IF et le contenu du message telegram, à adapter à votre besoin bien entendu.

(#timestamp# – strtotime(collectdate(#[Salon][Capteur_Peri_F_Salon][Etat]#))) > variable(SeuilAlerteOuverture) OR

(#timestamp# – strtotime(collectdate(#[Salon][Capteur_Peri_PF_Salon][Etat]#))) > variable(SeuilAlerteOuverture) OR

(#timestamp# – strtotime(collectdate(#[Salon][Capteur_Peri_Fenetre_Bas][Ouverture]#))) > variable(SeuilAlerteOuvertureXiaomi) OR

(#timestamp# – strtotime(collectdate(#[Salon][Capteur_Peri_Porte_Fenetre_BAS][Ouverture]#))) > variable(SeuilAlerteOuvertureXiaomi)

/!\ Attention, un des capteurs périmétrique du salon n’a pas communiqué son état récemment /!\
F Haut : collectdate(#[Salon][Capteur_Peri_F_Salon][Etat]#)
F Bas : collectdate(#[Salon][Capteur_Peri_Fenetre_Bas][Ouverture]#)
PF Haut : collectdate(#[Salon][Capteur_Peri_PF_Salon][Etat]#)
F Bas : collectdate(#[Salon][Capteur_Peri_Porte_Fenetre_BAS][Ouverture]#)

Pour les prochains paragraphe, je vais juste présenter les seuils et le choix du type d’information utilisées, mais ne détaillerai pas la logique du calcul, ceci étant abordé sur le paragraphe que vous venez de lire.

Surveillance – Capteur de mouvement

Concernant les capteurs de mouvement, j’ai deux types distinct, du Z-Wave (neocoolcam) et du Xiaomi Aqara.
Pour ces deux types de protocoles, j’utilise 2 informations sur les trois suivantes, statut Mouvement, statut Luminosité et statut Batterie.

Les z-waves j’utilise l’information mouvement et luminosité.
Les xiaomi j’utilise l’information mouvement et batterie.

Ce sont les paramètres qui m’ont permis d’avoir le plus de chance d’obtenir une information sur la date de dernière communication. Je vais détailler un tout petit peu encore ces capteurs et les prochains ça ira vite. Je n’ai pas choisit de faire un refresh sur les capteurs Xiaomi dans le cas présent car on bouge dans la maison. Tout du moins, plus que ce que l’on ouvre les fenêtres :).
J’ai deux types de seuils entre le fait que je sois en mode vacances ou absent comme vous pourrez le voir.

surveillance capteur mouvement

  1. Valeur identique entre seuilAlerteBatterie et seuilAlerteMouvement (12heures)
  2. Valeur fixée à 25 heures pour le seuilAlerteLuminosite
  3. Identique à au dessus, on adapte juste les noms des capteurs, l’information et le seuil à utiliser.

surveillance capteur mouvement vacances

  1. Comme indiqué pour le cas ou je suis absent ou en vacances, je change les seuils et les passent à 3 jours.
    1. Avec ma gestion du mode absences, tout se déroule correctement
  2. Aucun changement, une simple recopie du contenu du IF, c’est la puissance des variables
  3. Idem, pas de changement, on copie colle et ça roule

Surveillance – Détecteur d’inondation

Concernant les détecteurs d’inondation, j’ai deux types distinct, du Z-Wave (neocoolcam) et du Xiaomi Aqara.
Pour ces deux types de protocoles, j’utilise soit l’information de batterie et/ou température pour le Z-wave, soit l’information de batterie pour les capteurs Xiaomi. Je fais un refresh sur les capteurs Xiaomi.

scenario capteur inondation

Vous avez 3 exemples différents avec la partie Z-wave (neocoolcam) -> Information Batterie, puis la partie Z-Wave (Fibaro) avec batterie et température, puis du xiaomi avec l’information batterie.
Oui j’ai mis en dur dans le IF pour le capteur Fibaro la valeur pour la partie température, mais j’ai vu ça en faisant la copie d’écran, j’ai eu la flemme de refaire une copie d’écran.

Surveillance – Détecteur de gaz

Concernant le détecteur de gaz, je n’ai que du Xiaomi, dont vous pouvez retrouver un article ICI
Pour ce dernier, j’utilise la valeur de la dernière collecte du statut Alarme qui via un refresh est mis à jour.

scénario détecteur de gaz

Surveillance – Détecteur incendie

Concernant les détecteurs incendie, je n’ai que du Z-Wave (Fibaro). Pour eux j’utilise l’information de température. Dans les paramètres z-wave des modules, j’ai mis que je souhaite avoir une remontée de la température en cas de changement assez faible de température (0.5°C). C’est le paramètre 21 sur les détecteurs incendie Fibaro.

scénario détecteur de fumée

Surveillance – Capteur de température

Concernant les capteurs de température, je ne surveille que du Xiaomi. Et pour eux j’utilise la fonction refresh car je m’en sers pour le chauffage. J’utilise donc la valeur température de ces derniers. C’est elle qui m’importe le plus.

Scénario capteur température xiaomi

Rien de bien folichon non plus sur celui là.  Juste une vérification du fait que je suis présent. un refresh et une vérification des différents capteurs dont je dispose.

scénario capteur température

Surveillance – Nut

Concernant les nuts qui sont remontées dans BLEA. ils me servent pour la présence, donc ils sont plutôt très importants. Pour eux je surveille tout simplement la valeur Présent et je m’assure qu’ils aient communiqué au moins dans les 12 dernières heures.

Scénario détection nut

Conclusion

Je n’ai une fois plus pas réussi à faire un article concis. Je suis désolé :(. Il est un peu répétitif, mais vous avez quelques informations sur les différents seuil à utiliser, bien qu’ajustable selon votre besoin.

A dispo si besoin de conseils ou que certaines choses méritent un complément d’information.



Partager sur :

Infos de l'auteur

Je m'appelle Pierre-Yves,Je suis dans l'informatique de profession, dans la domotique par hasard pour voir un peu si je pouvais relever le défis de piloter deux trois trucs chez moi. Je crois maintenant que j'ai réussi à me faire attraper par la domotique vu tout ce que j'ai à la maison. Je fais également un peu de VTT, de moto quand le temps le permet.

20 commentaires

  1. Hello,
    Merci beaucoup pour ce tuto, j’utilise la même technique sur mes modules Z-Wave depuis un moment.
    Il est juste dommage que cette fonctionnalité ne soit pas prise en charge par les Plugins nativement.

  2. Bonjour,

    Il y a t’il possibilité d’utiliser la section Santé pour atteindre le même but? cela éviterait d’énumérer les éléments.

    Merci.

  3. Pingback: Notre Veille : Surveillance équipement (Z-wave / Xiaomi / Blea) -

  4. Bonjour,

    pour la partie Z-Wave j’interroge le contrôleur z-wave qui m’alerte pour chaque module qui n’a pas communiqué depuis 2x “le temps de son WakeUp interval”.
    Ce qui évite d’avoir des messages sur une fenêtre pas ouverte depuis 3 jours quand on est en vacances

  5. Merci pour ce tuto.
    Ca m’a permis de voir que j’ai une sonde de température Xiaomi qui s’était déconnecté. 🙂
    Je vais intégrer le Zwave dans mon scénario aussi.

    Encore merci 🙂

  6. Bonjour,
    Merci pour cet article très sympa et intéressant.
    J’ai essayé de reproduire le scénario et j’ai le message suivant dans les logs:
    [2018-06-06 08:46:52][SCENARIO] Evaluation de la condition : [(1528267612 – 1528262884) > 43200 ] = (1528267612 – 1528262884) > 43200
    [2018-06-06 08:46:52][SCENARIO] Expression non valide : (1528267612 – 1528262884) > 43200
    [2018-06-06 08:46:52][SCENARIO] Fin correcte du scénario
    J’ai l’impression qu’il ne fait pas le calcul.

    • Bonjour,

      Avec plaisir, on dirait qu’il y a quelque chose qui l’embête, il faudrait une copie d’écran pour voir si c’est plus clair.

      Merci,

  7. Merci pour ce super tuto c’est top !!!!

    Ça permet bien de combler les “failles” que pourrait comporter un système d’alarme …

    Cependant attention ceux qui copient-collent comme moi. Dans le tuto des grand tirets se sont mis automatiquement à la place des moins de soustraction.
    -> Le pire c’est que ça ne met pas d’erreur dans jeedom, juste que ça ne fait pas le calcul et donc à l’exec du scenario on passe en false et “tout va bien”.
    -> “(#timestamp# – strtotime…” à remplacer par “(#timestamp# – strtotime…”

  8. Hello,
    j’ai eu le meme pb, essai de corriger la première partie ci-dessous (de la saisir manuellement je pense que ton tiret n’est pas bon)
    (#timestamp# –

  9. Pingback: Bilan de la Semaine 23 - La Domotique de Sarakha63

  10. Super article, ca me parait tellement indispensable étant donné le peu de fiabilité de la remontée de batterie des modules zwaves qu’un module dédié voir un truc dédié dans le core serait vraiment la bienvenue. Pas plus tard que ce soir je me suis aperçu que mon oeil fibaro est mort dans l’indifférence générale sans que le controlleur zwave ne bronche (depuis 1 semaine). La batterie indiquait pourtant 70% mais la pile était bien morte…

  11. merci pour ce superbe tuto que je vais relire calmement car entre le Z-Wave, les Xiaomi et mon age, moi qui n’est que du Xiaomi tu m’as un peu perdu, lool.
    Donc je vais essayer de relire cela pour ne retirer que ce qui est xiaomi.

Laisser un commentaire