Aller au contenu

Recommended Posts

Invité chris6783

Steven a suggéré un peu plus haut d'envoyer une capture de camera via GEA. 

 

Je faisais cela depuis GEA via un VD mais se serait bien plus simple si....

Voici donc une proposition de GEA 5.20

 

une Nouvelle action est dispo

-- {"picture", <id_camera>, <id_user>,} -- {"picture", 2, 3} -- Envoi une capture de la caméra 2 à  l'utilisateur 3 // Send a capture of camera 2 to user 3

 

post-96-0-11258900-1421540307_thumb.png
 
Je l'ai testé en 3.591 mais cela devrait marcher en 4.x.  
je le mettrai dans GIT après votre validation

GEA.lua

Partager ce message


Lien à poster
Partager sur d’autres sites

Au sujet de la caméra, et pour l'ajout de nouvelles fonctionnalités en général à  GEA, il me vient une idée.

 

En fait, c'est pas forcément simple de penser à  implémenter toutes les actions existantes dans GEA, donc pourquoi ne pas créer une action générique, sur le modèle de :

fibaro:call(deviceID, actionName, parameter)

Ce qui nous donnerait un truc du style :

{"call", <id>, "action", "parameter"}

Et GEA se contenterait de passer l'action et les paramètres au module concerné.

 

Les experts en développement, c'est difficile à  implémenter ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

@lazer,

 

Implémenter ton exemple est simple mais cela soulève pas mal de problèmes. à‡a peut s'appliquer aux commandes les plus familières mais

par exemple pour la capture des images GEA va appeler "fibaro:call(camera, "sendPhotoToUser", destinataire)"  et donc cela ne correspond pas au schéma habituel (pour peu qu'il existe chez fibaro).

 

EDIT : si, ça correspond au pattern.. vais aller me coucher ! mais ça change pas mon point de vue :-)

 

GEA propose une interface stable et si on laisse passer les commandes de l'utilisateur en direct il ne va plus offrir d'isolation par rapport à  l'API fibaro. La migration V3 V4 le montre bien. Une fois GEA adapté tous nos scripts GEA passent. Sans cette isolation et le contrôle qui va avec, ce serait à  tous les utilisateur de GEA de faire des adaptations dans leurs scripts.

 

GEA est déjà  très complet et le peu qui manque peut être ajouté à  la demande et souvent très simplement. Perso, je pense qu'il vaut mieux ne pas introduire cette facilité mais tout ce discute. 

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà  la raison de la moindre disponibilité de @Steven:

gallery_192_120_71550.jpg

 

Môssieur a créé sa société et j'imagine qu'il continue officiellement de travailler en Suisse pour faciliter l'évasion fiscale.....

 

 

 

Il n'est pas utile de préciser que c'est pure invention...

  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

GEA.add({"Weather","rain"}, ...)

Envoyé de mon portable grâce à  mes petits doigts.

 

:D   :D  :D  :D   :D  :13:  :13:  :13:  :60:  :60:  :60:

 

Trop fort !  B)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 

Il n'est pas utile de préciser que c'est pure invention...

 

Comme je le disais ailleurs Mr Hans, nous sommes sur un forum ... d'élites :rolleyes: de la fine fleur :rolleyes: des cerveaux  ;) et génies  :D ... traçant le futur des maisons de demain du quidam moyen.

 

Probablement Inutile effectivement  :lol:

 

Quoique... j'ai parfois un doute  :P

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Tout d'abord, je suis impressionné par ce "GEA", c'est le top, réduction de plus de 50% de mes scènes.
Franchement, félicitations !!!
 
Cela fait maintenant plusieurs jours que je m'amuse avec, pour des scenes simples, je m'en sors pas trop mal, en tout cas cela fonctionne.  :60:
 
