Aller au contenu

Recommended Posts

Bonjour

 

Comment ajouter une condition de "scenario magique" de la HC3 dans GEA?

J'ai plusieurs lignes de code ou je voudrais ajouter des condition du "scenario magique" de la HC3

exemple:

-- ID5 Marche mode chaud clim chambre 2 si T° jardin < 15°C et T° motion sensor 2 chambre 2 < 20°C et que les fenetres de la chambre 2 sont fermés entre 16h30 et 21H30 en semaine
GEA.add({{"Value", id["SENSOR_CH2"], false}, {"Value", id["SENSOR_2_CH2"], false}, {"Value-", id["NAT_TEMP_JARDIN"], 15}, {"Value-", id["NAT_TEMP_CH2"], 20}, {"Days", "Weekday"}, {"Time", "16:30", "21:30"}}, 30, "Marche clim chambre 2 en chaud le soir en semaine T°21°C", {{"ThermostatMode", id["CONTROL_CLIM_CH2"], "Heat"}, {"HeatingThermostatSetpoint", id["CONTROL_CLIM_CH2"], "21"}})

je voudrais que cette ligne ne fonctionne que si le "scenario magique" de la HC3 est sur "home" ou "vacation H"

Merci

Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

Il faut que tu ajoutes une condition {"Profile","Home"}

Envoyé de mon M2012K11AG en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour cette réponse rapide

Et comment faire pour que cela soit l'un ou l'autre?

{"Profile","Home"}, {"Profile","vacation H"}, ...

Si je ne me trompe pas c'est l'un et l'autre.

Comment faire un ou avec GEA?

Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

Avec "Or".

Tu mets tes 2 conditions dans le Or.

Tu as des exemples dans la doc.

 

  • Like 1
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci

Si je ne me trompe pas cela pourrait être cela?

GEA.add({"Or", {"Profile","Home"}, {"Profile","vacation H"}}, {{"Value", id["SENSOR_CH2"], false}, {"Value", id["SENSOR_2_CH2"], false}, {"Value-", id["NAT_TEMP_JARDIN"], 15}, {"Value-", id["NAT_TEMP_CH2"], 20}, {"Days", "Weekday"}, {"Time", "16:30", "21:30"}}, 30, "Marche clim chambre 2 en chaud le soir en semaine T°21°C", {{"ThermostatMode", id["CONTROL_CLIM_CH2"], "Heat"}, {"HeatingThermostatSetpoint", id["CONTROL_CLIM_CH2"], "21"}})

 

Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

ça fonctionne ou pas ?

Car j'ai l'impression qu'il te manque une accolade au début de ta condition.

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as un message d'erreur ?


Ajoute une accolade autour du Or avec ses 2 conditions.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci cela semble fonctionner, je n'ai pas d'erreur sous GEA

Comme cette fonction est utiliser dans des conditions particulière je ne peut pas encore savoir si elle fonctionne comme je veux, a voir dans le temps

encore merci pour votre aide

 

Partager ce message


Lien à poster
Partager sur d’autres sites

bonjour,

 

Je possède plusieurs Dimmers FGD212, l'idée est de changer le paramètre 19 (valeur au prochain allumage) à une certaine heure et de lui en donner une autre à une autre heure.

 

j'ai testé ceci pour mettre le paramètre 19 du module 222 à 0:

    GEA.add({"Time", "17:00", "18:00"}, 30, "", {"Parameter", 222, 19, 0})

puis ceci pour mettre le paramètre 19 du module 222 à 50:

    GEA.add({"Time", "18:01", "20:00"}, 30, "", {"Parameter", 222, 19, 50})

 

Dans le DEBUG j'ai une erreur et le paramètre ne change pas:

[29.12.2021] [17:08:06] [DEBUG] [QA_GEA_368]: @0s [Validation*] #10 : ["Time",["17:00","18:00"]] => ["Parameter",[222,19,0]]

[29.12.2021] [17:08:06] [DEBUG] [QA_GEA_368]: @0s [Validation] #11 : ["Time",["18:01","20:00"]] => ["Parameter",[222,19,50]]

.

.

[29.12.2021] [17:08:38] [DEBUG] [QA_GEA_368]: @30s [Validation*] #10 : ["Time",["17:00","18:00"]] => ["Parameter",[222,19,0]]

[29.12.2021] [17:08:38] [DEBUG] [QA_GEA_368]:    [Démarrage] #10 : ["Time",["17:00","18:00"]] => ["Parameter",[222,19,0]]

[29.12.2021] [17:08:38] [DEBUG] [QA_GEA_368]:         [action] ["Parameter",[222,19,0]]

[29.12.2021] [17:08:38] [ERROR] [QA_GEA_368]:

[29.12.2021] [17:08:38] [ERROR] [QA_GEA_368]: Erreur, vérifier : ["Parameter",[222,19,0]]

