Aller au contenu

Messages recommandés

Posté(e)

Non, malheureusement pas, le code que vous ajouter fait appel au code de GEA qui doit être connu ... pour être connu, il doit être déclarer avant.

 

J'ai déjà  essayé de faire au plus simple, mais les contraintes du LUA sur la HC2 ne laisse pas beaucoup de possibilité. Il y a du code que vous devez mettre avant et du code que vous devez mettre après.

Posté(e)

On pourrait ... je dis bien on pourrait faire quelque chose comme cela :

--[[
%% autostart
%% properties
91 value
%% globals
--]]


function yourcode()
      -- ==================================================
      -- A VOUS DE JOUER
      -- ==================================================
	GEA.checkEvery = 30 -- On vérifie toutes les X secondes
	GEA.portables = {122} -- Liste des portables devant recevoir une notification {70, 71}
	GEA.debug = false -- Affichage des traces dans la console

	local id = {
	    DETECTEUR     = 85,
	    LAMPE_EXT	= 115
	}

	GEA.add(....)
        GEA.add(....)
      -- =================================================
      -- NE PLUS RIEN TOUCHER
      -- =================================================
end

(...le code de gea...)

l'idée serait d'englober ton code dans une fonction et àla fin du code de GEA j'appel cette fonction. C'est donc possible.

Posté(e)

Bonjour a tous,

 

Merci beaucoup pour le script, je suis fan!!!!

 

J'ai une petite question, est il possible par exemple d'allumer la hotte de cuisine si la valeur de consommation des plaques de cuisson change. Et pourquoi pas si la conso depasse une certaine valeur de passe la hotte en vitesse 2. J'essai de faire le script mais il ne fonctionne pas completement (que l'extinction apres x minutes d'inactivite).

--[[
%% autostart
%% properties
101 value 
%% globals
--]]
-- gestion de la hotte
local condition = {"If",{{"Value-", 78, 100}}} -- si la lumiere de hotte est allumée alors on check
GEA.add({"Value-", 101, 20}, 7*60, "Plaque éteinte depuis #duration#, Hotte éteinte",  {{"VirtualDevice", 136, 4},{"VirtualDevice", 136, 7}, condition})
GEA.add(101, -1, "", {{"VirtualDevice", 136, 2},{"VirtualDevice", 136, 6}, condition})
--GEA.add({"Value+", 101, 1000}, 1*60, "", {{"VirtualDevice", 136, 3},{"VirtualDevice", 136, 6}})

Merci pour votre aide :)

Posté(e)

Je suppose que tu as une prise électrique avec une remontée de la consommation ? SI oui dans ce cas "Value" te donnera si la plaque est allumée ou non et "Sensor" la consommation.
 
Exemple
 
SI la consommation est supérieure à  1000W 

GEA.add({"Sensor+", 101, 1000}, 30, "Consommation de plus de #value#, passage en vitesse 2", {{"VirtualDevice", 136, 3},{"VirtualDevice", 136, 6}})

Maintenant que tu sais comment utilisé la consommation tu peux faire ce que tu veux ... comme allumer ta hotte.

GEA.add({"Sensor+", 101, 10}, 30, "Plus de 10W on peut allumer la hotte", {...})

 

Edit :  Le "Value+" ou "Value-" est utilisé avec des dimmers ou des volets roulants. Une prise n'a que 2 état (On ou Off) soit une "Value de 1 ou 0". Dans le cas d'une prise tu n'a donc pas besoin de faire :

 

GEA.add({"Value-", 101, 20},...) pour s'avoir si ta plaque est allumée ou non tu peux faire

GEA.add(101, ...)  -- elle est allumée