J'avoue que je n'ai pas lu toutes les 77 pages de ce tread, mais au moins plus de la moitié afin de prendre des exemples, c'est le bon endroit pour s'exercer.
Depuis hier matin, je suis sur une scene qui me paraissait simple à  faire avec GEA, mais j'avoue qu'après plusieurs heures et même très tard dans la nuit, je n'y comprend plus rien. Cette scene fonctionne, mais j'ai été obligé de mettre plusieurs choses qui ne me paraissent pas catholique. J'ai la forte impression d'avoir complexifié le tout.
Pourriez-vous jeter un coup d'oeil et me dire si c'est correct ?
 
quelques explications....
J'ai un IPX800 qui gère une lumière dans la cours d'entrée, un capteur de présence sur cet IPX, un sensor FIBARO sur ma porte d'entrée.

Le soir après le couché du soleil, si la porte d'entrée est s'ouvre, la lumière de la cours s'allume. 

l'IPX met à  jour la variable Cours sur le HC2 à  l'allumage et à  l'extinction de la lumière. Variable Cours à  0 ou a 1. L'IPX lumière Cours reste allumée pendant 3 min si pas de passage devant le détecteur, ou si la porte reste fermée.

La scene fonctionne, mais cela ne me parait très optimum.

 

Merci pour votre support

JL

