Aller au contenu

Recommended Posts

Merci à  vous tous, @zozotte, @steven et tous ceux qui support ce script.

 

En fait le ventillateur fonctionne actguellement, il a pris un petit moment avant de démarrer;

Actuellement l'humiditié est à  66% mais il fonctionne toujours alors qu'il devrait s'arrêtwe une fois arrivé à  74%.

 

Il y a t'il un petit bug dans mon code?

Partager ce message


Lien à poster
Partager sur d’autres sites

Ou vous pensez qu'il y a un petit soucis d'hystérésis avec le capteur ST814 (de 8%) comme j'ai cru comprendre dans un post de @Kirkhoff?

Partager ce message


Lien à poster
Partager sur d’autres sites

 

Hello Steven,

 

Voici mon premier essai GEA basé sur tous tes exemples (allumage des lampes, contrôle de la ventillation à  la salle de bain).

Tu peux regarder si ça tien la route avant que je ne passe à  l'action, Je ne voudrait pas mettre le feu à  la baraque. Madame dort. ;)

--[[
%% autostart
%% properties
7 value
4 value
13 value
%% globals
--]]


-- v 4.10

-- Conditions :
-- {"Weather", <valeur} 
-- {"Property", <id module>, <property>, <value>)
-- {"Property!", <id module>, <property>, <value>)

-- Actions :
-- {"CopyGlobal", "nom_source", "nom_destination"}
-- {"CurrentIcon", <id_module>, <id_icone>}

-- Autres :
-- regex sur Weather, Global, Global!, Value, Value!, Label, Label!, Property, Property!

-- Fix :
-- Prise en compte de Global!, Global+ et Global- dans les démarrages instantanés

