Aller au contenu

Recommended Posts

c'est parfait !

merci

 

pour optimiser je me dis qu'il faudrait passer une variable ALARME à  ON si un device est armé

et donc je mettrai 3 conditions dans l'entete

 

car ici je l'ai push tout le temps, meme si aucun device n'est armé 

 

lool

Partager ce message


Lien à poster
Partager sur d’autres sites

@971jmd @sakkhho

Pour le "!", moi je le traduis en "Different de " et comme ca, plus de soucis dans ma petite tete ;-)

 

Pas d'idee pour mon instance GEA instantané ?

Partager ce message


Lien à poster
Partager sur d’autres sites

je dirais que ça ne sert à  rien de les mettre dans deux instances séparées.

Met tout dans instantanné et vérifie bien que l'id de WP_HALOGENE est bien dans l'entète...

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir,

 

Sur les conseils de Pepite, je poste mon sujet ici pour avoir un peu (beaucoup) d'aide.

Je sais déjà  que ma syntaxe GEA n'est pas bonne...

 

J'essaye d'apprendre tant bien que mal le GEA grâce aux tutos de Steven et Sebcbien (un grand merci à  eux au passage).

C'est pourtant bien expliqué mais j'avoue que j'ai beaucoup de mal à  comprendre car ce "language" est tout nouveau pour moi.

 
Je recevrais la semaine prochaine 3 modules QUBINO ZMNHJA2 pour "piloter" mon chauffage via les fils pilôtes (1 module par Zone).
Je voudrais créer des scénarios qui seront lancés par des boutons d'un virtuel device accessibles à  distance suivant mes horaires et ceux de mon amie en utilisant les fonctions CONFORT, ECO et HORS GEL.

 
Voici ce que j'ai préparé pour l'instant pour cibler le fonctionnement de chaque bouton (8 au total) :
- 1x Bouton "JE PARS" (de la maison)
- 1x Bouton "JE RENTRE" (chez moi)
- 4x Boutons "BONNE NUIT" (je vais dormir) : il y a 4 boutons différents car mon amie (Cécile) est infirmière avec les horaires qui vont avec (de matin ou d'après midi) dont des scénarios différents en fonction de ses horaires et des miens.
- 1x Bouton "DOUCHE"
- 1x Bouton "VACANCES"
 

Sur le principe, je sais très bien que je veux faire, mais sur la forme...y a comme un souci  :huh: 
Pourriez-vous juste m'aiguiller afin que j'apprenne le GEA et que j'arrive à  m' auto-corriger ?

 

Merci.

 

PROGRAMATION CHAUFFAGE : (3 zones > Z1 : JOUR / Z2 : NUIT / Z3 : Salle de Bain)
 
Bouton JE PARS : (activé par le dernier à  partir de la maison)

--[[
%% autostart
%% properties
?Z1 value
?Z2 value
?Z3 value
%% globals
--]]

local id = {
--Chauffage
ZONE_JOUR = ?Z1,
ZONE_NUIT = ?Z2,
ZONE_SDB = ?Z3,
}

GEA.checkEvery = 30 -- On vérifie toutes les X secondes
GEA.portables = {70} -- Liste des portables devant recevoir une notification {70, 71}-- JE PARS

-- Confort : valeur = 99
-- Eco : valeur = 30
-- Hors Gel: valeur = 20


-------------------------
-- BOUTON JE PARS
-------------------------

-- Passage de la zone jour en éco
GEA.add( {"Value", ?Z1, 99}, {"Value", ?Z1, 30})

-- Passage de la zone nuit en éco
GEA.add( {"Value", ?Z2, 99}, {"Value", ?Z2, 30})

-- Passage de la zone salle de bain en éco
GEA.add( {"Value", ?Z3, 99}, {"Value", ?Z3, 30})


-- Démarrage du scénario
GEA.run()

 

 

Bouton JE RENTRE :


--[[
%% autostart
%% properties
?Z1 value
?Z2 value
?Z3 value
%% globals
--]]

local id = {
--Chauffage
ZONE_JOUR = ?Z1,
ZONE_NUIT = ?Z2,
ZONE_SDB = ?Z3,
}

GEA.checkEvery = 30 -- On vérifie toutes les X secondes
GEA.portables = {70} -- Liste des portables devant recevoir une notification {70, 71}-- JE RENTRE

-- Confort : valeur = 99
-- Eco : valeur = 30
-- Hors Gel: valeur = 20


-------------------------
-- BOUTON JE RENTRE
-------------------------

-- Passage de la zone jour en confort
GEA.add( {"Value", ?Z1, 30}, {"Value", ?Z1, 99})

-- Passage de la zone nuit en confort à  partir de 21H30 (si je rentre avant 21H30)
GEA.add( ({"Value", ?Z2, 30}, {"Time", "10:01", "21:29"}), {"Value", ?Z2, 99})

-- Passage de la zone nuit en confort (si je rentre après 21H30)
GEA.add( ({"Value", ?Z2, 30}, {"Time", "21:31", "09:59"}), {"Value", ?Z2, 99})

-- Passage de la zone nuit en éco à  partir de 10H00
GEA.add( {"Value", ?Z2, 99}, ({"Value", ?Z2, 30}, {"Time", "10:00", "09:59"}))

-- Zone salle de bain : pas de changements


-- Démarrage du scénario
GEA.run()

Bouton BONNE NUIT 1 : (Cécile travaille le lendemain matin)

--[[
%% autostart
%% properties
?Z1 value
?Z2 value
?Z3 value
%% globals
--]]

local id = {
--Chauffage
ZONE_JOUR = ?Z1,
ZONE_NUIT = ?Z2,
ZONE_SDB = ?Z3,
}

GEA.checkEvery = 30 -- On vérifie toutes les X secondes

-- Confort : valeur = 99
-- Eco : valeur = 30
-- Hors Gel: valeur = 20


-------------------------
-- BOUTON BONNE NUIT 1 (Cécile travaille le lendemain matin)
-------------------------

-- Passage de la zone jour en eco puis en confort de 04H30 à  8H00
GEA.add( {"Value", ?Z1, 99}, {"Value", ?Z1, 30})
GEA.add( ({"Value", ?Z1, 30}), ({"Value", ?Z1, 99}, {"Time", "04:30", "08:00"}))

-- Passage de la zone nuit en confort
GEA.add( {"Value", ?Z2, 30}, {"Value", ?Z2, 99})

-- Passage de la zone salle de bain en confort de 04H30 à  8H00
GEA.add( ({"Value", ?Z3, 30}), ({"Value", ?Z3, 99}, {"Time", "04:30", "08:00"}))


-- Démarrage du scénario
GEA.run()

Bouton BONNE NUIT 2 : (Cécile travaille le lendemain après-midi et moi la journée)


--[[
%% autostart
%% properties
?Z1 value
?Z2 value
?Z3 value
%% globals
--]]

local id = {
--Chauffage
ZONE_JOUR = ?Z1,
ZONE_NUIT = ?Z2,
ZONE_SDB = ?Z3,
}

GEA.checkEvery = 30 -- On vérifie toutes les X secondes

-- Confort : valeur = 99
-- Eco : valeur = 30
-- Hors Gel: valeur = 20


-------------------------
-- BOUTON BONNE NUIT 2 (Cécile travaille le lendemain après-midi)
-------------------------

-- Passage de la zone jour en eco puis en confort à  partir de 06H00
GEA.add( {"Value", ?Z1, 99}, {"Value", ?Z1, 30})
GEA.add( ({"Value", ?Z1, 30}), ({"Value", ?Z1, 99}, {"Time", "06:00", "05:59"}))

-- Zone nuit : pas de changements

-- Passage de la zone salle de bain en confort de 06H00 à  8H00
GEA.add( ({"Value", ?Z3, 30}), ({"Value", ?Z3, 99}, {"Time", "06:00", "08:00"}))


-- Démarrage du scénario
GEA.run()

 

 

Bouton BONNE NUIT 3 (pas de travail demain pour Cécile mais pour moi oui) :  > même config que BOUTON BONNE NUIT 2


--[[
%% autostart
%% properties
?Z1 value
?Z2 value
?Z3 value
%% globals
--]]

local id = {
--Chauffage
ZONE_JOUR = ?Z1,
ZONE_NUIT = ?Z2,
ZONE_SDB = ?Z3,
}

GEA.checkEvery = 30 -- On vérifie toutes les X secondes

-- Confort : valeur = 99
-- Eco : valeur = 30
-- Hors Gel: valeur = 20


-------------------------
-- BOUTON BONNE NUIT 3 (pas de travail demain pour Cécile) > même config que BOUTON BONNE NUIT 2
-------------------------

-- Passage de la zone jour en eco puis en confort à  partir de 06H00
GEA.add( {"Value", ?Z1, 99}, {"Value", ?Z1, 30})
GEA.add( ({"Value", ?Z1, 30}), ({"Value", ?Z1, 99}, {"Time", "06:00", "05:59"}))

-- Zone nuit : pas de changements

-- Passage de la zone salle de bain en confort de 06H00 à  8H00
GEA.add( ({"Value", ?Z3, 30}), ({"Value", ?Z3, 99}, {"Time", "06:00", "08:00"}))


-- Démarrage du scénario
GEA.run()

Bouton BONNE NUIT 4 (pas de travail demain pour Cécile et moi) :


--[[
%% autostart
%% properties
?Z1 value
?Z2 value
?Z3 value
%% globals
--]]

local id = {
--Chauffage
ZONE_JOUR = ?Z1,
ZONE_NUIT = ?Z2,
ZONE_SDB = ?Z3,
}

GEA.checkEvery = 30 -- On vérifie toutes les X secondes

-- Confort : valeur = 99
-- Eco : valeur = 30
-- Hors Gel: valeur = 20


-------------------------
-- BOUTON BONNE NUIT 4 (pas de travail demain pour Cécile et moi)
-------------------------

-- Passage de la zone jour en eco puis en confort à  partir de 07H00
GEA.add( {"Value", ?Z1, 99}, {"Value", ?Z1, 30})
GEA.add( ({"Value", ?Z1, 30}), ({"Value", ?Z1, 99}, {"Time", "07:00", "06:59"}))

-- Zone nuit : pas de changements.

-- Zone salle de bain : pas de changements.


-- Démarrage du scénario
GEA.run()

Bouton DOUCHE :


--[[
%% autostart
%% properties
?Z1 value
?Z2 value
?Z3 value
%% globals
--]]

local id = {
--Chauffage
ZONE_JOUR = ?Z1,
ZONE_NUIT = ?Z2,
ZONE_SDB = ?Z3,
}

GEA.checkEvery = 30 -- On vérifie toutes les X secondes

-- Confort : valeur = 99
-- Eco : valeur = 30
-- Hors Gel: valeur = 20


-------------------------
-- BOUTON DOUCHE
-------------------------

-- Zone jour : pas de changements.

-- Zone nuit : pas de changements.

-- Passage de la zone salle de bain en confort pendant 2H00 puis retour en eco
GEA.add( {"Value", ?Z3, 30}, {"Value", ?Z1, 99})
GEA.add( ({"Value", ?Z3, 99}, 120*60), {"Value", ?Z1, 30})


-- Démarrage du scénario
GEA.run()

Bouton VACANCES : (ce bouton rique de prendre un peu la poussière ! :rolleyes: )


--[[
%% autostart
%% properties
?Z1 value
?Z2 value
?Z3 value
%% globals
--]]

local id = {
--Chauffage
ZONE_JOUR = ?Z1,
ZONE_NUIT = ?Z2,
ZONE_SDB = ?Z3,
}

GEA.checkEvery = 30 -- On vérifie toutes les X secondes

-- Confort : valeur = 99
-- Eco : valeur = 30
-- Hors Gel: valeur = 20


-------------------------
-- BOUTON VACANCES
-------------------------

-- Passage de la zone jour en hors gel si zone en confort ou éco
GEA.add( {"Value", ?Z1, 99}, {"Value", ?Z1, 20})
GEA.add( {"Value", ?Z1, 30}, {"Value", ?Z1, 20})

-- Passage de la zone nuit en hors gel si zone en confort ou éco
GEA.add( {"Value", ?Z2, 99}, {"Value", ?Z2, 20})
GEA.add( {"Value", ?Z2, 30}, {"Value", ?Z2, 20})

-- Passage de la zone salle de bain en hors gel si zone en confort ou éco
GEA.add( {"Value", ?Z3, 99}, {"Value", ?Z3, 20})
GEA.add( {"Value", ?Z3, 30}, {"Value", ?Z3, 20})


-- Démarrage du scénario
GEA.run()

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

J'ai un script qui ne fonctionne pas mais aucune erreur dans le debug.. des idées?

Le but: lorsque la lumière "lampe_cave" est allumée, alors on allume "lampe_cave2" après 8 sec.

lorsque cave est éteinte, on eteint tout de suite cave 2.

GEA.add({ "Value", id["lampe_cave"], "On"}, 8,"", {{"turnOn", id["lampe_cave2"]}})
  	GEA.add({ "Value", id["lampe_cave"], "Off"}, -1,"", {{"turnOff", id["lampe_cave2"]}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Gea, c'est 30 secondes minimum.

Il y a moyen de mettre un sleep dans la ligne gea, mais ce n'est pas recommandé car ça décale tout

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite

Recherche sur les posts concernant 2 instances de GEA car il faut modifié la variable GEA.globalTasks = "GEA_Tasks"

 

Par exemple créer une variable GEA_Tasks_Immediat dans le panneau des variables puis met 

GEA.globalTasks = "GEA_Tasks_Immediat" 

dans ton instance qui gère les déclenchements immédiats.

 

Sinon tu va avoir des confusion entre tes 2 instances.

Partager ce message


Lien à poster
Partager sur d’autres sites

@syntetic : oui si cela correspond a tes besoins, lis bien le sujet et si c'est dans tuto de chauffage c'est que tu peux lutiliser en faisant confiance ;-)

 

Après avec GEA tu appuies sur les boutons du Module Virtuel pour changer de mode.  si tu as besoin

 

@magic_281, simplifie le code, je l'ecrirais comme cela moi

GEA.add(id["lampe_cave"], 30,"", {{"turnOn", id["lampe_cave2"]}})
GEA.add(id["lampe_cave"]}, -1,"", {{"Inverse"},{"turnOff", id["lampe_cave2"]}})

Partager ce message


Lien à poster
Partager sur d’autres sites

@synthetic
Il y a confusion je pense.
 
GEA ne doit pas être mis dans un bouton d'un module virtuel mais uniquement dans une scène.

  • Créer une variable (panneau des variables) du style "Chauffage"
     
  • Derrière chacun de tes boutons met le code
    fibaro:setGlobal("Chauffage", "PARS") 
    ou fibaro:setGlobal("Chauffage", "RENTRE") 
    ou fibaro:setGlobal("Chauffage", "NUIT_1") 
    selon le bouton en question
     
  • Copie GEA dans un scénario et enlève tout le superflu 
     
  • Dans l'entête, met 
    --[[
    %% autostart
    %% properties
    %% globals
    Chauffage
    --]]
    Ainsi la scène sera déclenchée chaque fois que la variable "Chauffage" sera modifiée

     
  • Dans yourcode, tu vas devoir mettre ton code... voici l'exemple pour le mode "PARS"

    GEA.add({"Global", "Chauffage", "PARS"}, -1, "", {{"Value", ?Z1, 99}, {"Value", ?Z1, 30}})
    -- Passage de la zone nuit en éco

    GEA.add({"Global", "Chauffage", "PARS"}, -1, "", {{"Value", ?Z2, 99}, {"Value", ?Z2, 30}})

    -- Passage de la zone salle de bain en éco

    GEA.add({"Global", "Chauffage", "PARS"}, -1, "", { {"Value", ?Z3, 99}, {"Value", ?Z3, 30}})

    les ?z1, ?z2, ?z3 doivent être remplacé pour les ID de tes modules.

    Ensuite, tu continues a écrire tes autres lignes en remplacant "PARS" par "RENTRE" et changeant les valeurs.

 

Suis-je clair ?  :(

Partager ce message


Lien à poster
Partager sur d’autres sites

@magic_281

Comme il s'agit d'un déclenchement instantané, on peux faire une pause de 8 secondes sans tout casser :)

GEA.add({ id["lampe_cave"]}, -1,"", {{"Function", function() fibaro:sleep(8000) end},{"turnOn", id["lampe_cave2"]}})
GEA.add({ id["lampe_cave"], -1, "", {{"Inverse"}, {"turnOff", id["lampe_cave2"]}})

Partager ce message


Lien à poster
Partager sur d’autres sites

@Pepite,

Merci encore une fois pour m'avoir répondu.

Je vais étudier le tuto chauffage au moins pour comprendre comment çà  fonctionne.

 

@Steven, :60:

Je ne m'attendais pas à  une réponse aussi complète. MERCI.

Oui, ton explication est très claire...la preuve j'ai compris ;)

Je vais "mélanger" tes conseils avec les explications du tuto chauffage.

Il ne me reste plus qu'à  m'attaquer à  mycode dès que j'aurais un peu de temps.

 

:74:

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven, j'ai bien 2 noms de variable GEA différentes qui sont bien créés dans le panneau

 

Tests de ce matin :

si je mets ca dans l'instance GEA normal

--local halogene = GEA.add(id["WP_HALOGENE"], 5*60,"Extinction #name# de #room# après 5 mins à  #time# le #date#",{{"VirtualDevice", id["VD_SMSFREE"], 4},{"turnOff", id["WP_HALOGENE"]}, {"Repeat"}})

GEA.add({presence},30,"Allumage Halogène SAM le #date# à  #time#", {{"Days", "All"},{"Time", "7:42", "7:43"},{"Time", "23:05", "23:06"}, {"RestartTask", halogene},{"VirtualDevice", id["VD_SMSFREE"], 3},{"Email", 2, "Allumage Halo"}, {"Email", 32, "Allumage Halo Salon"}, {"turnOn", id["WP_HALOGENE"]}})

Et ca dans mon instance instantanée

 

l

local halogene = GEA.add(id["WP_HALOGENE"], 5*60,"Extinction #name# de #room# après 5 mins à  #time# le #date#",{{"VirtualDevice", id["VD_SMSFREE"], 4},{"turnOff", id["WP_HALOGENE"]}, {"Repeat"}})

GEA.add(id["WP_HALOGENE"], -1, "",{{"StopTask", halogene}})

Mon Halo s'est bien allumée, sauf que GEA normal ne connait pas "halogene", donc ne redemarre pas ma tache

GEA instantané arrete bien la tache halogene, je n'ai donc pas d'extinction de l'halo au bout de 5 mimns, ce qui semble etre normal d'apres ce que je comprends.

 

 

Si je fais ca dans GEA normal

l

ocal halogene = GEA.add(id["WP_HALOGENE"], 5*60,"Extinction #name# de #room# après 5 mins à  #time# le #date#",{{"VirtualDevice", id["VD_SMSFREE"], 4},{"turnOff", id["WP_HALOGENE"]}, {"Repeat"}})

GEA.add({presence},30,"Allumage Halogène SAM le #date# à  #time#", {{"Days", "All"},{"Time", "7:42", "7:43"},{"Time", "23:05", "23:06"}, {"RestartTask", halogene},{"VirtualDevice", id["VD_SMSFREE"], 3},{"Email", 2, "Allumage Halo"}, {"Email", 32, "Allumage Halo Salon"}, {"turnOn", id["WP_HALOGENE"]}})

et ca dans GEA instantané :

local halogene = GEA.add(id["WP_HALOGENE"], 5*60,"Extinction #name# de #room# après 5 mins à  #time# le #date#",{{"VirtualDevice", id["VD_SMSFREE"], 4},{"turnOff", id["WP_HALOGENE"]}, {"Repeat"}})

GEA.add(id["WP_HALOGENE"], -1, "",{{"StopTask", halogene}})

GEA normal eteint bien la lampe au bout de 5 mins, GEA instantané arrete bien la tache donc c'est bien GEA "normal"qui gere.

Si j'allume manuellement, GEA eteint au bout de 5 mins, GEA instantané ne fait rien.

Ca a l'iar d'etre en conflit mais je ne comprends pas bien. Je vois bien que cela vient de ma declaration de variable local halogene mais si je ne la mets que dans le GEA instantané, je n'ai plus d'extinction du tout, si je la mets dans les 2 GEA, je n'ai plus d'arret de la tache en allumage manuel, si je ne la mets que dans le GEA normal, meme en allumage manuel : extinction.

 

Mes noms de variable GEA sont-ils trop proches ?

 --panneau : GEA_Instantane et GEA_Tasks

 -- Scenes :

GEA.globalTasks = "GEA_Tasks"
GEA.globalTasks = "GEA_Instantane"

Ou alors, pas de prise de tete et pour des declenchements instantanés concernant unqiuement des StopTasks je laisse dans mon GEA normal.

Partager ce message


Lien à poster
Partager sur d’autres sites

MErci Steven, j'ai encore appris : je pensais qu'en rajoutant un function sleep, on allait tout decaler..comme sebcbien ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Mixé des Instantanés avec des StopTaks, RestatTasks est une vrai misère. Moi j'ai tout laissé dans une seule instance. Je ne subit qu'un décalage de 1 à  2 secondes ce qui me va donc si c'est bon aussi pour toi, pas de prise de tête et une seule instance.

 

J'attends sur Fibaro pour qu'il corrige leur problème de performance.

Partager ce message


Lien à poster
Partager sur d’autres sites

je vais faire cela je crois aussi, ce petit declaage pour les arrets de tache me convient aussi, bcp plus simple ;-) pour mon petit niveau hihihihi

 

je garde l'instantané pour les vrais declenchements porte-lumiere ou autres ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour le sleep ... normalement c'est à  bannir mais lors d'un déclenchement instantané, la HC2 démarre une autre copie de GEA qui tourne en parallèle de l' instance principale de GEA. On peut donc être plus permissif dans celle-ci. 

 

Dans cette copie de GEA, je ne charge QUE les GEA.add() qui concerne l'ID du module qui a déclenché le scénario et uniquement s'il y a un -1 ... ainsi c'est une copie allégée qui tourne en parallèle.

 

Cela reste néanmoins toujours délicat a utiliser donc le bannir le plus possible est la clé du succès  :P

 

 

 

EDIT : Un sleep dans l'instance principale (un seul et pas trop long) est acceptable car GEA recalcule le temps entre deux execution (30 seconds - le temps d'execution)

