[TUTO] – Jeedom : Gestion de présence

1 Star2 Stars3 Stars4 Stars5 Stars (6 votes, average: 4,83 out of 5)
Loading...

de | 3 octobre 2017

Hello !

Aujourd’hui un petit tuto sur comment faire de la gestion de présence automatique . En employant le terme présence « automatique » j’entend par là, le fait d’utiliser un outil permettant de gérer et vérifier les aller et venu d’une personne et donc savoir si elle est bien présente. Soit via un clavier d’alarme, soit via un équipement bluetooth de type Nut etc… et non pas, via une entrée dans un calendrier pré-programmé par exemple.

Le matériel

Dans un premier temps, petit tour du propriétaire avec le matériel utilisé pour gérer la détection de présence :

Pour mon utilisation quotidienne, j’ai donc décidé d’utiliser un petit dongle Bluetooth BLE de type Nut Mini 3 que j’ai accroché à mes clés de voiture. Nous utilisons tous les jours nos véhicules pour aller au travail de fait, c’etait pour nous le meilleur endroit où poser cet équipement afin de faire de la détection de présence. De plus il s’agit d’un périphérique tout le temps actif, il n’y a aucun bouton pour le reveiller, de fait la détecter peux etre vraiment automatique.

Pour la partie reception des données du Nut Mini 3, et donc coté Jeedom, j’utilise une clé USB Bluetooth 4.0 BLE connecté à mon NUC sur lequel tourne Jeedom ainsi qu’un RaspberryPi 3 en mode antenne, en utilisant la puce Bluetooth intégrée de ce dernier. Avec ça, je couvre les 110m² de mon domicile sans problème.

/!\ Il faut absolument que la clé Bluetooth soit compatible BLE /!\ En cas de doute vous pouvez prendre celle que je vous propose en lien, c’est celle que j’utilise.

Enfin, il ne s’agit pas de matériel mais plutot de logiciel, j’utilise l’excellent plugin Jeedom Bluetooth Advertisement qui permet de gérer les périphériques bluetooth mais aussi de déclarer une ou plusieurs antennes !

Donc pour résumer le matoss :

La mise en place

Installation de la clé USB Bluetooth

Là pas grand chose à faire, si vous etes sur un raspberry vous n’avez qu’a brancher la clé et ce sera dectecté directement.

Si vous etes sur un environnement virtualisé de type VMware alors il faudra connecter la clé puis l’ajouter à la VM. Vous pouvez suivre mon tuto qui explique comment installer Jeedom dans une VM VMware, j’explique comment connecter un périphérique USB à Jeedom.

Installation du plugin

  • Là aussi c’est assez facile, pour installer le plugin il suffit de se rendre dans votre Jeedom puis d’aller dans Plugins > Gestion des plugins > Market

Jeedom : Gestion de présence

 

  • Recherchez Bluetooth Advertisement puis cliquer dessus afin de pouvoir l’installer

Jeedom : Gestion de présence

 

  • Il ne reste plus qu’a cliquer sur Installer stable et c’est parti !

Jeedom : Gestion de présence

Page de configuration

Après avoir installé le plugin, il vous sera demandé de l’activer ou non. Activez-le afin d’avoir accès à la page de configuration ci-dessous.

Cette page recense l’état général du démon BLEA ainsi que toute sa configuration.

Si ce n’est pas fait lors de l’installation du plugin, il faudra procéder aux actions suivantes :

  1. Installation des dépendances
  2. Selection de la clé USB Bluetooth
  3. (Re)Démarrage du démon

Si tout va bien, tout devrait être OK comme l’image ci-dessous

Cliquez sur l’image pour l’agrandir

Jeedom : Gestion de présence

Appairage du Nut Mini 3

Dernière étape pour que tout votre matériel soit opérationnel : l’appairage de votre Nut !

  • Pour ça rien de plus simple, aller dans Plugins > Protocole domotique > Bluetooth Advertisement

Jeedom : Gestion de présence

  • Cliquez sur le gros bouton Lancer Scan puis retirez et remettez la pile de votre Nut, il devrait clignoter et être vu par Jeedom.

Jeedom : Gestion de présence

 

  • Si l’association est bonne, vous devriez etre redirigé automatiquement sur la page de configuration de votre Nut, comme l’image ci-dessous

Jeedom : Gestion de présence

 

Ci-dessous, la page des commandes disponible pour le Nut

Jeedom : Gestion de présence

Bon voila, coté matériel on a tout, on va pouvoir passé aux virtuels, scénarios etc…

L’automatisation

Les variables

Dans un premier temps on va créer 3 variables qui me seront utiles pour mes prochains scénarios.

  1. vBLE-Ginette (Utilisé en mode texte)
  2. vBLE-Maxime (Utilisé en mode texte)
  3. vPresenceGlobale (Utilisé en mode binaire)

Les scénarios