-- ==================================================
-- 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 : 4.1
-- Special Thanks to :
-- jompa68, Fredric, Diuck, Domodial, moicphil, lolomail, byackee,
-- JossAlf, Did, jompa98 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 = false --- 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 = {10} 
	
	-- [FR] Affichage des traces dans la console (default : false)
	-- [EN] Show trace in the debug window
	GEA.debug = false

	-- [FR] Tableau d'identifiant (facultatif)
	-- [EN] ID table (optional)
	local id = {
		DETECTEUR_REZ = 7, TEMP_REZ = 8, LUX_REZ= 9, 
		DETECTEUR_ETAGE = 4, TEMP_ETAGE = 5, LUX_ETAGE= 6,
		LAMPE_ESCALIER = 43, LAMPE_ENTREE_REZ = 39,
		LAMPE_CH_PARENT = 35, 
		TEMP_REZ = 20, PORTE_REZ = 18,
		MULTIMEDIA = 25, BUREAU = 24, 
		SMOKE_SENSOR = 28,	TEMP_BUREAU = 908
		DETECTEUR_HUM = 13, TEMP_HUM = 12, HELIOS_BAIN=36
	
		VD_AGENDA = 110
	}
  
	-- ------------------------------------------------------------
	-- [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
	-- ----------------------------------------------------------------
	
	-- Exemple de condition IF // IF Sample condition
  	-- local estChome = {"Global", "JourChome", "OUI"}
	-- local estTravail = {"Global", "JourChome", "NON"}, {"Sensor-", id["TV"], 1}, {"Value-", id["DETECTEUR_GARAGE"], 1}
	-- local estSafe = {"Global", "Intrusion", "NON"}
	-- local estTravailEtSafe = estTravail, estSafe
	-- local estFerme = {"Value-", id["PORTE_ENTREE"], 1}, {"Global", "GEA_Garage", "ON"}
	-- local estVac = {"Global", "Chauffage", "VACANCES"}
--	local co2Correct = {"If", {{"Global-", "CO2", 900}}}
	-- local garageAvertissement = {"Global", "GEA_Garage", "ON"}
	local lampeEscalierEteinte = {"Value-", id["LAMPE_ESCALIER"], 1}
	local lampeEscalierAllumee = {"Value+", id["LAMPE_ESCALIER"], 0}
	local lampeEntreeRezEteinte = {"Value-", id["LAMPE_ENTREE_REZ"], 1}
	local lampeEntreeRezAllumee = {"Value+", id["LAMPE_ENTREE_REZ"], 0}

		
		-- === LAMPE ENTREE REZ === --
  	local autoOff = GEA.add(39, 5*60, "", {{"turnOff"}})
	-- Allume la lampe et redémarre le timer des 5 minutes
	GEA.add(7, -1, "", {{"turnOn", 39}, {"RestartTask", autoOff}, {"Time", "17:00", "08:00"} })
  
   	-- === LAMPE ENTREE ETAGE === --
  	local autoOff = GEA.add(43, 5*60, "", {{"turnOff"}})
	-- Allume la lampe et redémarre le timer des 5 minutes
	GEA.add(4, -1, "", {{"turnOn", 43}, {"RestartTask", autoOff}, {"Time", "17:00", "08:00"} })
  
   	-- === CONTROL VENTILLO SALLE DE BAIN === --  
	-- Si allumé, on éteint le ventillateur après 10 minutes
	local autoVentilo = GEA.add(HELIOS_BAIN, 10*60, "", {{"turnOff"}})
	-- Si l'humidité > 74 pendant 1 minutes, on démarre le ventillateur
	GEA.add({"Value+", DETECTEUR_HUM, 74}, 60, "", {{"turnOn", HELIOS_BAIN}, {"RestartTask", autoVentilo}, {"Repeat"}})	
		
	

bonjour

local autoOff = GEA.add(39, 5*60, "", {{"turnOff"}})
	-- Allume la lampe et redémarre le timer des 5 minutes
	GEA.add(7, -1, "", {{"turnOn", 39}, {"RestartTask", autoOff}, {"Time", "17:00", "08:00"} }

une chose que je ne comprend pas 

pourquoi une foi sur deux ma lampe s'éteindre a 5mm

Partager ce message


Lien à poster
Partager sur d’autres sites

@forumAD

Impossible de savoir, il faudrait que tu fasses quelques tests.

 

@971jmd

Tu cites le code de quelqu'un d'autres et tu veux qu'on trouve ton soucis ... je comprends rien.

 

@zozotte

Puis-je te mettre à  contribution pour tester ton "SceneActivation" qui doit basculer l'état on/off d'une lampe ?

 

@sebbrunie1 

Le {"Global", "<nom_var>", "inc+[<valeur>]"} est en chemin.

Partager ce message


Lien à poster
Partager sur d’autres sites

Désolé 

 

mon probleme est que le code ne respecte pas toujours les 5mm de délais

=== hologe === --
  	local autoOff = GEA.add(60, 5*60, "on bar pour", {{"turnOff"}})
	-- Allume la lampe et redémarre le timer des 5 minutes
	GEA.add(60, -1, "", {{"turnOn", 60}, {"RestartTask", autoOff}, {"Time", "17:00", "08:00"} })
  

Partager ce message


Lien à poster
Partager sur d’autres sites

@steven

Plusieurs tests ont été effectués. Le points commun de tous les tests est que une fois le ventilateur déclenché, ça ne s'arrête plus même après 20mn;

Par exemple si je mets une consigne à83, le ventilateur s'enclenche seulement quand l'humidité pas sous 77% ---> et ne s'arrête plus même quand l'humidité tombe à65.

Je ne comprends pas; Une idée?

Partager ce message


Lien à poster
Partager sur d’autres sites

 

A ce que j'ai lu, le tuto de Sebcbien met déjà  à  jour une variable globale "Présence_XX_" (je connais pas le nom précis). Ce que tu peux faire est utilisé le valeur de cette variable pour modifier la tienne.

 

--[[
%% autostart
%% properties
%% globals
Presence_XX
--]]

GEA.add({"Global", "Presence_XX", "1"}, -1, "", {{"Global", "Presence", "Present"}})
GEA.add({"Global", "Presence_XX", "0"}, -1, "", {{"Global", "Presence", "Absent"}})

 

Parfait ça fonctionne merci les copains :) (désolé du temps de réponse je ne suis pas très présent ces derniers jours  :( )

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

J'ai du mal à  utiliser les Taches...

Lorsque je veux regarder un film, j'appuie sur une télécommande qui change le mode Hifi en Cinema. 2 minutes apres, les Volets Roulants se baissent et la lumiere s'eteint. Je veux alors que soit démarrées 2 taches qui géreront l'allumage de la lumiere et l'ouverture des volets, si nécessaire. PS: j'ai mis une tempo pour eviter les on/off si mauvaise manip sur la telecommande.

 

Voici les tests que j'ai fait avec la lumiere:

1er:

GEA.add( {"Global", "Hifi", "Cinema"}, 2*60, "", {{"VirtualDevice", id["VD_LUM"], 5}, {"Close",id["SALON_VR"],85}})
local onCanape = GEA.add( {"Global!", "Hifi", "Cinema"}, -1, "", {{"turnOn", id["SALON_LUM_CANAPE"]}})
GEA.add({"Global", "Hifi", "Cinema"}, 60, "", {{"RestartTask", onCanape}})

Dans ce cas, la lumiere s'allume a chaque fois que je change la variable Hifi, quelque soit la valeur et sans que j'ai laissé 1 minutes en mode Cinema.

 

2e:

GEA.add( {"Global", "Hifi", "Cinema"}, 2*60, "", {{"VirtualDevice", id["VD_LUM"], 5}, {"Close",id["SALON_VR"],85}})
local onCanape = GEA.add( {"Global", "Hifi", "Cinema"}, -1, "", {{"Inverse"}, {"turnOn", id["SALON_LUM_CANAPE"]}})
GEA.add({"Global", "Hifi", "Cinema"}, 60, "", {{"RestartTask", onCanape}})

Pareil que le 1er code

 

Quelqu'un aurait il vu l'erreur ? ou peut etre faut il que j'utilise une autre logique...

Merci pour votre aide

Zozotte

Partager ce message


Lien à poster
Partager sur d’autres sites

Si je comprends bien tu veux que s'allume SALON-LUM_CANAPE 1 mn après que la variable Hifi soit passée à  Cinema.

 

Je ferais:

GEA.add( {"Global", "Hifi", "Cinema"}, 2*60, "", {{"VirtualDevice", id["VD_LUM"], 5}, {"Close",id["SALON_VR"],85}})
local onCanape = GEA.add({"Global", "Hifi", "Cinema"}, 60, "", {{"turnOn", id["SALON_LUM_CANAPE"]},{"MaxTime",1}})
GEA.add({"Global!", "Hifi", "Cinema"}, -1, "", {{"Inverse"},{"RestartTask", onCanape}})

Le MaxTime force la ligne allumant la lumière a s'exécuter une seule fois, la dernière ligne relance la tâche onCanapé quand ta variable Hifi change de valeur pour la prochaine séance de cinéma

Partager ce message


Lien à poster
Partager sur d’autres sites

Steven, question, est ce que cela passe encore chez toi en 4.020 :

GEA.add({"Sensor-", id["WPLUG_LAVE_LINGE"], 5}, 5*60, "Extinction lave-linge consommation #value#", {{"turnOff"},{"Time","14:30","15:30"},{"Time","06:30","07:30"}})
  	

Moi cela me sort en erreur...

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

tu as quoi pour

GEA.isVersionFour = false pour firmware inférieur à4.17

GEA.isVersionFour = true pour firmware supérieur ou égale à4.17

Partager ce message


Lien à poster
Partager sur d’autres sites

Je n'ai pas cela dans le code... Je suis pourtant en 4.017 du GEA. C'est censé y être ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok, il y a beaucoup plus récent du coup, je vais tester de suite. Merci HAN

Partager ce message


Lien à poster
Partager sur d’autres sites

Yop oui, du coup cela est corrigé.

Par contre il me lit mal ça :

GEA.add({"Value+", 60, 20.6}, 1*5, "Extinction chauffage SDB", {{"turnOff",103},{"Time","6:00","19:00"}})
    

En ce moment j'ai 18.5 en température, et pourtant il me lance cette scène... Le 20.6 doit être écrit différemment ??

Partager ce message


Lien à poster
Partager sur d’autres sites

Han, en fait ce que je voulais dire, c'est qu'il faut mettre des quotes ou qque chose pour les chiffres à  virgule ?

 

EDIT : Je viens de changer value par sensor, me suis planté je crois...

 

EDIT 2 : Non, c'était bien Value...

Partager ce message


Lien à poster
Partager sur d’autres sites

En fait GEA me fait n'importe quoi. J'ai 2 jobs par pièce :

GEA.add({"Value-", 60, 20.5}, 1*5, "Allumage chauffage SDB", {{"turnOn",103},{"Time","6:00","19:00"}})
GEA.add({"Value+", 60, 20.6}, 1*5, "Extinction chauffage SDB", {{"turnOff",103},{"Time","6:00","19:00"}})

Et en fait,  à  chaque coup il m'exécute les 2 jobs !!! Cela n'est pas possible, comment la Value du sensor peut être et inférieure à  20.5 et supérieure à  20.6 en même temps ???

 

Là  moi y en a pas tout comprendre... snif :) Je crois que je vais devoir revenir en 3.590 à  ce rythme.

 

EDIT : Je viens de modifier le 1*5 et 5*60, on dirait que cela est ok, je vais surveiller. Mais si qqun sait me dire pourquoi ???

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, bah finalement cela ne fonctionne pas bien mieux...

Partager ce message


Lien à poster
Partager sur d’autres sites

Je jetterai un oeil demain sonne trouve le temps mais chez moi tout est bon. Es-tu sure de ton id 60 et quel genre de module as-tu la derrière.

Pourrais-tu en plus me fournir le json' http://ip_hc2/api/devices/60

Merci d'avance.

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Le boss est là  :) Merci surtout à  toi !!!!

 

