Aller au contenu

Recommended Posts

 

@bobobull

Comme ca sans reflechir, pas la syntaxe en tete, mais pour moi Property n'etait qu'une condition et non une OPTIONS, je n'ai jamais testé, attendons lavis des experts.

 

Sinon en attendant, tu peux utiliser cela :

GEA.add( true , 1*60 , "Test Sonos Volume Terrasse" , {{"Function", function() fibaro:call(id["SONOS_TERRASSE"], "setVolume", "33") end}})

 

Je confirme .. bien vu @pepite

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

sinon @bobobull,

 

je viens d'y penser, tu peux aussi slider le volume ;-)

la syntaxe :

{“Sliderâ€, <id_module>, <id_slider>, <valeur>} Met la valeur dans le slider du module {“Sliderâ€, 19, 1, 21.3}

Partager ce message


Lien à poster
Partager sur d’autres sites

J'essai d’optimiser mon GEA et j'ai une petite question pour toi, @Steven,

 

les "IF" sont pénalisant ou je peux les laisser?

 

sur des lignes comme la suivante, je n'arrive pas à  intégrer des conditions non "IF" 

local CAFE_OFF = {"If",{{"Global", "CAFE", "OFF"}}}
local CP =  {"If",{{"Global", "Aujourdhui", "1"}}}
GEA.add(true, 30, "", {{"turnOn", id["CAFETIERE"]},{"Global", "CAFE", "ON"},{"Time", "10:00", "10:01"},{"Days", "All"},CP,CAFE_OFF})

Partager ce message


Lien à poster
Partager sur d’autres sites

@frederic,

 

suis pas @steven, je le laisse répondre pour les "IF" ;-)

 

tu peux faire comme ceci :

local CAFE_OFF = {"Global", "CAFE", "OFF"}
local CP =  {"Global", "Aujourdhui", "1"}
GEA.add({CP, CAFE_OFF}, 30, "", {{"turnOn", id["CAFETIERE"]},{"Global", "CAFE", "ON"},{"Time", "10:00", "10:01"}})
  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Tout est dit ... encore merci @pepite

 

 

Edit : tu peux les laisser mais si un jour GEA évolue, les IF devraient définitivement disparaître.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci àvous deux.

