Event "Départ maison" intempestif


#1

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


#2

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?


#3

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


#4

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


#5

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


#6

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 ^^


#7

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!)


#8

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…


#9

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


#10

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.


#11

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