--[[
%% autostart
%% properties
179 value
178 value
%% globals
Alarm_State
Cours
--]]

	local id = {
	SENSOR_ENTPRIN 	= 178,
   	VD_CAPTEURCOURS	= 93,
    	VD_SENSEE	= 223,
   	VD_IPX800	= 34,
    	SDBREZ_LUM	= 243,
    	SDBREZ_FANV1	= 253,
    	SDBREZ_FANV2	= 254,
    	VD_SIMULATIO	= 269,
    	VD_COURS	= 39,
	}

	-- Si Sunset et ouverture porte ou detection garage alors Lampe allumée, puis extinction après 3 minutes
  	GEA.add(id["SENSOR_ENTPRIN"], -1, "Cours On Sensor", {{"VirtualDevice", id["VD_IPX800"], "1"}, {"If",{{"Global", "JOUR_NUIT", "NUIT"}}}})  
  	GEA.add({"Global", "Cours", "1"}, -1, "Cours On", {{"VirtualDevice", id["VD_IPX800"], "1"}, {"If",{{"Global", "JOUR_NUIT", "NUIT"}}}})  
  	local LumCours = GEA.add({"Global", "Cours", "0"}, 1*30, "", {{"VirtualDevice", id["VD_IPX800"], "9"}})
	GEA.add({"Global", "Cours", "1"}, -1, "", {{"RestartTask", LumCours}})
	GEA.add(id["SENSOR_ENTPRIN"], 1*40, "", {{"VirtualDevice", id["VD_IPX800"], "9"}, {"If",{{"Global", "Cours", "0"}}}, {"Inverse"}})
	GEA.add({"Global", "Cours", "0"}, 15*60, "", {{"VirtualDevice", id["VD_IPX800"], "9"}, {"If",{{"Global", "Cours", "0"}}}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, je me lance,

 

Et comme ca, sans les "If" c'est moins lourd à  la lecture, à  tester par exemple :

local nuit = {"Global", "JOUR_NUIT", "NUIT"}
local coursOn = {"Global", "Cours", "1"}
local coursOff = {"Global", "Cours", "0"}

GEA.add ( {id["SENSOR_ENTPRIN"], nuit}, -1, "Cours On Sensor", {{"VirtualDevice", id["VD_IPX800"], "1"}})
GEA.add ( {coursOn, nuit}, -1, "Cours On", {{"VirtualDevice", id["VD_IPX800"], "1"}})
GEA.add ( coursOff, 15*60, "", {{"VirtualDevice", id["VD_IPX800"], "9"}})

PS : j'ai oublie les accolades ;-)

Modifié par pepite

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour votre aide, sa fonction nikel :60: 

local rgb = 190
         --- clear=claire
          -- cloudy=Nuageux 
          -- rain=Pluie 
         --- snow=Neige 
         --- storm=Tempete 
          -- fog=brouillard
 GEA.add({"Weather","cloudy"}, 5*60, "", {{"RGB", rgb, 0, 0, 0, 3}}

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite

 

Merci, mais je viens de m'apercevoir que ma scene ne fonctionne pas de toute manière.

J'ai retrouvé la lampe de la cours allumée. J'ai l'impression que cela ne fonctionne qu'une fois..

Il faut peut être ajouter un repeat.. je suis un peu perdu.

 

Par rapport au code proposé, si jamais la porte est refermée avant que le détecteur de la Cours ne détecte une personne, la lumière de la Cours s'éteindra ? Il ne faudrait pas ajouter un timer quelque part pour que celui-ci recommence de zéro si une détection arrive, ou si la porte est de nouveau ouverte?

local nuit = {"Global", "JOUR_NUIT", "NUIT"}
local coursOn = {"Global", "Cours", "1"}
local coursOff = {"Global", "Cours", "0"}
 
GEA.add ( {id["SENSOR_ENTPRIN"], nuit}, -1, "Cours On Sensor", {{"VirtualDevice", id["VD_IPX800"], "1"}})
GEA.add ( {coursOn, nuit}, 1*30, "Cours On", {{"VirtualDevice", id["VD_IPX800"], "1"}})
GEA.add ( coursOff, 5*60, "", {{"VirtualDevice", id["VD_IPX800"], "9"}})

ce serait quelque chose comme cela ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Je fais n'importe quoi, je corrige avec ce que "pepite" a proposé, je teste et reviens vers vous si besoin.

Merci.

 

Sinon, j'ai une autre question...

comment puis-je simplifier cela

  	GEA.add(id["CUIS_APPLIQUE"], 5*30, "", {{"Inverse"},{"Time", "Sunset-30", "23:29"}, {"If",{{"Global", "Alarm_State", "Disarmed"}}}, {"turnOn"}})
  	GEA.add(id["COUL_APPLIQUE"], 5*30, "", {{"Inverse"},{"Time", "Sunset-30", "23:29"}, {"If",{{"Global", "Alarm_State", "Disarmed"}}}, {"turnOn"}})

cela ne fonctionne pas lorsque je fais comme ci-après

  	GEA.add(id["CUIS_APPLIQUE"], id["COUL_APPLIQUE"], 5*30, "", {{"Inverse"},{"Time", "Sunset-30", "23:29"}, {"If",{{"Global", "Alarm_State", "Disarmed"}}}, {"turnOn"}})
 

il doit y avoir une syntaxe manquante...

Partager ce message


Lien à poster
Partager sur d’autres sites

en début de ligne gea, c'est un AND, pas un OR... il faut donc 2 lignes

 

p.s. clicke sur le lien "showroom gea" dans ma signature ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

@Arbu-JL, attention à  mes lignes comme tu dis ;-)

J'avais pas tout récrit, ce sont des exemples ;-) de la syntaxe si je ne me suis pas trompé ;-)

 

@+

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello,

 

@sebcbien - merci j'avais déjà  regarder, je vais regarder a nouveau vos exemples. Merci, c'est pas toujours évident...

 

@pepite - oui en effet, je vais revoir cela. de toute manière, je me suis connecté ce soir et la lumière de la cours était allumée. donc je vais retenter avec quelques modifications.

 

Pour ma compréhension, quelle est la différence entre ces deux lignes de code, le résultat sera t-il le même ?

local nuit = {"Global", "JOUR_NUIT", "NUIT"}
local coursOn = {"Global", "Cours", "1"}
GEA.add ( {coursOn, nuit}, -1, "Cours On", {{"VirtualDevice", id["VD_IPX800"], "1"}})

ligne que "@petite" a proposée, et celle ci 

peux importe le résultat derrière, je voudrais juste comprendre à  quelle position nous devons mettre les déclaration local nuit et local coursOn. Le If n'est il pas la condition pour que l'action se lance ?

local nuit = {"Global", "JOUR_NUIT", "NUIT"}
local coursOn = {"If",{{"Global", "Cours", "1"}}}
GEA.add({nuit}, -1, "Cours On", {{"VirtualDevice", id["VD_IPX800"], "1"}, coursOn})

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon je reprends à  zero pour ces 2 - 3 scenes, je re-lis attentivement la doc, d'ailleurs super bien faite et posterais mes 4-5 lignes quand cela fonctionnera.

On va y aller pas après pas  :)

merci a vous deux (pepite et sebcbien) pour votre aide, je suis quand même très impressionné par le travail de Steven  :13:

Partager ce message


Lien à poster
Partager sur d’autres sites

@arbu-jl, t'es bien le seul à  être impressionné par le travail de Steven et ce n'est pas son chef qui me contredira à  développer GEA pendant son travail  :2:

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous et surtout merci Steven pour ton travail car il me rend beaucoup service et me simplifie la vie  :P

 

Mais à  ce jour un petit blocage sur la règle ci-dessous qui ne fonctionne pas :

-- Si on détecte une présence et luminosité inférieur à  200 alors on allume la lumière
GEA.add({id['DETECTEUR_COUR'],{"Sensor-",id['LUMINOSITE_COUR'],200}}, -1, "", {{"turnOn", id["ECLAIRAGE_COUR"]}})

Les modules DETECTEUR COUR et LUMINOSITE COUR sont issues d'un multisensor d'AEON LABS.

 

Merci d'avance pour votre aide.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Ludwig

 

j'ai un doute concernant la variable 

  -- Si on détecte une présence et luminosité inférieur à  200 alors on allume la lumière

  
  local lumi = GEA.add({"Sensor-",id['LUMINOSITE_COUR'],200}

  GEA.add( id["DETECTEUR_COUR"], -1}, "", {{"turnOn", id["ECLAIRAGE_COUR"]}, lumi}})

