Aller au contenu

Recommended Posts

@ced600f, oui un peu tordu lol

 

Merci de ta réponse ;-)

En fait c'est un peu ce que je fais avec la VG GEA_Octan

 

Au 1er DC :

 --> si toutes les lampes allumées : eteindre lampe bureau, GEA_Octan = 1

 Au 2eme DC :

 --> Si GEA_Octan = 1, extinction lampe PAPIER, GEA_Octan à  2

Au 3eme DC :

 --> SI GEA_Octan = 2, extinction lampes TV, GEA_OCTAN = 3

Au 4eme DC :

 --> si toutes les lampes OFF, allumage lampes TV

Au 5eme DC,

 --> si GEA_Octan = 3, allumage lampe papier et GEA_Octan = 4

au 6eme DC

 --> si GEA_Octan = 4, allumage Bureau ;-) et remise de GEA_Octan à  0

 

Ca fonctionne jusqu'au 5eme DC, enfin presque, ca allume bien la lampe papier mais ne met pas GEA_Octan à  4 ;-)

 

Donc le dernier DC (le 6eme) ne fonctionne pas..

Quid ?

 

Je peux peut-etre faire sans variable et mettre en conditions si les lampes sont allumées ou non mais certains turnOn vont finir identique à  certains turnOff et la BUG lol

Partager ce message


Lien à poster
Partager sur d’autres sites

Bizarre que cela ne fonctionne pas... Tu peux poster ton code ?

 

Curiosité: A quoi cela te sert un tel fonctionnement ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Par contre, pourquoi une différence entre 4° et 5° DC ?

Tu testes comment ton quantième DC àce niveau là?

Partager ce message


Lien à poster
Partager sur d’autres sites

Mon code est au-dessus de la page, je le reposte.

-- Double Clic B1, rond plein --
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 4}}, -1, "", {{"turnOn", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 0}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 3}}, -1, "", {{"turnOn", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 4}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, eclairages_off}, -1, "", {{"turnOn", id["ECLAIRAGE_TV"]}, {"Global", "GEA_Octan", 3}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 2}}, -1, "", {{"turnOff", id["ECLAIRAGE_TV"]}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 1}}, -1, "", {{"turnOff", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 2}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, eclairages_on}, -1, "", {{"turnOff", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 1}})
 

Entre le 4eme et 5eme, je teste avec une variable "eclairage_off' que j'utilise ailleurs

 

Ce fonctionnement me permet :

1- de tester je ne l'ai pas depuis longtemps et je veux augmenter le nombre de scenarios possibles par bouton ;-), je ne dois pas etre doue, mais j'ai un peu de mal avec l'appui long et l'appui long relaché ;-).

2- d'essayer de rester WAF avec cette telecommande, facile a comprendre, en fonction de l'eclairage que tu veux tu doubles cliques sur le rond plein

 

Par exemple, pour l'allumage/extinction de la TV, simple appui rond plein, si TV deja allumee : ca eteint TV et FreeboxPlayer,  inversement, si TV eteinte allumage TV et freebox player ;-)

3- pour l'eclairage : sur le +, simple appui, j'ai mis : si tout est eteint : allume tout, si tout est allumé, eteint tout ;-)

 

Ca augmente enormement le nombre de scenarios en fonction des conditions je trouve

 

Cette telecommande je la trouve top, seul inconvenient, ce souvenir de ce que font les boutons et reussir a maitriser appui long/appui long relache..je suis une quiche ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Question :

 

Lorsque tu as "GEA_Octan == 4" (1ère ligne de ton code), tu vas allumer la lumière du bureau .. donc TV, PAPIER et BUREAU seront allumé ?

 

Si oui ... regarde la dernière ligne qui dit :

 

Si tout est allumé (ce qui est le cas), on éteint de bureau et GEA_Octan = 1

 

Pour conclure, si GEA_Octan est à  4, tu vas allumer puis éteindre le bureau et passer en GEA_Octane = 1

Partager ce message


Lien à poster
Partager sur d’autres sites

LA réponse est OUI ;-)

 

Pu..c'est sous mes yeux depuis hier soir, j'avais rien vu hihihi

 

MERCI beaucoup MAITRE STEVEN :13: :13: :13:

 

Je vais changer de condition

voici, a tester ce soir !!

