
Jean Louis DURET
Membres confirmés-
Compteur de contenus
58 -
Inscription
-
Dernière visite
-
Jours gagnés
1
Tout ce qui a été posté par Jean Louis DURET
-
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
J'avais supprimé les variables 209 et 221 et elles réapparaissent immédiatement. Relancé le programme aussi -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Bon j'ai rechargé le fia, remplacé 3 deviceId1 et 3 deviceId2 par 209 et 221, ensuite dans Variables j'ai changé les valeurs par 209 et 221 La même erreur encore.. -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
-
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
-
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
-
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
-
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Dois je remplacer ici les deviceId par leur ID 209 et 221 ? -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
-
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
-
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
-
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Je te l'ai redonné pour que tu voies que j'ai bien remplacé les deviceId par les bons et les images pour que OUI çà correspond bien aux températures relevées par FGMS 001. Regarde les captures écran, ce sont bien les ID de sondes. Que faudrait il d'autre pour vérifier ? Merci de ta patience. -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Génial le principe, j’ai enfin compris l’utilité d’une Quick App ! Je n’ai pas eu le temps de remonter mes sondes sur le volet et j’ai donc testé sur 2 FGMS 001 209 et 221 _vois les images_ Çà me renvoie une erreur local myVersion = "0.10"; -- Barelle le 14/04/2025 : création -- Chargement d'un fichier au format ics local refreshDelay = 60; -- secondes local delay = refreshDelay; local devId1, devId2 = 0, 0; local dev1Lbl = "Device 1"; local dev2Lbl = "Device 2"; local selfId = plugin.mainDeviceId; __TAG = "Comparaison_"..plugin.mainDeviceId; function QuickApp:onInit() local initError = false; local initErrorCause = ""; local testVariable = function(varName, defaultValue) local var = self:getVariable(varName); if (var == "") or (var == nil) then var = defaultValue; self:setVariable(varName, var); if type(var) == "table" then self:warning("QuickApp:onInit>testVariable>>>🤨 Variable \"" .. varName .. "\" not defined, now sets to " .. json.encode(var)); else self:warning("QuickApp:onInit>testVariable>>>🤨 Variable \"" .. varName .. "\" not defined, now sets to " .. stuffToString(var)); end else if type(var) == "table" then self:debug('QuickApp:onInit>testVariable>>>😐 variable "'..varName..'"='..json.encode(var), "SeaGreen"); else self:debug('QuickApp:onInit>testVariable>>>😐 variable "'..varName..'"='..tostring(var)); end end return var; end -- testVariable self:trace("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* [" .. __TAG .. "] onInit (version " .. myVersion .. ") *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"); -- 0) Check if QuickApp device is enabled if api.get("/devices/" .. tostring(selfId)).enabled then self:updateProperty("log", ""); else self:updateProperty("log", "❌ Disabled ❌"); self:warning("QuickApp:onInit>>>Device " .. self.name .. " is disabled => QuickApp stopped."); return; end -- 1) On récupère le delay de raffraichissement des données delay = testVariable("refreshDelay", defaultDelay); self:trace('onInit>>>🙂 Variable "refreshDelay"=' .. delay .. ' seconds.'); -- 2) On récupère l'Id du premier appareil devId1 = tonumber(testVariable("209", devId1)); self:trace('onInit>>>🙂 Variable "209"=' .. devId1 .. '.'); -- 3) On récupère l'Id du deuxième appareil devId2 = tonumber(testVariable("221", devId2)); self:trace('onInit>>>🙂 Variable "221"=' .. devId2 .. '.'); -- 4) On vérifie que les paramètres sont bons if (devId1 > 1) and (devId2 > 1) then local val1 = hub.getValue(devId1, 'value'); if (type(val1) ~= "number") then initError = true; initErrorCause = '🥵 Invalid device "209" : ' .. devId1; dev1Lbl = "Device 1 (id: " .. devId1 .. ")"; else dev1Lbl = "Device 1 (id: " .. devId1 .. ") value=" .. val1; end local val2 = hub.getValue(devId2, 'value'); if (type(val2) ~= "number") then initError = true; initErrorCause = initErrorCause ..' 🥵 Invalid device "221" : ' .. devId2; dev2Lbl = "Device 2 (id: " .. devId2 .. ")"; else dev2Lbl = "Device 2 (id: " .. devId2 .. ") value=" .. val2; end if (type(val1) == "number") and (type(val2) ~= "number") then self:updateProperty("value", val1-val2); end else initError = true; dev1Lbl = "Device 1 (id: " .. devId1 .. ")"; dev2Lbl = "Device 2 (id: " .. devId2 .. ")"; initErrorCause = '🥵 Paramètres invalides.'; end -- 5) On met à jour l'interface utilisateur self:updateView("dev1Lbl", "text", dev1Lbl); self:updateView("dev2Lbl", "text", dev2Lbl); self:updateView("majLbl", "text", "Le " ..os.date ("%d/%m/%Y à %H:%M:%S", os.time()) .. "."); if initError then self:warning(initErrorCause); self:updateView("resultLbl", "text", initErrorCause); self:updateProperty("value", 0); self:updateProperty("log", "❌ Erreur ❌"); else self:loop(delay); end end -- QuickApp:onInit function QuickApp:loop(delay) -- Check if QuickApp device is enabled if api.get("/devices/"..tostring(self.id)).enabled then self:updateProperty("log", ""); else self:updateProperty("log", "❌ Disabled ❌"); self:warning("Device", self.name, "is disabled => QuickApp stopped"); return end local valDev1 = hub.getValue(devId1, 'value'); local valDev2 = hub.getValue(devId2, 'value'); local ecart = valDev1 - valDev2; self:updateView("dev1Lbl", "text", "Device 1 (id: " .. devId1 .. "), value = " .. valDev1); self:updateView("dev2Lbl", "text", "Device 2 (id: " .. devId2 .. "), value = " .. valDev2); self:updateProperty("value", ecart); self:updateProperty("log", "Ecart = " .. ecart); self:updateView("resultLbl", "text", "L'écart entre les valeurs est de " .. ecart .. "."); self:updateView("majLbl", "text", "Le " ..os.date ("%d/%m/%Y à %H:%M:%S", os.time()) .. "."); self:trace("QuickApp:loop>>>Le QA a été mis a jour : prochaine mise à jour dans "..delay.." secondes."); hub.setTimeout(delay * 60 * 1000, function() self:loop(delay); end) end -- QuickApp:loop function stuffToString(stuff) local typ = type(stuff); if typ == "nil" then return "nil"; elseif typ == "string" then return stuff; elseif typ == "number" then return tostring(stuff); elseif typ == "boolean" then return iif(stuff, "true", "false"); elseif typ == "table" then return json.encode(stuff); elseif typ == "function" then return "function"; elseif typ == "userdata" then return "userdata"; elseif typ == "thread" then return "\"thread\" not supported by Fibaro!"; else return "unknown Lua variable type: "..typ; end end -- stuffToString -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Question con, dois je remplacer deviceId1 et deviceI2 à chaque occurence dans ton programme ? -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
OK, je testerai début semaine prochaine, car je pars demain tôt. Merci de ton aide. -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Mille mercis Barelle pour cet imposant QA. Il me semble (dis je tout doucement) que ma recherche est plus simple : 310 mn après lever du soleil ici isTrigger = true, operator = "==", property = "sunrise", type = "date", value = 310 ET Si on est en mode SOLEIL ici isTrigger = true, operator = "==", property = "activeProfile", type = "profile", value = 1 ET Si la valeur T° du capteur A (T° de l'air _ID 330) est supérieure à la valeur du capteur B (T° de l'eau_ID 340) Et si le volet piscine est fermé ici isTrigger = true, operator = "==", property = "VOLET_PISCINE", type = "global-variable", value = "FERME" Alors : On lance la scène "Ouverture volet" ici hub.scene('execute', {[1] = 200, }) On envoie un mail hub.alert('email', {[1] = 2, }, 'OUVERTURE VOLET PISCINE LANCEE', false, '', false) Et on met le "Mode" en mode "Soleil" hub.profile(1, 'activateProfile') Le truc que je n'arrive pas à faire _je suis une buse en programmation_ c'est d'écrire la comparaison que j'ai surligné. En tous cas merci de ton aide, j'espère _je vois des vidéos et lis des Tutos Lua pour tenter de comprendre. -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Jojo je te remercie de tout ce mal que tu te donnes. Je ne sais ce qu'est GEA ; sur ma Yubii j'ai "Blocs" convertibles en "Lua" et Quick App … pas de GEA en vue. Le mode"Soleil" est le mode par défaut installé sur Yubii que j'ai renommé Soleil et d'autres Pluie (les volets ne se ferment plus partiellement) et Enfants (je n'ouvre pas leurs volets le matin si ils sont là" etc Dans le Lua c'est cette partie "isTrigger = true, operator = "==", property = "activeProfile", type = "profile", value = 1" Vois l'équivalent de toute la partie "Déclarations" en mode bloc, ce sera plus clair. Je me demande si la partie "comparaison de T°" ne doit pas être plutôt à la suite des "Déclarations" Plutôt que les "Actions" où l'on ne devrait avoir que le lancement du scénario "Ouverture de volet" et le message disant que c'est fait …. En fait la comparaison des T° est une condition de plus pour que le volet s'ouvre. Actuellement au fur et à mesure de l'avancement de la saison je change la T° extérieure (ici 16°C) qui devient 28°C en été : et c'est pour m'éviter çà que je cherche. Ceci dit si tu penses que je peux avoir accès à GEA (? les Quick Apps sur lesquelles j'ai calé) et que c'est plus simple c'est peut être à essayer. -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Oui c'est ce que j'ai actuellement. 310 après lever du soleil, le coucher je ne m'en occupe pas (la fermeture du volet n'est pas automatique pour des raisons de sécurité) Je n'utiliserai plus le FGMS mais les valeurs des sondes soi id 330 pour l'air et 334 pour l'eau. Les 2 dernières restent en l'état. -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
suite ... Si la T° du FGMS 01 (Id 221) est > 16°C Si on est en mode "Soleil" Si la variable "Volet_piscine" est "Fermé" -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
La variable est mise à jour par l'ouverture ou la fermeture du volet. Oui les ID T° est et eau sont bien celles là Le module qui ouvre est un FGS 224 le 1er relai commande ouverture et le 2ème la fermeture. Là je ne t'ai mis que les "déclarations" (conditions d'ouverture) et pas les actions. En fait les conditions ACTUELLES d'ouverture son : 310 minutes après lever du soleil -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Je ne sais pas si çà peut aller ? Il faut ajouter la condition ET si valeur T° capteur A > valeur T° capteur B. Les capteurs A et B que je renommerai sont les valeurs relevées par 2 sondes DS18B20 branchées sur un FGBS321. En tous cas merci encore de ta patience -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
{ conditions = { { isTrigger = true, operator = "==", property = "sunrise", type = "date", value = 310 }, { id = 221, isTrigger = true, operator = ">=", property = "value", type = "device", value = 16 }, { isTrigger = true, operator = "==", property = "activeProfile", type = "profile", value = 1 }, { isTrigger = true, operator = "==", property = "VOLET_PISCINE", type = "global-variable", value = "FERME" } }, operator = "all" } -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Jojo, merci de tes efforts pour m'aider, mais j'ai prévenu être une triple triple buse. J'ai transpiré il y a quelques temps pour utiliser un QA sensée récupérer des infos sur mon NAS Synology => sans succès. J'ignore totalement ce qu'est un GEA ??. Bon j'ai demandé du renfort aux tech Fibaro en leur donnant ma scène (en Lua) et leur demandant si il était possible d'ajouter …….. ce que recherché. On verra. Merci encore de ta patience. Bonne journée -
Yubii Home depuis 3 ans déjà
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Nouveau ? Présentez-vous
Ah aussi je me suis amusé à réaliser tous mes icônes en photographiant mes portes, mes volets, mes sirènes, mes pompes, mes caméras etc ainsi que pour les pièces pour personnaliser au max -
Yubii Home depuis 3 ans déjà
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Nouveau ? Présentez-vous
Savoyard pas tout jeune, ingénieur électricien et passionné d'informatique. Je ne jure plus que par Apple depuis 15 ans. J'ai domotisé ma maison avec la Yubii Home (ID HC3 Lite) et je suis un peu au bout de ses capacités, çà se ressent sur sa vitesse de réaction lorsque plusieurs scènes se télescopent ; mais au total je suis ravi çà fonctionne correctement. Ma plus grosse lacune est la programmation et j'avoue ne jamais avoir plongé dans Lua, ce qui limite la "puissance" de mes scènes qui ont toutes été écrites en mode "Bloc". Je fais assez souvent appel à l'aide Fibaro qui ne répond pas très vite mais toujours, avec quelques fois des lacunes : j'ai bien ris le jour où j'ai appris à un tech maison que le FG224 pouvait être paramètré (paramètre 164 de tête) pour que les 2 relais ne puissent pas être commandés en même temps (un relai pour ouvrir un volet piscine et l'autre pour le fermer). Là je cherche comment écrire une routine Lua, soi-disant simple d'après certains, qui permette une action lorsque la température d'un capteur est supérieure à la température d'un autre capteur : pour ajouter çà à la scène qui permet d'ouvrir le volet de la piscine si la T° extérieure est supérieure à la T° de l'eau. J'ai connecté 2 DS18B20 à un FGBS321 pour ces 2 mesures. -
Comment faire pour comparer les valeurs de deux appareils
Jean Louis DURET a répondu à un(e) sujet de Jean Louis DURET dans Support
Jojo : Je n'ai pas trouvé mon bonheur et je n'ai à peu près rien compris sur ces 2 liens qui parlent de Quick App sauf erreur. Quelqu'un peut il me fournir une simple routine écrite en Lua que j' intégrerai à ma scène et qui permet de réaliser une action si la valeur T° d'un capteur est supérieure à la valeur T1° d'un deuxième capteur. Je n'ai pas trouvé çà sur le Forum, peut être pas cherché au bon endroit.