Aller au contenu

Recommended Posts

Il y a 10 heures, sonnyboy a dit :

Yes  @pepite  That is exactly what i want to do, is it possible?

I just love GEA lets get all in it :)

 

Nope, GEA don't have this kind of possibility. You have better to create a separate script for that and call it from GEA.

 

Just for info, here is a more simple "table suffle" function.

-- Shuffle a table
function shuffleTable( table )
  math.randomseed( os.time() )
  for i = #table, 2, -1 do 
    j = math.random(i)
    table[i], table[j] = table[j], table[i]
  end
  return table
end

-- Read the new shuffle table
for _, device in ipairs( shuffleTable({10, 20, 30, 40, 50}) ) do
  print(device)
end

 

If you want to turnOn a light, don't check if the light is off before doing it, just turn it on ... because your HC2 will to the job for you so if you do it, this will be done twice.

 

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 8 heures, 971jmd a dit :

salut a tous

 

j'ai un autre probleme sauf si j'ai pas compris comment fonctionne RestartTask

 


local A = GEA.add(true, 30, "tru 2" , {{"turnOn", id["PLAFONNIER_CUISINE"]}}) 
  
  
 GEA.add({"Value",  id["BAR"], 1}, -1, "", {{"RestartTask", A}})

quand j'allume le bar par cette action, je lance la variable A et allumer le plafonnier de la cuisine  

mai le plafonnier de la cuisine s'allume tout seul après les 30s sans meme que j'ai à allumer la cuisine.

@971

J'ai pas tout compris là.

 

Si tu allumes le bar, ca relance la tache "A", donc ca allume 30 secs apres le plafonnier. C'est pas ce que tu veux faire ?

 

Le plus simple c'est comme ceci :

quand ton bar est allumée, allume le plafonnier lol

 

GEA.add(id["BAR"], -1, "", {{"turnOn", id["PLAFONNIER_CUISINE"]}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite, @971jmd

Ce que 971jmd n'a pas compris c'est l'usage du "RestartTask" ... ce dernier sert à redémarrer une tache qui a été précédemment stoppée ("StopTask" ou "NotStart") ou terminée

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai la tête trop dans le guidon, je ne voie pas ce qui ai évident

Je vient de comprendre la fonction

Merci à vous deux


Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai pas encore tester, juste pour savoir. Est-il possible de stopper plusieurs ligne GEA et les redémarrer


Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites
local var1 = GEA.add(......)
local var2 = GEA.add(......)
local var3 = GEA.add(......)

-- stopper les taches
GEA.add(....., {{"StopTask", var1}, {"StopTask", var2}, {"StopTask", var3}})

-- redémarrer les taches
GEA.add(....., {{"RestartTask", var1}, {"RestartTask", var2}, {"RestartTask", var3}})

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pépite




Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 5 heures, Steven a dit :

local var1 = GEA.add(......)
local var2 = GEA.add(......)
local var3 = GEA.add(......)

-- stopper les taches
GEA.add(....., {{"StopTask", var1}, {"StopTask", var2}, {"StopTask", var3}})

-- redémarrer les taches
GEA.add(....., {{"RestartTask", var1}, {"RestartTask", var2}, {"RestartTask", var3}})

@Steven

 

 

Quand ont stop une ligne, elle est définitivement stopper jusqu'au RestartTask ?

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

je voudrai ajouter sur cette ligne GEA de prendre en compte l'action uniquement si AlarmeG1 est à on depuis 5min. 

GEA.add({id["POSITION_PORTAIL"],{"Value",id["ECL_ENTREE"],0},{"Global", "AlarmeG1", "On"}}, -1 , "" , {{"Time", "Sunset+60", "Sunrise-120"},{"turnOn",id["ECL_ENTREE"]}})

est ce possible?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir,

@banzai861,

Essaie ceci

 

local AlarmeG1 = false
GEA.add({"Global", "AlarmeG1", "On"}, 5*60, "", {{"Function", function() AlarmeG1 = true end}})
GEA.add({id["POSITION_PORTAIL"],{"Value",id["ECL_ENTREE"],0},{"Function", function() return AlarmeG1 end}}, -1 , "" , {{"Time", "Sunset+60", "Sunrise-120"},{"turnOn",id["ECL_ENTREE"]}, {"Function", function() AlarmeG1 = false end}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Essaie avec 30 et pas -1 car on est pas dans la meme instance. Ton declencgement d'où été sur ton portail??

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est mieux comme ca. 

les 2 conditions fonctionnent. cependant, la première bloque la 2ème.

lorsque j'ouvre mon portail pour sortir de mon jardin après avoir mis en service mon alarme. ma lampe entrée ne s'allume pas. (bien)

puis lorsque je ré ouvre le portail, ma lampe entrée ne s'allume toujours pas. (pas bien)

si j'attend 5 min après mise en service de l'alarme, mon entrée s'allume correctement (possible en test mais pas à l'usage)

 

est il possible de corriger ca?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,
@banzai861.

 

Pour ca il faut que tu en dises un peu plus pour bien comprendre ton besoin ...ben oui je comprends twankillement moi ;-)

 

Quand tu sors :

 1- Alarme activee -->Ouverture du portail --> Lampe entree eteinte

Quand tu rentres :

2- Ouverture du portail --> alarme toujours activée ? ou non ? --> tu veux que la lampe s'allume

 

Oui normal que cela s'allume apres 5 mins, c'est ce que tu as demandé : 5 mins apres que l'alrme soit activee, cad selon ton code 5 mins apres le passage de la variable globale alarmeG1 soit "On".

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @pepite

 

je vais essayer d’être clair :D

 

mon souhait: 

Citation

 

pour sortir de chez moi:

1 - j'arme l'alarme

2 - j'ouvre mon portail pour sortir (donc alarme activé depuis moins de 5 min, la lumière entrée ne doit pas s'allumer)

3 - le portail ce referme. je suis parti.

 

ensuite, je reviens:

1 - j'ouvre mon portail (alarme activé depuis plus de 5 min)

2 - la lumière entrée s'allume

3 - je ferme mon portail

4 - je désactive mon alarme

 

 

ce qui ce passe avec ton code:

1 - j'arme l'alarme

2 - j'ouvre le portail pour sortir (donc alarme activé depuis moins de 5 min, la lumière ne s'allume pas) nickel