GEA.add(101, ..., ..., {{"Inverse}, ...})  -- elle est éteinte.

 

Voilà  j'espère que tu arriveras faire ce que tu veux ... sinon ... HURLE.

Posté(e)

Voilà  ce que j'ai pour commander une bouche d'aération en fonction de la consommation de la hotte:

--Ouverture bouche cuisine si hotte allumée
GEA.add({"Sensor+", id["WallPlugCuisine"], 80}, 30, "",{{"Scenario",id["ScnVMC"]},{"Repeat"}})

Si la hotte consomme plus de 80W (la lumière consomme moins de 80W et le moteur plus de 80W) pendant 30s je déclenche un scénario (pour ouvrir la bouche d'aération il faut couper son alimentation et elle s'ouvre pour 30mn au retour du courant) et je répète (utile dans mon cas si la cuisinière cuisine plus de 30 mn)

Posté(e)

bonjour à  tous,

 

tout d'abord, félicitation à  steven pour ce super addon à  la HC2...

Voici une petite question sur GEA, je tente de trouver les lignes pour éteindre toute la maison lorsque l'alarme est branchée et rallumer tout quant elle est désactivée.

 

J'ai ceci comme id pour l'armement partiel (statel on/off)

[DEBUG] 22:11:15: [ 2767 | Armement Partiel ] isActivate : type : satel_output [turnOff]

 

donc voici les 2 codes:

-- Si on a un armement partiel depuis 5 minutes, on éteint tout
GEA.add(id["ARMEMENT_PARTIEL"], 5*60, "", {{"turnOff",HOME_CINEMA}})
-- Si on a plus d'armement partiel on rallume tout...
GEA.add(id["ARMEMENT_PARTIEL"], 5*60, "", {{"Inverse"},{"If",HOME_CINEMA},{"turnOn",HOME_CINEMA}})

bien que je suis pas sur du if... normalement on allume le home cinéma si l'armement partiel n'est pas actif...

Posté(e)

Après une grande concertation avec Steven, voici la procédure officielle de demande de support (à  respecter impérativement) que j'ai définie pour la mise en place de la gestion de notre environnement dans le GEA.

ce n'est pas du LUA mais ça fonctionne quand même !  ;)

REPEAT
  je rajoute un truc
  je teste le truc
  IF le truc fonctionne pas
  THEN
    REPEAT
      IF GEA gère le truc
      THEN 
         Steven m’aides
       ELSE 
         Steven modifies le GEA
      ENDI
      je modifie le truc
      je teste le truc
    UNTIL le truc fonctionne
  ENDIF
UNTIL il n’y a plus de trucs à  rajouter 
END
 
  • Upvote 4
Posté(e)

Le if ne te sert àrien. Que voulais tu faire avec ?

Je voulais éviter d'allumer le cinéma si il est déjàallumé mais est ce que ça pose problème?

Posté(e)

Non justement cela ne pose aucun problème donc simplifie ton code.

Sinon, t'es tout juste. Si tu dois réutiliser le if, attention, il prend plein de {} :)

{"If", {{condition1} , {condition2} ,... }

Posté(e)

@Steven

Donc tu penses modifier la structure du GEA pour qu'on puisse mettre notre code en début de scène?

ça serait vraiment bien parce que t'as trop bien bossé et ton code est assez lourd, et se taper les presque 1000 lignes ça va vite mais c'est galère! 

Oui je sais, je suis un gros flemmard !

Sinon, voici une petite goodies perso, l'icone officiel du GEA by Fredo, validé par Monsieur Steven !

post-260-0-10192400-1405801953_thumb.png

  • Upvote 1
Posté(e)

Ce soir mes enfants rentrent, je les ai pas vu depuis 1 semaine... Pour moi, c'est une éternité.

Je m'occupe d'eux puis de la prochaine version. Le code pourra être en bas comme àce jour ou en haut dans une fonction prédéfinie.

Chez moi je tourne déjàavec cette modification pour tester.

Posté(e)

Nouvelle Version 3.65

  • [Amélioration] Déportation du code utilisateur en début de script, proposition de @fredo
  • [Nouveauté] Ajout de l' action {"Global", <variable>, "inc+"} pour incrémenter de 1 automatiquement la variable
  • [Nouveauté] Ajout de l' action {"Global", <variable>, "dec-"} pour décrémenter de 1 automatiquement la variable

La nouvelle version est diponible ici : http://www.domotique-fibaro.fr/index.php/topic/1082-gea-gestionnaire-dévénements-automatique/?p=12428

 

 

Déportation du code.

Votre code peut maintenant être inséré en début de script, pour autant que ce dernier sont englobé dans une fonction nommée "yourcode" comme sur l'exemple ci-dessous. La nouvelle version de GEA (3.65) utilise cette nouvelle fonctionnalité. Sinon, vous pouvez laisser comme avant. 

--[[
%% autostart
%% properties
85 value
28 value
%% globals
--]]


function yourcode()
	-- ==================================================
	-- A VOUS DE JOUER
	-- ==================================================
	GEA.checkEvery = 30 -- On vérifie toutes les X secondes
	GEA.portables = {122} -- Liste des portables devant recevoir une notification {70, 71}
	GEA.debug = false -- Affichage des traces dans la console

	local id = {
		DETECTEUR       	= 85,
		DETECTEUR_GARAGE	= 28 
	}

	-- ------------------------------------------------------------
	-- Si vous avez une variable global qui doit activé ou non ce service, il faut 
	-- la déclaré et indiqué la valeur que cette dernière doit contenir pour que le service fonctionne
	-- Exemple GEA.getGlobalForActivation = {"hors de la maison", "oui"}
	-- Le service fonctionnera uniquement sur la variable globale "hors de la maison" est à  "oui"
	-- Définition : GEA.getGlobalForActivation = {"<globalvar>", "<value for activation>"}
	-- ------------------------------------------------------------
	--GEA.getGlobalForActivation = {"SuspendreGEA", "non"}

	-- === GARAGE == --
	-- Le scénario enverra un push toutes les 10mn tant que la porte sera ouverte
	GEA.add( id["DETECTEUR_GARAGE"], 10*60, "La porte du garage est ouverte depuis plus de #duration#", {{"If", {{"Global", "GEA_Garage", "ON"}}}, {"Global", "Karotz", "La porte du garage est ouverte depuis #durationfull#"},{"VirtualDevice", id["VD_KAROTZ"],"1"},{"Repeat"}})

    
    -- ==================================================
    -- NE PLUS RIEN TOUCHER
    -- ==================================================
end

Exemple des nouvelles fonctionnalité pour incrémenté ou decrémenté une variable Globale.

Imaginons une variable "NbCafe" qui est à  0.

-- Chaque fois que la cafetière consomme plus de 100W pendant 30 secondes, on ajoute 1 à  la variable
GEA.add({"Sensor+", 19, 100}, 30, "", {{"Global", "NbCafe", "inc+"}})

-- 60 secondes, ce n'est plus un café met un détartrage, on retire le 1 ajouté juste avant
GEA.add({"Sensor+", 19, 100}, 60, "", {{"Global", "NbCafe", "dec-"}})

-- Attention à  la commande si plus de 50 cafés
GEA.add({"Global+", "NbCafe", 50}, 30, "Dejà  #value# cafés, il est temps d'en recommander")

Cela vous permet aussi de compter le nombre d'ouverture de porte, le nombre d'arrosage dans le mois, le nombre de fois que vous ouvrer le frigo pour prendre une bière à  ma santé, ...

Posté(e)

@Steven,

Un très grand merci à  notre codeur fou Steven pour avoir enfin pu résoudre LE problème principal du HC2, la position de notre code perso en fin de GEA.

C'était vraiment galère et insupportable à  vivre au quotidien. :(

Chaque jour, je n'en pouvais plus de devoir descendre tout en bas pour modifier mon code. :angry:

Depuis tout ce temps où je lui ai demandé ça, il a enfin fait quelque chose.

J'ai failli supprimer le GEA et je pensais revendre mon HC2 et tout le matos de domotique.

Et en attendant, je comptais arrêter mon abonnement EDF et partir élever des chèvres dans le Larzac pour oublier.

Steven m'a sauvé de la vraie vie !!!  :60:

Posté(e)

Une idée:

Si Steven sans ses enfants durant une semaine nous sort trois versions d'enfer par ennui, à  votre avis quelles améliorations il coderas s'il n'a pas ses enfants durant un mois!

 

Qui se porte volontaire pour kidnapper héberger ses enfants? :D

Posté(e)

@fredo

Ben Zut, si J'eu su je n'aurais rien fait ;)

@Hansolo

Ils sont ma source d'inspiration.

J'ai rien fait d'autre que de répondre àShyrka973 et fredo cet semaine. De moi ne vient que l'incrementation.

Posté(e)

@Steven

je viens de faire la mise àjour 3.65, non sans mal.

Je suis épuisé!

Du coup, je n'ai plus le courage de lancer la scène. :D

C'était juste pour dire que j'ai un peu restructuré le GEA (les commentaires!) pour mettre les paramètres dispo juste après l'historique.

Je m'attarde toujours au côté pratique, désolé !

Autre chose, pour être moins bête aujourd'hui, tu peux me dire àquoi servent ses lignes?

--[[
%% autostart
%% properties
91 value
85 value
28 value
6 value
87 value
108 value
%% globals
--]]
×
×
  • Créer...