Alors prenons par exemple le salon, avec un ST814 (Mais cela me le fait pour tous les modules, par exemple AEO4in1).

 

Le code GEA :

GEA.add({"Value+", 132, 21.6}, 5*60, "Extinction chauffage cuisine/salon", {{"turnOff",107},{"Time","6:00","23:30"}})
GEA.add({"Value-", 132, 21.5}, 5*60, "Allumage chauffage cuisine/salon", {{"turnOn",107},{"Time","6:00","21:30"}})
GEA.add({"Value+", 132, 20.1}, 5*60, "Extinction chauffage cuisine/salon", {{"turnOff",107},{"Time","0:00","6:00"}})
GEA.add({"Value-", 132, 20}, 5*60, "Allumage chauffage cuisine/salon", {{"turnOn",107},{"Time","0:00","6:00"}})
    

Voilà  le JSON :

{"id":132,"name":"Température","roomID":5,"type":"com.fibaro.temperatureSensor","baseType":"com.fibaro.multilevelSensor","enabled":true,"visible":true,"isPlugin":false,"parentId":266,"remoteGatewayId":0,"interfaces":["battery","zwave","zwaveWakeup"],"properties":{"parameters":[{"id":1,"lastSetValue":99,"size":1,"value":99},{"id":2,"lastSetValue":99,"size":1,"value":99},{"id":3,"lastSetValue":99,"size":1,"value":99},{"id":4,"lastSetValue":99,"size":1,"value":99},{"id":5,"lastSetValue":99,"size":1,"value":99},{"id":6,"lastSetValue":15,"size":2,"value":15},{"id":7,"lastSetValue":1,"size":1,"value":1},{"id":8,"lastSetValue":10,"size":1,"value":10}],"associationSet":[{"devices":[1],"groupID":1},{"devices":[1],"groupID":2}],"associationView":[{"devices":[1],"groupID":1},{"devices":[1],"groupID":2}],"zwaveCompany":"Everspring","zwaveInfo":"6,2,64","zwaveVersion":"","wakeUpTime":1800,"pollingTimeSec":0,"batteryLevel":"90","batteryLowNotification":"true","configured":"true","dead":"false","deviceControlType":"0","deviceIcon":"30","emailNotificationID":"0","emailNotificationType":"0","endPointId":"0","interval":"0","liliOffCommand":"","liliOnCommand":"","log":"","logTemp":"","manufacturer":"","markAsDead":"true","model":"","nodeId":"44","offset":"0.00","parametersTemplate":"20","productInfo":"","pushNotificationID":"0","pushNotificationType":"0","remoteGatewayId":"0","saveLogs":"true","showFireAlarm":"false","showFreezeAlarm":"false","smsNotificationID":"0","smsNotificationType":"0","unit":"C","useTemplate":"true","userDescription":"","value":"21.90"},"actions":{"reconfigure":0,"setInterval":1},"created":1417260254,"modified":1417260254,"sortOrder":36}