-- Double Clic B1, rond plein --
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 4}}, -1, "", {{"turnOn", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 0}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 3}}, -1, "", {{"turnOn", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 4}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, eclairages_off}, -1, "", {{"turnOn", id["ECLAIRAGE_TV"]}, {"Global", "GEA_Octan", 3}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 2}}, -1, "", {{"turnOff", id["ECLAIRAGE_TV"]}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 1}}, -1, "", {{"turnOff", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 2}})
GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 0}}, -1, "", {{"turnOff", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 1}})
 

Partager ce message


Lien à poster
Partager sur d’autres sites

Lol ... exactement le même soucis  ;)

la 1ère ligne met GEA_Octan à  0 se qui executera la dernière ligne  :P

 

C'est ça de vouloir faire des trucs tordus 

 

 

Je vais t'aider ... utilise des chiffres PAIRS lorsque tu est en tain d'allumer les lumières et des chiffres IMPAIRS lorsque tu les éteins.

 

Je te ponds cela dans quelques minutes.

Partager ce message


Lien à poster
Partager sur d’autres sites

Exact la meme ;-) je suis vraiment pas doue, merci @steven

Partager ce message


Lien à poster
Partager sur d’autres sites


GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 4}}, -1, "", {{"turnOn", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 6}})

GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 2}}, -1, "", {{"turnOn", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 4}})

GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 0}}, -1, "", {{"turnOn", id["ECLAIRAGE_TV"]}, {"Global", "GEA_Octan", 2}})

GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 3}}, -1, "", {{"turnOff", id["ECLAIRAGE_BUREAU"]}, {"Global", "GEA_Octan", 0}})

GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 5}}, -1, "", {{"turnOff", id["ECLAIRAGE_PAPIER"]}, {"Global", "GEA_Octan", 3}})

GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 7}}, -1, "", {{"turnOff", id["ECLAIRAGE_TV"]}, {"Global", "GEA_Octan", 5}})

GEA.add({{"SceneActivation", id["TELECOMMANDE_NODON"] , 13}, {"Global", "GEA_Octan", 6}}, -1, "", {{"Global", "GEA_Octan", 7}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Et tout ce code réagit comment quand on allume manuellement une lampe éteinte

Genre TV est éteinte, papier et bureau allumées (GEA_Octan=5) et j'allume manuellement la lampe TV ???

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour ma télécommande, j'ai préféré un script séparé. On comprend vite pourquoi :-)

Partager ce message


Lien à poster
Partager sur d’autres sites

certainement mal ;-) mais mon WAF est plutot du genre à  oublier les interr des qu'elle peut faire autrement avec une telecommande, sa tablette ou son tel ;-)

 

merci @steven

 

a tester des ce soir, et peut-etre que je ferai aussi du separe pour la telecommande hihihi

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour, j'ai trop d'intance avec mon petit code.

Pouvez vous m'aider?

GEA.add (277, -1, "déverrouillage porte")
GEA.add (277, -1, "Verrouillage", {{"Inverse"}})

Je veux savoir chaque verrouillage et déverrouillage d'une porte. J'ai mis un micro switch sur le contact de ma serrure.

J'ai aussi des soucis avec c'est que parfois, je vois affiché le message déverrouillage 3 fois de suite sans avoir de verrouillage entre.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir messieurs

 

Voila mon problème j'ai actuellement une scène GEA test dans lequel j'ai mit le code suivant :

	-- ==================================================
    -- 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, "",{{"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}, 3*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}}, 3*60,"",{{"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"}})   
	-- 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}}) 
	  

    -- ==================================================
    -- 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, "Allumage",{{"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, "Dim 54",{{"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"}})   
	-- 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}}) 

Mais voila cela ne fonctionne pas ensemble.

 

Si je condamne la chambre la cuisine fonction si je condamne la cuisine la chambre fonctionne.  :huh:  :huh:  :huh:

 

Avez vous une ptite idée ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@soulac,

 

je le connais ce code ;-) t'as bien fait de t'en inspirer ;-)

Quelle version dV4 ? 4.070 et 4.071 ?

 

Dans une de ces 2 versions de firmware, les lignes avec 2 RestartTask posaient des soucis, fais 2 lignes pour tester !!

 

