Aller au contenu

Support Gea


Steven

Messages recommandés

bonjour

 

--[[
%% properties
16 value
%% globals
--]]
...
GEA.add(16, -1, "", {{"turnOn",17}}) -- Allumage de la lumière quand la porte s'ouvre
 
Sa fonction pas

 

mon problème est que je ne comprend pas comment et ou placer un script GEA

Lien vers le commentaire
Partager sur d’autres sites

Tu a suivi le tuto?

 

http://www.domotique-fibaro.fr/index.php/topic/1082-gea-gestionnaire-dévénements-automatique/

 

Il faut copier le code (tout le code jusqu'à  la dernière ligne) dans une scène de ta HC2 et ajouter tes commandes GEA ("GEA.add(16, -1, "", {{"turnOn",17}}) -- Allumage de la lumière quand la porte s'ouvre") dans une section de ce code (après la mention "A vous de jouer").

Dans cette section si il y a des commandes déjà  définies (elle sont données en exemple) il suffit de les désactiver en mettant "--" devant, pour l'entête (entre "%% properties" et "%% global") il faut supprimer les modules déclarer (on ne peut pas les désactiver en mettant "--" devant et déclarer le tien "16 value".

Lien vers le commentaire
Partager sur d’autres sites

Normalement en suivant le tuto tu devrais y arriver.

 

Et oui on peut dire que c'est un moteur dans un moteur. Ce code permet de rassembler plein d action avec une ou deux lignes de commandes plutôt que de créer un scène pour chaque action désirée (en plusieurs lignes de codes) . De plus son fonctionnement est optimisé .

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

J'utilise la ligne suivante pour m'indiquer quand la filtration de la piscine est en route:

-- Annoncer le démarrage de la filtration
GEA.add(id["FILTRATION"], -1, "", {{"Global", "Karotz", "La filtration de la piscine est mise en route."}, {"VirtualDevice", id["KAROTZ"], 7}})

Je voudrais qu'il me le dise uniquement s'il y a une présence dans le salon il y a moins de 10mn.

Il faudrait utiliser un "If" avec la durée du capteur de mouvement id["MOV_SALON"] mais comment récupérer cette valeur ?
Si j'utilise le mot clé #durations# dans la ligne au dessus, elle correspondra au capteur id["FILTRATION"].
 
Vous avez la solution ?
 
J'ai pensé à  modifier GEA pour lui ajouter un nouveau paramètre: {"Function", "ma_fonction", "arg1", "arg2", ...}
Exécute la  fonction "ma_fonction" avec comme paramètres arg1, arg2, ...
Le résultat de la fonction pourrait être utilisé dans un "If" par exemple:
{"If", {{"Function", "recul_duree_mov", id["MOV_SALON"]}} }

Qu'en penses tu Steven ? Je sors le bazooka pour attraper une mouche ? :lol:

 

 

 
 
Lien vers le commentaire
Partager sur d’autres sites

Voici un petite question sur laquelle je suis en train de passer pas mal de temps. Je vais finir par ne plus avoir de cheveux ! :mellow: Je m'explique !

 

J'ai fait avec GEA la gestion de plusieurs pièces dont une ...l'entrée. 

Je souhaite allumer et éteindre en fonction de l'entrée...Jusque là  ça marche.

 

Là  où ça se complique c'est quand j'essaye d'envoyer un message de bienvenue aux utilisateurs reconnus (par l'adresse MAC de leur portable et je mets à  jour toutes les 2 minutes des variables globales). Je passe par le VD "FREEBOX Plugin" et ça marche parfaitement pour 4 portables et j'ai fait un VD pour enovyer des PUSH par Live Notifier (un peu plus sexy que ceux proposés par Fibaro)...ça marche aussi !

 

Là  où je coince c'est quand je dois :

  • Envoyer le PUSH
  • A l'ouverture de la porte (+/- qqles secondes)
  • Si le portable est reconnu (il faut aussi +/- qqles secondes)
  • entre 6 et 8h

