Aller au contenu

Recommended Posts

SUPPORT GEA

______________

 

 

Le projet GEA ayant pris de l'ampleur, il n'est plus possible de regroupé toutes les questions/réponses, demandes de support et évolutions au sein d'un seul et même topic.

Ce topic est donc créer pour répondre à  vos questions, doutes, demandes d'assistance.

N'hésitez pas à  poser vos questions ici, la communauté sera contente de vous aider dans la mesure du possible


Projet GEA : Tutorial (dernière version disponible sur ce post)

Version actuel 5.40 : disponible sur GitHub (ancienne version)
 
Un Wiki est disponible (connexion pas forcément stable) : Wiki

  • Thanks 1
  • Upvote 6

Partager ce message


Lien à poster
Partager sur d’autres sites

FAQ

______________

 

 

Pourquoi le projet GEA

Initialement, ce script servait uniquement a vérifier si une porte était ouverte plus de X minutes. Fort, de constaté la difficulté que les utilisateurs avaient à  faire des scénarios complexes (plusieurs conditions, plusieurs actions), je me suis dit qu'en modifiant mon code, il serait éventuellement possible d'offrir une solution plus simple. A ce jour, une ligne de GEA remplace aisément un scénario complexe, et ce, grâce à  la communauté de ce forum.

 

 

Est-ce possible d'utiliser GEA sans recevoir de notification.

Oui, GEA envoi une notification que si le message contient quelque chose. Mettre "" comme message revient à  désactiver la notification.

 

 

GEA peut-il exécuter une opération à  une heure précises.

Non pour cela, je vous conseil le Scheduler. GEA vérifie les opérations a effectuer toutes les X secondes, il peut donc exécuter des opérations à  une heure proche de celle demandé mais pas à  une heure précise (+ ou - 30 secondes avec les paramètres par défaut).

 

 

Pourquoi si je demande à  GEA d'éteindre ma lumière après 45 secondes, il prend un peu plus de temps

GEA vérifie les opérations toutes les X secondes (30 par défaut). Si vous lui demandé de lancer une opération après 45 secondes, il ne pourra pas. Au premier passage (30s), il n'aura rien à  faire et va attendre 30 secondes pour se relancer. Au 2ème passage, il verra que votre délai de 45 secondes est échu et va lancer les commandes associées. Mais cela n'arrivera qu'au 2ème passage soit 2x30 secondes (1 minute) au lieu des 45 secondes demandées.

 

 

GEA respecte-t-il l'ordonnancement des commandes ?
Absolument, chaque ligne, chaque commande est stockée dans un tableau en respectant votre ordre de saisie et traite ces commandes séquentiellement. Vous pouvez donc mettre à  jour une variable globale à  la ligne 11 et vérifier cette dernière à  la ligne 12.

 

 

Qu'en est-il des performances

Il est difficile de vérifier les performances avec un langage aussi permissif que LUA. Les performances seront soumises aux nombres de commandes que vous allez saisir et leurs complexités. Néanmoins, la performance est le coeur de ma préoccupation et j'essaie de l'amélioré dès que possible. A ce jour, GEA vérifie mes 32 commandes (portes, batteries, ...) en moins de 4 centièmes de secondes.

 

 

Lorsque j'ouvre ma porte, mes commandes ne s'exécute pas immédiatement.
Afin que GEA puisse agir instantanément deux éléments sont primordiale :

1) L'ID doit être déclaré dans l'entête du script 2) la durée doit être fixée à  -1. 

 

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

 

 

Je souhaite recevoir la notification UNIQUEMENT par Email

GEA envoi les message directement par push dès qu'un message a été indiqué, puis par email si vous lui l'avez demandé. Pour lui demandé d'envoyer uniquement par Email, l'astuce consiste à  lui demander d'envoyé le push à  un smartphone inexistant.


GEA.add(16, -1, "Ouverture de la porte à  #time#, le #date#", {{"Email",2},{"Portable",0}})

 

Je n'ai pas très bien compris la notion de groupe.
Les groupes sont utilisés pour permettre à  GEA d'effectuer une commande UNIQUEMENT si toutes les commandes précédentes du même groupe ont été réalisées.


GEA.add(17, 5*60, "", {{"Group",1},{"Group",2}}) -- Lumière allumée depuis 5 mn.
GEA.add(18, 5*60, "", {{"Group",1}}) -- Porte ouverte depuis 5 mn.
GEA.add({"Group",1}, 5*60, "Porte ouverte et lampe allumé de puis plus de 5mn.")


 

