Aller au contenu

Messages recommandés

Posté(e)

oui c'est ça je change ma variable globale pour qu'elle passe à"NON"

local HomeFree = {"Global", "MaisonVide", "OUI"}
local HomeBusy = {"Global", "MaisonVide", "NON"}  
Posté(e)

Bonjour,

 

j'ai un petit souci, je veux seulement recevoir le Push quand la variable est a non:


  -- Exemple de condition IF // IF Sample condition
  local ActiviteGarage = {"Global", "Activite_garage", "non"}
    
  -- === GARAGE == --
  -- Le scénario enverra un push toutes les 10mn tant que la porte sera ouverte 
  GEA.add(238, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}})
-- On vérifie toutes les 10mn si la porte du garage est ouverte et on envoi un message push. On répète l'opération tant que la porte n'est pas fermée.

je dois mettre ma condition ou? pas juste au début?

 

Merci,

Posté(e)

Hello plap,

 

quelque chose comme ca :

 

local ActiviteGarage = {"Global", "Activite_garage", "non"}
GEA.add({238, ActiviteGarage}, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}})
Posté(e)

Salut messieurs,

 

Attention, pour info, écris comme cela, cela va envoyer le push toutes les 10 mins tant que 238 est 1 et ActiviteGarage à  non.

Posté(e)

Pepite: je dois rajouter quoi pour que le push soit envoyer seulement si les 2 conditions sont bonnes, soit porte ouverte et activité non?

Merci

Envoyé de mon SM-G900W8 en utilisant Tapatalk

Posté(e)

@Plap

Kiwi t'as très bien répondu.

 

Lorsque les 2 conditions seront "bonnes", c'est à  dire :

{238, ActiviteGarage} --porte ouverte ET activité non

Tu recevras le push si les conditions sont "bonnes" pendant 10 mins

 Avec le "Repeat", si tes conditions sont "bonnes" pendant 24 mins par exemple, tu recevras le push 2 fois (10 + 10), cela dépend de ton besoin.

Posté(e)

local HomeFree = {"Global", "MaisonVide", "OUI"}
local HomeBusy = {"Global", "MaisonVide", "NON"} 

ceci met la variable locale HomeFree à  1 si la VG MaisonVide = OUI

ceci met la variable locale HomeBusy à  1 si la VG MaisonVide = NON

 

donc si tu veux mettre la VG MaisonVide à  NON tu dois mettre ceci 

GEA.add ({id["DET_ouv_PorteEntree"],HomeFree,WeekDays,},-1," OUVERTURE - Porte d\'Entrée à  #time#, le #date# ",{{"Time", "16:00", "sunset-30"},{"VirtualDevice", id["VD_RemoteCtrl_VR"], 11}, {"Global", "MaisonVide", "NON"} ,{"Group", 1}})
Posté(e)

je suis perdu entre jojo et pepite

 

car ce que dis jojo c'est que variable vaut 1 si elle remplit les "conditions" entre {} donbc ça veut dire que homeFree = 1 si la varaible globale MaisonVide = OUI

local HomeFree = {"Global", "MaisonVide", "OUI"}

Moi je pensais plus comme pépite, c-a-d que ma variable homeFree est égale à  ma variable MaisonVide qui elle vaut OUI et que par conséquent HomeFree = MaisonVide = OUI

 

Qui a raison ?

Posté(e)

pour avancer sur la compréhension,

J'ai introduit un débug après

   local estJour = {"Global", "DayPart", "After SunRise"}
  fibaro:debug("estJour = " ..tostring(estJour))
   local estNuit = {"Global", "DayPart", "After SunSet"}
  fibaro:debug("estNuit = " ..tostring(estNuit)) 

le retour est qu'il me donne une table

[DEBUG] 10:08:51: estJour = table: 0x8c21250
[DEBUG] 10:08:51: estNuit = table: 0x8c1fa48

Alors qu'il retourne 0 ou 1, ce n'est pas si important, c'est peut-être false / true

Ce qui est important c'est que dans GEA, si on fait un test sur la variable locale, il s'exécute en fonction de false / true

 

et une chose qui est sà»re, c'est que si je veux mettre ma variable "DayPart" à  "After SunSet", je ne dois pas invoquer l'option "estNuit", mais

-- Techniques
  -- DayPart
   GEA.add (true, 1, "DayPart = Jour. (#date# à  #time#)", {{"Time", "Sunrise", "Sunrise + 100"}, {"VirtualDevice", DeviceID["VAR_DAYPART"], 3}})
   GEA.add (true, 1, "DayPart = Nuit. (#date# à  #time#)", {{"Time", "Sunset", "Sunset + 100"}, {"VirtualDevice", DeviceID["VAR_DAYPART"], 4}})

Posté(e)

@jojo :

 

Moi j'avais compris q'avec GEA pour récuperer la valeur d'une variable, on pouvait faire comme cela : 

GEA.add({"Global", "DayPart", ""}, 30, "La valeur de DayPart est : #value#")

--ou qqch comme ca peut-etre mais jamais testé avec une declaration de variable directement dans le function

GEA.add(true, 30, "", {{"Function", function() local daypart = fibaro:getGlobalValue("DayPart") end}, {"Function", function() fibaro:debug("DayPart:"..daypart) end}})


Je vais tester cela :

local absence = {"Global", "Mode_Maison", "Absence"}
local notifabsence = {"Global", "FreeSms", "Absence"}
GEA.add(true, 30, "", {absence, {"Time", "10:55", "10:56"}, notifabsence})

Mon test fonctionne bien,

J'ai bien recu ma notif et ma variable globale a bien ete modifiée à  Absence, verifié avec le VD Variable Globale de Steven.

Pour moi c'est Ok, GEA lit bien la variable aussi bien dans les conditions que dans les options.

 