Partager ce message


Lien à poster
Partager sur d’autres sites

je vais faire cela je crois aussi, ce petit declaage pour les arrets de tache me convient aussi, bcp plus simple ;-) pour mon petit niveau hihihihi

 

J'ai vraiment hâte d'avoir un "petit" niveau comme toi tu sais ^_^

Me reste plus qu'à  mettre "le manuel du GEA pour les nuls" sur ma table de chevet.

Partager ce message


Lien à poster
Partager sur d’autres sites

 

@sakkhho : lol

 

@sebbrunie :

 --> super soluce de @971jmd, comme ca tu sais ou tu en es

 --> ou alors, tu forces toi meme avec GEA la variable de ta valeur Vacances

 --> ou tu simplifies ton code avec un "DIFFERENT de " sans le inverse :

GEA.add({{"Global!", "Vacances", "1"}, {"Global", "Mamie", "1"}, {"Global", "FemmeMenage", "1"}, id["COINORDINATEUR"]}, 30, "coin ordi ON à  7h00 et 18h semaine", {{"turnOn", id["COINORDINATEUR"]},{"Time", "07:00", "07:02"}, {"Time", "18:01", "18:02"}})

Bonjour,

 

je suis désolé d'insister mais cette solution, certes très intéressante, ne peut pas aller car l'{INVERSE} était là  surtout pour signifier au systeme qu'il devait appliquer la tache que si id["COINORDINATEUR"] n'était pas sur ON. 

 