Je souhaite que la lumière s'allume au levé du soleil mais pas avant 7h30
Depuis la version 3.30 GEA permet l'usage du paramètre Sunrise>07:30 ou Sunrise<07:30.


GEA.add(18, 60, "Allumage lumière",{{"Time", "Sunrise>07:30", "07:35"}, {"turnOn"}})

 

 

Est-ce possible d'allumer la WMC 1 heure avant ou après le levé du soleil ?
Depuis la version 3.30 GEA permet l'usage du paramètre Sunrise-60 ou Sunrise+60.


GEA.add(18, 60, "Allumage WMC",{{"Time", "Sunrise-60", "23:30"}, {"turnOn"}})
 

 

Je souhaite vérifier l'arrivée des enfants après l'école à  midi et le soir. Comment faire au plus simple ?
Vous pouvez vérifier l'ouverture de la porte à  des plages horaires et jours précis


GEA.add(17, -1, "Porte ouvertes à  #date# #time#",{{"Days","Monday,Tuesday,Thursday,Friday"},{"Time","11:30","13:30"}, {"Time","16:30","18:30"}})

 

 

GEA peut-il faire parler mon Karotz, Sarah, ...
Non, par contre vous pouvez mettre à  jour une variable globale puis activer une scéne ou un module virtuel qui lira la variable globale et fera parler votre lapin.


GEA.add(17, -1, "Porte ouvertes à  #date# #time#",{{"Global","Karotz", "La porte est ouverte"},{"VirtualDevice",91,"1"}})

 

 

Est-ce possible de demander à  GEA de fermer mes volets si la température est supérieur à  24° depuis plus de 10 minutes
Oui et cela de manière assez aisée grâce à  la communauté.


local thermometre, volet1, volet2 = 8, 22, 23

GEA.add({"Value+", thermometre, 24}, 10*60, "Fermeture des volets, température #value#", {{"Close",volet1},{"Close",volet2}})

 

 

GEA comme délesteur, est-ce possible?
Oui, il est possible d'éteindre quelques modules selon la consommation électrique.


local consommation, vmc = 9, 24

GEA.add({"Sensor+", consommation, 600}, 1*60, "Consommation #value# supérieur à  600W depuis 1 minute", {{"turnOff",vmc}})

 

 

Est-ce possible de recevoir comme notification le contenu d'une variable globale ?
Oui, c'est possible, quand une condition est correcte, GEA stock sa valeur dans une variable que vous pouvez utiliser pour les notifications.

Si la variable global "Message" n'est pas vide (Inverse) alors on envoi une notification contenant la valeur de la variable globale.

 

GEA.add({"Global", "Message", ""}, 1, "#value#", {{"Inverse"}})

 

 

 

* En cours de réalisation *

  • Like 1
  • Upvote 8

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu arrêtes quand ? tu te repose de temps en temps Steven ? :huh:

 

Mais alors là  le support GEA génial c'est une excellente idée :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

Super ce post cela sera nickel!!! Tu pourras rajouter nos demandes tordues dans ton deuxième post au fur et àmesure :60:;)

Partager ce message


Lien à poster
Partager sur d’autres sites

  Bonsoir à  tous... ou bonne nuit

 

 Des nouvelles des volets, je n'étais pas chez moi ce soir mais ils étaient bien fermés en rentrant (j'avais laissé l'Id112 fermé comme hier).

-- Vérifie que tout les volets soit ouvert de plus de 5% --- marge d'erreur de calibrage
local pas_ferme = {"If", {{"Value+", 112, 5}, {"Value+", 113, 5}, {"Value+", 114, 5}, {"Value+", 115, 5}}}
GEA.add({"Global", "", ""}, 15*60, "", {{"Value", 112, 0},{"Value", 113, 0},{"Value", 114, 0},{"Value", 115, 0},{"Time", "Sunset", "Sunrise"}}) -- Fermer Volets étage au coucher + 15min

Dois-je en conclure que je n'ai plus  besoin de la ligne avec la variable locale: pas_ferme?

Partager ce message


Lien à poster
Partager sur d’autres sites

J'approuve ta conclusion. Vu que de toute façon on veux les fermer, cela ne sert à  rien de vérifier quoi que ce soit. De plus, cela alourdi le code pour rien,

 