3 - le portail ce referme, je suis parti.

 

ensuite, je reviens:

1 - j'ouvre mon portail (alarme activé depuis plus de 5 min)

2 - la lumière entrée ne s'allume pas. 

3 - je ferme mon portail

4 - je désactive mon alarme

 

j'ai essayé différemment pour voir:

1 - j'arme l'alarme

2 - je pars sans ouvrir le portail (pas pratique en voiture mais pour simulation. donc pas d'ouverture dans les 5 min de tempo)

 

ensuite, je reviens:

1 - j'ouvre mon portail (alarme activé depuis plus de 5 min)

2 - la lumière entrée s'allume. 

3 - je ferme mon portail

4 - je désactive mon alarme 

 

 

est ce possible? merci de l'aide accordé ;)

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 2016-11-29 à 09:44, Steven a dit :

 

Nope, GEA don't have this kind of possibility. You have better to create a separate script for that and call it from GEA.

 

Just for info, here is a more simple "table suffle" function.


-- Shuffle a table
function shuffleTable( table )
  math.randomseed( os.time() )
  for i = #table, 2, -1 do 
    j = math.random(i)
    table[i], table[j] = table[j], table[i]
  end
  return table
end

-- Read the new shuffle table
for _, device in ipairs( shuffleTable({10, 20, 30, 40, 50}) ) do
  print(device)
end

 

If you want to turnOn a light, don't check if the light is off before doing it, just turn it on ... because your HC2 will to the job for you so if you do it, this will be done twice.

 

@Steven Thank so Much for this :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir

Pourriez vous me dire si avec la fonction Sensor, il est possible de faire un test sur la température?

Si oui j'ai essayé la ligne suivante pour protéger la filtration de ma piscine

Le détecteur est une sonde branchée sur un module Fibaro générique (DETEC_TEMP_POOL_HOUSE --> ID = 355 déclaré dans l’entête de GEA)

Ce que je veux c'est testé toutes les heures sur je suis en dessous de zéro ou pas et donc activé la pompe si nécessaire.

 

GEA.add({"Sensor-", id["DETEC_TEMP_POOL_HOUSE"], 0}, 1*60*60, "Filtrage piscine forcé", {{"NOTDST"},{"VirtualDevice", id["VD_FILTRATION_PISCINE"], 5}})

Je me retrouve avec une erreur, et je ne comprends pas.

Si vous pouvez m'aider, merci d'avance

 

[DEBUG] 21:19:59: [ Sensor [355|Temp ext pool house] < 0 ] !!! ERREUR !!! : vérification (ID:287) [NOTDST] [VirtualDevice,270,5]

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@banzai861,

Ok j'ai compris, essaie comme ceci alors, l'eclairage devrait s'allumer apres 5 mins d'alarme activee, donc a ton retour.

Lorsque tu desarmes l'alrme, 30 secs après la variable repasse a false


 

local AlarmeG1 = false
 -- Alarme armée depuis 5 mins
GEA.add({"Global", "AlarmeG1", "On"}, 5*60, "", {{"Function", function() AlarmeG1 = true end}})
-- Alarme desarmee depuis 30 secs
GEA.add({"Global!", "AlarmeG1", "On"}, 30, "", {{"Function", function() AlarmeG1 = false end}})
GEA.add({id["POSITION_PORTAIL"], {"Function", function() return AlarmeG1 end}}, 30 , "" , {{"Time", "Sunset+60", "Sunrise-120"},{"turnOn",id["ECL_ENTREE"]}})

 

@kioneoranga,

 

Pour la temperature, pas sur que cela soit sensor, regarde l'api du device, repere la propriete qui te renvoie la temperature pour etre sur (j'aurais dit Value naturellement..)