Arfff.....Ça marche nickel comme ça, ça me donne la migraine juste de penser àdevoir changer toutes mes lignes :-(

Je vais les faire petit àpetit, essayer la syntaxe de @pepite mais j'avais déjàessayé et je n'ai toujours qu'une conditions de prise en compte, La première .

Le principal, c'est que je sois sûre que ça ne crée pas de problème actuellement.

Partager ce message


Lien à poster
Partager sur d’autres sites

 

sinon @bobobull,

 

je viens d'y penser, tu peux aussi slider le volume ;-)

la syntaxe :

{“Sliderâ€, <id_module>, <id_slider>, <valeur>} Met la valeur dans le slider du module {“Sliderâ€, 19, 1, 21.3}

 

Pas réussi avec le slider mais la technie "function" me convient.

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

@Frederic

qu '1 condition ? bizarre a tester

 

@bobobull,

 

Le slider devrait fonctionner sans souci

@sakkhho utilise ceci par exemple :

GEA.add({"Global", "Tele", "On"}, 30, "", {{"Slider", id["SONOS_REMOTE"], 15, 80}}) -- On fixe le son de la PlayBar à  80%

Partager ce message


Lien à poster
Partager sur d’autres sites

@Pepite

 

Ouais mais ce code, il me semble que c'est pour le Virtual Device de kirkrof, pas pour le PlugIn.

 

Je n'ai pas créé un VD par Sonos, j'en ai mis qu'un pour "piloter un groupe de sonos". Pour le reste (volume principalement) les plugIns font l'affaire.

Partager ce message


Lien à poster
Partager sur d’autres sites

ah ok @bobobull, dans ce cas, je n'avais pas compris que tu utilisais les plugins et non le VD de @krikroff

 

hann pas bien de ne pas l'utiliser :P :P

Partager ce message


Lien à poster
Partager sur d’autres sites

@Pepite oui j'ai bien créé une variable GEA_Tasks et une variable GEA2_Tasks dans le Panneau des variables mais cela ne fonctionne pas.

Partager ce message


Lien à poster
Partager sur d’autres sites

@soulac, ben c'est bien là  le souci, tu nous as mis ceci :

 

Dans ma scène GEA Test j'ai changé

 

GEA.globalTasks = "GEA_Tasks_Test"

 

par

 

GEA.globalTasks = "GEA_Tasks"

 

Dans ta scene GEA Test, tu devrais avoir plutot cela alors :

GEA.globalTasks = "GEA2_Tasks"

Et ta scene GEA de Prod :

GEA.globalTasks = "GEA_Tasks"

Ta variable Globale GEA_Tasks_Test n'a pas l'air d'exister dans le panneau de variables.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Pepite si si je me suis ma exprimé mes hier soir j'ai changé dans ma scène la variable 

GEA.globalTasks = "GEA_Tasks_Test"

par 

GEA.globalTasks = "GEA2_Tasks"

et dans mon panneau de variable j'ai supprimé ma variable GEA_Tasks_Test par GEA2_Tasks

 

en faisant sa, dans ma scéne GEA test cela ne fonctionne pas, mais si je remet dans ma scène GEA test GEA.globalTasks = "GEA_Tasks"

 

cela fonctionne mais j'ai deux scènes GEA qui tourne sur la même variable GEA_Tasks et sa comme tu me la dit ce n'est pas bon  :(  :(

 

Donc je ne comprend pas pourquoi cela ne fonctionne pas.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour @soulac,

heuuu alors la je ne comprends pas non plus. :-(

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous, 

 

Je suis au bout du monde et ma femme de mange m'a appris que les scripts GEA ne fonctionnaient plus depuis 15 jours ... 

Petite question, je suis le seul a pas rebooter ma HC2 ou a pas enregistrer GEA au moins une fois pas mois ?

Je pose la question car si je reboot ou si j'enregistre GEA sans modification, cela fonctionne de nouveau pour une vingtaine de jour ...

 

J'ai vu un VD pour rebooter une HCL, cela peut il passer sur une HC2 ?

 

Merci pour vos retours

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@jerome, mets le watchdog de @Lazer si tu peux

moi ca fait longtemps que je n'ai pas reboote GEA

Partager ce message


Lien à poster
Partager sur d’autres sites

moi j'ai une ligne GEA qui reboot ma HC2 si j'ai moins de 10% de RAM libre - reboot dans la nuit, c'est invisible

j'ai le watchdog qui surveille aussi GEA, mais c'est très rare que ça plante

Partager ce message


Lien à poster
Partager sur d’autres sites

@Sakkhho: Peux-tu partager ton code pour rebooter la HC2 quand la ram libre est minime ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Franchement je ne comprend pas se qui se passe  :angry:  :angry:  :angry:

 

Je met le code suivant dans une scène.

--[[
%% autostart
%% properties
25 value
168 value
134 value
%% globals
--]]


-- v 5.40
-- Optimisation possible, cf : GEA.optimize = GEA.typeOptimize["IMEDIATE_ONLY"]
-- ==================================================
-- GEA : Gestionnaire d'Evénements Automatique
-- ==================================================
-- [FR] Scénario permettant de contrôler si une périphérique est 
-- activé depuis trop longtemps ou lancer un push d'avertissement
-- Ce scénario permet une annotation plus simple que le code LUA
-- il nécessite néanmoins quelques connaissances
--
-- [EN] This scene allow you to check every X second the status
-- of a module and send actions if the module is activated since too long.
-- This scene allow you a more simple annotation than LUA
-- it requires some knowledge
--
-- Auteur : Steven P. with modification of Hansolo and Shyrka973
-- Version : 5.40
-- Special Thanks to :
-- jompa68, Fredric, Diuck, Domodial, moicphil, lolomail, byackee,
-- JossAlf, Did,  sebcbien, chris6783 and all other guy from Domotique-fibaro.fr
-- ------------------------------------------------------------
-- Historique / History
-- ------------------------------------------------------------
-- L'historique complet est diponible ici :
-- http://www.domotique-fibaro.fr/index.php/topic/1082-gea-gestionnaire-dévénements-automatique/?p=12428

function yourcode()
  -- ==================================================
  -- [FR] A VOUS DE JOUER
  -- [EN] YOUR TIME TO PLAY
  -- ==================================================
  GEA.isVersionFour = true --- On est en version 4.017 Beta ou suppérieur
  
  -- [FR] Votre langue : FR (default)
  -- [EN] Your language : EN
  GEA.language = "FR";
  
  -- [FR] On vérifie toutes les X secondes  (default : 30)
  -- [EN] Check every X seconds
  GEA.checkEvery = 30 
  
  -- [FR] Liste des portables devant recevoir une notification {70, 71}
  -- [EN] Smarphones you want to be notified {XX, XX} for more than one
  GEA.portables = {16} 
  
  -- [FR] Affichage des traces dans la console (default : false)
  -- [EN] Show trace in the debug window
  GEA.debug = false
  --GEA.catchError=false

  -- option : GEA.typeOptimize["NONE"], GEA.typeOptimize["IMEDIATE_ONLY"], GEA.typeOptimize["ALL"]
  -- permet d'optimiser les soucis liés au getName et getRoom de fibaro mais n'affiche plus le nom des modules concernés.
  GEA.optimize = GEA.typeOptimize["IMEDIATE_ONLY"]

  -- [FR] Tableau d'identifiant (facultatif)
  -- [EN] ID table (optional)
  
 	local id = { 
	-- entree
--	OUVERTURE_ENTREE = 25,
--  	SPOT_ENTREE = 118,
	
	-- salon
--	VR_SALON = 129,
--    OUVERTURE_SALON = 40,
--    LUSTRE_SALON = 114,
    D_MOUV_SALON = 168,
--    D_LUM_SALON = 123,
--    D_TEMP_SALON = 122,
--    NEATO = 116,
	
	-- salle a manger
--	VR_SAM = 76,
--    OUVERTURE_SAM = 34,
--    LUSTRE_SM = 80,
	 
	-- cuisine
--	OUVERTURE_CUI = 28,
    SPOT_CUISINE = 82,
	
	-- chambre mateo
--	VR_CHAMBRE_M = 131,
--    OUVERTURE_CH_M = 42,
--    D_MOUV_CHM = 95,
	
	-- chambre parental
--	VR_CHAMBRE_P = 142,
    LUSTRE_PARENTAL = 140,
    D_MOUV_PARENTAL = 134,
	
	-- couloir
	
	-- salle de bain
	
	-- exterieur
--	D_LUM_EXT = 148,
--    D_TEMP_EXT = 147,
--    D_MOUV_EXT = 146,
	  
	   
	-- Virtual Device
    
--	VD_PRESENCE_SEB = 161,
--    VD_PRESENCE_CEL = 164,
    
--    VD_SUNSET_SUNRISE = 112,
	
--	VD_TEMP = 144,
	
	}
  
  -- ------------------------------------------------------------
  -- [FR] Variable Globale optionnel pour autorisé GEA de s'exécuté
  -- [FR] Usage : GEA.getGlobalForActivation = {"<globalvar>", "<value pour autoriser l'execution>"}
  -- [EN] Optional Global Variable to allow GEA to run
  -- [EN] Usage : GEA.getGlobalForActivation = {"<globalvar>", "<value for activation>"}
  -- ------------------------------------------------------------
  --GEA.getGlobalForActivation = {"SuspendreGEA", "non"}

  -- ----------------------------------------------------------------
  -- [FR] A partir d'ici vous trouverez ma propre configuration
  -- [FR] vous permettant ainsi d'avoir une série d'exemple
  -- [EN] From here are ma own configuration
  -- [EN] just to allow you to see some examples
  -- ----------------------------------------------------------------

	-- Condition

  
		-- Ouverture volet à  10h00 en mode Travail si maman dans le salon
--  	GEA.add({JourMaison,Presence_Maman}, 30, "Ouverture Volet Jour Travail et Maman" , {{"Time","12:15","12:16"},{"Open",id["VR_SALON"],100},{"Open",id["VR_SAM"],100}})

	-- ==================================================
    -- CUISINE
    -- ==================================================
  
	-- Si déjà  Allumé, Re-Allumage à  70% dès que détection mouvement sauf si module déjà  a + de 64% (économie Z-Wave)
	GEA.add({id["D_MOUV_SALON"],{"Value+", id["SPOT_CUISINE"], 1},{"Value-", id["SPOT_CUISINE"],64}}, -1, "allumage",{{"Value", id["SPOT_CUISINE"], 65}})
    -- Après 10min on dimme la lampe à  34% si pas de mouvement 
	local malampesam = GEA.add({"Value+", id["SPOT_CUISINE"],64}, 2*60, "",{{"Value", id["SPOT_CUISINE"], 54},{"Repeat"}})
	-- Après 3 min on met la lampe à  65% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est entre 1 et 35 
	local malampesamdim = GEA.add({{"Value-", id["SPOT_CUISINE"],55},{"Value+", id["SPOT_CUISINE"], 1}}, 1*60,"dim",{{"Value", id["SPOT_CUISINE"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"}},{"Repeat"})
    -- Relance des tâches en cas de détection pendant 30 secondes et si la lampe est allumée (économise GEA)
--	GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, 30, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim},{"Repeat"}})   
	GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, 30, "", {{"RestartTask", malampesam},{"Repeat"}})   
	GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, 30, "", {{"RestartTask", malampesamdim},{"Repeat"}})   
	  
  -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA)
--	GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, -1, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim}}) 
	GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, -1, "", {{"RestartTask", malampesam}}) 
	GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, -1, "", {{"RestartTask", malampesamdim}}) 
	  

    -- ==================================================
    -- CHAMBRE PARENTAL
    -- ==================================================
  
	-- Si déjà  Allumé, Re-Allumage à  65% dès que détection mouvement sauf si module déjà  a + de 64% (économie Z-Wave)
	GEA.add({id["D_MOUV_PARENTAL"],{"Value+", id["LUSTRE_PARENTAL"], 1},{"Value-", id["LUSTRE_PARENTAL"],64}}, -1, "",{{"Value", id["LUSTRE_PARENTAL"], 65}})
    -- Après 3min on dimme la lampe à  54% si pas de mouvement 
	local malampechp = GEA.add({"Value+", id["LUSTRE_PARENTAL"],64}, 2*60, "",{{"Value", id["LUSTRE_PARENTAL"], 54},{"Repeat"}})
	-- Après 3 min on met la lampe à  65% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est entre 1 et 35 
	local malampechpdim = GEA.add({{"Value-", id["LUSTRE_PARENTAL"],55},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 1*60,"",{{"Value", id["LUSTRE_PARENTAL"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"}},{"Repeat"})
    -- Relance des tâches en cas de détection pendant 30 secondes et si la lampe est allumée (économise GEA)
--	GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 30, "", {{"RestartTask", malampechp},{"RestartTask", malampechpdim},{"Repeat"}})   
	GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 30, "", {{"RestartTask", malampechp},{"Repeat"}})   
	GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 30, "", {{"RestartTask", malampechpdim},{"Repeat"}})   
	
  -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA)
--	GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, -1, "", {{"RestartTask", malampechp},{"RestartTask", malampechpdim}}) 
	GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, -1, "", {{"RestartTask", malampechp}}) 
	GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, -1, "", {{"RestartTask", malampechpdim}}) 

  
    -- ==================================================
    -- GESTION DE L'ENTREE
    -- ==================================================

	-- Allumage automatique à  l'ouverture de la porte d'entré