Essaie de ton côté pour confirmer @jojo

Posté(e)

@pepite,

Pour le code

GEA.add({"Global", "DayPart", ""}, 30, "La valeur de DayPart est : #value#") 

Tu as probablement raison. Je n'avais jamais essayé (car jamais eu besoin).

Je viens d'essayé, mais je n'ai reçu aucune notification, car comme j'interprète ce code:

Si la VG "DayPart" = "" (=> vide ?) Alors envoyer le message ....

Or ma variable est maintenant "After Sunrise", donc pas "", et ce serait normal que je n'ai pas de notif.

 

Pour le code

GEA.add(true, 30, "", {{"Function", function() local daypart = fibaro:getGlobalValue("DayPart") end}, {"Function", function() fibaro:debug("DayPart:"..daypart) end}})

je reçois ceci dans le debug 

[DEBUG] 11:08:38: [ n/a ] sendActions : !ACTION! : Function /opt/fibaro/scenes/615.lua:221: attempt to concatenate global 'daypart' (a nil value) (ID:1) [Function..] [Function..]

Ceci dit, l'objet de

   local estJour = {"Global", "DayPart", "After SunRise"}

est de mettre estJour à  true SI et seulement SI "DayPart" = "After SunRise", afin de pouvoir réutiliser le résultat de ce test ailleurs dans GEA, sans à  chaque fois devoir refaire le test

Posté(e)

@jojo

c'est moi le boulet pour la valeur de la variable avec notif, manque le Inverse hihihi : si valeur de la variable n'est pas vide : notif de la valeur

J'ai rien invente, j'avais trouve l'astuce dans la faq du wiki de steven

GEA.add({"Global", "DayPart", ""}, 30, "La valeur de DayPart est : #value#", {{"Inverse"}})

pour le code Function, il dit la meme chose pour moi, que la valeur est vide hihi mais j'avais jamais testé ..pourtant je me dis que cela devrait fonctionner mais bon
 

Posté(e)

@peptite,

Je te rassure, on est deux boulets, j'aurais du le voir, plutôt que de faire un simple copier coller.

Je garde l'astuce pour si j'en ai besoin. Merci

Posté(e)

 

donc à  ton instruction actuelle tu dois juste rajouter la condition que ta porte fenêtre est fermée

GEA.add({{id["OUVERTURE_SALON"]},{"Value+",id["D_LUM_EXT"], 1800},{"Value+", id["VR_SAM"], 50},{"Value-", id["VR_SAM"],100}}, 10*60, "Fermeture VR SAM lum ext + 1800 si baie fermée",{{"Inverse"},{"Time","11:50","19:00"},{"Dates","01/05","01/10"},{"Close",id["VR_SAM"],50}})

 

Bonjour JOJO

 

J'ai essayé on code mais toujours rien je ne comprends pas une ptite idée.

 

Pour rappel je souhaite pouvoir baisser mon volet si mon détecteur de porte est fermé et que mon détecteur de luminosité et à  plus de 1800 lux.

 

Merci de votre retour

Posté(e)

Salut,

 

Tente avec une instruction plus simple pour reussir à  t'aider :

GEA.add({id["OUVERTURE_SALON"],{"Value+",id["D_LUM_EXT"], 1800}, {"Value-", id["VR_SAM"],100}}, 10*60, "Fermeture VR SAM lum ext + 1800 si baie fermée",{{"Inverse"},{"Close",id["VR_SAM"],50}})
Posté(e)

en effet, il faut TOUJOURS commence le plus simple possible, et rajouter des contraintes ensuite.

Donc, encore plus simple si ça ne va pas :

GEA.add({id["OUVERTURE_SALON"],{"Value+",id["D_LUM_EXT"], 1800}}, 10*60, "Fermeture VR SAM lum ext + 1800 si baie fermée",{{"Inverse"},{"Close",id["VR_SAM"],50}})

reçois-tu au minimum la notification ?

Posté(e)
local autoclose = GEA.add({{"Value+", id["VOLET_SALON"], 70}}, 5*60, "ouvert depuis plus de 5 minutes", {{"close"}}, {{"Repeat"}})  
GEA.add(id["DET_SALON"], -1, "", {{"StopTask", autoclose}}, {{"repeat"}}) 

Bonsoir a tous je me casse la tête depuis hier et je trouve pas mon erreur (vu mon niveau cela est normal je pense hihihi)

j ai bien le volet qui se ferme sans le local autoclose par-contre quand je mets le code avec le détecteur de mouvement ca me stop bien la scène mais par-contre ca ne la relance pas et donc si pas de mouvement cela ne me ferme pas le volet

 

merci encore pour votre aide

Posté(e)

Je vais essayer mais le volet se ferme deja

Mon pb c est que je veux que lorsque il y a détection de mouvement il ne se ferme pas et que si il n y a plus de mouvement alors fermeture

Ps: hc2 gea 5.40

Merci encore

Posté(e)

Bonjour @Flechg

 

Essaie ca, ca relance la tache autoclose si pas de mouvement pendant 10 mins, repeat inutile pour les declenchements instantanes.

local autoclose = GEA.add({"Value+", id["VOLET_SALON"], 70}, 5*60, "ouvert depuis plus de 5 minutes", {{"close"}, {"Repeat"}})  
GEA.add(id["DET_SALON"], -1, "", {{"StopTask", autoclose}})
GEA.add(id["DET_SALON"], 10*60, "", {{"Inverse"}, {"RestartTask", autoclose}, {"Repeat"}})
Posté(e)

Bonjour Merci peppite et jojo cela fonctionne.

 

 

bon j'ai pas essayé porte ouvert car je ne suis pas chez moi, mais porte fermé le volet descend.

 

je reviens vers vous des que je rentre

×
×
  • Créer...