Hello,
Je tente de me lancer dans l’utilisation des generictype, en commençant par la détection d’ouvrant.
J’ai créé un scénario qui me prévient si une fenêtre s’ouvre alors que je suis absent. Je pensais donc mettre en déclencheur #genericType(OPENING_WINDOW)# > 0 sauf que mes infos sur mes ouvrants sont à 1 quand c’est fermé et 0 quand ouvert (commande info binaire « contact »). Du coup il me faudrait plutôt mettre #genericType(OPENING_WINDOW)# < 5 puisque quand tout est fermé genericType(OPENING_WINDOW) est bien égal à 5 d’après le testeur d’expression.
Mais j’avais compris que l’utilisation des types génériques permettaient de faciliter ce genre de cas en ayant pas besoin de toucher aux scénarios en cas d’ajout/retrait d’équipements. Sauf que là je dois modifier le 5 si j’en ajoute ou retire un.
J’ai loupé qqch ?
Ou bien sinon je suis obligé d’inverser les valeurs binaires de tous mes ouvrants (avec les impacts que ça aurait sur leurs liens) ?
Hello,
J’ai pas encore joué avec mais là je pense que du coup tu es dans un cas un peu particulier.
Du coup je sais pas si ça existe mais s’il y a un autre générique de type « fermé », tu pourrais revenir sur le cas standard.
#genericType(CLOSED_WINDOW)# > 0
![]()
Hmmm ouais faut que je creuse car j’ai pas encore tout compris. Je pensais que pour un binaire le type générique était aussi binaire (tout est ouvert ou tout est fermé), et pas la somme des binaires (mais je peux comprendre l’intérêt aussi).
D’ailleurs quand je lis ça dans la doc :
Grâce aux types génériques, vous pourrez utiliser un seul déclencheur :
#genericType(PRESENCE)# == 1. Ici, aucun objet n’est indiqué, donc le moindre mouvement dans toute la maison déclenchera le scénario. Si vous ajoutez un nouveau détecteur dans la maison, inutile de retoucher au(x) scénario(s).
je comprends que je n’ai pas besoin de toucher à ce déclencheur si j’ajoute un détecteur, pourtant si on imagine que j’ai deux détecteurs qui s’activent en même temps (peu probable je vous l’accorde) alors genericType(PRESENCE) sera égal à 2 et non pas à 1, donc mon scénario ne déclenchera pas. Selon moi pour cet exemple il faudrait plutôt la condition « >0 » pour prendre en compte les futurs déclencheurs ajoutés.
Bref, c’est encore moins clair dans ma tête ![]()
Je viens de tester en configurant aussi mes 3 détecteurs de mouvement et j’ai le même comportement que toi. Si je passe devant 2 d’entre eux, le genericType(PRESENCE) vaut 2 du coup en effet je ne comprends pas non plus ce que raconte la doc ![]()
Ouf tu me rassures sur mes compétences de compréhension ![]()
Ou bien on est tous les 2 pas compétent en compréhension ![]()
Bon j’ai vérifié quand même l’histoire du déclencheur. Avec #genericType(PRESENCE)# == 1 mon scénario se déclenche bien quand je passe devant le 1er détecteur mais pas devant le 2eme (à ce moment là genericType(PRESENCE) vaut 2 parce que le 1er n’est encore retombé à zéro).
Moi je dirais bien qu’il y a juste une coquille dans la doc et que c’est bien le comportement attendu mais voyons ce qu’en disent ceux qui utilisent ça depuis longtemps.
Juste pour revenir vite fait sur l’histoire du déclencheur, en mettant juste #genericType(PRESENCE)# ça a l’air de faire la blague puisque mon scénario de test a bien été déclenché 2 fois alors que le générique était à 2
[2025-01-16 17:59:40][SCENARIO] -- Début : Scenario execute automatiquement sur evenement venant de : genericType(PRESENCE,#[Salon]#) from [Salon][Sensor Salon (MQTT)][Presence].
[2025-01-16 17:59:40][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-01-16 17:59:40][SCENARIO] Log : il y a une présence
[2025-01-16 17:59:40][SCENARIO] Fin correcte du scénario
------------------------------------
[2025-01-16 18:00:12][SCENARIO] -- Début : Scenario execute automatiquement sur evenement venant de : genericType(PRESENCE,#[Bureau]#) from [Bureau][Sensor Bureau (MQTT)][Presence].
[2025-01-16 18:00:12][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-01-16 18:00:12][SCENARIO] Log : il y a une présence
[2025-01-16 18:00:12][SCENARIO] Fin correcte du scénario
Yes mais ça va activer ton scénario à chaque fois qu’un des capteurs de présence change d’état, y compris quand ils reviendront à zéro.
Bonjour
Dans la commande de l’équipement tu peut inversé son état
Oui mais là pour le coup c’est bien le but des génériques. De pouvoir dire en une ligne « est-ce qu’il y a un mouvement dans mon logement », « est-ce qu’il y a une lumière allumée » et cela sans avoir à mettre 10 déclencheurs par exemple.
En effet ça déclenche lors du retour à 0 (à chaque changement de valeurs quoi).
Je comprends vraiment pas, on devrait être sur une info binaire pour la PRESENCE…
Bonjour
Ok intéréssant je ne connaissait pas
en même temps comme un numérique <> 0 → TRUE, on peut mettre
#generictype(PRESENCE)# == TRUE
je pense que ça doit pouvoir se tester facilement. il se déclenchera uniquement à la première détection et reviendra à FALSE (0) à la dernière. en même temps s’il y a une erreur de type dans le code du core, ça risque de déclencher plusieurs fois. A vérifier dans le code …
Ouep, pareil pour Opening c’est censé être un binaire, ou alors c’est mal expliqué et c’est la somme de tous les binaires ?
Faudrait que je regarde le code mais je suis loin d’être expert ![]()
@Mips je me permets de te tagger car j’ai vu que tu avais ouvert un PR sur les generictype l’année dernière (qui m’a bien aidé d’ailleurs, pour supprimer le #Tous#) , peut-être as-tu un avis sur notre interrogation ?
Bon pour le moment j’ai contourné le problème :
- cochant « inverser » la valeur binaire" de chaque commande ‹ contact › (le module envoie désormais 1 quand ouvert)
- cochant « inverser » pour chaque commande contact (pour avoir le bon l’affichage sur les tuiles avec le widget ‹ window ›)
- inversant les valeurs de tous les endroits où ces commandes sont utilisées (scénarios, thermostat, résumés, jeedomconnect, …).
Et le résultat est concluant, generictype(OPENING_WINDOW) me renvoie désormais 0 quand tout est fermé. Je peux donc mettre en déclencheur de mon scénario #generictype(OPENING_WINDOW)# > 0 et ça fonctionne à l’ouverture d’au moins un ouvrant.
Mais je persiste à penser qu’il y a une incohérence, notamment quaund je vois que si le module envoie désormais 0 pour « fermé » je dois inverser la valeur dans Jeedom pour que le widget core ‹ window › de la tuile soit raccord avec ça.