--	GEA.add({ id["OUVERTURE_ENTREE"]}, -1, "allumage entre", {{"Time", "19:00", "02:01"}, {"turnOn", id["SPOT_ENTREE"]}, {"turnOn", id["LUSTRE_SALON"]}})
	-- Eteindre automatiquement l'entrée après 3 mn
--	GEA.add({ id["SPOT_ENTREE"]}, 3*60, "", {{"turnOff"}})	


-- Vérification des modules parfois "dead" // Checking sometimes dead modules
--  GEA.add({"Dead", id["POELE"]}, 5*60, "", {{"WakeUp", id["POELE"]}})
--  GEA.add({"Dead", id["LEDS_ESCALIER"]}, 5*60, "", {{"WakeUp", id["LEDS_ESCALIER"]}}) -- extérieur
   
    -- ==================================================
    -- [FR] NE PLUS RIEN TOUCHER
    -- [EN] DON'T TOUCH UNDER THIS POINT
    -- ==================================================
end

if (not GEA) then
	
	GEA = {}
	GEA.version = "5.40"
	GEA.language = "FR";
	GEA.checkEvery = 30
	GEA.index = 0
	GEA.isVersionFour = true
	
	GEA.globalTasks = "GEA_Tasks"
	GEA.regexFullAllow = false
	GEA.portables = {}