Partager ce message


Lien à poster
Partager sur d’autres sites

@971jmd : Merci je testerai demain car si je me lève du lit pour coder ça risque de chauffer avec madame  :huh:

Partager ce message


Lien à poster
Partager sur d’autres sites

Nous avons tous le meme probleme avec nos madames   :2:

Partager ce message


Lien à poster
Partager sur d’autres sites

voila j'y suis arrivé

 

mai j'ai été obliger d'utilisé les IF 

--[[
%% autostart
%% properties

211 value

%% globals
--]] 

 local detecteurcour = 211
  local centretable = 40
  local deteclumino = 213
  
 
  local lumi = {"If", {{"Value-", deteclumino, 50}}} 
  GEA.add( detecteurcour, -1, "", {{"turnOn", centretable}, lumi})

Partager ce message


Lien à poster
Partager sur d’autres sites

je ne sais pas si le code d'origine pourrait marcher, mais il y avait un problème de parenthèses...

si la logique est bonne ça doit marcher:

local lumi = {"Sensor-",id['LUMINOSITE_COUR'],200}

GEA.add( id["DETECTEUR_COUR"], -1, "", {{"turnOn", id["ECLAIRAGE_COUR"]}, lumi })

Partager ce message


Lien à poster
Partager sur d’autres sites

oui j'ai tester mon code et sa fonctionne :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

@Arbu-jl :

A la lecture il est plus simple d'enlever les "if" qui se mettent dans les OPTIONS de GEA , donc à  la fin et de les mettre en début de ligne après la déclaration de variables : local courson =... et local nuit =... par exemple.

Cela permet de mettre des conditions multiples

Je ne suis pas un spécialiste, les "vrais" t'en diront pe plus ;-)

 

En me relisant, c'est un déclenchement instantané que tu souhaites (-1) et il manque le déclencheur dans ma ligne, un détecteur à  priori pour toi dans la cours. hihi. Je vais aller relire dans la journée ce que tu souhaites faire dans la cour pour essayer de t'aider mieux que ca ;-)

 

 

@Ludwig, @971jmd,@sebcbien

 

Et comme cela qu'en pensez-vous, ca ne fonctionnerait pas ? Pour mon apprentissage ;-)

local lumi = {"Sensor-",id['LUMINOSITE_COUR'],200}

GEA.add({id["DETECTEUR_COUR"],lumi}, -1, "", {{"turnOn", id["ECLAIRAGE_COUR"]}})
Modifié par pepite

Partager ce message


Lien à poster
Partager sur d’autres sites

×