et si tu fais un save, les 2 fonctionnent ? ;-) si oui, bienvenue dans la 4.0.70, sinon moi au 1er coup d'oeil, je vois rien de special.

 

les experts peut-etre et le proprio du code original peut-etre verront mieux ce qui pourraient clocher

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite,

 

Malheureusement j'ai fait la mise a jour 4.70 pour  voir ce qui avait fait avec le plugin HEOS DENON si j'avais su j'aurais du me casser une jambe :(  :( .

En ce qui concerne le code oui c'est celui de sebcbien qui d’ailleurs ma bien aidé car je le fait avec les yeux de chez fibaro

 

Je vais tester ta solution avec le code suivant si j'ai bien compris.

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}}) 

Partager ce message


Lien à poster
Partager sur d’autres sites

@steven et @ced :

 

bon merci d'abord steven, ca fonctionne nickel si on allume pas de lampes entre temps..comme suspecté, des quon allume une lampe entre temps ben faut un certain nombre de double clics pour remettre d'aplomb hihihi

Vais attendre l'effet WAF, j'ai teste tout seul hier soir ;-)

Si le WAf est contre je ferai une scene propre à  la telecommande ;-)

une idee pour faire ca propre ?

 

@cocolacombe0

Si tu veux recevoir les push à  chaque fois, heuuuu tu vas toujours te retrouver avec trop d'instances. tu ne peux pas rajouter quelques conditions ?

 

@soulac

ah ben t'es mieux avec tes jambes ;-)

sinon question bete : tu as bien une autre variable "GEA_Tasks" pour ton GEa de test ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite: désolé ma femme est plutôt du genre à  aimer les choses simples. Du coups, j'ai mis des détecteurs de mouvement et ce sont eux qui allume la lumière en fonction de l'heure (ou de la luminosité pour la pièce de vie principale) et celles-ci s'éteignent en cas de non détection au bout d'un certains temps. Je suis sà»r qu'elle a oublié où sont les interrupteurs depuis :P

J'avoue que pour être waf, j'ai galéré: entre les fois où les lumières s'allumaient le jour aussi et ne s'éteignent plus (normal vu qu'il y a toujours détection de mouvement) ou alors la lumière qui sert de veilleuse pour les enfants qui s'éteint la nuit et les enfants qui se mettent à  pleurer....

 

Et le simple clic sur ta télécommande ? Il lance un scénario particulier ? As-tu assigné une fonction à  chacun de tes boutons ? Tu as combien de boutons/possibilités ?

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@steven et @ced :

 

une idee pour faire ca propre ?

 

 

Une petite idée mais pas testée ni validée et réalisée à  l'aveugle.

--[[
%% properties
412 sceneActivation
%% globals
--]]

local varGlobal = "Octan_Sens"

-- Lecture de l'état des lampes au démarrage de cette scène
local status {
	bureau = fibaro:getValue(id["ECLAIRAGE_BUREAU"]) > 0, 
	papier = fibaro:getValue(id["ECLAIRAGE_PAPIER"]) > 0, 
	tv = fibaro:getValue(id["ECLAIRAGE_TV"]) > 0,
	etat = 0
}

-- On détermine l'état actuel :
-- 0 : tout est éteint
-- 1 : 1 lampe allumée
-- 11 : 2 lampes allumées
-- 111 : 3 lampes allumées
if (status["tv"] and status["papier"] and status["bureau"]) then status["etat"] = 111 end
if (status["position"] == 0 and status["tv"] and status["papier"]) then status["etat"] = 11 end
if (status["position"] == 0 and status["tv"]) then status["etat"] = 1 end


if (status["etat"] == 0) then 
    --- tout est éteint, on passe mode "allumage des lampes"
	fibaro:setGlobal(varGlobal, "turnOn") 
else if (status["etat"] == 111) then 
	--- tout est allumé, on passe mode "extinction des lampes"
	fibaro:setGlobal(varGlobal, "turnOff") 
end

local sens = fibaro:getGlobalValue(varGlobal)  or "turnOn"

if (sens == "turnOn" or sens == "") then
   if (status["etat"] == 0) then fibaro:call(id["ECLAIRAGE_TV"], "turnOn") end
   if (status["etat"] == 1) then fibaro:call(id["ECLAIRAGE_PAPIER"], "turnOn") end
   if (status["etat"] == 11) then fibaro:call(id["ECLAIRAGE_BUREAU"], "turnOn")  end
else
   if (status["etat"] == 111) then fibaro:call(id["ECLAIRAGE_BUREAU"], "turnOff") end
   if (status["etat"] == 11) then fibaro:call(id["ECLAIRAGE_PAPIER"], "turnOff") end
   if (status["etat"] == 1) then fibaro:call(id["ECLAIRAGE_TV"], "turnOff") end
end

fibaro:debug("Etat " .. status["etat"] .. " - Sens : " .. sens)

Partager ce message


Lien à poster
Partager sur d’autres sites

@ced

 

oui moi aussi elle est plutot simple pour ce genre de choses, mais le souci est que la maison est en construction, enfin l'etage, donc je n'ai aps encore soit achete les modules dont j'ai besoin soit pas tout reinstalle ;-)

j'ai achete la NODON Octan Remote : elle a 4 boutons, 4 valeurs par boutons, soit 16 scenarios possibles, mais en fait on peut en faire plus en jouant avec les conditions ;-)

 

Sauf qu'il y a 2 valeurs que je ne maitrise pas encore, c'est l'appui long et l'appui long relaché, quelle galere ;-)

 