Bonne nuit :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonne initiative que ce topic, avec bonne explications sur les fonctions !

Par exemple je me demandais comment fonctionnait les groupes :)

 

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut à  tous

 

Steven Bonjour

 

Ces lignes me pose problème !! J'explique

 

Normalement j'ai créer ce code pour être informé de l'ouverture et de la fermeture de la porte de garage jusque la pas de de souci, mais aussitôt que la capteur ZG8101  "ID21"  change de position il m'avertis par notification Push mais arrête la porte en cour d'ouverture c'est la à  peu prés la même chose que ce post  http://www.domotique-fibaro.fr/index.php/topic/899-capteur-de-position-zg8101-et-module-fgs-221/    que l'on avait vu ensemble il y a quelque temps mais la je plante complètement comme la dernière fois d’ailleurs ;) . ce que j'ai fait pour détecter la cause c'est simplement désactivé les lignes 13 et 14 et là  c'est OK mais plus de notification Push alors si tu as une idée je suis preneur. 

 

D'avance merci Steven

-- GESTION FERMETURE PORTE DE GARAGE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GEA.add(21, 15*60, "La porte du garage est ouverte depuis plus de 15 minutes donc je la ferme #time#", {{"Time", "22:00", "06:00"} , {"Repeat"} ,{"Scenario", 39}})

-- Si le capteur de position 21 "ZG8101" est activé pendant 30 secondes entre 21:00 et 21:02 alors on ferme le garage ID 10 FGS 221 heure d'été.
GEA.add(21, 30, "Fermeture automatique nuit porte de garage #time#", {{"Time","21:00", "21:02"},{"turnOn", 10}, {"Repeat"},{"DST"}})

-- Si le capteur de position 21 "ZG8101" est activé pendant 30 secondes entre 20:00 et 20:02 alors on ferme le garage ID 10 FGS 221 heure d'hiver.
GEA.add(21, 30, "Fermeture automatique nuit porte de garage #time#", {{"Time","20:00", "20:02"},{"turnOn", 10}, {"Repeat"},{"NOTDST"}})

