Aller au contenu

Recommended Posts

Voilà, pour tous les courageux ;)

 

 

  • Like 3
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @Steven

SI j'ai bien compris, plus besoin de la déclaration des id={} ?

Partager ce message


Lien à poster
Partager sur d’autres sites

En effet, c'est à toi de voir si tu préfères utiliser le "Nom du module" ou son ID. Il faut être conscient que le lancement de GEA (uniquement le démarrage) sera un tout petit peu plus lent car il va devoir aller chercher les ID par rapport au nom du module. Mais je ne pense pas que tu verras de différence.

 

Perso je préfère lire : {"TurnOn", "Lampe de chevet"} que {"TurnOn", id["LAMPE_CHEVET"]} qui nécessite de connaitre son ID et de le mettre dans le tableau des IDs.

Et si j'ai 2 lampes de chevet {"TurnOn", "Lampe de chevet@Chambre du Monstre 1"}

 

Cela permet de lire et d'écrire plus naturellement nos codes.

 

Après, il ne faut pas s'amuser à renommer les modules :-)

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Trop bien ! merci !!!

 

Et pour l'utilisation des variables globales dans les lignes GEA, est-ce que ceci fonctionne (je pourrais tester, certes,...)

GEA.add({"true",0,"",{"VariableCache","temp_chaud",25})
GEA.add({{"Label",id["CLIM_CHAMBRE"],"lblPower","OFF"},{"Value+",id["TEMP_CHAMBRE"],"temp_chaud"},30*60,"Il fait chaud dans la chambre, j'active la clim !",....

Ou faut-il passer systématiquement par une variable globale ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est simple. Soit c'est un nombre et je le prend tel quel, soit c'est autre chose et je vais chercher une variable globale. Je n'ai pas poussé plus loin. Donc pas le choix, c'est une VG :-(

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Cela m'intéresse quand même, même s'il faut que je passe par une variable globale.... je vais méditer ça...

Envoyé de mon SM-A530F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à tous,

Y a-t-il moyen de réaliser un calcul sur des dates dans GEA, ceci afin de faire un OFF/ON sur mon boiler.

Je m’explique :

En fonction des dates dans :

VacancesON : 02/07/2020

=>Faire un OFF du boiler à J-1 (01/07/2020)

VacancesOFF : 15/07/2020

=> Faire un ON du boiler à J-1 (14/07/2020)

Merci à vous

Partager ce message


Lien à poster
Partager sur d’autres sites

 Merci @Steven pour cette mise à jour.

Le 11/06/2020 à 14:23, Dragoniacs a dit :

SI j'ai bien compris, plus besoin de la déclaration des id={} ? 

Et moi, je n'ai pas compris.

Au début, j'ai essayé en retirant la table

local id = {

--Cuisine
Plan_de_travail = 76, T_Cuisine = 184, Plafond = 74, etc...

}

mais ça plantait à mon premier Id donc j'ai remis cette table et pas de soucis.

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 15/06/2020 à 08:48, Ghoosti a dit :

Bonjour à tous,

Y a-t-il moyen de réaliser un calcul sur des dates dans GEA, ceci afin de faire un OFF/ON sur mon boiler.

Je m’explique :

En fonction des dates dans :

VacancesON : 02/07/2020

=>Faire un OFF du boiler à J-1 (01/07/2020)

VacancesOFF : 15/07/2020

=> Faire un ON du boiler à J-1 (14/07/2020)

Merci à vous

Par défaut, il n'y a rien dans GEA. En revanche, tu peux ajouter ton propre code pour le faire, voici un exemple qui va fonctionner

...
function setEvents()
    -- ...
	GEA.options.mydatediff = {name = "MyDateDiff", getValue=function(nb_jours, date)
		local d, m, y = date:match("(%d+).(%d+).(%d+)")
		local diff = tonumber(os.date("%Y%m%d")) - tonumber(y .. m .. d)
		return diff == nb_jours
	end} 
    -- ...
    GEA.add({"MyDateDiff", -1, "02/07/2020"}, 30, "Test MayDateDiff")
    -- ou
    GEA.add({"MyDateDiff", -1, {"Global", "VacancesON"}}, 30, "Test MayDateDiff")
end
...

 

Partager ce message


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

 Merci @Steven pour cette mise à jour.

Et moi, je n'ai pas compris.

Au début, j'ai essayé en retirant la table


local id = {

--Cuisine
Plan_de_travail = 76, T_Cuisine = 184, Plafond = 74, etc...

}

mais ça plantait à mon premier Id donc j'ai remis cette table et pas de soucis.

 

L'idée de la 6.12 est de permettre d'abandonner les ID si vous le souhaiter et d'utiliser le nom des modules.

 

Supprimer juste la table des id ne va faire que de planter le code.

 

Si je reprend ton exemple id["Plafond"] = 74 tu as probablement quelque part dans ton code

 

GEA.add(.........., ...., ...., {"TurnOn", id["Plafond"]}

 

Ce qui revient a écrire

 

GEA.add(.........., ...., ...., {"TurnOn", 74}

 

GEA 6.12 te permet d'utiliser le nom du module au lieu de son ID, donc si le nom de ton module Plafond (74) est "Lampe Plafond", avec la 6.12 tu pourrais écrire ainsi :

 

GEA.add(.........., ...., ...., {"TurnOn", "Lampe Plafond"}

GEA.add(.........., ...., ...., {"TurnOn", "Lampe Plafond@Cuisine"} -- si tu as plusieurs "Lampe Plafond"

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 Merci @Steven, je crois que j'ai compris, c'est en fait le nom que l'on a donné au module dans la HC2. :13:

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut a tout le monde

 

J'ai un problème GEA 6-12

 

Quand détection alors allume la salle de bain, jusque-là pas de problème la lampe s'allume bien 

Mai après les 30s elle reste toujours allumée et je le debug suivant :

 

  DEBUG] 17:35:56: Aucune entrée pour l'évennement Property[54 - value] supprimer le de l'entête

 

 --[[
%% autostart
%% properties
507 value
54 value
%% globals
--]]


---detection sb enfant
  GEA.add({"Value", 507, 1}, 	-1 , "", { {"TurnOn", "Salle de bain"} })
    
  GEA.add({"Value", "Salle de bain", 1}, 30, "", {  {"TurnOff", "Salle de bain"},   {"Repeat"} }) 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Même problème avec :

 

Ne fonctionne pas

GEA.add({"SceneActivation", "Telecom vl bar" , 14}, -1, "", {{"OnOff", "Suspension Cuisine" }})   
GEA.add({"SceneActivation", "Telecom vl bar" , 24}, -1, "", {{"OnOff", "Lampe du Bar" }}) 
GEA.add({"SceneActivation", "Telecom vl bar" , 25}, -1, "", {{"OnOff", "Neon Led Piscine" }}) 


Aucune entrée pour l'évennement Property[526 - sceneActivation], supprimer le de l'entête

 

fonctionne 


 local id = { TELECOM_DU_BAR = 526, LAMPE_CUISINE = 14, APPLIQUE_DU_BAR = 458, LED_PISCINE = 403  }
  
GEA.add({"SceneActivation", id["TELECOM_DU_BAR"] , 14}, -1, "", {{"OnOff", id["LAMPE_CUISINE"]}})   
GEA.add({"SceneActivation", id["TELECOM_DU_BAR"] , 24}, -1, "", {{"OnOff", id["APPLIQUE_DU_BAR"]}}) 
GEA.add({"SceneActivation", id["TELECOM_DU_BAR"] , 25}, -1, "", {{"OnOff", id["LED_PISCINE"]}}) 

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à tous,

 

J'ai installé ceci: (merci @Steven)

GEA.options.mydatediff = {name = "MyDateDiff", getValue=function(nb_jours, date)
        local d, m, y = date:match("(%d+).(%d+).(%d+)")
        local diff = tonumber(os.date("%Y%m%d")) - tonumber(y .. m .. d)
        return diff == nb_jours
    end} 

ensuite J'ai créé 

local DateVacOn   = "10/07/2020" 
GEA.add({"MyDateDiff", -1, DateVacOn}, 30, "VAR Boiler_JJ sur J-1_Off", {"Global", "Boiler_JJ", "J-1_Off"}, "xx")-- OK ça fonctionne la VAR change bien en fonction du J-1

maintenant j'essaye de récupérer la date J-1 contenue dans {"MyDateDiff", -1, DateVacOn} afin de l’insérer dans la variable "DateVac_On_1"

j'ai essayé plusieurs choses, mais sans résultat, notamment:

GEA.add(true, 30, "x", {"Global", "DateVac_On_1", {"MyDateDiff", -1, DateVacOn}}, "xx")

:(

Merci pour votre aide

Partager ce message


Lien à poster
Partager sur d’autres sites

@Ghoosti Malheureusement MyDateDiff ne retourne pas la date, il retourne juste vrai ou faux.

Partager ce message


Lien à poster
Partager sur d’autres sites

@971jmd Il est possible que tout ne fonctionne pas, cette version est une ébauche plus ou moins fonctionnelle comme annoncé.

 

En revanche, ce code est dangereux à mon avis

GEA.add({"Value", "Salle de bain", 1}, 30, "", {  {"TurnOff", "Salle de bain"},   {"Repeat"} })

Ce code ne fonctionne QUE si la valeur de ta "Salle de bain" est de 1 alors que la plus part des modules peuvent te retourner une valeur entre 1 et 100, je mettrait à la place

{"TurnOn", "Salle de bain"} au lieu de {"Value", "Salle de bain", 1}

et le {"Repeat"} ne sert à rien.

 

 

Pour le "SceneActivation", en effet, cela ne fonctionnera jamais, le code de GEA contient une erreur.

Il y a cette ligne dans le code 

getValue=function(id, value) return tonumber(fibaro:getValue(GEA.findScenarioId(id), "sceneActivation")) == tonumber(value) end

qui contient un GEA.findScenarioId(id) ce qui est faux et devrait être GEA.findDeviceId(id)

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour @Steven

Ok merci, alors je vais essayer de passer par une scène ou un VD pour faire le calcul entre les 2 dates.

Je vais passer les VD du forum en revue....

:77:

Partager ce message


Lien à poster
Partager sur d’autres sites

Je t'aide en te donnant un exemple :

 

function getDate(date, nbJour) 
  local d, m, y = date:match("(%d+).(%d+).(%d+)")
  local mydate = os.time{year=y, month=m, day=(d+nbJour), hour=0};
  return os.date("%d/%m/%Y", mydate)
end

print(getDate("17/06/2020", -2)) -- resultat : 15/06/2020

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à tous,

Merci@Steven, ok super ça fonctionne.

Il me reste maintenant à récupérer le valeur du résultat pour l’insérer dans une VG.

Bon week-end à vous :)

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

J'ai un soucis avec les déclenchements instantanés en V6.12

J'avais cette ligne :

  GEA.add({id["PORTE_ENTREE"],{"(Global)","Jour_Nuit","Nuit"}}, -1, "GEA : Ouverture de la porte, allumage du porche" ,{"turnOn",id["LUM_PORCHE"})

 

J'ai changé en :

GEA.add({"Porte Entree",{"(Global)","Jour_Nuit","Nuit"}}, -1, "GEA : Ouverture de la porte, allumage du porche" ,{"turnOn","Lumière Porche"})

Il me dit que l'option "Porte Entree" n'existe pas

 

Et si je fais :

GEA.add({{"Value","Porte Entree",1},{"(Global)","Jour_Nuit","Nuit"}}, -1, "GEA : Ouverture de la porte, allumage du porche" ,{"turnOn","Lumière Porche"})
Il me répond qu'il n'y a pas d'action associée à mon id et que je peux le supprimer de l'entête...

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense que l'usage des noms avec les instantanés ne fonctionne pas. Je vais quand même essayer de voir cela demain. 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Boujour à tous,

 

J'essaye de remplacer ceci:

 GEA.add({"Dates", "01/06/2020"}, 30, "", {"VirtualDevice", id["VD_MAISON_MODE"], "5"}, "Maison en Mode Vacances")

par ceci: (en récupérant la valeur d'un Label ou une VG)

la valeur de DateVacOn_Format est 01/06/2020

GEA.add({"Global", "DateVacOn_Format"}, 30, "", {"VirtualDevice", id["VD_MAISON_MODE"], "5"}, "Maison en Mode Vacances")

:(

Modifié par Ghoosti
Merci

Partager ce message


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

Boujour à tous,

 

J'essaye de remplacer ceci:


 GEA.add({"Dates", "01/06/2020"}, 30, "", {"VirtualDevice", id["VD_MAISON_MODE"], "5"}, "Maison en Mode Vacances")

par ceci: (en récupérant la valeur d'un Label ou une VG)

la valeur de DateVacOn_Format est 01/06/2020


GEA.add({"Global", "DateVacOn_Format"}, 30, "", {"VirtualDevice", id["VD_MAISON_MODE"], "5"}, "Maison en Mode Vacances")

:(

Tu devrais essayer ainsi :

 

{"Dates", {"Global", "DateVacOn_Format}}, 30, ...

Partager ce message


Lien à poster
Partager sur d’autres sites

×