Event "Départ maison" intempestif

Bonjour à tous
J’ai un scenario qui lance une alarme lorsque mon Sensor détecte une présence et que la maison est vide.

48

Lorsque je suis à la maison, le script ne s’execute pas; quelques minutes plus tard un event “Départ de la maison” se déclenche tout seul et bien sûr j’ai une alarme.
Voici une copie de mes logs:

32

Lorsque j’avais la version 3.11.3 tout fonctionnait parfaitement mais après la mise à jour de la version 3.11.6 le problème est intervenu.
J’ai refais une carte SD avec la version 3.12.1… même problème.
Si quelqu’un a une idée sur ce problème, d’avance Merci

@Christian

Hello!

Effectivement depuis une version récente, j’ai mis le “checkUserPresence” qui retire l’utilisateur si il n’a pas été vu à la maison de façon systématique. Je suis d’accord, j’aurais du mettre une option pour le désactiver ^^

Mathieu a proposé une PR sur le sujet pour ajouter une option ( https://github.com/GladysAssistant/Gladys/pull/473 ), en attendant, as-tu un moyen d’indiquer à Gladys que tu es à la maison? Comment gère tu la présence/absence chez toi?

Bonjour @pierre-gilles
Merci pour ta réponse
Je vais aller voir le PR ( qui signifie?) de Mathieu
Actuellement je gére ma présence/absence par la box Event ou par télégram (je débute sur Gladys).
Par contre quandje crée un évènement “utilisateur vu à la maison”, cela fonctionne bien, il n’y a pas de départ intempestif.
Bien à toi

1 Like

Pull Request : c’est une modification de code proposée sur Github.

1 Like

Bonjour @pierre-gilles
J’ai bien lu ta reponse au sujet du “checkUserPresence” et je me suis connecté sur la PR de @MathieuA.
Je débute et j’avoue cela me laisse perplexe.
Que dois-je modifier?
Et comment le modifier ?
Et lors d’une prochaine mise à jour ?
Merci à tous d éclairer mes faibles connaissances

Le mieux est donc d’attendre que cette fameuse PR soit intégrée dans une prochaine version de Gladys. Il faut demander au gentil @pierre-gilles quand il compte l’intégrer ^^

Hello!

Le mieux est effectivement d’attendre la mise à jour, il n’y a rien à faire de ton côté.

Désolé pour le jargon :slight_smile:

Je ne sais pas encore quand je me lancerais dans cette release. Je fais des release par batch de PR, car merger la PR ce n’est pas la partie compliqué, la partie compliquée c’est de builder, de tester et de déployer une release. Malheureusement dans Gladys 3 ce n’est pas automatisé (ça le sera dans Gladys 4), et j’estime qu’en moyenne un deploy de version me prend une journée entière à minima + le temps de développement bien entendu.

J’ai néanmoins une solution pour toi en attendant :stuck_out_tongue:

Tu peux définir un paramètre “USER_CHECK_PRESENCE_FREQUENCY” dans l’onglet “Paramètres” => “Paramètres” de Gladys, et mettre une valeur très très très élevée (c’est la fréquence en minute de check).

De cette manière, Gladys ne fera pas le check fréquemment, mais très rarement, donc ça devrait faire l’affaire en attendant que je me colle à ce patch :slight_smile: (je bosse sur Gladys 4 en ce moment, le sujet du moment!)

Le mec prévient quand même pour le paragraphe imbuvable qu’il te met en dessous… :stuck_out_tongue:
Ralalala ces developpeurs et leur franglais partout…

1 Like

Bonjour @pierre-gilles
merci pour le paramètre, je vais l’essayer ce soir
pour le jargon, tu n’as pas à être désolé, ce n’est pas imbuvable mais le temps des cartes perforées est bien loin…Que le temps passe vite.
Cordialement

1 Like

Bonjour Christian,
j’ai eu le même souci. Je l’ai résolu de la façon suivante :
J’ai créé un script qui teste si je suis à la maison et dans ce cas, crée l’événement userSeen. Il est lancé toutes les 5 minutes par une alarme Cron ce qui évite que l’exécution du checkusersprésence ne te considère comme parti (car plus vu depuis un moment depuis ton retour à la maison) et déclenche un événement left-home (car comme tu auras été “vu” récemment à la maison, tu es toujours présent).
Pour que tu ne sois plus considéré à la maison, il te faudra générer un événement “départ maison”.

Le script que j’ai appelé “Maintien Présence” (même nom que le scénario, mais ce n"est pas nécessaire) :
gladys.house.isUserAtHome({user: 1, house: 1})
.then((userAtHome) => {
if(userAtHome) {
gladys.house.userSeen({user: 1, house: 1});
console.log(‘User 1 is at home !’);
} else {
console.log(‘User 1 is not at home !’);
}
});
Tu peux éliminer les console.log qui étaient juste là pour vérifier la bonne exécution.

L’alarme Cron : */5 * * * *

Le scénario (dans mon cas, l’alarme en question est la n°2 et le script est le n°2) :
trigger:
title: Maintien Présence
condition_template: alarm == 2
active: 1
code: alarm
user: 1
conditions: []
actions:

  • code: script.exec
    params:
    id: ‘2’

Note que cela ne traite que l’utilisateur n°1 dans la maison n°1 mais cela semble être ton cas.

Bonjour @Olivier1
Je te remercie pour ta réponse.
Je vais l’essayer dès ce soir.
Je te tiens au courant.
Amitiés
Christian

Bonjour,
Je me permets dans la continuité de cette discussion:

Je n’ai pas le wifi toujours allumé chez moi. Vu l’automate natif qui dit qu’on est parti si notre tel n’est plus détecté (mais mes capteurs de mouvement oui), je souhaitais faire un script du genre:

Si je détecte un mouvement et que quelqu’un est à la maison ALORS:
déclencher UserSeenAtHome

Et surtout:
Si je ne détecte plus toutes les 10 min le téléphone mais qu’une personne a été vue il y a 10 min, il ne faut pas déclencher User-left-home.

Et au cas où le mec ne bouge pas du tout depuis 20 min, gladys envoie “hey, ca va?” dans ma maison, si il répond par le micro, l’event left-home n’est pas déclenché.
(ça semble plus complexe la seconde partie c’est du plus)

comment ça se code je ne connais pas le js?

Merci!

Bonjour à tous,

Je ne savais pas où poster cela donc dite moi si ça dérange.

Je cherchais une solution aux left-home intempestifs durant la nuit.

A la place du gladys.house.checkUsersPresence(); seul j’ai créé cela :

var options = {
house: 1,
user: 1
};

gladys.house.isUserAsleep(options)
.then((userAtSleep) => {
if(userAtSleep) {
console.log(je ne recherche rien donc je dis à gladys que jérémy a été vu :));
gladys.house.userSeen({user: 1, house: 1});
}
else {
gladys.house.checkUsersPresence();
console.log(je cherche ta présence dans la maison);
}
});

Donc quand l’utilisateur est endormi le script fait croire qu’il a été vu. Lorsque l’utilisateur dit qu’il est réveillé et ça reprend les scans normaux.

Si des fois cela peut aider !

Est ce que ça peu être rajouté comme une évidence?
Si tu es signalé “entrain de dormir” forcément tu es chez toi. Donc pas besoin de signaer toutes les 5 mins que tu es présent.

Malheureusement pour nous oui mais gladys ne le voit comme ça.

A la base tous les temps elle vérifie si je suis la et si je ne suis pas vu depuis le temps donné dans les paramètres il active le lefthome.

Peu importe où tu es. C’est comme pour aller se coucher tu dois lui dire dans quelle maison tu vas te coucher alors que tu en as qu’une. La v4 va corriger tout ça mais en attendant j’ai trouvé que cette façon.