-- Notification Push Ouverture / fermeture porte de Garage 
GEA.add(21, -1 , "Ouverture porte de garage #time#",{{"Time","06:00","00:00"},{"turnOn",10}})              -- Option temps {{"Time","06:00","00:00"} --
GEA.add(21, -1 , "Fermeture porte de garage #time#",{{"Time","06:00","00:00"},{"Inverse"},{"turnOff",10}}) -- Option temps {{"Time","06:00","00:00"} --
-----------------------------------------------------------------------------------------------------------------------------------------------------------

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour Steven,

 

Je te soumets un problème.

 

Voici deux actions très simples que j'utilise:

- quand la porte d'entrée s'ouvre, j'allume le couloir.

- quand la lampe du couloir est allumée depuis 3mn, je l'éteins.

 

Cette lampe est commandée par un FGD que l'on peut paramétrer pour savoir si l’on a allumé la lampe directement avec l'interrupteur (au lieu de la box).

Le retour de l'info se fait "par sceneActivation":

--[[
%% properties
48 sceneActivation
--]]

Mon but est de transformer les 3mn et 10mn: si on allume cette lampe depuis l'interrupteur se trouvant dans le couloir, on peut présumer que l'on veut rester dans ce couloir plus longtemps pour accéder aux placards par exemple. Cette lampe devrait s'éteindre automatique dans 10mn par exemple au lieu des 3mn.

 

Peut-être qu'il faut mettre la tâche "3mn" en pause, le temps que la nouvelle tâche immédiate "10mn" se termine.

Ou bien une fonction "GEA.delete" pour que la tâche immédiate "10mn" supprime la tâche "3mn" et la recrée quand elle se terminera.

 

Comprends-tu mes explications ?

Ma demande a-t-elle du sens pour toi et aussi pour les autres membres ?

 

Merci. 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 

Salut à  tous

 

Steven Bonjour

 

Ces lignes me pose problème !! J'explique

 

Normalement j'ai créer ce code pour être informé de l'ouverture et de la fermeture de la porte de garage jusque la pas de de souci, mais aussitôt que la capteur ZG8101  "ID21"  change de position il m'avertis par notification Push mais arrête la porte en cour d'ouverture c'est la à  peu prés la même chose que ce post  http://www.domotique-fibaro.fr/index.php/topic/899-capteur-de-position-zg8101-et-module-fgs-221/    que l'on avait vu ensemble il y a quelque temps mais la je plante complètement comme la dernière fois d’ailleurs ;) . ce que j'ai fait pour détecter la cause c'est simplement désactivé les lignes 13 et 14 et là  c'est OK mais plus de notification Push alors si tu as une idée je suis preneur. 

 

D'avance merci Steven

-- GESTION FERMETURE PORTE DE GARAGE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GEA.add(21, 15*60, "La porte du garage est ouverte depuis plus de 15 minutes donc je la ferme #time#", {{"Time", "22:00", "06:00"} , {"Repeat"} ,{"Scenario", 39}})

-- Si le capteur de position 21 "ZG8101" est activé pendant 30 secondes entre 21:00 et 21:02 alors on ferme le garage ID 10 FGS 221 heure d'été.
GEA.add(21, 30, "Fermeture automatique nuit porte de garage #time#", {{"Time","21:00", "21:02"},{"turnOn", 10}, {"Repeat"},{"DST"}})

-- Si le capteur de position 21 "ZG8101" est activé pendant 30 secondes entre 20:00 et 20:02 alors on ferme le garage ID 10 FGS 221 heure d'hiver.
GEA.add(21, 30, "Fermeture automatique nuit porte de garage #time#", {{"Time","20:00", "20:02"},{"turnOn", 10}, {"Repeat"},{"NOTDST"}})

-- Notification Push Ouverture / fermeture porte de Garage 
GEA.add(21, -1 , "Ouverture porte de garage #time#",{{"Time","06:00","00:00"},{"turnOn",10}})              -- Option temps {{"Time","06:00","00:00"} --
GEA.add(21, -1 , "Fermeture porte de garage #time#",{{"Time","06:00","00:00"},{"Inverse"},{"turnOff",10}}) -- Option temps {{"Time","06:00","00:00"} --
-----------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

C'est bon Steven ne te casse pas la tête  j'ai créer une Variable "ouverture" "fermeture" et maintenant c'est ok je reçois bien mes notifications Push comme je voulais  :)

Partager ce message


Lien à poster
Partager sur d’autres sites

@Diuck

-- Notification Push Ouverture / fermeture porte de Garage 
GEA.add(21, -1 , "Ouverture porte de garage #time#",{{"Time","06:00","00:00"}})              -- Option temps {{"Time","06:00","00:00"} --
GEA.add(21, -1 , "Fermeture porte de garage #time#",{{"Time","06:00","00:00"},{"Inverse"}}) -- Option temps {{"Time","06:00","00:00"} --

OK, tant mieux ... sinon, il fallait juste enlever les "turnOn" et "turnOff" car cela indique à  GEA d'envoyer un on ou off au module ... donc de stopper ta porte.

 

@Shyrka973

J'ai un peu la même problématique que toi que j'ai réglé par l'usage d'une variable globale "SourceLumiere". Je la met à  "1" si l'allumage est provoqué par l'ouverture de la porte ou "2" si on active pas l'interrupteur

-- 48 id interrupteur, 6 id porte, 15 id lumière

GEA.add(6, -1, "", {{"Global", "SourceLumiere", "1"}, {"turnOn",15}}
GEA.add(48, -1, "", {{"Global", "SourceLumiere", "2"}, {"turnOn",15}}

GEA.add(15, 3*60, "", {{"turnOff"}, {{"If",{{"Global", "SourceLumiere", "1"}}}}}
GEA.add(15, 10*60, "", {{"turnOff"}, {{"If",{{"Global", "SourceLumiere", "2"}}}}}

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 Pour gérer la lumière d'un placard, j'ai deux capteurs d'ouverture de porte ID 19 et 20.

Avec le GEA pour allumer immédiatement la lumière ID 18 si au moins une porte est ouverte:

GEA.add(19, -1, "" ,{{"turnOn", 18}})
GEA.add(20, -1, "" ,{{"turnOn", 18}})

Mais comment pourrais-je faire pour éteindre immédiatement la lumière si les deux portes sont fermées?

 

J'ai tenté avec un groupe

GEA.add(19, -1, "", {{Inverse},{"Group", 1}})
GEA.add(20, -1, "", {{Inverse},{"Group", 1}})
GEA.add({"Group", 1}, 30, "", {{"turnOff", 18}})

Mais bien entendu l'extinction n'est pas immédiate et toute les 30 s un turnOff est envoyé à  18, pas optimal...

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Steven.

 

C'est plus simple que je le pensais.

 

Mais l'id lumière et l'id interrupteur se sont les mêmes, car c'est le même FGD. Il faudrait pouvoir mettre ceci au début du script:

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

Comment faire pour séparer les deux évènements: value et sceneActivation ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@Shyrka973

A l'heure actuel, GEA n'est pas capable de faire la distinction entre 48 sceneActivation et 48 value.

Par contre, en regardant l'exemple que tu m'as soumis, tu n'as pas besoin du "48 value". 

 

--[[
%% autostart
%% properties
6 value
48 sceneActivation
%% globals
--]]
... 
GEA.add(6, -1, "", {{"Global", "SourceLumiere", "1"}, {"turnOn",48}}
GEA.add(48, -1, "", {{"Global", "SourceLumiere", "2"}, {"turnOn",48}}
 
GEA.add(48, 3*60, "", {{"turnOff"}, {{"If",{{"Global", "SourceLumiere", "1"}}}}}
GEA.add(48, 10*60, "", {{"turnOff"}, {{"If",{{"Global", "SourceLumiere", "2"}}}}}

Partager ce message


Lien à poster
Partager sur d’autres sites

@Hansolo

Voici, voilà

Si l'id 19 a déclenché la scène et qu'il est éteint on vérifie que 20 est aussi éteint (<1) et on éteint la lumière, idem pour le 20

GEA.add(19, -1, "", {{"Inverse"}, {"If",{{"Value-",20,1}}}, {"turnOff",18}}
GEA.add(20, -1, "", {{"Inverse"}, {"If",{{"Value-",19,1}}}, {"turnOff",18}}
Comme ceci, tu restes en immédiat.
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@Shyrka973

Si tu as le courage, pourrais-tu tester ce code ... avec la version du GEA ci-joint ?

 

--[[
%% autostart
%% properties
6 value
48 sceneActivation
%% globals
--]]
... 

local id_de_ta_scene = 16
GEA.add(6, -1, "", {{"Global", "SourceLumiere", "1"}, {"turnOn",48}}
GEA.add({"SceneActivation",48, id_de_ta_scene}, -1, "", {{"Global", "SourceLumiere", "2"}, {"turnOn",48}}
 
GEA.add(48, 3*60, "", {{"turnOff"}, {{"If",{{"Global", "SourceLumiere", "1"}}}}}
GEA.add(48, 10*60, "", {{"turnOff"}, {{"If",{{"Global", "SourceLumiere", "2"}}}}}
Dans tout les cas, merci d'avance.

GEA.lua

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

 

Un grand merci.

 

Etant au boulot en ce moment, je ne peux pas tester mais je mets en place à  distance une nouvelle scène "GEA Test" avec ce nouveau script. Ma scène "GEA" sera désactivée. J'utilise ceci actuellement:

--[[
%% autostart
%% properties

29 value
44 value

%% globals
--]]

--8<--

local KarotzID = 38
local iPhoneID = 4
local iPad = 5

GEA.checkEvery = 30
GEA.portables = {iPhoneID}

-- Si un choc (44) sur la porte de la cuisine, on allume la lampe du couloir (48)
GEA.add(44, -1, "Choc sur la porte de la cuisine à  #time#.", {{"Value", 48, 50}})

-- Porte de la cuisine (29) ouverte
GEA.add(29, -1, "La porte de la cuisine ouverte à  #time#.")

-- Porte de la cuisine (29) fermée
GEA.add(29, -1, "La porte de la cuisine fermée à  #time#.", {{"Inverse"}})

-- Lorsque la porte de la cuisine (29) est ouverte, allumer la lampe du couloir (48) à  50% si la luminosité du salon (15) est à  100
GEA.add(29, -1, "", {{"Value", 48, 50}, {"If", {{"Value-", 15, 100}}} })

-- Bienvenu à  Adréinna entre 15h15 et 15h45 et entre 16h15 et 16h45
GEA.add(29, -1, "", {{"Global", "karotz", "Bienvenu Adréinna !!!"}, {"VirtualDevice", KarotzID, 4}, {"Time", "15:15", "15:45"}, {"Time", "16:15", "16:45"}})

-- Eteindre la lampe du couloir (48) après 3mn
GEA.add(48, 3*60, "", {{"turnOff",48}})

Je transforme avec tes paramètres pour tester ce midi.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

 

La scène "GEA Test" contient ceci maintenant:

--[[
%% autostart
%% properties

29 value
44 value
48 sceneActivation

%% globals
--]]

--8<--

local KarotzID = 38
local iPhoneID = 4
local iPad = 5
local sceneID = 17

GEA.checkEvery = 30
GEA.portables = {iPhoneID}

-- Si un choc (44) sur la porte de la cuisine, on allume la lampe du couloir (48)
GEA.add(44, -1, "Choc sur la porte de la cuisine à  #time#.", {{"Global", "SourceLumiere", "3"}, {"Value", 48, 50}})

-- Porte de la cuisine (29) ouverte
GEA.add(29, -1, "La porte de la cuisine ouverte à  #time#.")

-- Porte de la cuisine (29) fermée
GEA.add(29, -1, "La porte de la cuisine fermée à  #time#.", {{"Inverse"}})

-- Lorsque la porte de la cuisine (29) est ouverte, allumer la lampe du couloir (48) à  50% si la luminosité du salon (15) est à  100
GEA.add(29, -1, "", {{"Global", "SourceLumiere", "1"}, {"Value", 48, 50}, {"If", {{"Value-", 15, 100}}} })

-- Bienvenu à  Adréinna entre 15h15 et 15h45 et entre 16h15 et 16h45
GEA.add(29, -1, "", {{"Global", "karotz", "Bienvenu Adréinna !!!"}, {"VirtualDevice", KarotzID, 4}, {"Time", "15:15", "15:45"}, {"Time", "16:15", "16:45"}})

-- Eteindre la lampe du couloir (48) après 3mn si allumer par ouverture de la porte de la cuisine (29)
GEA.add(48, 3*60, "", {{"turnOff"}, {{"If",{{"Global", "SourceLumiere", "1"}}}}})

-- Eteindre la lampe du couloir (48) après 10mn si allumer par interrupteur (48)
GEA.add(48, 10*60, "", {{"turnOff"}, {{"If",{{"Global", "SourceLumiere", "2"}}}}})

-- Eteindre la lampe du couloir (48) après 30s si allumer par détection de choc (44)
GEA.add(48, 30, "", {{"turnOff"}, {{"If",{{"Global", "SourceLumiere", "3"}}}}})

Qu'en penses-tu ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

 

J'ai cette erreur à  l'activation de la scène dans la fonction "GEA.log":

[ERROR] 09:48:09: line 787: attempt to concatenate field '?' (a table value)

Cette ligne correspond à  ceci pour moi:

                                msg = msg .. entry[GEA.keys["PARAMS"]][i][j] .. ","
  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Parfait hormis les ligne 39, 42 et 45 ou là  tu as mis beaucoup, beaucoup de {} ;)

 

Il n'y a rien qui mette la "SourceLumiere" à  2 et j'espère que tu n'as pas été aussi bête que moi et que tu as bien créer la variable dans le panneau :).

 

Voici la correction des {} qui plantait l’exécution.

GEA.add(44, -1, "Choc sur la porte de la cuisine à  #time#.", {{"Global", "SourceLumiere", "3"}, {"Value", 48, 50}})
 
-- Porte de la cuisine (29) ouverte
GEA.add(29, -1, "La porte de la cuisine ouverte à  #time#.")
 
-- Porte de la cuisine (29) fermée
GEA.add(29, -1, "La porte de la cuisine fermée à  #time#.", {{"Inverse"}})
 
-- Lorsque la porte de la cuisine (29) est ouverte, allumer la lampe du couloir (48) à  50% si la luminosité du salon (15) est à  100
GEA.add(29, -1, "", {{"Global", "SourceLumiere", "1"}, {"Value", 48, 50}, {"If", {{"Value-", 15, 100}}} })
 
-- Bienvenu à  Adréinna entre 15h15 et 15h45 et entre 16h15 et 16h45
GEA.add(29, -1, "", {{"Global", "karotz", "Bienvenu Adréinna !!!"}, {"VirtualDevice", KarotzID, 4}, {"Time", "15:15", "15:45"}, {"Time", "16:15", "16:45"}})
 
-- Eteindre la lampe du couloir (48) après 3mn si allumer par ouverture de la porte de la cuisine (29) ou détection de choc (44)
GEA.add(48, 3*60, "", {{"turnOff"}, {"If",{{"Global", "SourceLumiere", "1"}}}})
 
-- Eteindre la lampe du couloir (48) après 10mn si allumer par interrupteur (48)
GEA.add(48, 10*60, "", {{"turnOff"}, {"If",{{"Global", "SourceLumiere", "2"}}}})
 
-- Eteindre la lampe du couloir (48) après 30s si allumer par détection de choc (44)
GEA.add(48, 30, "", {{"turnOff"}, {"If",{{"Global", "SourceLumiere", "3"}}}})

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

 

Il avait une accolade en trop devant les "If". La scène devient ceci:

--[[
%% autostart
%% properties

29 value
44 value
48 sceneActivation

%% globals
--]]

--8<--

local KarotzID = 38
local iPhoneID = 4
local iPad = 5
local sceneID = 17

GEA.checkEvery = 30
GEA.portables = {iPhoneID}

-- Si un choc (44) sur la porte de la cuisine, on allume la lampe du couloir (48)
GEA.add(44, -1, "Choc sur la porte de la cuisine à  #time#.", {{"Global", "SourceLumiere", "3"}, {"Value", 48, 50}})

-- Porte de la cuisine (29) ouverte
GEA.add(29, -1, "La porte de la cuisine ouverte à  #time#.")

-- Porte de la cuisine (29) fermée
GEA.add(29, -1, "La porte de la cuisine fermée à  #time#.", {{"Inverse"}})

-- Lorsque la porte de la cuisine (29) est ouverte, allumer la lampe du couloir (48) à  50% si la luminosité du salon (15) est à  100
GEA.add(29, -1, "", {{"Global", "SourceLumiere", "1"}, {"Value", 48, 50}, {"If", {{"Value-", 15, 100}}} })

-- Bienvenu à  Adréinna entre 15h15 et 15h45 et entre 16h15 et 16h45
GEA.add(29, -1, "", {{"Global", "karotz", "Bienvenu Adréinna !!!"}, {"VirtualDevice", KarotzID, 4}, {"Time", "15:15", "15:45"}, {"Time", "16:15", "16:45"}})

-- Eteindre la lampe du couloir (48) après 3mn si allumer par ouverture de la porte de la cuisine (29)
GEA.add(48, 3*60, "", {{"turnOff"}, {"If",{{"Global", "SourceLumiere", "1"}}}})

-- Eteindre la lampe du couloir (48) après 10mn si allumer par interrupteur (48)
GEA.add(48, 10*60, "", {{"turnOff"}, {"If",{{"Global", "SourceLumiere", "2"}}}})

-- Eteindre la lampe du couloir (48) après 30s si allumer par détection de choc (44)
GEA.add(48, 30, "", {{"turnOff"}, {"If",{{"Global", "SourceLumiere", "3"}}}})

Et elle se lance:

[DEBUG] 10:11:12: [ 48 | Lampe ] Add Autostart : ajout de la tache pour 180 secondes [turnOff] [if..]
[DEBUG] 10:11:12: [ 48 | Lampe ] Add Autostart : ajout de la tache pour 600 secondes [turnOff] [if..]
[DEBUG] 10:11:12: [ 48 | Lampe ] Add Autostart : ajout de la tache pour 30 secondes [turnOff] [if..]
[DEBUG] 10:11:12: GEA Version 3.3 : running...

 

 

Le numero de version du script est à  changer: 3.3 -> 3.4.

 

Ce midi, je teste la scène.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

 

Nos posts se sont croisés :D

 

J'ai bien créé la variable globale. Je suis très impatient de tester ceci à  midi.

Ma fille rentre une heure avant moi aujourd'hui. Elle feras les premiers tests pour moi :D

 

Tu auras les premiers retours d'ici une heure.

 

Merci encore pour tout ce travaille accompli. B)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

 

J'ai oublié d'ajouter ceci:

-- On allume la lampe du couloir si on appuie sur l'interrupteur
GEA.add({"SceneActivation",48, sceneID}, -1, "", {{"Global", "SourceLumiere", "2"}})

J'ai enlevé le "turnOn" dans la ligne car l'interrupteur le fait par défaut dans mon cas.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×