[29.12.2021] [17:08:38] [DEBUG] [QA_GEA_368]: @30s [Validation] #11 : ["Time",["18:01","20:00"]] => ["Parameter",[222,19,50]]

 

Quelqu'un aurait t'il une idée de ce que je fait mal ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as quelle version de GEA ? La dernière est la v7.36 pour rappel.

 

Il faudrait que j'essaye de reproduire le comportement, mais je n'ai pas de FGD-212 à disposition sur ma box de test... donc ça risque de prendre du temps.

Partager ce message


Lien à poster
Partager sur d’autres sites

Est-ce que tu es sur de ta valeur 0 ?
Si ça se trouve, cette valeur n'est pas possible.

Envoyé de mon M2012K11AG en utilisant Tapatalk

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour vos réponses.

Je suis bien sous la version v7.36 de GEA.

et la valeur 0 est possible. 

j'ai ce scenario qui fonctionne et que je voudrais convertir pour GEA:

 

local trigger = sourceTrigger
 
local mt = {
    [43] = {min = 1, max = 30},     -- Lampe Salon
    [180] = {min = 20, max = 40},   -- Chevet Marc
    [185] = {min = 25, max = 40},   -- Plafond Marc
    [220] = {min = 10, max = 40},   -- Entrée
    [225] = {min = 5, max = 30},    -- Bureau
    [254] = {min = 5, max = 30},    -- Piscine
    [270] = {min = 1, max = 30},    -- Séjour
    [275] = {min = 1, max = 30},    -- Terrasse
    [280] = {min = 1, max = 30},    -- Salon
    [293] = {min = 2, max = 30},    -- Cuisine
    [457] = {min = 2, max = 30},    -- Cellier
    [462] = {min = 2, max = 30},    -- Toilettes Rdc
    [472] = {min = 2, max = 30},    -- Dressing Parents
    [467] = {min = 10, max = 30},   -- Douche Parents
    [477] = {min = 2, max = 30},    -- Chambre Parents
}
 
    print("heure de déclenchement :", trigger.value[2])
for k, v in pairs(mt) do
    MonDevice = api.get ("/devices/"..k)
    MonDevice.properties.parameters[16].value = (trigger.value[2] == "23") and v.min or v.max
    api.put("/devices/"..k, MonDevice)
    print("Device :", k, "à:", MonDevice.properties.parameters[16].value, "%")
end

 

le paramètre est bien le ID:19 mais sur la table JSON c'est le 16 éme.

Partager ce message


Lien à poster
Partager sur d’autres sites

La valeur peut aller de 0 à 99.

j'ai essayé ceci:

GEA.add(true, 0, "", {"Parameter", 220, 16, 11})

et

GEA.add(true, 0, "", {"Parameter", 220, 19, 11})

toujours la même erreur et aucun paramètre ne bouge :(

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense avoir identifié le bug..... Fibaro a probablement, une fois de plus, changé l'API sans nous en informer.

 

Tu peux tenter de modifier la ligne 659 du fichier main :

local parameters = api.get("/devices/" .. id .. "/properties/parameters") or {}

Comme cela :

local parameters = api.get("/devices/" .. id).properties.parameters

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @Lazer  :)

 

En modifiant la ligne dans Main

j'ai testé avec:

GEA.add(true, 30, "", {"Parameter", 220, 16, 11})

plus d'erreur dans le debug, mais les paramètres n'ont pas l'air de changer.

Partager ce message


Lien à poster
Partager sur d’autres sites

Dommage... alors il faudra que je fasse des tests... quand j'aurai le temps...

 

Remarque : je vois que tu as déjà un script externe (dans une scène ou un QA ?) qui fait ça en dehors de GEA.

Vu qu'il y a pas mal de modules concernés, il me semble judicieux de conserver de mode de fonctionnement.

 

Chez moi, j'ai des choses similaires : un QA Gestion Maison, qui me permet en cliquant sur les boutons de changer de saison (ça agit sur la gestion du chauffage), mais aussi de forcer instantanément la baisse de tous les radiateurs, l'extinction de tous les appareils, des lumières, etc...

Il est plus simple dans GEA d'avoir une règle qui va appeler les différentes fonctions du QuickApp Gestion Maison lorsqu'un événement se produit (départ/retour, réveil/nuit, alarme, etc)

 

Parce que tel quel, si tu as 15 lumières (et demain beaucoup plus), avec des valeurs min/max, j'ai quand même l'impression que ça sera plus simple à gérer avec ton script que de tout réécrire dans des règles GEA.

 

EDIT : je sais pas si j'étais clair... mais en fait j'ai l'impression que ce que tu avais fait jusqu'à présent me semblait assez propre, et j'ai peur que de tout mettre dans GEA ne soit pas plus compliqué (en dehors du bug qui nous concerne)

 

Modifié par Lazer
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci encore @Lazer 