Maintenant on peux créer nos scénarios. Le but étant, de passé automatiquement la maison en mode « Présent » lorsqu’il y a au moins une personne, et en mode Absent, quand il n’y a plus personne.

Pour cela comment j’ai fais ? J’ai créé deux scénarios et utilisé la variable vPresenceGlobal créée précédemment.

Scénario 1 : Gestion de présence

Ce qui, visuellement, donne ceci :

Cliquez sur l’image pour l’agrandir

Jeedom - Gestion de présence

Alors qu’est ce que ça veux dire tout ca ?

1er bloc :

Je demande via un scénario, de modifier une variable qui sera utilisée dans un autre scénario pour d’autre action. SI Ginette ET Maxime sont Absent (Nut Mini = 0) ALORS tu me passes la variable vPresenceGlobal à 0 (oui y’a plus personne à la maison).

Dans le cas contraire tu la passe à 1 car ca veux dire qu’il y a au moins 1 personne de présente.

2ème et 3ème bloc :

Ces deux blocs permettent de mettre à jour les variables vBLE-XXX suivant le status du Nut et permettent de remonter l’heure à laquelle le status s’est mis à jour. Cela nous sera utile pour le virtuel, à la fin de ce tuto.

 

Scénario 2 : Passage en mode « Présent »

Ce qui, visuellement, donne ceci :

Cliquez sur l’image pour l’agrandir

Jeedom - Gestion de présence

Alors qu’est ce que ça veux dire tout ca ?

Je joue ce scénario sur la modification de la valeur de la variable vPresenceGlobale. SI ma variable vPresenceGlobal = 1 (c’est qu’il y a au moins 1 personne à la maison) ALORS, SI le mode actuel = « Présent » OU « Nuit » (c’est qu’il y a quelqu’un à la maison) ALORS tu fais rien, SINON (si c’est un autre mode, c’est qu’il n’y a personne) tu passes en mode « Présent ».

 

Scénario 3 : Passage en mode « Absent »

Enfin, dernier scénario qui permet de gérer toute la chaine de présence. Le passage automatique en mode absent. J’ai pas mal galérer pour faire ça, au début je le gérait avec l’application webapp et le plugin Geoloc iOS mais c’etait pas assez fiable.

Du coup j’ai cherché comment optimiser et surtout fiabiliser la chose et j’ai trouvé !

Ce qui, visuellement donne ceci :

Cliquez sur l’image pour l’agrandir

Jeedom - Gestion de présence

Alors qu’est ce que ça veux dire tout ca ?

Tout simplement que toutes les minutes, le scénario se déclenche et va checker le status de mes Nut Mini. Si le Nut de Ginette ET de Maxime est en status 1 depuis + de 300 secondes (5minutes) alors tu passes en mode « Absent« .

Avant de faire ce check, j’avais souvent des faux positif car mes tag décrochaient en même temps pendant quelques secondes. Du coup la maison passait en mode Absent puis Présent en l’espace d’une minute, jouant tous les scénarios associés à ces modes…

/!\ La commande StateDuration nécessite d’historiser le status de vos Nut Mini – Merci à Sebastien C pour l’avoir souligné dans son commentaire en bas de page /!\

Le virtuel

Enfin, le virtuel de mon Dashbord !

Jeedom - Gestion de présence

Souvenez-vous, lors de la première étape, on a déclaré 3 variables, dont 2 qu’on utilise en format « texte ». Et bien on va s’en servir maintenant.

Création du virtuel

Il faut avoir le plugin virtuel et aller dans : Plugins > Programmation > Virtuel

Cliquez sur le gros « + » pour ajouter un nouveau virtuel, renseignez les informations du premier onglet « Equipement » puis passez à l’onglet « Commandes »

Jeedom - Gestion de présence

Ligne #1269 : valeur de type info binaire qui va récupérer l’etat de votre Nut Mini

Ligne #1270 : valeur de type info autre qui va récupérer la valeur de la variable vBLE-Maxime

 

Voila, désormais vous pouvez gérer votre présence de manière automatique.

Il y a surement d’autres méthodes, peut-etre plus simple. Aujourd’hui cette méthode répond tout à fait à mon besoin. Si jamais vous avez d’autres idées, si on peux simplifier, si vous faites autrement, je suis preneur de tout vos conseils, n’hésitez pas à m’ecrire un petit mot en commentaire.



Source : Image à la une

If you like this post, don't hesitate to share it !