Donc quand je vérifie le JSON, je lis bien 21.90 en value. Et si je regarde mon GEA, je devrais donc éteindre le device 107 (Un FGS) vu qu'il est 20h53 (Ligne 1 du GEA)...

Partager ce message


Lien à poster
Partager sur d’autres sites

Mince pareil pour mon lave linge, l'allumage n'a pas fonctionné alors que la coupure oui, cette scène lààpourtant toujours fonctionné :

GEA.add({"Global", "", ""}, 5, "Allumage Lave linge",{{"Time", "12:35", "12:35"}, {"Time", "1:35", "1:35"}, {"turnOn",id["WPLUG_LAVE_LINGE"]}})
GEA.add({"Sensor-", id["WPLUG_LAVE_LINGE"], 5}, 5*60, "Extinction lave-linge consommation #value#", {{"turnOff"},{"Time","14:30","15:30"},{"Time","06:30","07:30"}})
  	

Partager ce message


Lien à poster
Partager sur d’autres sites

@Nico

Essaie cette version et dit moi si tu as toujours les même soucis.

Cette version est celle que j'utilise tous les jours depuis une bonne semaine. Ma VMC s'éteint OU pas selon la température et mon sèche-serviette s'allume et s'éteint au bonne heure. En gros, cela fonctionne parfaitement chez moi.

Par contre, je ne suis que sur du Fibaro mais cela ne devrait rien changé.

Tiens moi au courant.

Nico.lua

Partager ce message


Lien à poster
Partager sur d’autres sites

×