J'ai bien créé une variable GEA_Tasks

 

Cela fonctionne depuis hier et ce soir je veux mettre le code dans mon GEA de prod cela ne fonctionne pas puis je le remet dans mon GEA de Test et j'enlève juste les notifications pour debug afin de savoir si c allumé ou entrain de dim à  x% et la rien ne fonctionne   :angry:  :angry:  :angry:  :angry:  :angry:

 

Est ce que quelqu'un voit une erreur  ?

Partager ce message


Lien à poster
Partager sur d’autres sites

je vois déjà25 value dans l'entête et l id non déclaré par la suite.

--	OUVERTURE_ENTREE = 25,

supprime déjàce 25

Partager ce message


Lien à poster
Partager sur d’autres sites

@Sakkhho: Peux-tu partager ton code pour rebooter la HC2 quand la ram libre est minime ?

 

assez simple en fait, j'ai ce code dans un VD (merci Mprinfo de mémoire ;-)

avec une VG "RamFree"

--Code du VD
function round(num)
     local a = math.floor(num*100 + 0.5)/ 100
     return a,string.format("%.2f",a)
end
local vId = fibaro:getSelfId();
fibaro:call(vId,"setProperty","currentIcon","1043")
local HC2 = Net.FHttp("127.0.0.1",11111)
local response, status, errorCode = HC2:GET("/api/diagnostics")
if tonumber(status) == 200 then
	local result = json.decode(response);

	--Utilisation de la RAM  
  