50 réflexions au sujet de « [TUTO] – Jeedom : Gestion de présence »

      1. JMC

        2 petites questions (après avoir reçu des NUTs et avoir suivi le tuto à la lettre):

        – Scénario 2 et 3 -> ligne 20-25: #[IT][Slack – Maxime][Slack_Jeedom]# – Options : Array…
        Tu pourrais nous en dire plus sur les lignes 20 à 25?

        – Comment programmes-tu l’avatar présent – absent?

        Répondre
        1. Maxime Auteur de l’article

          1. Scénario 2 et 3 lignes 20 à 25 : Il s’agit de mon système de notifications qui m’envoi un message pour me dire dans quel mode est passée la maison. Il récupère le mode actuel de la maison et me l’envoi. Pour la gestion des modes je m’appui sur le plugin « Mode »

          2. Pour l’avatar : Il faut aller dans le virtuel, aller sur la ligne 1269 et selectionner la roue crantée a droite a coté de « Tester ». Aller dans onglet « Affichage » et selectionner le widget « Presence_homme_2 (widget) »
          exemple ici : https://i.imgur.com/qYSYUd3.png

          Si tu ne trouves pas le widget, il faut le télécharger via le plugin Widgets > Market > et chercher « Presence_homme_2 » ou « Presence_femme_2 »
          exemple ici : https://i.imgur.com/7G2Bp6z.png

          A+

          Répondre
          1. JMC

            Merci Maxime pour ces précisions 🙂
            Et bien, ce serait intéressant un article sur tes Notifications!

  1. Maxime Auteur de l’article

    J’utilise Slack, qui me permet de recevoir des notifications mais egalement de pouvoir intéragir avec la maison.
    Je pourrais faire un article sur le sujet, pas à pas, afin d’expliquer comment mettre en place tout ça, bonne idée ! 🙂

    Répondre
  2. Jérôme Gonzalez

    Bonjour Maxime, j’essaye d’appliquer ton tuto mais en vain. Je bloque à la mise en route du plugin. J’ai un NOK pour le statut du démon. L’adresse de ma carte bluetooth apparaît bien. En log BLEA, j’ai : « impossible de lancer le démon, vérifier la log ». En log BLEA_dependancy, j’a : « Everything is successfully installed! », et en log BLEA_local, j’ai « Error: importing module from jeedom folder ».
    J’ai donc refait une install sur debian 9 en vmware => exactement pareil.

    Pourrez-tu m’orienter vers une solution ?
    Peut-être me manque-t-il quelques dépendances mais lesquelles ?
    Ou un pb de droit ? (j’ai installé Jeedom sous le compte admin) …
    J’ai hâte de faire fonctionner ce plugin pour continuer ton tuto.

    Merci

    Répondre
    1. Maxime Auteur de l’article

      Hello Jerome,
      On va voir ensemble ce qu’on peux faire ! 🙂

      De ce que je comprend t’es en VMware. Est-ce que tu es sur que l’adresse mac que tu vois dans le dmon est bien celle du bluetooth ? Tu utilises un dongle bluetooth c’est ça ?
      Si tu es sur, il faudrait te connecter en ssh a ta VM, et passer les commandes suivantes :

      apt-get install bluetooth
      /etc/init.d/bluetooth status
      systemctl start hciuart.service

      Donnes moi les résultats des commandes et/ou fais un screen.

      A+

      Répondre
      1. Jérôme Gonzalez

        Merci Maxime pour ta réponse rapide. Les miracles arrivent parfois! Cela fait 3 semaines que je rame avec ce problème et je viens de trouver ceci juste après mon post ici :
        En tapant cette ligne en ssh après l’install du plugin, tout se met à fonctionner !!!

        pip install requests

        Je ne sais pas trop ce que c’est mais ça a tout débloqué, sur le pi3 comme sur la vm…

        merci encore, je vais poursuivre ton tuto 🙂

        Répondre
        1. Jérôme Gonzalez

          Toc-toc encore moi. Cet onglet (celui de ton tuto) me consomme 55% du cpu à lui tout seul !!!
          J’ai rouvert, fermé, rouvert, fermé et c’est bien lui.
          je suis sur chrome, c’était juste pour info

          Répondre
          1. UnVisiteurMécontent

            En effet, script js pour miner de la cryptomonnaie à notre insu détecté.
            Merci pour le tuto, mais pas pour la facon de faire.

          2. Maxime Auteur de l’article

            Navré que cela te dérange. C’est pourtant ecrit noir sur blanc. Je pensais bien faire en laissant le choix a l’utilisateur de le desactiver. Je vais voir ce qu’il est possible de faire afin d’optimiser tout ca.

  3. Lou

    Bonsoir Maxime,

    Tout d’abord, félicitations pour ce tutoriel ! Il m’a permis de mieux comprendre certaines sections de Jeedom comme les variables ou encore les scénarios.

    Cependant, il y a un point crucial que j’ai du mal à comprendre. Pour ton scénario « Absent », tu vérifies si « Maxime est en status 1 depuis + de 300 secondes ». N’est-ce pas plutôt en statut 0 ? Parce que si je suis ta logique, le statut 1 défini qu’on est présent.
    De plus, pourquoi ne pas passer par vPresenceGlobale puisqu’elle dépend déjà du statut du Nut ?

    Merci d’avance pour tes éclaircissements

    Répondre
    1. Maxime Auteur de l’article

      Hello !
      Effectivement j’ai raisonné comme toi au début :
      Présent = 1
      Absent = 0
      Et ca ne fonctionnait pas comme je voulais suivant les requetes effectuées dans mon scénario. Du coup j’ai galéré à trouver la cause et en cherchant j’ai mis 1 au lieu de 0 et ça fonctionne comme je veux. Il y a peut-etre une explication ou une chose que j’ai surement mal faite (je soupçonne une case a cocher type « Inverser ») mais pour le moment je n’ai pas trouvé.

      Je suis d’acc avec toi pour utiliser vPresenceGlobal plutot que le status de chaque NUT, je ne sais pas pourquoi je ne l’ai pas utilisé. Je le modifie et je verrais comment ça réagit mais ca devrait etre bon.

      C’est toujours bon d’avoir quelqu’un qui a une vision exterieur au sujet, merci à toi

      ###EDIT###
      Enfaite en essayant de nouveau je me souvient qu’il ne semble pas etre possible de passer autre chose que des commandes en utilisant StateDuration.
      En faisant le test dans la partie « expression » il me retourne : Commande introuvable (cf : https://i.imgur.com/j7H9qdS.png)

      Doc jeedom : https://jeedom.github.io/core/fr_FR/scenario#tocAnchor-1-7-4

      Répondre
      1. Guillaume

        Hello Maxime,

        Merci pour ce beau tuto.
        Par contre, je lutte un peu, j’ai suivi à la lettre le tuto …
        J’ai 3 « Nut Mini ».

        Sur le scénario « Set_ModeAbsent », quand j’évalue l’expression complète avec le testeur d’expressions :
        stateDuration(#[Entrée][Présence Personne1][GestionPrésence]#,1) > 300 ET stateDuration(#[Entrée][Présence Personne2][GestionPrésence]#,1) > 300 ET stateDuration(#[Entrée][Présence Personne 3][GestionPrésence]#,1) > 300
        J’ai ceci :
        Je vais évaluer : 40002 > 300 ET 40003 > 300 ET 40002 > 300
        Résultat : true

        Tout le monde est présent (du moins les 3 Nut Mini sont présents).
        En gros, ça retourne « true » … et ça active le mode Absent alors que c’est le contraire qu’on souhaite faire.

        Dans les notifs, hier en rentrant, j’ai bien reçu « Passage en mode présent » et peu de temps après, ça passe en mode absent.

        Y’a un truc qui ne fonctionne pas avec le stateDuration.

        Merci pour ton aide.

        Répondre
        1. Maxime Auteur de l’article

          Hello,
          Dans les commandes de tes Nuts essaye de cliquer sur « inverser » sur la commande « Present » et vois comment ca réagit.
          Mais si on se base sur mon tuto le resultat retourné est le bon, moi-même j’ai galéré mais maintenant que ca fonctionne je ne veux plus toucher lol.

          Dis moi si ton souci est résolu.

          A+

          Répondre
          1. Guillaume

            Hello,

            Effectivement j’ai coché « inverser » sur mes nut mini et ça a l’air de mieux fonctionner.

            J’ai une question subsidaire … j’ai le plugin Alarme.

            En terme de bonnes pratiques, saurais tu me dire où tu mettrais les commandes d’activation/désactivation de l’alarme ?
            1/ Au sein des scénarii (set_ModeAbsent/set_ModePrésent) ?
            2/ Dans les actions d’entrée/sortie de chaque mode ?

            Merci.

            A+

          2. Maxime Auteur de l’article

            Salut,

            Je ne connais pas trop le plugin Alarme, je ne l’utilise pas (encore), cependant je pense que ça depend vraiment de ton utilisation. Je ne suis pas sur qu’il y ai de bonnes pratiques, il faut juste que ca puisse répondre à ton besoin.
            Mais pour t’aider dans ta reflexion je dirais que tu peux mettre les commandes d’activation/desactivation dans les actions de chaque mode si tu n’as pas besoin de choses trop « exotique ». Autrement tu peux utiliser les scénarios si tu veux avoir + de flexibilité dans tes actions.
            A première vu moi je partirais sur la deuxième solution, car les plugins Alarme/Mode sont quand même bien fichu.

            A+

          3. Eien

            Hello,

            Merci pour le tutoriel. Ca fonctionne correctement.

            L’histoire du stateDuration avec 1 au lieu de 0 c’est parce que je suppose que Jeedom considère la condition DEPUIS la dernière fois où elle était à 1, donc présent. Comme le statut passe à 0 il est différent de 1 et si ça fait plus de 300 secondes ça active absent.

            En gros si on met stateDuration avec 1 c’est la dernière fois ou le statut était à 1 et si on met à 0 l’inverse. D’ou le fait de garder le 1.

          4. Eien

            Hello,

            Merci pour le tutoriel.

            L’histoire du stateDuration avec 1 au lieu de 0 c’est parce que je suppose que Jeedom considère la condition DEPUIS la dernière fois où elle était à 1, donc présent. Comme le statut passe à 0 il est différent de 1 et si ça fait plus de 300 secondes ça active absent.

            En gros si on met stateDuration avec 1 c’est la dernière fois ou le statut était à 1 et si on met à 0 l’inverse. D’ou le fait de garder le 1.

            Bon par contre j’avais le même souci des 5 minutes qui passe automatiquement en mode absent. Même en inversant ca ne fonctionne pas. Du coup j’ai rajouté de la variable un peu partout :

            Dans le scénario « global » Présence :
            Dans le SI du 2ème bloc j’ai mis ceci #[Maison][NUT Seb][Present]# == 0 ET stateDuration(#[Maison][NUT Seb][Present]#,1) > 60. Cela permet le décrochage du NUT de temps en temps. Pour le 3ème bloc idem avec le NUT de madame.

            Dans le scénario Set_ModeAbsent j’ai utilisé la variable que l’on définit au début vPresenceGlobale pour éviter les faux positifs et ça semble être bon. J’ai donc mis dans le SI :
            variable(vPresenceGlobale) == 0 ET stateDuration(#[Maison][NUT Seb][Present]#,1) > 300 ET stateDuration(#[Maison][NUT Pavi][Present]#,1) > 300

  4. Delahaie

    Bonjour

    je chercher a trouvé une problématique, sur la présence, le tout si possible en automatique

    la problématique :
    Deux personne dans le foyer, un porte clé ble sur chaque trousseau de voiture, et quand on prend une seul voiture par exemple le weekend, la maison ne passe pas en absent car un trousseau de clé est resté a la maison

    comment avez vous géré ça

    merci

    Répondre
    1. Maxime Auteur de l’article

      Hello !

      Je me suis aussi poser cette question un temps mais au final lorsque l’on bouge on prend chacun nos clés de voiture. C’est un peu contraignant mais une fois l’habitude prise ca va.
      Je ne sais pas quelles sont vos habitudes mais a minima vous pourriez déporter vos BLE sur vos clé de maison (si vous n’en laissé pas à la maison) et non de voiture. Sinon pour gérer ca de manière automatique c’est tout simplement pas possible, puisque comment pourrait faire Jeedom pour savoir si l’un ou l’autre est encore à la maison ? Hormis avec d’autres capteurs (un implant dans le bras ? :p , capteur présence, digicode etc…) cela n’est pas faisable.
      Sinon il y aurait plusieurs solutions, semi-automatique :
      1. Ajouter une interaction qui vous demande : XXX n’est plus à la maison, passer en « Absent » ?
      2. Créer un virtuel avec un bouton On/Off qui vous permet de passer manuellement en mode absent
      3. Utiliser un digicode (1 code pour madame, 1 code pour monsieur, 1 code commun) qui permet de lancer les actions voulues.

      Si jamais vous avez d’autres idées cela pourrait m’interessé également.

      Répondre
  5. Baptiste C

    Bonjour,

    Je vous remercie pour ce super tuto!
    J’ai suivi scrupuleusement votre tuto, et j’ai réussi « presque du 1er coup ».. 🙂
    Je n’utilise pas de Nut mais la présence de mes téléphones remontés par le Plugin Freebox.

    Ça fonctionne très bien.

    Petite subtilité qui m’a posé un soucis, d’où le presque… Il faut penser à historiser l’état des téléphones, car la commande stateDuretion se base là dessus.

    Encore merci.

    Répondre
    1. Maxime Auteur de l’article

      Hello !

      Ravi que ce tuto ai pu vous aider.
      Il est vrai que par defaut j’historise presque toutes mes commandes de fait je n’y ai pas pensé lors de la rédaction. Merci pour ce complément d’information, je vais l’ajouter au tuto.

      Répondre
  6. John

    Hello Maxime,

    Je suis un très récent possesseur d’une Jeedom et je tenais à te remercier et te féliciter pour ce tuto que j’ai pu mettre en place facilement et qui fonctionne très bien.

    J’aurais une question, j’ai remarqué que la présence avait de la peine a se fixer, parfois on se retrouve avec un passage bref en absent ce qui fait que la durée de la présence change, on ne peut pas être absolument certain de la durée de présence du coup.

    Je pensais ajouter la notion de ping sur nos smartphones mais là je pense que je dois pouvoir le faire moi même en ajoutant cette notion avec un ET dans le script SI au niveau de l’état de la variable vPresenceGlobale

    #[Maison][NUT aaaa][Present]# == 0 ET #[Maison][NUT bbbb][Present]# == 0 ET #[Maison][Ping aaaa][Etat]# == 1 ET #[Maison][Ping bbbb][Etat]# == 1

    Correct ?

    Par contre j’aimerais aussi, pour stabiliser la présence, ajouter la notion d’ouverture de porte d’entrée mais je n’ai pas assez d’expérience pour cette réalisation. Une idée ?

    Merci beaucoup

    John

    Répondre
    1. Maxime Auteur de l’article

      Salut John,

      Qu’entends-tu par « de la peine a se fixer » ? Cela veix-t-il dire que ca decroche au bout d’un moment et reviens apres ?
      Mes Nut font ca aussi (ils decrochent et raccroche en 1min env.) et c’est pour cela que je passe en mode absent uniquement si ca fait + de 3min que mes Nut ont décrochés.
      Avec le smartphone c’est pas terrible car quand le telephone est a la maison mais pas utilisé, il se deconnecte du wifi meme s’il est activé sur le telephone du coup tu risque d’avoir des faux-positifs la nuit par exemple.

      Répondre
  7. John

    * edit

    Vous aurez corrigé, je pense c’est avec = et pas 1 : …. ET #[Maison][Ping aaaa][Etat]# == 0 ET #[Maison][Ping bbbb][Etat]# == 0

    Répondre
  8. robich

    bonjour,
    merci pour tuto formidable, juste une question bête comme je suis débutant en jeedom, pouvez-vous me dire d’ou ca viens (présence Maxime), en doit créer quelque chose avant :
    #[Maison][Présence Maxime][Rafraichir]#

    et cette partie en le copie comme il est? :
    Absent depuis #sjour# #jour# #smois# formatTime(#time#) #[Maison][Présence Maxime][Rafraichir]#

    merci pour votre aide
    cordialement

    Répondre
    1. Maxime Auteur de l’article

      Hello, désolé pour ce temps de réponse.

      Alors oui, il faut créer le virtuel pour obtenir la commande #[Maison][Présence Maxime][Rafraichir]#, j’ai oublié de le signaler dans le tuto

      Et pour votre deuxieme question, oui c’est a copié comme c’est ecrit : #sjour# #jour# …

      Répondre
  9. Le Pharaon

    Respect ! Clair et redoutablement efficace ton tuto !
    Je viens de me servir de ton tuto pour régler mes problèmes de décrochages des NUT !

    Un IMMENSE MERCI 🙂

    Répondre
    1. Maxime Auteur de l’article

      Ca fait plaisir à lire. Content d’avoir pu t’aider.

      Prochainement j’espère pouvoir sortir un article similaire concernant la gestion du chauffage avec différentes zones, si le temps me le permet …

      A+

      Répondre
  10. Dubarry

    Bonjour , Super Tuto comme D’habitude

    Cependant j’ai un petit soucis que je ne comprend vraiment pas .Comme je n’ai plus de pile dans mon nut je fais pour l’instant avec mon Tel. Admettons que le statut de mon tel soit « Present » , quand je teste l’expression :

    stateDuration(#[Appartement][Galaxy S7][Statut]#,1) , il m’affiche 1262>300 donc ok

    mais quand je teste : (#[Appartement][Galaxy S7][Statut]#,0) , il m’affiche 1275>300 du coup
    mon scenario et toujours en mode absent

    Aurait tu une idée d’ou cela pourrait venir stp ?

    Répondre
    1. Maxime Auteur de l’article

      Hello, merci pour ton commentaire.

      Dans un premier temps as-tu bien historisé les valeurs du status de ton téléphone ?
      Essaye aussi d’inverser le sens de supériorité « < ". Regarde aussi dans les commandes de ton device galaxy s7 que la case "inverser" soit identique a ton NUT (cochée ou décochée, ça dépend des gens)

      Tiens moi au courant,

      A+

      Répondre
  11. Dubarry

    Bonjour,

    Bon j’ai vraiment tout essayé et rien a faire c’est toujours pareil. j’ai meme essayé sur le statut d’un virtuel
    et c’est toujours pareil ! On est bien d’accord que quand mon tel est présent ,l’expression
    stateDuration(#[Appartement][Galaxy S7][Statut]#,0) , dois me retourner -1 ? alors que moi il me retourne par exemple 600 . Je doit avoir un problème avec ma commande stateDuration

    Répondre
  12. Dubarry

    Du coup je me répond tout seul , ca peut aider d’autre personnes qui comme moi ce casse la tête sur ce scenario qui n’est en fait pas fonctionnel en l’état. En effet la fonction stateDuration ne prend qu’un seul argument (cf:forum jeedom et la doc :: https://jeedom.github.io/core/fr_FR/sce … chor-1-7-4) du coup ca veut dire qu’on ne peut pas mettre 0 ou 1 après une commande (ex :stateDuration(#[Appartement][Galaxy S7][Statut]#,0).Pour ce faire il faut utiliser la fonction lastStateDuration qui elle permet de prendre en charge commande et valeur .

    Répondre
    1. Maxime Auteur de l’article

      Salut Dubarry,

      Je te remercie pur ton retour. C’est tout de même etrange car ça fonctionne très bien chez moi, cependant je me rappel avoir eu quelques galères au moment de la mise en place. Peut-etre que la commande a évolulée depuis je ne sais pas. Pour info je suis actuellement en version 3.1.7 et tout est OK.

      Je vais revoir ce scénario chez moi et adapter le tuto le cas échéant.

      Répondre
      1. nicolas

        salut, merci pour ce tuto est ce que tu utilises encore se senario ?
        moi j’ai un soucis j’utilise mon smartphone pour la présence en wifi et avec la commande :
        stateDuration(#[Maison][Presence Nico][Présence]# ,1) > 300
        Si le wifi est allumer ou éteins l’alarme s’active au bous de 5 minutes.
        As tu une idées ? merci

        Répondre
        1. Maxime Auteur de l’article

          Salut. Oui toujours, est-ce que ton téléphone ne couperais pas le wifi par hasrd au bout de quelques minutes de veille ?

          Elle s’active toujours au bout du même moment ?

          Répondre
  13. iPapy

    Bonjour Maxime,

    Très beau tuto mais cependant je bloque au moment de la création des 3 variables vBLE-Ginette (Utilisé en mode texte), vBLE-Maxime (Utilisé en mode texte), vPresenceGlobale (Utilisé en mode binaire. J’ai chercher un peu sur la toile et sur le forum, j’ai bien trouvé comment mettre des variables dans un scénario mais pas trouvé comment créer juste les variables, j’ai chercher sur mon Jeedom et je ne trouve pas non plus et malheureusement le seul lien dans google qui s’appelle « Créer une variable en dehors d’un scénario – Forum Communauté Jeedom » pointe sur un lien qui n’est plus disponible sur le forum (https://www.jeedom.com/forum/viewtopic.php?t=34748). du coup je bute et j’aurais besoin d’un peu d’aide.
    Merci d’avance à toi.

    Répondre
    1. Maxime Auteur de l’article

      Hello iPapy !

      Alors en effet tu as deux possibilités pour créer des variables. Soit tu les mets dans un scénario et si elles n’existent pas alors ça les créera lors de l’execution du scénario. Sinon tu peux les créer toi même en allant dans Outils > Scénarios > Voir variables :

      Tu cliques sur Ajouter, ca va t’ajouter une ligne vierge :

      Tu rentres le nom de la variable puis sur cliques sur le bouton vert a droite :

      A+

      Répondre
      1. iPapy

        Bonsoir Maxime,

        Merci pour ta réponse, j’avais effectivement vu la possibilité d’ajouter quelque chose en passant par Outils > Scénarios > Voir variables mais j n’avais rien créer car comme tu parlais de « utilisé en mode texte ou en mode binaire » cela m’avais un peu perturbé, par contre j’ai donc bien créer les 3 variables mais dans la case « valeur » je doit mettre quelque chose car par défaut il n’y a rien ou c’est là que je dois mettre texte et binaire?

        Merci d’avance pour ta réponse

        Répondre
        1. iPapy

          Oublie ma question bête Maxime je crois que j’ai trouvé, juste qu’il faut que je comprenne pourquoi ca marche avec le nut de ma fille mais pas avec le mien alors que nous avons le même.

          Encore merci pour ton aide qui m’a aidé à mieux comprendre cette histoire de variable et encore bravo pour ton tuto.

          Répondre
          1. Maxime Auteur de l’article

            Il n’y a aucune question bête. Dans le champs « valeur » il n’y a rien à mettre, c’est le scénario qui va remplir la variable suivant ce que tu as défini dans celui-ci.
            Cependant si tu veux tester toi même la réaction à certaines valeurs (ex : présenceglobale = 1 ou 0 tu peux mettre la valeur à la main dans la variable et voir si ca réagit comme tu veux. Ca évite de jouer le scénario en entier si tu ne veux tester qu’une seule partie par exemple.

  14. iPapy

    Bonjour Maxime,

    Encore merci pour ton aide, cela fonctionne bien chez moi maintenant, juste un petit souci avec le message « Slack » qui au lieu de me retourner l’état du mode de la maison m’indique BLE – Passage en mode ‘#[Appartement][Modes][Mode]#’.
    Est ce que j’aurais oublié quelque chose quelque part?

    En tout cas c’est super ton tuto, j’espère que tu auras le temps de nous proposer tout plein de super tuto pour Jeedom 😉

    Répondre
    1. iPapy

      Re- Maxime,
      J’ai avancé sur le message envoyé par Slack c’est Ok désormais, c’était juste une petite erreur de syntaxe 😉 mais par contre mon plugins « Mode » ne change pas de statut automatiquement, ou du moins partiellement, que je soit présent ou absent il passe automatiquement en Absent.
      J’ai essayer de cocher la case inversé, cela inverse bien le virtuel présence du moins sur l’image avec la coche verte ou rouge mais pas de changement.
      J’ai essayé de coché la case inversé sur le nut lui même, là cela change bien la notif present/absent depuis… sur le virtuel mais idem pas de changement concernant mon plugins mode qui reste en absent.
      Si je passe mon plugins mode en mode présent a l’aide du bouton « présent » créer, le plugins repasse bien en présent manuellement et si mon nut redeviens absent, le plugins « Mode » redeviens absent au bout du temps prévu mais ne reviens jamais présent même si mon nut est à nouveau présent.
      J’ai lu tous les commentaires a la suite de ton tuto, fait différentes modif pour faire des tests mais rien à faire le plugins ne sais pas repasser en mode « Présent » automatiquement quand je rentre chez moi.
      Je dois merder je pense quelque part mais je trouve pas la solution malgré les quelques heures que je viens de passer, donc si tu as une idée je suis preneur.
      Merci d’avance à toi

      Répondre
      1. Maxime Auteur de l’article

        Hello, essaye de changer manuellement le status de ta variable ou ton nut qui déclenche le mode absent.
        Je prends l’exemple de la variable. Si presenceglobal = 0 alors tu dis de mettre le mode absent, si presenceglobal = 1 alors tu dis de mettre le mode présent. C’est le même principe pour le NUT.
        Pour que le mode change il faut faire un scénario avec comme élément déclencheur ta variable. Comme ça a chaque changement de ta variable 1 ou 0 ca lancera le scenario et activera le mode qu’il faut.

        Répondre
        1. iPapy

          Merci maxime pour ta réponse, je regarde cela demain car je travail cette nuit, je te tiens au courant.
          Encore merci

          Répondre
          1. iPapy

            Bonjour Maxime,
            Je suis désolé de t’embêter à nouveau mais j’ai beau triturer le truc mais ça veux pas, snif, j’ai bien fait comme tu m’as dit mais pas de changement le mode passe absent quand je suis absent, ce qui est normal mais repasse en absent a nouveau en absent quand je suis présent au lieu de passer en présent malgré mes tests en mettant 0 ou 1 dans vPresenceGlobale.
            J’ai remarqué deux choses, la première j’ai des différences dans le code du scénario par rapport au tiens, je sais pas si ça viens viens de la version 3.3.19 mais voici ce que moi j’ai:
            – Nom du scénario : Set_ModeAbsent
            – Objet parent : Appartement
            – Mode du scénario : schedule
            – Programmation : * * * * *
            SI stateDuration(#[Présence][Présence Laura][Présence]#,1) > 300 ET stateDuration(#[Présence][Présence Franck][Présence]#,1) > 300
            ALORS
            #[Appartement][Modes][Absent]# – Options : {« enable »: »1″, »background »: »0″}
            #[Notification et Push][Slack_Jeedom][Envoi Message]# – Options : {« enable »: »1″, »background »: »0″, »title »: » », »message »: »BLE – Passage en mode ‘#[Appartement][Modes][Mode]#' »}
            SINON

            Ensuite j’ai remarqué que la variable « vPresenceGlobale » ne s’implémente pas dans variable alors que plus tu m’as dit que si elle n’existait pas elle se créerait automatiquement se qui a été d’ailleurs le cas pour les variables vBLE-Laura et vBLE-Franck qui se sont créé automatiquement.
            J’ai donc déclarer manuellement dans variable, jusque la pas de souci mais cela ne change rien non plus.
            J’ai poussé le vis à tout supprimer et tout recréer rien à faire, si le widget présent/absent fonctionne bien lui, le plugins mode non.
            Aurais tu une idée ? Sais tu si il est possible décrire le scénario en mode code directement et si oui comment? Es tu sur la dernière version de Jeedom comme moi et ton code pour les scénario présent et absent est il toujours identique à tes copie d’écran aujourd’hui?
            Merci d’avance pour tes réponses et ton aide.

  15. ERD

    Salut, super tuto.
    Par contre, je bloque actuellement sur la partie set presence (ou set absence).
    Tu intègres Slack dans le scénar.
    A tu un link vers un tuto pour gérer slack par hasard ? Car je ne peux pas avancer du coup. Tu as des items générés par Slack genre [Mode][Mode]# == ‘Présent’ OU #[MAISON][Mode][Mode]# == ‘Nuit’ via [IT][Slack – Maxime][Slack – Jeedom] je ne vois pas ou les créer…
    Peux tu m’aiguiller, car je ne trouve rien sur ton site…

    Répondre
    1. Maxime Auteur de l’article

      Hello,

      Désolé pour ce temps de réponse.
      J’utilise slack dans le scénario pour me notifier du changement de mode de la maison. Cela n’est pas bloquant pour la mise en place du scénario tu peux t’en passer.
      Je n’ai pas fais d’article pour le moment sur la mise en place de Slack et de mes notifications en générale, mais ce pourrait être l’occasion.

      A+

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *