Aller au contenu

Recommended Posts

Alors il y a 2 choses qui me dérange dans ta programmation.

 

La première est "Weekday" .. il y a plusieurs jours donc c'est "WeekdayS" avec un "s" à la fin. Mais la plus important est la conjonction de ceci :

{"Time", "04:30", "04:30"}, 60

 

Il n'est pas possible d'être 04:30 pendant 60 secondes :D, il faut mettre 30 à la place de 60* ... idem pour 08h00.

D'ailleurs, tu peux mettre {"Time", "04:30"} plus besoin de mettre 2x "04:30", c'est ainsi plus simple à lire.

 

Tu n'es pas le 1er à faire ce genre de petite erreur. La prochaine version de GEA corrigera donc automatiquement cela.

 

* Au 1er passage, s'il est 04:30 GEA va stocker comme quoi la condition est rempli mais comme tu as mis 60s, il va attendre le passage suivant. Il sera sûrement 04:30 à ce moment là car cela ne fera que 30s plus tard. Par contre, 60s plus tard il sera 04:31 donc ... la condition ne sera jamais rempli.

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 4 minutes, Steven a dit :

Alors il y a 2 choses qui me dérange dans ta programmation.

 

La première est "Weekday" .. il y a plusieurs jours donc c'est "WeekdayS" avec un "s" à la fin. Mais la plus important est la conjonction de ceci :

{"Time", "04:30", "04:30"}, 60

 

Il n'est pas possible d'être 04:30 pendant 60 secondes :D, il faut mettre 30 à la place de 60* ... idem pour 08h00.

D'ailleurs, tu peux mettre {"Time", "04:30"} plus besoin de mettre 2x "04:30", c'est ainsi plus simple à lire.

 

* Au 1er passage, s'il est 04:30 GEA va stocker comme quoi la condition est rempli mais comme tu as mis 60s, il va attendre le passage suivant. Il sera sûrement 04:30 à ce moment là car cela ne fera que 30s plus tard. Par contre, 60s plus tard il sera 04:31 donc ... la condition ne sera jamais rempli.

Super je modifie en conséquence.

Pour weekday, j'ai recopié la syntaxe ;)

 

- Days : {"Days", <jours>}
	CONDITIONS : 
		GEA.add( {"Days", "Monday"}, 30, "", {ACTIONS} )						- Ne vérifie QUE si nous sommes LUNDI \\Check only if the DAY is Monday
		GEA.add( {"Days", "Monday, Friday"},30 ,"" , {ACTIONS} )				- Ne vérifie QUE si nous sommes LUNDI ET VENDREDI \\Check only if the DAY is Monday and Friday
		GEA.add( {"Days", "WeekDay"},30 ,"" , {ACTIONS} )				        - Ne vérifie QUE pendant les jours de la semaine \\Check only during the days of a the week 
		GEA.add( {"Days", "WeekEnd"},30 ,"" , {ACTIONS} )						- Ne vérifie QUE le WeekEnd \\Chek Only during WeekEnd (Saturday, Sunday)

Steven, je viens de regarder et tu autorise les 2 syntaxes :

 
 

		jours = jours:gsub("weekday", "monday,tuesday,wednesday,thursday,friday"):gsub("weekdays", "monday,tuesday,wednesday,thursday,friday"):gsub("weekend", "saturday,sunday")

 

Modifié par Jacquominot

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 1 minute, Jacquominot a dit :

Pour weekday, j'ai recopié la syntaxe

Je viens de vérifier dans le code. Tu peux mettre avec ou sans le "s".

 

Il y a fort longtemps, j'avais fait une boulette et j'avais codé sans le "s". Pour corrigé sans impacter le code des utilisateurs, j'ai fais en sorte d'accepter les 2. Donc la syntaxe de @pepite est correcte même si, pour plus de cohérence, je vais lui demander de changer :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Et continue à nous embêter si tu as des questions, cela aide aussi à réfléchir aux améliorations possible de GEA. Tu vois dans ton cas, cela m'a permis de faire en sorte que GEA va corriger automatiquement ce genre de problème pour la future version.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, je laisse tourner comme ça cette nuit. on verra la température demain matin ;)

 

je continuerais de vous embêter tant que ce qu'il y a dans ma tête ne marche pas. après, il faudra sans doute plus souvent corriger ma tête que ton script LOL

Modifié par Jacquominot

Partager ce message


Lien à poster
Partager sur d’autres sites

Avec le nouveau GEA, je le teste encore, mais je n'ai pas toute la journée pour garder un œil sur les loggies et les actions.
Maintenant, le VD GEA aide avec les 5 dernières actions, cependant, il me manque encore beaucoup de moments que je veux vraiment vérifier.
En outre, la règle sur mon mobile ne peut pas être lue complètement
J'utilise Presence Detector de Lambik où vous avez 3 boutons pour enregistrer le début / la fin avec send. Dans le code, vous dites par télégramme ou par courrier.
Après cela, vous obtenez un certain nombre de règles à déterminer avec les loggings
Peut-être une idée pour ajouter cela dans le VD GEA?


https://forum.fibaro.com/index.php?/topic/20852-virtual-device-presence-detector/
 

2ème question Est-il également possible d'utiliser le code json avec GEA comme par exemple ci-dessous?


 

local wT = json.decode(fibaro:getGlobalValue("WeatherState"));
local stationNo = 1
local wind_speed_level = 56

if wT.netatmo[stationNo].wind.speed >= wind_speed_level or
  wT.netatmo[stationNo].wind.gust >= wind_speed_level then
  fibaro:debug('Wind snelheid boven 56 km/h');
  if fibaro:getValue(270, "value") > "0" then
    fibaro:call(270, "close");
    fibaro:debug('Zonnescherm naar binnen!');
    --fibaro:setGlobal("Telegram", "Zonnescherm naar binnen wind boven 54 km/h")
    --fibaro:setGlobal("Telegram2", "Zonnescherm naar binnen wind boven 54 km/h")
  end
end

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 14 heures, Jacquominot a dit :

Pour weekday, j'ai recopié la syntaxe ;)

C'est ma faute ;-) désolé ;-) C'est corrigé ;-)

 

Il y a 2 heures, dvine a dit :

'utilise Presence Detector de Lambik où vous avez 3 boutons pour enregistrer le début

Hi @dvine, I dont know teh VD of @lambik, but i read and all the informations are stored in global variable. GEA can read this global variables.

Otherwise, with GEa you can push on the buuton of the VD

 

second answer :

 

You can do someting like this i think

 

local wT = json.decode(fibaro:getGlobalValue("WeatherState"));
local stationNo = 1

GEA.ad( { {"Or", {"Value+", wT.netatmo[stationNo].wind.speed, 56}, {"Value+", wT.netatmo[stationNo].wind.gust, 56}}, {"Value+", 270, 0} }, 30, "", {"Function", function() fibaro:call(270, "close") end} )

But certainly possible to write another line in fonction of type of the device 270.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello.

Vous pouvez me dire si le multiple user IDs marche chez vous pour la fonction Picture ?
Cf ma question plus haut.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @Sakkhho

desole, je n'avais pas vu ;-). Dans ta version de GEA, peux tu chercher picture et nous dire si tu as ceci ?   

 

picture   = {name="Picture",
                    action=function(id, destinataire) if (type(id) ~= "table") then id = {id} end if (type(destinataire) ~= "table") then destinataire = {destinataire} end for i=1, #id do for j =1, #destinataire do fibaro:call(id, "sendPhotoToUser", destinataire[j]) end end end
                }, 

 

Modifié par pepite

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai ca oui

 

donc je comprends pas pourquoi 0 picture étaient envoyées

et quand j'ai mis 1 user, c'etait ok

 

la je tourne avec 3 fonction pictures, et à chaque fois 1 ID par picture - mais j'ai pas testé hier.

    picture   = {name="Picture", 
                    action=function(id, destinataire) if (type(id) ~= "table") then id = {id} end if (type(destinataire) ~= "table") then destinataire = {destinataire} end for i=1, #id do for j =1, #destinataire do fibaro:call(id[i], "sendPhotoToUser", destinataire[j]) end end end
                },

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello, J'ai mis une journée entiere à faire fonctionner une simple ligne de code. Enfin! Dès que  je mettais une action, cela ne marchait plus.

 

Finalement, cela semble fonctionner si:

- 1) j'installe  la version 6.04

- 2) je mets 1 et pas -1 dans la durée pour une ligne qui test si porte ouverte et armé alors allumer lumière...

 

Je ne comprends pas encore pourquoi -1 ne fonctionnait pas dans mon cas

Suis fatigue de chercher je l'avoue :-)

 

Par contre , est il possible de simuler l'appui sur un bouton d'un VD depuis la zone action?:

 

A) Est ce que je dois mettre ceci dans la zone action par exemple : ? 

{"Function", function() fibaro:call(122, "2") end}.

ou 2 est le deuxième bouton?

 

B) Comment changer la valeur d'une variable globale ? J'ia trouvé pour obtenir la valeur mais pas encore cherché, je l'avoue comment changer la valeur d'une variable globale?

Partager ce message


Lien à poster
Partager sur d’autres sites

@Sakkhho

je n'ai pas testé "Picture" pour plusieurs IDs, je vais tacher de le faire et te tiens au courant dès que possible.

 

@Lorenzo

Les déclenchements instantanés ne fonctionnent QUE SI et SEULEMENT SI tu as mis dans l'entete de GEA : iddumodule propriété, par exemple.

--[[
%% autostart
%% properties
25 value
25 power
%% globals
Presence
%% events
415 CentralSceneEvent
--]]

Oui avec GEA l'appui sur le bouton d'un VD est en NATIF, de même pour modifier la valeur d'une globale. Encore une fois, je ne saurais trop te conseiller de récupérer le fichier Syntaxe du sujet Gestionnaire d'evenements Automatique 6.04, tout y est, avec des coquilles mais au moins tu auras toutes les syntaxes, c'est-à-dire tout ce que sait faire GEA en natif. Je te comprends, chercher tout ce qu'est possible avec GEA est laborieux si on a pas la source de l'info ;-)

Modifié par pepite
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 14/01/2018 à 20:24, Steven a dit :

Je viens de vérifier dans le code. Tu peux mettre avec ou sans le "s".

 

Il y a fort longtemps, j'avais fait une boulette et j'avais codé sans le "s". Pour corrigé sans impacter le code des utilisateurs, j'ai fais en sorte d'accepter les 2. Donc la syntaxe de @pepite est correcte même si, pour plus de cohérence, je vais lui demander de changer :D

Steven,

 

J'ai toujours un soucis. On dirait qu'il ne se passe rien. Ma consigne de température reste à 21 degrés toute la journée et toute la nuit.

Je ne comprends pas pourtant les déclencheurs ont l'air corrects.

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu peux me renvoyer tes lignes qui change la consigne, je vais les tester ce soir.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour ton aide :

 

    -- ===  CHAUFFAGE === --

    -- Gestion de la programmation du thermostat

    --on met la consigne chauffage à 21degrés en semaine à 4h30
    GEA.add({{"Days", "WeekDays"},{"Time", "04:30"}},30,"",{"Slider", 88, "slider_0_0", 21})
    --on met la consigne chauffage à 19degrés en semaine à 8h sauf le mardi ou on ne coupe rien
    GEA.add({{"Days", "Monday,Wednesday,Thursday,Friday"},{"Time", "08:00"}},30,"",{"Slider", 88, "slider_0_0", 19})
    --on met la consigne chauffage à 21degrés le mercredi 11h30
    GEA.add({{"Days", "Wednesday"},{"Time", "11:30"}},30,"",{"Slider", 88, "slider_0_0", 21})
    --on met la consigne chauffage à 21 degré les autres jours de la semaine à 16h30
    GEA.add({{"Days", "Monday,Thursday,Friday"},{"Time", "16:30",}},30,"",{"Slider", 88, "slider_0_0", 21})
    --on met la consigne chauffage à 19degrés à 21h45 en semaine
    GEA.add({{"Days", "WeekDays"},{"Time", "21:45"}},30,"",{"Slider", 88, "slider_0_0", 19})
    
    --on met la consigne chauffage à 21degrés à 06h30 le week-end
    GEA.add({{"Days", "WeekEnd"},{"Time", "06:30"}},30,"",{"Slider", 88, "slider_0_0", 21})
    --on met la consigne chauffage à 19degrés à 21h45 le week-end
    GEA.add({{"Days", "WeekEnd"},{"Time", "21:45"}},30,"",{"Slider", 88, "slider_0_0", 19})

    --  Mise à jour du thermostat à partir du Device 88	
    GEA.add( {"Global!", "ConsigneChauffage", {"Slider", 88, "slider_0_0"}}, 30, "", {"Global", "ConsigneChauffage", {"Slider", 88, "slider_0_0"}} )  


    
    -- === Chauffage Bureau JK === --
    --GEA.add({"Function",function() return Chauffage(id["TEMP_BUREAU_JK"],'egalplus') end}, 1*60, "", { {"turnOff",id["CHAUFFE_BUREAU_JK"]},{"Repeat"}} )
    --GEA.add({"Function",function() return Chauffage(id["TEMP_BUREAU_JK"],'moins') end}, 1*60, "", { {"turnOn",id["CHAUFFE_BUREAU_JK"]},{"Repeat"}} )
    GEA.add({"Global+", "ConsigneChauffage", {"Value", id["TEMP_BUREAU_JK"]}}, 1*60, "", {"turnOff",id["CHAUFFE_BUREAU_JK"]} )
    GEA.add({"Global",  "ConsigneChauffage", {"Value", id["TEMP_BUREAU_JK"]}}, 1*60, "", {"turnOff",id["CHAUFFE_BUREAU_JK"]} )
    GEA.add({"Global-", "ConsigneChauffage", {"Value", id["TEMP_BUREAU_JK"]}}, 1*60, "", {"turnOn",id["CHAUFFE_BUREAU_JK"]} )

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors mes tests sont concluant ... mais il y a un bug dans "Slider". Si dans tout ton code tu n'utilises pas "Label", il va se planter après quelques exécutions (je l'avais pas vu venir celle là).

 

Je te conseil donc, d'utiliser {"Label", ... } à la place de {"Slider", ...}

 

Ensuite pour plus de réactivité utilise le 0 à la place du 30 pour cette ligne ci :

 --  Mise à jour du thermostat à partir du Device 88	
    GEA.add( {"Global!", "ConsigneChauffage", {"Slider", 88, "slider_0_0"}}, 0, "", {"Global", "ConsigneChauffage", {"Slider", 88, "slider_0_0"}} )  

 

Ainsi elle sera traité immédiatement après celles qui changent la consigne et non pas 30 secondes après.

 

Voilà, si cela ne fonctionne toujours pas, envoi moi ton script entier à steven.piccand@gmail.com je regarderais avec plaisir,

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite @Sakkhho

J'ai effectué un scénario simple et très basique pour vérifier le sendPhotoToUser et sendPhotoToEmail.

 

Dans mon cas, rien ne fonctionne. Par contre si je clique sur l'appareil photo dans l'écran d'une de mes caméra, cela fonctionne correctement.

 

Donc je ne peux pas aider sur ce coup là :angry:

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Steven,

 

 

Je n'utilise effectivement pas Label dans mon script.

 

J'avais l'impression que ça marchait 1 ou 2 fois et j'ai aussi remarqué que mon volet n'était pas descendu avant-hier donc si ca se trouve c'était le plantage que tu évoques qui arrêtait tout d'où mon impression que ca marche et ca marche plus.

Je modifie en Label et je te redis.

 

Merci beaucoup

Partager ce message


Lien à poster
Partager sur d’autres sites

J'utilise un interrupteur un DIMMER 2 comme interrupteur de scène uniquement.

Mon but est d'un seul et unique interrupteur suivant le nombre de clics effectués, soit ouvrir les volets, allumer/éteindre la lampe, etc...

 

Ainsi, pour allumer/éteindre une lampe : 

 

GEA.add({{"SceneActivation", 27, 26},{"Sensor", 27, 0}}, -1, "", {{"turnOn", 27}})
GEA.add({{"SceneActivation", 27, 26},{"Sensor!", 27, 0}}, -1, "", {{"turnOff", 27}})

 

Quand je mets ces ligne dans un GEA vierge avec rien que cela dedans cela fonctionne parfaitement.

Par contre quand je le mets dans mon GEA dans lequel j'ai toutes mes autres lignes, le fonctionnement est erratique.

On dirait qu'il a tendance à ne pas récupérer à temps le statut du sensor et donc la lampe s'allume et s'éteint plusieurs fois d'affilée. (27 value est bien mis tout au dessus)

Avez-vous une explication ?

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Heuuu, c'est quoi ce sensor ? Si c'est la consommation électrique de ta lampe, en effet, c'est mal parti :-)

 

Allez, soyons simpliste :

 

GEA.add({"SceneActivation", 27, 26}, -1, "", {{"Switch", 27}})

 

Et voilà si la lampe est allumée elle va s'éteindre et inversement

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Sensor j'ai pris cela pour la luminosité du dimmer (0 = éteint), différent de 0 = allumé

merci pour la simplification

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oups, alors attention, "Sensor" (équivalent de "Power") est utilisé pour la consommation électrique d'un module. Pour un dimmer c'est "Value" qui varie donc de 0 à 100. 

 

Pour savoir si un dimmer est allumé, tu as plein d'option, la plus simple étant de mettre simplement son ID :

 

GEA.add(ID, ......) 

GEA.add({"Value+", ID, 0}, ....)

GEA.add({"TurnOn", ID}, ...)

 

Dans ton cas d'utilisation, la ligne simplifiée que je t'ai envoyé est parfaite car "Switch" vérifie l'état d'un module, s'il est allumé, il l'éteint et inversement.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

J'oubliais .. tu peux enlever le 27 value de l'entête, il ne sera à rien pour ce cas de figure et moins il y a de déclencheur, mieux c'est ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Le facteur a testé pour moi.
Ça fonctionne très bien avec 3 IDs user séparés.

Donc le problème est dans le nouveau format
« Picture, ID cam, (id user 1, user 2, user 3) »

Partager ce message


Lien à poster
Partager sur d’autres sites

×