@steven

encore mega merci, ce qui est fort c'est que j'arrive presque à  comprendre le code, mais j'aurais mis 6 mois à  l'ecrire lol le temps de trouver la logique hihihi

 

evidemment des questions : je comprends pas : 

 - status["position"], il est pas dans la variable declarée status

 

et pourquoi le "or "turnOn" ?

local sens = fibaro:getGlobalValue(varGlobal) or "turnOn"

merci beaucoup beaucoup

le pied, reste plus qu'a creer une scene dédiée pour la telecommande et ses differentes valeurs, vous aviez raison des le debut ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Oups..

 

status["position"] doit être remplacé par status["etat"] ... j'ai remplacé la variable par la suite pour être plus parlant mais j'ai oublié de le faire à  quelques endroits.

 

pour le or "turnOn"

si la commande fibaro:getGlobaleValue(varGlobal) retourne nul alors la variable "sens" prendra la valeur "turnOn" c'est comme si tu donnais une valeur par défaut au lieu d'un nul.

 

local sens = nil or "turnOn"     --- donne "turnOn"

Partager ce message


Lien à poster
Partager sur d’autres sites

Attention ce script va s'exécuter peux importe le bouton que tu appuies. Il faudrait ajouter ces quelques lignes au début du script.

local action = tonumber(fibaro:getValue(412, "sceneActivation"))
if (action != 13) then
   fibaro:abort()
end

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

toujours dans mes conversion LUA\GEA

 

Je pilote des philips HUE via des virtual devices (que je trouve nettement mieux que les plugins).

Du coup, je ne trouve pas comment utiliser l'état.

Dans le VD il y a une étiquette qui passe de ON à  OFF et ça me serait bien utilie dans mon code, le but étant d'allumer en fonction de la luminosité mais uniquement si c'est éteins.

GEA.add ( { {"Value-", id["LUXMETRE_DINNER"], 30} , {"Value", id["HUE_VIN_VD"], 0} } , -1 , "" , { {"VirtualDevice", id["HUE_VIN_VD"], 1} , {"Slider", id["HUE_RGB_ARMOIRE_VD"],3, 40} )

Donc avec "value" ca ne passe pas, j'ai vu un "label" dans le wiki mais il me semble que c'est pour définir la valeur. Rien pour la lire ?

Bon si c'est pas possible, je peux toujours utiliser le plugin pour remonter l'état mais je pensais pouvoir les virer.

 

Merci de votre aide.

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu peux faire ainsi :

 

GEA.add ( { {"Value-", id["LUXMETRE_DINNER"], 30} , {"Label", id["HUE_VIN_VD"], "label1", "OFF"} } , -1 , "" , { {"VirtualDevice", id["HUE_VIN_VD"], 1} , {"Slider", id["HUE_RGB_ARMOIRE_VD"],3, 40} )
Attention au nom du label "label1".

 

{“Labelâ€, <id_vd>, <nom label>, <contenu>}	Si la valeur du label est égale à  X

Partager ce message


Lien à poster
Partager sur d’autres sites

×