local ramfree = tonumber(result.memory.free)
fibaro:setGlobal("RamFree",ramfree)

le button de Reboot

local SelfId = fibaro:getSelfId()
local HC2 = Net.FHttp("127.0.0.1",11111)
response, status, errorCode = HC2:POST("/api/settings/reboot", "data=shutdown -h");
 
if errorCode == 0 then
   fibaro:log(status);
else
   fibaro:log("error");
end

et GEA qui check et execute

  GEA.add({{"Global-", "RamFree", 10}}, 30, "RAM inférieure à  #value# - Reboot prévu cette nuit", {{"Time", "21:00", "21:01"}}) --  Push si Ram faible
  GEA.add({{"Global-", "RamFree", 10}}, 30, "Reboot HC2 car RAM inférieure à  10%", {{"Time", "02:45", "02:46"},{"VirtualDevice", id["HC2_DIAGNOSTICS"], 16}}) --  Reboot HC2 si RAM faible

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous,

J'essaie d'utiliser GEA sans grand succès :-(

L'idée première est d'envoyer un SMS sur déclenchement d'une ouverture à  partir d'un FGK-101 (id 110).

 

Pour envoyer un SMS, j'ai un VD (id 96) avec un bouton contenant du code LUA qui envoie une requête http à  un raspberry muni d'une clé USB 3G.

Quand j'appuie sur le bouton 1 du VD, le SMS est bien envoyé, et bien reçu :-)

Quand j'ouvre le FGK, on voit bien l'icone de la porte s'ouvrir.

Donc tout fonctionne bien, en manuel.

 

Dans la scène GEA (v5.40), j'ai bien mis dans l'entête 

%% properties
110 value
 

et pour déclarer l'action :

GEA.add(110, -1, {"VirtualDevice", 96, 1})
 

Or, en ouvrant le FGK, j'obtiens ceci dans les logs : 

 

[DEBUG] 09:32:16: GEA Version 5.40 : en exécution...
[DEBUG] 09:32:16: [ 110 | n/a ] En cours : vérification (ID: 1)
[DEBUG] 09:32:16: [ 110 | n/a ] Check : démarrage vérification (ID: 1)
[DEBUG] 09:32:16: [ 110 | n/a ] Check : vérification des dates (ID: 1)
[DEBUG] 09:32:16: [ 110 | n/a ] isActivated : vérification de l'activation (ID: 1)
[DEBUG] 09:32:16: [ 110 | n/a ] isActivated : type : com.fibaro.doorSensor (ID: 1)
[DEBUG] 09:32:16: [ 110 | n/a ] isActivated : activé (ID: 1)
[DEBUG] 09:32:16: [ 110 | n/a ] Check : activé depuis 30/-1 (ID: 1)
[DEBUG] 09:32:16: [ 110 | n/a ] sendActions : traitement des actions (ID: 1)
[DEBUG] 09:32:16: [ 110 | n/a ] !!! ERREUR !!! : vérification (ID: 1)
[DEBUG] 09:32:19: [ 110 | n/a ] Add Property : ajout de la tâche pour lancement instantané (ID: 1)
[DEBUG] 09:32:19: GEA Version 5.40 : en exécution...
 
Alors je sèche lamentablement. Pouvez-vous m'aider svp ?
 
Merci beaucoup;

Partager ce message


Lien à poster
Partager sur d’autres sites

 

essai

GEA.add(110, -1,"", {"VirtualDevice", 96, 1})

 

Hello,

 

J'ai fait un copier-coller de la ligne, et j'obtiens :

 
[DEBUG] 10:14:36: line 270: bad argument #1 to 'lower' (string expected, got nil)
 
 
Merci beaucoup,

Partager ce message


Lien à poster
Partager sur d’autres sites

avec la double accolade alors ?

GEA.add(110, -1,"", {{"VirtualDevice", 96, 1}})

Partager ce message


Lien à poster
Partager sur d’autres sites

×