Je veux allumer la prise du coin ordi à  7h et 18h que si elle n'est pas encore allumé, si je ne suis pas en vacance, si la grand mère n'est pas à  la maison (elle a un traitement de faveur plus loin ;), c'est ma belle mère !!!) et si la femme de ménage n'est pas là  également

 

Y a t'il plus simple.......

 

Merci

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@sebbrunie :

 

comme ca alors, voir dans le debug ce que ca donne :

 

l

local pasvacances = {"Global!", "Vacances", "1"}
local mamiepasla = {"Global", "Mamie", "1"}
local femmedemenagepasla =  {"Global", "FemmeMenage", "1"}

GEA.add({id["COINORDINATEUR"], pasvacances, mamiepasla, femmedemenagepasla}, 30, "coin ordi ON à  7h00 et 18h semaine", {{"Inverse"}, {"turnOn", id["COINORDINATEUR"]},{"Time", "07:00", "07:02"}, {"Time", "18:01", "18:02"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Si "1" signifie "Oui" alors 

local pasEnVacances = {"Global!", "Vacances", "1"}
local pasMamie = {"Global!", "Mamie", "1"}
local pasFemmeMenage = {"Global!", "FemmeMenage", "1"}

GEA.add({pasEnVacances, pasMamie, pasFemmeMenage}, 30, "coin ordi ON à  7h00 et 18h semaine", {{"turnOn", id["COINORDINATEUR"]},{"Time", "07:00", "07:02"}, {"Time", "18:01", "18:02"}})

Note que ce n'est pas Global mais Global! : qui inverse la condition,

Tu n'as pas besoin de vérifier si le Coin Ordi est déjà  allumé ou pas, GEA s'en charge automatiquement par contre il laisse les lignes apparaîtres dans le debug. Avant d'envoyer un turnOn ou turnOff, il vérifie toujours si cela est nécessaire.

 

Si tu veux vraiment contrôler toi même, ajoute 

local coinOrdiEteint = {"Value", id["COINORDINATEUR"], 0}
GEA.add( {coinOrdiEteint, pasEnVacances, pasMamie, pasFemmeMenage}, ....)

Voilà   :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Sinon la solution de pepite est bonne car {"Inverse"} n'inverse QUE la 1ERE CONDITION.

 

Par contre, vérifier les Mamie = 1, FemmeMenage = 1

Partager ce message


Lien à poster
Partager sur d’autres sites

l'{INVERSE} ne va pas essayer de faire l'inverse des variable pasvacances, mamiepasla et femmedemenagepasla?

 

Si le coin ordi est allumé, pourquoi essayer qu'il s'allume... J'économise une tache !!!!

 

Je ,n'avais pas intégré que c'était que la première condition qui était inversée...

 

Merci à  Tous

Partager ce message


Lien à poster
Partager sur d’autres sites

@synthetic

...

  • Créer une variable (panneau des variables) du style "Chauffage"...
  • Derrière chacun de tes boutons met le code

    fibaro:setGlobal("Chauffage", "PARS")...selon le bouton en question

  • Copie GEA dans un scénario et enlève tout le superflu
  • Dans l'entête, met 

    --[[

    %% autostart

    %% properties

    %% globals

    Chauffage

    --]]

    Ainsi la scène sera déclenchée chaque fois que la variable "Chauffage" sera modifiée

  • Dans yourcode, tu vas devoir mettre ton code... voici l'exemple pour le mode "PARS"

    GEA.add({"Global", "Chauffage", "PARS"}, -1, "", {{"Value", ?Z1, 99}, {"Value", ?Z1, 30}})

    ...

    les ?z1, ?z2, ?z3 doivent être remplacé pour les ID de tes modules.

    Ensuite, tu continues a écrire tes autres lignes en remplacant "PARS" par "RENTRE" et changeant les valeurs.

 

Suis-je clair ?  :(

 

Steven,

 

Dois-je mettre ce que tu indiques en 3., 4. & 5. dans la boucle principale du module virtuel ? ... j'avais pas tout compris en fait :8:

Partager ce message


Lien à poster
Partager sur d’autres sites

:)  Non, GEA doit être copié dans une nouvelle scène en mode LUA

Partager ce message


Lien à poster
Partager sur d’autres sites

×