Aller au contenu

Steven

Membres confirmés
  • Compteur de contenus

    4 434
  • Inscription

  • Dernière visite

  • Jours gagnés

    201

Tout ce qui a été posté par Steven

  1. Pour la partie armement, un petit détail manque local delai = 10*60 -- 10 minutes a remplacé par local delai = 10*60*1000 -- 10 minutes En effet, nous ne comparons pas des secondes mais des millisecondes. Pour la partie désarmement, une question surgit dans ma tête ... a-t-on le droit de désarmer un périphérique ?
  2. Steven

    Support Gea

    Merci pour ce retour. La correction est en cours sur la 3.50. Le bug est que la Minimote nous retourne une donnée mais vide ("") au lieu de rien du tout (nil). Ce n'était donc pas le log mais la ligne juste en dessous if (batt and tonumber(batt) <= tonumber(id[2]) or tonumber(batt) == 255) then
  3. Steven

    Support Gea

    tu avais perdu le {Value+, Je vais au dodo, à demain
  4. Steven

    Support Gea

    Heuuuu non, par parfait ... voici . -- GESTION DES SPOTS CHAMBRE LUCAS GEA.add({"Value+",id["SPOTS_CHAMBRE_LUCAS"],98},90,"Chambre Lucas réduction à50%",{{"Value",50},{"Repeat"}}) -- Baisser l'intensitée des spots à50% si 100% pendant 3 mn -- GEA.add({"Value+",id["SPOTS_CHAMBRE_LUCAS"],49},180,"Chambre Lucas réduction à30%",{{"Value",30},{"Repeat"}}) -- Baisser à30% 3 mn aprés -- -- Si les spots sont allumés plus de 50 secondes le jour alors je les éteinds -- GEA.add( id["SPOTS_CHAMBRE_LUCAS"], 50, "Les spots de la chambre a Lucas sont allumés depuis plus de 50 secondes donc je les éteinds #time#",{{"If", {{"Global", "JOUR_NUIT", "JOUR"}}},{"turnOff"}})
  5. Steven

    Support Gea

    Parfait
  6. Essai de toujours avoir en haut de tes scripts les ID des modules que tu utilises local rgb = 80 et de toujours l'utiliser, car si un jour ton module RGB grille et que tu dois le remplacer, tu risques d'oublier quelques part et d'avoir des comportements très dérangeant (le script plante au beau milieu sans prévenir). local currentProgramID = tonumber(fibaro:getValue(rgb, "currentProgramID")); J'espère que cela va fonctionner correctement et répondre à ta question initiale. Cordialement
  7. Steven

    Support Gea

    Pour les id, voici un exemple, pour le spot de lucas, des fois tu utilises id["spots_chambres_lucas"], des fois 52. Si tu mets toujours id["spots_chambres_lucas"], c'est plus simple a repéré et si un jour le module (id52) grille et que tu dois le remplacé, tu n'auras qu'a remplacé id["spots_chambres_lucas"] = 52 par id["spots_chambres_lucas"] = <nouvel id>. -- GESTION DES SPOTS CHAMBRE LUCAS GEA.add({"Value+",52,98},90,"Chambre Lucas réduction à 50%",{{"Value",50},{"Repeat"}}) -- Baisser l'intensitée des spots à 50% si 100% pendant 3 mn -- GEA.add({"Value+",52,49},180,"Chambre Lucas réduction à 30%",{{"Value",30},{"Repeat"}}) -- Baisser à 30% 3 mn aprés -- -- Si les spots sont allumés plus de 50 secondes le jour alors je les éteinds -- GEA.add( id["SPOTS_CHAMBRE_LUCAS"], 50, "Les spots de la chambre a Lucas sont allumés depuis plus de 50 secondes donc je les éteinds #time#",{{"If", {{"Global", "JOUR_NUIT", "JOUR"}}},{"turnOff"}}) Pour le reste, pose des questions dès que tu le souhaiteras.
  8. Avant d'oublier, je suis en 3.590, j'ai pas appliqué la beta.
  9. Oh la la ... je suis chèvre ce soir, le # n'a rien a faire ici. local tempDeviceState, deviceLastModification = fibaro:get(#mouvements, "value");
  10. 4ème jour, décalage 0, reboot 0, sauvegarde 0 ... et GEA 0 Par contre, j'ai constamment, c'est dernier jours, des coupures Internet ... Est-ce que la HC2 revérifie après avoir récupéré la connexion ?
  11. Supprime la ) collée à delai if ( ( tonumber(tempDeviceState) > 0 ) and (os.time() - deviceLastModification) < delai) ) then
  12. Steven

    Support Gea

    Quelques suggestions : Ligne 41, tu ouvres les volets à 70% si la lumière s'allume ... ok mais si les volets étaient ouverts (trop chaud) ? Pour les id["..."] j'ajouterais les volets et ferais attention de toujours les utiliser (ex. spots Lucas) ainsi, si un jour tu changes de module, tu change juste à un endroit. Pour les volets, tu ne vérifies plus s'ils sont déjà ouvert ou non, est-ce normal ? Comment vas-tu gérer l'hiver ? Sinon, c'est propre, c'est clair, c'est beau ... bon boulot Monsieur.
  13. Steven

    Support Gea

    Remplace GEA.add({"Battery", id["ENTREE_SOUS_SOL"], 40}, 24*60*60, "Pile faible #value# - #name# ", {{"Repeat"}}) -- Multisensor Aeon Labs DSB05 -- GEA.add({"Battery", id["SALLE_A_MANGER"], 40}, 24*60*60, "Pile faible #value# - #name# ", {{"Repeat"}}) -- Motion Sensor Salle à manger -- GEA.add({"Battery", id["SALON"], 40}, 24*60*60, "Pile faible #value# - #name# ", {{"Repeat"}}) -- Motion Sensor Salon -- GEA.add({"Battery", id["PORTE_DE_GARAGE"], 40}, 24*60*60, "Pile faible #value# - #name# ", {{"Repeat"}}) -- Capteur de position Gge -- par GEA.add({"Batteries", 40}, 24*60*60, "Message automatiquement remplacé", {{"Repeat"}}) -- Vérifie tout les modules à piles et envoie un message "Pile faible #name# #valeur#" Comme cela, si tu ajoutes un module il sera automatiquement pris en compte.
  14. Steven

    Support Gea

    Les variables jours/nuits sont plus sà»r dans GEA car contrôlée toutes les minutes si tu mets ce code. Mais le Scheduler fonctionne bien. -- Si la variable est à jour et qu'on est après le couché du soleil, on remet à nuit GEA.add({"Global", "JOUR_NUIT", "JOUR"}, 60, "", {{"Time", "Sunset", "Sunrise"}, {"Global", "JOUR_NUIT", "NUIT"}}) -- Si la variable est à nuit et qu'on est après le levé du soleil, on remet à jour GEA.add({"Global", "JOUR_NUIT", "NUIT"}, 60, "", {{"Time", "Sunrise", "Sunset"}, {"Global", "JOUR_NUIT", "JOUR"}})
  15. Je suis presque certain que cela ne passera pas du 1er coup ... donc si je peux aider ... hurle.
  16. Steven

    Support Gea

    Tu la change depuis le panneau de variable et tu enregistres
  17. Steven

    Support Gea

    J'ai jamais rebooter ma box
  18. Steven

    Support Gea

    Quand tu as lancé ton test précédent, GEA la mis à JOUR vu que tu avais oublié le IF.
  19. Steven

    Support Gea

    C'est pas vraiment ta faute. A l'origine on avait GEA.add(<condition>, <durée>, <message>, <actions>) Avec les maintes évolutions, il a fallu ajouté d'autres conditions. Au début j'avais mis la notion de "groupe" mais cette dernière a vite été insuffisante ou trop compliquée à utiliser. Donc on se retrouve avec des actions : turnOn, value, ... et des conditions supplémentaires : if, time, dates, ... au même endroit, ce qui n'est franchement pas très beau. Mais si je change cela, on perd la compatibilité avec les anciennes versions. Je préfère dire GEA.add(<condition>, <durée>, <message>, <paramètres supplémentaires>) Cela répond à tout et à rien
  20. Steven

    Support Gea

    GEA.add( id["SPOTS_CHAMBRE_LUCAS"], 50, "Les spots de la chambre a Lucas sont allumés depuis plus de 50 secondes donc je les éteinds #time#",{{"If", {{"Global", "JOUR_NUIT", "JOUR"}}},{"turnOff"}})
  21. Steven

    Support Gea

    Hansolo va te tuer mon ami Lol, tu demande à ce que la variable Global JOUR_NUIT soit mise à JOUR et non pas si elle est à JOUR (If)
  22. Steven

    Support Gea

    Tu peux copier ta ligne stp ?
  23. Steven

    Support Gea

    Non, pas besoin. Par contre, il faut qu'elle soit identique... même majuscule/minuscule. Par la même occasion, tu peux enlever le {"Repeat"}, il ne sert à rien, il est utile quand un module ne change pas d'état et que le message ou l'action doit être répétée. Dans ton cas, vu que tu éteint le module, ce dernier change d'état donc le repeat est inutile puisque la prochaine fois qu'il repassera à "ON" GEA le retraitera automatiquement.
  24. Si tu lances manuellement le scénario, la lumière s'allumera toujours. Par contre, si éteint ta lampe et laisse faire le Radar, cela doit fonctionner. Lancer manuellement un scénario revient au même que d'ignorer la condition qui dans ton cas est l'état de ton radar, ce pourquoi la lampe s'allume.
  25. Voilà une proposition : 1 seul scénario Il tourne automatiquement toutes les minutes pour vérifier s'il doit armer ou non la porte. Si oui (porte fermée et pas de mouvement depuis plus de 10mn) alors il l'arme. Il répond à un changement d'état d'un détecteur de mouvement. Si la porte est fermée et armée et qu'un mouvement est détecté, il désarme la porte. Attention,dans tes scripts il y a une variable currentProgramID qui est appelée mais pas renseignée. Il ne devrait plus y avoir de conflit. --[[ %% autostart %% properties 105 value 101 value 76 value 60 value %% globals --]] local porte = 119 local rgb = 80 local mouvements = {105, 101, 76, 60} local delai = 10*60 -- 10 minutes local startSource = fibaro:getSourceTrigger(); if (startSource["type"] == "autostart") then -- Toutes les minutes ont vérifie les détecteurs de mouvements et la porte while true do -- On vérifie que la porte soit bien fermée local porte_fermee = tonumber(fibaro:getValue(porte, "value")) == 0 -- On vérifie que les détecteurs soient inactif et depuis plus de X minutes if (porte_fermee) then local mouvements_ok = true for i = 1, #mouvements do local tempDeviceState, deviceLastModification = fibaro:get(#mouvements[i], "value"); if ( ( tonumber(tempDeviceState) > 0 ) and (os.time() - deviceLastModification) < delai) ) then mouvements_ok = false; end end end if (porte_fermee and mouvements_ok) then fibaro:call(porte, "setArmed", "1"); fibaro:call(rgb, "setColor", "255", "0", "0", "0"); end fibaro:sleep(60*1000) -- on dort 60 secondes end elseif (startSource["type"] == "property") then local porte_fermee_et_armee = (tonumber(fibaro:getValue(porte, "value")) == 0 and tonumber(fibaro:getValue(porte, "armed")) > 0) local dectecteur_en_alerte = tonumber(fibaro:getValue(startSource["deviceID"], "value")) > 0 if (porte_fermee_et_armee and dectecteur_en_alerte) then fibaro:call(porte, "setArmed", "0"); fibaro:call(rgb, "turnOff"); --Fait une pause de 10 secondes fibaro:sleep(10000); --apres 10 secondes, relancer le programme precedent -- !!!!!!!! currentProgramID !!!!!!!!!! fibaro:call(rgb, "startProgram", currentProgramID); else --get last color local colorSet = fibaro:getValue(rgb, "lastColorSet"); --set old color local RGBWTable= {}; local i = 1; for value in string.gmatch(colorSet,"(%d+)") do RGBWTable[i] = value; i = i + 1; end end end
×
×
  • Créer...