Je comptais plutôt affecter la même valeur à un groupe pour simplifier en faisant:

 GEA.add(true, 0, "", {"Parameter", id["ECL_RDC"], 16, 11})

("ECL_RDC" étant un groupe de dimmer)

 

mais ça me donne:

[04.01.2022] [11:31:53] [DEBUG] [QA_GEA_368]: @0s [Validation*] #28 : [true] => ["Parameter",[[225,280,280,43,270,293,462,457,447,467,472],16,11]]

[04.01.2022] [11:31:53] [DEBUG] [QA_GEA_368]:    [Démarrage] #28 : [true] => ["Parameter",[[225,280,280,43,270,293,462,457,447,467,472],16,11]]

[04.01.2022] [11:31:53] [DEBUG] [QA_GEA_368]:         [action] ["Parameter",[[225,280,280,43,270,293,462,457,447,467,472],16,11]]

[04.01.2022] [11:31:53] [ERROR] [QA_GEA_368]: ./include/main.lua:659: attempt to concatenate a table value (local 'id')

[04.01.2022] [11:31:53] [ERROR] [QA_GEA_368]: Erreur, vérifier : ["Parameter",[[225,280,280,43,270,293,462,457,447,467,472],16,11]]

 

:(

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah oui mais alors là c'est normal, l'action Parameter ne supporte qu'un seul ID.

Du coup, si j'arrive à corriger le bug, j'ajouterai la possibilité de contrôleur plusieurs modules en même temps comme c'est déjà le cas pour d'autres actions.

  • Like 1
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour tout le monde.

Je suis totalement novice avec le QA GEA.

J'ai besoin d'aide pour mon premier scénario qui m'aiderait à comprendre son fonctionnement. 

Mon projet est d'inclure un scénario dans GEA pour que la lumière des wc s'allume lors d'une détection de mouvement.

Pour l'extinction auto c'est un peu plus compliqué car il faut que la lumière reste allumée tant qu'une personne est dans les wc.

Mon matériel est un interrupteur Walli dimmer et un œil Fibaro. 

S'il vous manque des informations je les fournirait. 

Merci d'avance. 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est un déclenchement instantané, donc il faut utiliser une durée = -1 :

GEA.add(ID_détecteur, -1, "", {"TurnOn", ID_lumière})

Tu remplaces juste les 2 ID qui vont bien.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci, je n'avais pas vu ce post, j'ai de la lecture à rattrapper.

Tu aurai une idée sur la façon dont la lumiere pourai s'éteindre.

Car si je met une minuterie, il arrive que la lumiere s'éteigne alors que la pièce est en occupé.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour, je débute aussi en GEA.

 

J'ai un peu le même cas et je passe par une variable globale comme ci-dessous. Ca fonctionne, mais je pense qu'il y a bien plus simple.

il existe "RestartTask" mais je n'ai pas réussit à l'utiliser. :(

 

    ---------------------------------------------------

    -- Variable PRES_TERR

    ---------------------------------------------------

     -- Dès qu'un mouvement est détecté et que Variable terrasse = "NON", Passe la variable terrasse a "OUI

     GEA.add({{"(Global)","PRES_TERR","NON"}, {id["Mouv_Terrasse"]}}, -1, "", {"Global","PRES_TERR","OUI"})

     -- S'il n'y a pas de mouvement sur la terrasse pendant 3 minutes et que Variable terrasse = "OUI", Passe la variable terrasse à "NON"

     GEA.add({{"(Global)","PRES_TERR","OUI"}, {"value", id["Mouv_Terrasse"], "false"}}, 3*60, "", {{"Global","PRES_TERR","NON"}, {"Repeat"}})

 

    ----------------------------------------------------

    -- Eclairage Terrasse

    ----------------------------------------------------

    -- Si j'ouvre la fenêtre de la cuisine et qu'il fait nuit j'Allume la terrasse à 1%

    GEA.add({{id["Ouv_Fenetre_Cuisine"]}, {"(Global)","JOUR_NUIT","NUIT"}, {"(Global)","PRES_TERR","NON"}}, -1, "", {"Value", id["Ecl_Terrasse"], 1})

    -- Si la terrasse est allumée et qu'il n'y a personne, j'éteinds la terrasse

    GEA.add({{"value!", id["Ecl_Terrasse"], 0}, {"Global","PRES_TERR","NON"}}, 30, "", {"TurnOff", id["Ecl_Terrasse"]})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour la gestion des lumières automatiques, je ne peux que vous conseiller d'aller consulter les 2 showroom.

Il y a plusieurs exemples différents, dont vous pouvez vous inspirer.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense qu'il doit y avoir une erreur car il ne fonctionne pas.

C'est la ligne surlignée.

 

gea lumiere.JPG

Partager ce message


Lien à poster
Partager sur d’autres sites

×