http://IPHC2/api/devices/355

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 49 minutes, pepite a dit :

 

@kioneoranga,

 

Pour la temperature, pas sur que cela soit sensor, regarde l'api du device, repere la propriete qui te renvoie la temperature pour etre sur (j'aurais dit Value naturellement..)

http://IPHC2/api/devices/355

 

Voici ce que j'ai, valeur a recherché -11.44 avec volontairement un offset à -17 pour tester "Value-", mais cela ne fonctionne pas, snif

{"id":355,"name":"Temp ext pool house","roomID":506,"type":"com.fibaro.temperatureSensor","baseType":"com.fibaro.multilevelSensor","enabled":true,"visible":true,"isPlugin":false,"parentId":351,"remoteGatewayId":0,"interfaces":["zwave"],"properties":{"parameters":[{"id":1,"lastReportedValue":0,"lastSetValue":0,"size":2,"value":0},{"id":2,"lastReportedValue":0,"lastSetValue":0,"size":2,"value":0},{"id":3,"lastReportedValue":0,"lastSetValue":0,"size":1,"value":0},{"id":4,"lastReportedValue":1,"lastSetValue":1,"size":1,"value":1},{"id":5,"lastReportedValue":255,"lastSetValue":255,"size":1,"value":255},{"id":6,"lastReportedValue":255,"lastSetValue":255,"size":1,"value":255},{"id":7,"lastReportedValue":255,"lastSetValue":255,"size":1,"value":255},{"id":8,"lastReportedValue":255,"lastSetValue":255,"size":1,"value":255},{"id":9,"lastReportedValue":0,"lastSetValue":0,"size":1,"value":0},{"id":10,"lastReportedValue":20,"lastSetValue":20,"size":1,"value":20},{"id":11,"lastReportedValue":200,"lastSetValue":200,"size":1,"value":200},{"id":12,"lastReportedValue":8,"lastSetValue":8,"size":1,"value":8},{"id":13,"lastReportedValue":0,"lastSetValue":0,"size":1,"value":0},{"id":14,"lastReportedValue":0,"lastSetValue":0,"size":1,"value":0}],"zwaveCompany":"Fibargroup","zwaveInfo":"3,3,52","zwaveVersion":"2.1","pollingTimeSec":0,"configured":"true","dead":"false","deviceControlType":"0","deviceIcon":"30","emailNotificationID":"0","emailNotificationType":"0","endPointId":"3","liliOffCommand":"","liliOnCommand":"","log":"","logTemp":"","manufacturer":"","markAsDead":"true","model":"","nodeId":"54","offset":"-17.00","parametersTemplate":"85","productInfo":"1,15,5,1,16,2,2,1","pushNotificationID":"0","pushNotificationType":"0","remoteGatewayId":"0","saveLogs":"true","serialNumber":"","showFireAlarm":"true","showFreezeAlarm":"false","smsNotificationID":"0","smsNotificationType":"0","unit":"C","useTemplate":"true","userDescription":"","value":"-11.44"},"actions":{"reconfigure":0},"created":1480548701,"modified":1480548701,"sortOrder":361}

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@kioneoranga,

 

Ca confirme, d'après ton json, c'est bien Value. Essaie ceci pour tester si tu recois la notification ?

sinon, s'il n'y a pas de declenchement instantané de prévu avec ton detecteur de temperature, tu peux l'enlever de l'entete.


 

GEA.add({"Value-", id["DETEC_TEMP_POOL_HOUSE"], 0}, 30, "Filtrage piscine forcé : #value#")

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 4 heures, pepite a dit :

@kioneoranga,

 


GEA.add({"Value-", id["DETEC_TEMP_POOL_HOUSE"], 0}, 30, "Filtrage piscine forcé : #value#")

 

 

L'alerte fonctionne bien, merci

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Parfait, la condition etant correcte, cela devrait etre bon pour la suite de ton code avec ton VD ;-)

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×