Domodial Posté(e) le 16 octobre 2022 Signaler Posté(e) le 16 octobre 2022 (modifié) Hello la foule, Je viens poster une complication crânienne de niveau 12 Je n'arrive pas à transposer dans GEA ce que je veux faire. Sur détection de présence, je souhaite que lorsque l'un "ou" l'autre du foyer est "Présent" cela actionne ou pas un truc. J'ai pris exemple avec une simple lampe, mais je ne comprends pas comment faire un "Ou" car ça fonctionne uniquement avec des "Et" > "Alors" -- Test l'état du QA Présence (ID 188), si mon smartphone est présent ou non.. local B_estAbsent = {"Value","188","false"} local B_estPresent = {"Value","188","true"} -- Test l'état du QA Présence (ID 202), si le smartphone de Nathalie est présent ou non. local N_estAbsente = {"Value","202","false"} local N_estPresente = {"Value","202","true"} ----------------------------- --- là c'est compliqué car chacun change l'état de la box en fonction de si il est là ou pas. ------------------------------ -- Si je suis absent, change le mode de la box à 2 (AWAY), s'il ne détecte pas mon smartphone GEA.add({"Value", 188, false}, 0, "Bernard est absent profile changé à Away", {{"Profile", "Away"}, {"Portable", Phone_Bernard}}) -- Si je suis présent (true), passe le mode HC3 à 1 (HOME) GEA.add({"Value", 188, true}, 0, "Bernard est présent profile changé à Home", {{"Profile", "Home"}, {"Portable", Phone_Bernard}}) -- Si Nathalie est absent, change le mode de la box à 2 (AWAY), s'il ne détecte pas son smartphone GEA.add({"Value", 202, false}, 0, "Nathalie est absente profile changé à Away", {{"Profile", "Away"}, {"Portable", Phone_Bernard}}) -- Si Nathalie est présent (true), passe le mode HC3 à 1 (HOME) GEA.add({"Value", 202, true}, 0, "Nathalie est présente profile changé à Home", {{"Profile", "Home"}, {"Portable", Phone_Bernard}}) ----------------------------------------------------------------- -- ACTIONS -- Bernard est absent, rien ne se passe car Nathalie est présente GEA.add({B_estAbsent, N_estPresente}, 0, "Allumage du couloir à #time#", {{"Value",Lum_Entree, 10}, {"Portable", Phone_Bernard}}) -- Nathalie est absente, rien ne se passe car Bernard est présent GEA.add({B_estPresent, N_estAbsente}, 0, "Allumage du couloir à #time#", {{"Value",Lum_Entree, 10}, {"Portable", Phone_Bernard}}) -- Nathalie et Bernard sont présent, la lumière s'allume. GEA.add({B_estPresent, N_estPresente}, 0, "Allumage du couloir à #time#", {{"Value",Lum_Entree, 10}, {"Portable", Phone_Bernard}}) -- Besoin que quand l'un ou l'autre soit là, la lumière s'allume ou une action quelconque. Si quelqu'un a plus de cerveau que moi, il est le bienvenue Modifié le 17 octobre 2022 par Domodial
fredokl Posté(e) le 16 octobre 2022 Signaler Posté(e) le 16 octobre 2022 @Domodial As tu essayé avec un "XOr"? Pour la syntaxe exacte voir le fichier GEA v7.37 Syntaxe.lua. Je te le met ici au cas où. À partir de la ligne 1894. GEA v7.37 Syntaxe.lua
Domodial Posté(e) le 16 octobre 2022 Signaler Posté(e) le 16 octobre 2022 (modifié) il y a 5 minutes, fredokl a dit : @Domodial As tu essayé avec un "XOr"? Pour la syntaxe exacte voir le fichier GEA v7.37 Syntaxe.lua. Je te le met ici au cas où. À partir de la ligne 1894. GEA v7.37 Syntaxe.lua Merci @fredokl je n'avais pas vu cela ! Alors que c'est la bible. Effectue un OU exclusif sur plusieurs conditions !!! Grr m'a échappé. Merci ! Modifié le 16 octobre 2022 par Domodial
sumsum Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 (modifié) Il y a 19 heures, Domodial a dit : Hello la foule, Je viens poster une complication crânienne de niveau 12 Je n'arrive pas à transposer dans GEA ce que je veux faire. Sur détection de présence, je souhaite que lorsque l'un "ou" l'autre du foyer est "Présent" cela actionne ou pas un truc. J'ai pris exemple avec une simple lampe, mais je ne comprends pas comment faire un "Ou" car ça fonctionne uniquement avec des "Et" > "Alors" -- Test l'état du QA Présence (ID 188), si mon smartphone est présent ou non.. local B_estAbsent = {"Value","188","false"} local B_estPresent = {"Value","188","true"} -- Test l'état du QA Présence (ID 202), si le smartphone de Nathalie est présent ou non. local N_estAbsente = {"Value","202","false"} local N_estPresente = {"Value","202","true"} ----------------------------- --- là c'est compliqué car chacun change l'état de la box en fonction de si il est là ou pas. ------------------------------ -- Si je suis absent, change le mode de la box à 2 (AWAY), s'il ne détecte pas mon smartphone GEA.add({"Value", 188, false}, 0, "Bernard est absent profile changé à Away", {{"Profile", "Away"}, {"Portable", Phone_Bernard}}) -- Si je suis présent (true), passe le mode HC3 à 1 (HOME) GEA.add({"Value", 188, true}, 0, "Bernard est présent profile changé à Home", {{"Profile", "Home"}, {"Portable", Phone_Bernard}}) -- Si Nathalie est absent, change le mode de la box à 2 (AWAY), s'il ne détecte pas son smartphone GEA.add({"Value", 202, false}, 0, "Nathalie est absente profile changé à Away", {{"Profile", "Away"}, {"Portable", Phone_Bernard}}) -- Si Nathalie est présent (true), passe le mode HC3 à 1 (HOME) GEA.add({"Value", 202, true}, 0, "Nathalie est présente profile changé à Home", {{"Profile", "Home"}, {"Portable", Phone_Bernard}}) ----------------------------------------------------------------- -- ACTIONS -- Bernard est absent, rien ne se passe car Nathalie est présente GEA.add({B_estAbsent, N_estPresente}, 0, "Allumage du couloir à #time#", {{"Value+",Lum_Entree, 10}, {"Portable", Phone_Bernard}}) -- Nathalie est absente, rien ne se passe car Bernard est présent GEA.add({B_estPresent, N_estAbsente}, 0, "Allumage du couloir à #time#", {{"Value+",Lum_Entree, 10}, {"Portable", Phone_Bernard}}) -- Nathalie et Bernard sont présent, la lumière s'allume. GEA.add({B_estPresent, N_estPresente}, 0, "Allumage du couloir à #time#", {{"Value+",Lum_Entree, 10}, {"Portable", Phone_Bernard}}) -- Besoin que quand l'un ou l'autre soit là, la lumière s'allume ou une action quelconque. Si quelqu'un a plus de cerveau que moi, il est le bienvenue Pour ce type de réflexions, rien ne vaut la création d'une table de vérité, employée lorsqu'on simplifie des fonctions avec l'algèbre booleen. Par exemple: A = Bernard B = Nathalie A peut prendre les valeurs suivantes: Bernard Présent = 1 Bernard Absent = 0B peut prendre les valeurs suivantes: Nathalie Présente = 1 Nathalie Absente = 0 La création de la table de vérité permet d'envisager tous les cas de figure. Le nombre de variables d'entrées ne se limite pas qu'a 2. Dans ton exemple, la table pour XOR (OU exclusif) ressemble à cela: En passant par cette approche, tu définis clairement la fonction puis il ne te reste plus qu'à employer la bonne fonction ET, OU, OU Exclusif, etc... L'exemple ci dessus provient d'un exemple créé par Didier Müller qui a publié le document complet sous https://www.apprendre-en-ligne.net/info/logique/logique.pdf Cette approche permet de gagner beaucoup de temps et d'éviter d'omettre des conditions. Modifié le 17 octobre 2022 par sumsum 2
Domodial Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 (modifié) @sumsum ça y est j'ai mal crâne Je vais regarder, car j'avoue que ce que j'ai fais hier soir avec XOr ça n'a pas l'air d'être au poil. Merci PS : j'ai regardé la table sur le site, je suis infoutu de faire ça, comme d'ab. Si je pige bien il me faudrait un AB+BA et non AB+AB Modifié le 17 octobre 2022 par Domodial
jojo Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 je suis du style "keep it simple"... Si j'ai bien compris ton besoin, ce n'est pas un OU exclusif, mais un OU "normal" : OU exclusif : Bernard ou Nathalie est présent MAIS PAS les 2 ensembles OU "normal" : Bernard ou Nathalie ou les 2 sont présents. Pour le OU "normal", il faut simplement dupliquer les lignes GEA GEA.add (Bernard est là, temps,"message", action) GEA.add (Nathalie est là, temps,"message", action) GEA.add ({Bernard est absent, Nathalie est absente}, temps, "message", action)
Domodial Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 Merci @jojo je vais tester, mais a y réfléchir maintenant que je le vois, je me dit que je suis vraiment con. Ca semble faire la l'affaire ! Je viendrais dire ici ma joie ! car ce n'est pas simple à distance... avec 2 QA présence alors que les 2 personnes ne sont pas sur place. Encore merci !
sumsum Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 @Domodial j'essaie de simplifier ton besoin pour limiter le nombre de conditions et donc de lignes. Comme @jojo je suis pour la simplicité. Si je lis les commentaires que tu as mis dans ton code, j'y vois des conditions qui s'annulent. Par exemple le changement de l'état de la box: Condition 1: Si je suis absent, change le mode de la box à 2 (AWAY), s'il ne détecte pas mon smartphone Condition 2: Si je suis présent (true), passe le mode HC3 à 1 (HOME) Condition 3: Si Nathalie est absent, change le mode de la box à 2 (AWAY), s'il ne détecte pas son smartphone Condition 4: Si Nathalie est présent (true), passe le mode HC3 à 1 (HOME) Comme vous êtes 2 il faut impérativement inclure les deux variables dans les conditions, sinon, la condition 1 et 2 sera annulée par la 3 ou la 4 et c'est là que la table dont je parlais plus haut prend tout son sens. Nathalie0 = absente 1 = Présente Bernard0 = absent 1 = Présent Etat Box2 = AWAY 1 = HOME Etat Lumière0 = éteinte 1 = allumée 0 0 2 0 0 1 1 0 1 0 1 0 1 1 1 1 Vérifie/confirme ou modifie la table ci-dessus pour que tes conditions et tes actions correspondent à ce que tu veux que GEA fasse. En lisant tes commentaires dans ton code et analysant ton code, les deux ne correspondent pas. Comme dit plus haut, si tu travailles aux conditions de Nathalie et de Bernard ligne par ligne, tu ne couvriras pas le cas de Bernard et Nathalie présents les deux ou absents les deux. PS dans tes actions de pilotage de ta lampe tu mets "Value+". Value+ est prévu pour tester une valeur plus grande que... dans les conditions. Pour les actions, c'est "Value" qu'il faut employer. Une fois ta table confirmée il restera à créer les lignes GEA qui engloberont tes conditions et tes actions. Redis-moi et je t'assiste pour les créer, cela te permet d'avoir le strict nécessaire de lignes et des actions qui correspondent exactement à ce que tu souhaites.
Domodial Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 (modifié) Re, Oui désolé pour le Value+ Entre temps j'ai modifié le code après test, car ça ne fonctionnait pas. Maintenant c'est bon. Je viens de voir le message de @Jojo et ça bloque ici effectivement : tu ne couvriras pas le cas de Bernard et Nathalie présents les deux ou absents les deux. Du coup je suis encore en train de coincer. C'est vrais que juste sur le test de présence du smartphone, un annule l'autre. ça me rends dingue. EDIT : "et je t'assiste" le soucis c'est que je ne suis pas expert et ne sais pas créer une table. J'ai du mal avec les QA en plus. Je ne joue qu'avec GEA et pour le coup je demande un besoin qu'il ne couvre pas. J'avoue n'avoir jamais eu besoin de ça jusqu'alors, mais là ça se fait sentir fortement, et je n'ai plus les réflexions d'avant (ne pas voir ma photo j'ai changé ) Modifié le 17 octobre 2022 par Domodial 1
jojo Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 Je n'ai pas tout lu en détail, mais tu dois faire les actions1 si: Bernard, ou Nathalie ou (Bernard et Nathalie) sont là. Pour cela juste 2 lignes GEA, car ce n'est pas important de savoir s'ils sont tous les 2 là, il suffit que 1 des deux soit là pour déclencher l'action1. Et tu fait l'action2, si vous êtes tous les 2 absents => 1 ligne GEA. où est l'erreur de mon raisonnement ?
Domodial Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 @sumsum j'ai regardé la table que tu as fait. Ça illustre très bien le besoin. C'est exactement le comportement attendu. 1
Domodial Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 (modifié) @jojo disons qu'il y a un soucis sur le test de présence à mon avis. Si je ne suis pas là je passe le profile à Away. Mais comme Nathalie est là elle va voir que le profile est a Away et va le passer à Home car elle est là. Modifié le 17 octobre 2022 par Domodial
sumsum Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 (modifié) @jojo Il faut deux lignes car il faut changer le statut de profile à Away une fois qu'il était à Home GEA.add( {"Or", {"Value", 188, false}, {"Value", 202, false} }, 30, "Bernard, Nathalie ou les deux sont absents changé à Away", {{"Profile", "Away"}, {"Portable", Phone_Bernard}}) GEA.add( {{"Value", 188, true}, {"Value", 202, true}, }, 30, "Bernard, Nathalie sont présents changé à Home", {{"Profile", "Home"}, {"Portable", Phone_Bernard}}) PS je n'ai pas testé, mais ça devrait couvrir tes besoins Modifié le 23 octobre 2022 par sumsum EDIT: Rajouté le temps qui avait été oublié lors de mon copier-coller d'exemple 1
jojo Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 comme tu as confirmé que to besoin a bien été résumé par @sumsum, Ces 3 règles GEA Il y a 5 heures, jojo a dit : GEA.add (Bernard est là, temps,"message", action) GEA.add (Nathalie est là, temps,"message", action) GEA.add ({Bernard est absent, Nathalie est absente}, temps, "message", action) devraient faire le job 1
jojo Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 il y a 4 minutes, sumsum a dit : Il faut deux lignes car il faut changer le statut de profile à Away une fois qu'il était à Home GEA.add( {"Or", {"Value", 188, false}, {"Value", 202, false} }, "Bernard, Nathalie ou les deux sont absents changé à Away", {{"Profile", "Away"}, {"Portable", Phone_Bernard}}) GEA.add( {{"Value", 188, true}, {"Value", 202, true}, }, "Bernard, Nathalie sont présents changé à Home", {{"Profile", "Home"}, {"Portable", Phone_Bernard}}) pk; mais je trouve plus lisible de mettre les "or" sur des lignes différentes, mais c'est parfaitement la même chose 1
Domodial Posté(e) le 17 octobre 2022 Signaler Posté(e) le 17 octobre 2022 (modifié) C'est vrais que ça fait la même chose, 2 lignes vs trois. Hé ben... J'aurais du moins sauter les cours de math quand j'étais jeune. Je regarde ça demain. Mais mon cerveau va y penser toute la nuit Modifié le 17 octobre 2022 par Domodial 1
Domodial Posté(e) le 18 octobre 2022 Signaler Posté(e) le 18 octobre 2022 (modifié) Le 17/10/2022 à 18:20, sumsum a dit : @jojo Il faut deux lignes car il faut changer le statut de profile à Away une fois qu'il était à Home GEA.add( {"Or", {"Value", 188, false}, {"Value", 202, false} }, "Bernard, Nathalie ou les deux sont absents changé à Away", {{"Profile", "Away"}, {"Portable", Phone_Bernard}}) GEA.add( {{"Value", 188, true}, {"Value", 202, true}, }, "Bernard, Nathalie sont présents changé à Home", {{"Profile", "Home"}, {"Portable", Phone_Bernard}}) PS je n'ai pas testé, mais ça devrait couvrir tes besoins @sumsum je viens d'essayer, quelque chose ne va pas, ça me bloque le lancement de GEA. (pas d'erreur). Si je commente les 2 lignes GEA repart comme en 40. Je ne vois rien qui peut clocher. PS : Je pense qu'il manque le , temps, (c'était bien ça) un piège ? Modifié le 18 octobre 2022 par Domodial 1
Domodial Posté(e) le 18 octobre 2022 Signaler Posté(e) le 18 octobre 2022 (modifié) Un GRAND merci à vous 2 ! Après une batterie de tests ça fonctionne super bien. J'ai simulé la présence alors que nous n'y sommes pas mais ça fonctionne. Par contre j'ai inversé les lignes true à la place de false, car je voulais que ce soit comme : Bernard, Nathalie ou les deux sont présent, mode changé à Home Modifié le 18 octobre 2022 par Domodial 1
jojo Posté(e) le 18 octobre 2022 Signaler Posté(e) le 18 octobre 2022 Il y a 10 heures, Domodial a dit : quelque chose ne va pas je ne vois pas le paramètre temps (-1, 30, ...) après les conditions et avant la notif 1
Domodial Posté(e) le 18 octobre 2022 Signaler Posté(e) le 18 octobre 2022 Oui c'est ce que je disais en PS 1
Domodial Posté(e) le 19 octobre 2022 Signaler Posté(e) le 19 octobre 2022 (modifié) J'ai une tite question sur WeatherLocal. Il est dit que WeatherLocal est traduit dans la langue. Mais il me parle Anglais. C'est normal comme réponse PartlyCloudy ? Modifié le 19 octobre 2022 par Domodial
jojo Posté(e) le 19 octobre 2022 Signaler Posté(e) le 19 octobre 2022 il y a 6 minutes, Domodial a dit : PartlyCloudy = partiellement couvert. Lais ce n'est pas du GEA ???
Domodial Posté(e) le 19 octobre 2022 Signaler Posté(e) le 19 octobre 2022 (modifié) C'est parce que le commentaire dans GEA Syntaxe dit : -- "WeatherLocal" : Teste la météo traduit dans la langue Du coup je croyais que PartlyCloudy était traduit dans la langue ou la Box a été réglé (Français, Polonais, Anglais) Comme HC3 me parle Français, et que je vois PartlyCloudy je ne comprenais pas. (enfin moi si mais pas ma femme ) Modifié le 19 octobre 2022 par Domodial
jojo Posté(e) le 19 octobre 2022 Signaler Posté(e) le 19 octobre 2022 je n'ai pas encore essayé de faire parler la box. De toute façon, pour la météo locale, je passe la tête par la fenêtre, et donc pas de soucis de langue ... 1
Messages recommandés