Comme les conditions ne sont pas exactement OK en même temps, j'ai l'impression que je tourne en rond en changeant les conditions !  :(

-- =====================================================================================
-- Gestion de l'entrée
-- =====================================================================================

GEA.add(id["PRESENCE_ENTREE"], -1, "", 		-- Quand je détecte quelqu'un dans l'entrée
	{
	{"Global", "Sortie", "1"}		-- je met la variable Sortie à  1
	})
 
GEA.add(id["PRESENCE_ENTREE"], 5*60, "", 	-- Quand plus de présence depuis 5 minutes
	{
        {"Inverse"}, 
	{"Global", "Sortie", "0"}		-- On met la variable Sortie à  0
	})					-- Cela autorise une action pendant 5 minutes (i.e. Allumage de la lampe) 

GEA.add( id["PORTE_ENTREE"], -1, "", 		-- Quand la porte d'entrée s'ouvre 
	{
	{"If",{{"Global", "Sortie", "0"}}},	-- Si la variable Sortie est 0, cela veut dire que je suis en train d'entrer
	{"Time", "Sunset", "Sunrise"},		-- Et si le soleil est couché
	{"turnOn", id["LAMPE_ENTREE"]}		-- Alors j'allume la lumière dans l'entrée
	})

GEA.add(id["LAMPE_ENTREE"], 20*60, "Extintion lampe entrée", 	-- Quand la lampe dans l'entrée est allumée depuis 20 minutes
	{
	{"If",{{"Value-",id["PRESENCE_ENTREE"],1}}},		-- Si pas de présence.
	{"turnOff", id["LAMPE_ENTREE"]}				-- je l'éteins
	})

GEA.add(id["PORTE_ENTREE"], 10*60, "La porte d entrée est ouverte depuis plus de #duration# minutes", 
 	{
    {"Repeat"}
	})
  
GEA.add({"Global", "", ""}, 2*60, "",		-- Mise à  jour des Présences par détection d'adresses MAC toutes les 2 minutes
	{
	{"VirtualDevice", id["WIFI_DEVICE"], 14},
	{"VirtualDevice", id["WIFI_DEVICE"], 15},
	{"VirtualDevice", id["WIFI_DEVICE"], 16},
	{"VirtualDevice", id["WIFI_DEVICE"], 17},
        {"Repeat"}
 	}) 

-- Ci-dessous le module qui me pose problème 
GEA.add({"Global", "", ""}, 8*60, "",
	{
	{"If",{{"Value+",id["PORTE_ENTREE"],-1}}},  -- Quand la porte d'entrée s'ouvre WELCOME "new comer" 		   
	{"Time", "18:00", "20:00"},                 -- uniquement le soir quand on rentre du boulot
	{"If",{{"Global", "Sortie", "0"}}},	    -- Si la variable Sortie est 0, cela veut dire que je suis en train d'entrer
	{"If",{{"Global", "WD_JM", "TRUE"}}},	    -- Si c'est JM qui rentre ( Wifi Device détecté)
	{"VirtualDevice", id["PUSH"], 10}	    -- Alors, petit message d'accueil
	})

Si vous avez des idées...merci

Lien vers le commentaire
Partager sur d’autres sites

Merci Steven.


 


Je vais prendre le problème différemment en modifiant la fonction TTS de mes modules Karotz et Squeezebox.


Je vais en profiter pour y ajouter l'urgence des messages.


Ainsi cela sera valable pour toutes les scènes qui utilisent la fonction TTS de ces deux modules.


  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

@JM13

-- Ci-dessous le module qui me pose problème 
GEA.add(id["PORTE_ENTREE"], -1, "", {
   {"Time", "18:00", "20:00"},
   {"If",{
      {"Global", "Sortie", "0"},
      {"Global", "WD_JM", "TRUE"}}
   },
   {"VirtualDevice", id["PUSH"], 10}}
)

Lien vers le commentaire
Partager sur d’autres sites

Merci Steven...je teste ça dès que je rentre (je suis en déplacement) mais j'avoue qu'il y a encore des imprécisions dans ma compréhensions de la syntaxe  ;)

 

.

Lien vers le commentaire
Partager sur d’autres sites

Tout est possible, mais ce sera beaucoup de travail parce que je vais devoir ajouter une table de traduction. Parlez-vous du code source ou de la documentation ou les deux? Je pense que vous allez me dire: "les 2 à  la fois"

 

 

All is possible but this will be a lot of work 'cause I will have to add a translation table. Are you talking about the source code or the documentation or both ? I think you will tell me: "both for sure" :)

Lien vers le commentaire
Partager sur d’autres sites

Question Steven, y a t'il moyen de GEAtiser cela :

--[[
%% properties
48 value
%% globals
--]]

fibaro:sleep(15000);
local delayedCheck0 = false;
local tempDeviceState0, deviceLastModification0 = fibaro:get(48, "value");
if (( tonumber(fibaro:getValue(48, "value")) == 0 ) and (os.time() - deviceLastModification0) >= 15) then
	delayedCheck0 = true;
end

local startSource = fibaro:getSourceTrigger();
if (
 ( delayedCheck0 == true )
or
startSource["type"] == "other"
)
then
	fibaro:call(17, "turnOff");
end

C'est ma scène qui me permet d'éteindre (Après délai)/allumer les lumières àpartir d'un détecteur (FGMS). Ici la scène pour éteindre.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...