Manu31 Posté(e) le 20 juin 2022 Signaler Posté(e) le 20 juin 2022 Il y a 3 heures, jojo a dit : bonjour, La question a probablement déjà été posée, mais je n'ai pas le courage de parcourir les >450 pages du topic ... Je souhaite comparer la valeur de 2 modules (plus précisément si module1>module2, alors valeur module2 = valeur module1) Mais la fonction GEA GEA.add( {"Value+", 73, 50} compare la valeur du module 73 à la valeur fixe 50. Avez-vous une astuce ? Bonjour @jojo, Si ça peut aider.... Pour ma part j'ai comparé deux valeurs comme ceci : -- Gestion de la piscine -- Si la variable est différente de nul, on la remet à 5°C chaques jours GEA.add({{"Value!", id["Temp_piscine"], ""}, {"Time", "00:10"}}, 1*60, "", {"Global", "Temp_Piscine", "5"}) -- Stocker la température de la piscine (toute les minutes) dans la variable si celle-ci est supérieur GEA.add({"Value+", id["Temp_EauPiscine"], {"Global", "Temp_Piscine"}}, 1*60, "La température de la piscine à augmenté : #value#°C", {"Global", "Temp_Piscine", {"Value", id["Temp_EauPiscine"]}}) Tu peux voir l'ensemble ici : Bonne soirée
jojo Posté(e) le 20 juin 2022 Signaler Posté(e) le 20 juin 2022 merci, il me semble que c'est ptoche de la propositionde @Lazer avec les variables cache, mais donc sa proposition initiale devrait également fonctionner
Lazer Posté(e) le 20 juin 2022 Signaler Posté(e) le 20 juin 2022 Oui c'est le même principe. La seule différence, c'est que VariableCache est stocké en RAM, donc pas d'écriture dans la DB, mais perdu en cas de redémarrage de GEA. Tandis que Variable est écrit dans la DB, donc conservé en cas de redémarrage de GEA. Pas vraiment utile pour ce scénario, mais cela dit une écriture par jour, c'est pas ça qui va user la mémoire flash.
triossrf Posté(e) le 21 juin 2022 Signaler Posté(e) le 21 juin 2022 Bonsoir tous le monde! Mes volets se ferme le soir avec la syntaxe suivante: GEA.add({{"Profile",1},{"Time","Sunset+15"}},30,"",{{"Close", id["VOLET_SALON"]}}) Jusqu'à la pas de problème. Cependant, j'aimerai vérifier que le volet est déjà fermé afin que le contact ne s'enclenche pas pour rien. Pour exemple: Je ferme mon volet a 18H00 manuellement. A 20H00 (sunset) alors que le volet est fermé le contact s'active tout de même. Est-il possible de lui dire en condition: supérieur ou égale a 1% tu fermes le volet, sinon tu ne fais rien? Bien à vous et merci.
Lazer Posté(e) le 21 juin 2022 Signaler Posté(e) le 21 juin 2022 Oui dans les conditions il faut ajouter Value+ ou Value- afin de comparer la valeur. Par contre je ne me souviens jamais lequel de 0 et 99 correspond au volet complètement ouvert/fermé... donc faut faire des essais, ou regarder le JSON du module via l'API.
Lazer Posté(e) le 22 juin 2022 Signaler Posté(e) le 22 juin 2022 Dans ce cas il faut ajouter {"Value+", ID, 1} dans les conditions.
Yannick Posté(e) le 23 juin 2022 Signaler Posté(e) le 23 juin 2022 (modifié) salut à tous, je veux commencer à implémenter GEA sur ma HC3 mais j'avoue que ça me parle chinois. Afin de me rendre compte de ce que cela peut donner, je souhaiterais déjà savoir si GEA peut gérer une simple règle comme celle-ci. J'ai un wallplug fibaro sur lequel est branché mon spa, et je voudrais que le relevé de puissance instantanée consommée me remonte 2 notifications : 1- si consommation > à 2000 w alors notification de démarrage Chauffage Spa 2- si consommation < à 10 w alors notification de Spa en erreur. est-ce faisable ? Merci pour vos réponses Modifié le 23 juin 2022 par Yannick
Lazer Posté(e) le 23 juin 2022 Signaler Posté(e) le 23 juin 2022 Basiquement : local id = { WP_SPA = 123, } GEA.add({{"Power+", id["WP_SPA"], 2000}}, 30, "Le Spa est démarré depuis 30 secondes") GEA.add({id["WP_SPA"], {"Power-", id["WP_SPA"], 10}}, 30, "Erreur consommation Spa inférieure à 10 W") Tu peux ajuster les durées si tu veux plus ou moins de réactivité pour les notifs. Et comme tu peux le voir, il n'y a aucune action, juste une notif pour chaque règle. 1
jojo Posté(e) le 24 juin 2022 Signaler Posté(e) le 24 juin 2022 Il y a 22 heures, Lazer a dit : Basiquement : local id = { WP_SPA = 123, } GEA.add({{"Power+", id["WP_SPA"], 2000}}, 30, "Le Spa est démarré depuis 30 secondes") GEA.add({id["WP_SPA"], {"Power-", id["WP_SPA"], 10}}, 30, "Erreur consommation Spa inférieure à 10 W") Tu peux ajuster les durées si tu veux plus ou moins de réactivité pour les notifs. Et comme tu peux le voir, il n'y a aucune action, juste une notif pour chaque règle. et ne pas oublier de dire l'id de l'utilisateur à qui il faut envoyer la notif GEA.portables = {2} (ici toutes les notifs sont envoyées à l'utilisateur 2, qui est (normalement) l'utilisateur admin créé automatiquement lors du premier démarrage de la box
jojo Posté(e) le 24 juin 2022 Signaler Posté(e) le 24 juin 2022 Est-ce que quelqu'un peut me dire ce que j'ai fais de mal ? Je ne reçois pas de notification, et la règle est pourtant bien exécutée : Mes instructions : function config(GEA) GEA.portables = {2} end function setEvents() ... local id = { ... BUREAU_PTISE = 104, MAX_PRISE = 142, ... } ... GEA.add (id["MAX_PRISE"], -1, "test notif", {"TurnOn", id["BUREAU_PTISE"]}) ... end et voici le debug [24.06.2022] [18:55:13] [TRACE] [QA_GEA_167]: ---------------------------------------------------------------------------------------------------- [24.06.2022] [18:55:13] [TRACE] [QA_GEA_167]: GEA 7.37 started by event: mode device #142 Max_Prise (Ch Max) value [24.06.2022] [18:55:13] [TRACE] [QA_GEA_167]: ---------------------------------------------------------------------------------------------------- [24.06.2022] [18:55:13] [DEBUG] [QA_GEA_167]: Add immediately #5 : [142] => ["TurnOn",[104]] [24.06.2022] [18:55:13] [DEBUG] [QA_GEA_167]: @0s [Validation*] #5 : [142] => ["TurnOn",[104]] [24.06.2022] [18:55:13] [DEBUG] [QA_GEA_167]: [Started] #5 : [142] => ["TurnOn",[104]] [24.06.2022] [18:55:13] [DEBUG] [QA_GEA_167]: [action] ["TurnOn",[104]] [24.06.2022] [18:55:14] [DEBUG] [QA_GEA_167]: ... check running #36 @1080s... l'erreur doit être tellement flagrante, que je ne l'ai pas vue
jojo Posté(e) le 24 juin 2022 Signaler Posté(e) le 24 juin 2022 Le 20/06/2022 à 19:07, jojo a dit : merci, je vais essayer et dirai quoi. donc le'inclusion des 2 Value fonctionne pour la condition (action ok si piscine_tmp > piscine_tmpseuil) GEA.add ({"Value+", id["PISCINE_TMP"], {"Value",id["PISCINE_TMPSEUIL"]}}, -1 ,"", {"OnOff", id["BUREAU_PTISE"]}) maintenant, dans les actions, je n'y arrive pas : je souhaite mettre à jour piscine_tmplast avec la valeur de piscine_tmp {"Value", id["PISCINE_TMPLAST"], {"Value", id["PISCINE_TMP"]}} peut-être que j'en demande de trop à GEA ?
Lazer Posté(e) le 24 juin 2022 Signaler Posté(e) le 24 juin 2022 (modifié) Tu es sûr que tu as un portable avec l'ID 2 ? Tu peux vérifier avec /api/iosDevices/ Perso j'utilise les noms des portables, exemple : GEA.portables = {"Pixel 5", "Pixel C"} EDIT : voir 2 messages plus bas... Modifié le 24 juin 2022 par Lazer
Lazer Posté(e) le 24 juin 2022 Signaler Posté(e) le 24 juin 2022 il y a 3 minutes, jojo a dit : maintenant, dans les actions, je n'y arrive pas : je souhaite mettre à jour piscine_tmplast avec la valeur de piscine_tmp {"Value", id["PISCINE_TMPLAST"], {"Value", id["PISCINE_TMP"]}} peut-être que j'en demande de trop à GEA ? C'est quoi ton module PISCINE_TMPLAST ? Tu es certain qu'il peut prendre la valeur issue du module PISCINE_TMP ? Exemple si c'est un multilevelSwitch tu peux lui donner une valeur entre 0 et 99, mais pour un binarySwitch, ça sera true/false uniquement.
Lazer Posté(e) le 24 juin 2022 Signaler Posté(e) le 24 juin 2022 Il y a 2 heures, jojo a dit : et ne pas oublier de dire l'id de l'utilisateur à qui il faut envoyer la notif GEA.portables = {2} (ici toutes les notifs sont envoyées à l'utilisateur 2, qui est (normalement) l'utilisateur admin créé automatiquement lors du premier démarrage de la box Ce qu'il y a de bien, c'est que ton erreur est écrite en toute lettre dans ton message. Si tu mets l'ID d'un utilisateur dans une variable qui se nomme "portable", forcément, ça marche pas bien...
jojo Posté(e) le 25 juin 2022 Signaler Posté(e) le 25 juin 2022 Il y a 15 heures, Lazer a dit : C'est quoi ton module PISCINE_TMPLAST ? Tu es certain qu'il peut prendre la valeur issue du module PISCINE_TMP ? Exemple si c'est un multilevelSwitch tu peux lui donner une valeur entre 0 et 99, mais pour un binarySwitch, ça sera true/false uniquement. le module PISCINE_TMPLAST, comme le module PISCINE_TMP sont des QA Temparature Sensor. Le PISCINE_TMP sera finalement une sonde de température physique (via FGBS), mais la température (de la piscine) ne sera significative que si l'eau circule, d'oùu la règle PISCINE_TMPLAST qui ne sera mise à jour que si la pompe de la piscine tourne ...
jojo Posté(e) le 25 juin 2022 Signaler Posté(e) le 25 juin 2022 Il y a 15 heures, Lazer a dit : Ce qu'il y a de bien, c'est que ton erreur est écrite en toute lettre dans ton message. Si tu mets l'ID d'un utilisateur dans une variable qui se nomme "portable", forcément, ça marche pas bien... comprends pas ... J'ai complété GEA.portables avec l'id de mon utilisateur admin
jojo Posté(e) le 25 juin 2022 Signaler Posté(e) le 25 juin 2022 Il y a 16 heures, Lazer a dit : Tu es sûr que tu as un portable avec l'ID 2 ? Tu peux vérifier avec /api/iosDevices/ Perso j'utilise les noms des portables, exemple : GEA.portables = {"Pixel 5", "Pixel C"} EDIT : voir 2 messages plus bas... en effet, je JSON donne ceci // 20220625121416 // http://192.168.1.141/api/iosDevices/ [ { "id": 25, "name": "iPad", "udid": "970C8A8B-2D80-40E8-A0CB-6E2E312320F4", "push": true }, { "id": 26, "name": "OnePlus LE2123", "udid": "df864256-745a-37af-ae98-283ee83f9768", "push": true }, { "id": 52, "name": "OnePlus 9 Pro", "udid": "0cd713841dde957b", "push": true } ] je n'ai AUCUNE idée de la différence entre le 26 et le 52, ni pourquoi 2 d'ailleurs (je n'ai qu'un seul One Plus ...) Mais donc y aurait-il moyen d'avoir des notifs pour l'utilisateur admin, notifs qui seraient visibles depuis l'interface Web de mon PC, et pas sur le timbre poste de mon portable ? (en tout cas, MERCI pour le support efficace )
Lazer Posté(e) le 25 juin 2022 Signaler Posté(e) le 25 juin 2022 L'application mobile Fibaro a la mauvaise habitude de se ré-associer en créant un nouvel ID dans la DB, par exemple après une réinstallation / réinitialisation complète du téléphone. ça a toujours été comme ça... surement parce que l'identifiant unique du téléphone a changé entre temps. Si tu veux envoyer des notifs à un utilisateur, et non pas à un portable, alors il faut utiliser l'action Email... qui comme son nom l'indique, enverra un email. Voir la doc de syntaxe pour les différentes options existantes. Il y a 2 heures, jojo a dit : le module PISCINE_TMPLAST, comme le module PISCINE_TMP sont des QA Temparature Sensor. Le PISCINE_TMP sera finalement une sonde de température physique (via FGBS), mais la température (de la piscine) ne sera significative que si l'eau circule, d'oùu la règle PISCINE_TMPLAST qui ne sera mise à jour que si la pompe de la piscine tourne ... OK c'est pour ça donc, "Value" ne peut être utilisé comme action que sur des actionneurs (car en interne, il appelle la fonction setValue via l'API). Si tu veux mettre à jour la valeur (en fait n'importe quelle propriété) d'un module, alors il faut utiliser l'action "Property" (qui appelle la fonction updateProperty via l'API)
jojo Posté(e) le 25 juin 2022 Signaler Posté(e) le 25 juin 2022 ok, merci pour le rappel de "Property" (j'aurais du y penser vu que j'avais revu la doc à fond) il y a une heure, Lazer a dit : Si tu veux envoyer des notifs à un utilisateur, et non pas à un portable, alors il faut utiliser l'action Email... qui comme son nom l'indique, enverra un email. V dond la possibilité d'envoyer une notif à un utilisateur n'existe pas. => peut-être une idée pour un prochaine version et ajouter une variable GEA.users ={} dans la config ?
Lazer Posté(e) le 25 juin 2022 Signaler Posté(e) le 25 juin 2022 C'est historique, l'API proposée par Fibaro a toujours fonctionné ainsi depuis la HC2. Donc GEA aussi. Cela dit, cette discussion me rappelle que depuis un certain firmware de la HC3, Fibaro a fait évoluer l'API proposée pour envoyer des notifications. Donc peut être que maintenant il est possible d'envoyer un Push à un utilisateur... ce qui implique que la box sache prendre en compte quel utilisateur est connecté au travers de tel ou tel téléphone. A creuser pour plus tard.
jojo Posté(e) le 26 juin 2022 Signaler Posté(e) le 26 juin 2022 j'essaye de démarrer une action en fonction d'une heure spécifiée dans une variable d'un QA J'ai essayé avec les valeurs suivantes pour ma variable 10:00 ou "10:00" Mais aucune des 2 valeurs ne fonctionne ? voici l'instruction GEA GEA.add ({"Time",{"VariableQuickApp", id["GESTION_PISCINE"], "PiscineHrDebut"},"23:59"}, -1, "Démarrage pompe", {"OnOff", id["BUREAU_PRISE"]})
Lazer Posté(e) le 26 juin 2022 Signaler Posté(e) le 26 juin 2022 Tu es certain que c'est possible ? Je ne crois pas... Pour ce que tu veux faire, il faut utiliser le QuickApp GEA Alarm : https://www.domotique-fibaro.fr/topic/14651-quick-app-gestionnaire-dévénements-automatique-gea-pour-hc3/?do=findComment&comment=232268
jojo Posté(e) le 26 juin 2022 Signaler Posté(e) le 26 juin 2022 Il y a 4 heures, Lazer a dit : Tu es certain que c'est possible ? GEA est tellement puissant, que j'espérais ... J'ai également essayé avec une VG, mais sans succès. GEA.add ({"Time",{"Global", "PiscineHrDebut"},"23:59"}, -1, "Démarrage pompe", {"OnOff", id["BUREAU_PRISE"]}) Je regarderai demain (toute-à-l'heure) avec GEA Alarme que je ne connais pas du tout
Messages recommandés