Aller au contenu

Yannick

Membres confirmés
  • Compteur de contenus

    1 011
  • Inscription

  • Dernière visite

  • Jours gagnés

    2

Messages posté(e)s par Yannick

  1. Salut Chlorure, désolé la dernière fois je t'ai mis un code qui ne fonctionne pas du tout et qui ne sert à  rien ...

     

    Voici le bon code qui fonctionne parfaitement.

     

    J'espère que ça te sera encore utile 

    --[[
    %% properties
    30 sceneActivation
    %% globals
    --]]
    -- l'id de ma télécommande est 30. Pensez à  mettre le votre
     
    -- Déclaration des variables
    -- 1/On récupère la scène activée, on convertit le texte en nombre (via la commande tonumber) et on la stocke dans la variable "NumScene" pour l'utiliser dans la suite du script
    local minimote = 30
    local NumScene = tonumber(fibaro:getValue(minimote, "sceneActivation")) 
    local Lampes_salon = {148,150,158}
    local Lampes_sejour = {153,157,159}
    local Lampes_etages = {Lampes_salon,Lampes_sejour}
    local TV = 154
     
    -- 2/ lancement des scènes
    -- Si la touche appuyée génère le numéro de scène 1 (touche 1 appui court)
    -- on récupère l'état des modules du salon et on fait l'inverse (s'ils sont allumés, on éteint et s'ils sont éteints on les allume) 
     
    if (NumScene == 1) 
      then
      fibaro:debug("Bouton 1 appuyé (court):")
      for _,v in pairs(Lampes_salon) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
        fibaro:debug("Allumage lampes Salon")
      else
        fibaro:call(v,'turnOff')
        fibaro:debug("Extinction Lampes Salon")
    end
    end
    end 
    -- même chose pour les lampes du séjour
    -- si un appui court sur le bouton 2 de la télécommande, on vérifie l'état des lampes et on fait l'inverse
    -- attention : la scène 1 correspond à  un appui COURT sur le bouton 1.
    -- la scène 2 correspond à  un appui LONG sur le bouton 1
    -- la scène 3 correspond à  un appui COURT sur le bouton 2
    -- la scène 4 correspond à  un appui long sur le bouton 2
    -- et ainsi de suite jusque 8
     
    if (NumScene == 3) 
      then
      for _,v in pairs(Lampes_sejour) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
        fibaro:debug("Bouton 2 appuyé (court):")
     
      else fibaro:call(v,'turnOff')
    end 
    end
    end
    -- maintenant si on appui longtemps sur le bouton (scène 2), on allume allume ou on éteint tout l'étage en même temps
     
    if (NumScene == 2)
    then fibaro:debug("Bouton 1 appuyé (long:") 
        for _,v in pairs(Lampes_etages) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
     else fibaro:call(v,'turnOff')
    end 
    end
    end
    -- ça c'est pour moi seulement, c'est une prise qui est isolée
     
    if (NumScene == 4) then 
    fibaro:debug("Bouton 4 appuyé (long):")
     if ((tonumber(fibaro:getValue(TV, 'value'))) == 0)
     then fibaro:call(TV,'turnOn')
     fibaro:debug("Allumage TV")
     else fibaro:call(TV,'turnOff')
     fibaro:debug("Extinction TV")
     end 
    end
     
    -- et on peut aussi déclencher des scènes qu'on aura programmées à  l'avance ou qui sont gérées par la box (dans mon cas, ouvertures et fermetures diverses des volets de ma maison
     
    if (NumScene == 5) 
    then 
    fibaro:startScene(5)
     elseif (NumScene == 7)
     then fibaro:startScene(3)
     elseif (NumScene == 6) 
    then fibaro:startScene(2)
     elseif (NumScene == 8)
     then fibaro:startScene(4)
     end
    
  2. Désolé de t'avoir dérangé... j'ai trouvé !!!!!

    --[[
    %% properties
    30 sceneActivation
    %% globals
    --]]
    -- l'id de ma télécommande est 30. Pensez à  mettre le votre
     
    -- Déclaration des variables
    -- 1/On récupère la scène activée, on convertit le texte en nombre (via la commande tonumber) et on la stocke dans la variable "NumScene" pour l'utiliser dans la suite du script
    local minimote = 30
    local NumScene = tonumber(fibaro:getValue(minimote, "sceneActivation")) 
    local Lampes_salon = {148,150,158}
    local Lampes_sejour = {153,157,159}
    local Lampes_etages = {Lampes_salon,Lampes_sejour}
    local TV = 154
     
    -- 2/ lancement des scènes
    -- Si la touche appuyée génère le numéro de scène 1 (touche 1 appui court)
    -- on récupère l'état des modules du salon et on fait l'inverse (s'ils sont allumés, on éteint et s'ils sont éteints on les allume) 
    
    if (NumScene == 1) 
      then
      fibaro:debug("Bouton 1 appuyé (court):")
      for _,v in pairs(Lampes_salon) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
        fibaro:debug("Allumage lampes Salon")
      else
        fibaro:call(v,'turnOff')
        fibaro:debug("Extinction Lampes Salon")
    end
    end
    end 
    -- même chose pour les lampes du séjour
    -- si un appui court sur le bouton 2 de la télécommande, on vérifie l'état des lampes et on fait l'inverse
    -- attention : la scène 1 correspond à  un appui COURT sur le bouton 1.
    -- la scène 2 correspond à  un appui LONG sur le bouton 1
    -- la scène 3 correspond à  un appui COURT sur le bouton 2
    -- la scène 4 correspond à  un appui long sur le bouton 2
    -- et ainsi de suite jusque 8
     
    if (NumScene == 3) 
      then
      for _,v in pairs(Lampes_sejour) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
        fibaro:debug("Bouton 2 appuyé (court):")
    
      else fibaro:call(v,'turnOff')
    end 
    end
    end
    -- maintenant si on appui longtemps sur le bouton (scène 2), on allume allume ou on éteint tout l'étage en même temps
     
    if (NumScene == 2)
    then fibaro:debug("Bouton 1 appuyé (long:") 
        for _,v in pairs(Lampes_etages) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
     else fibaro:call(v,'turnOff')
    end 
    end
    end
    -- ça c'est pour moi seulement, c'est une prise qui est isolée
     
    if (NumScene == 4) then 
    fibaro:debug("Bouton 4 appuyé (long):")
     if ((tonumber(fibaro:getValue(TV, 'value'))) == 0)
     then fibaro:call(TV,'turnOn')
     fibaro:debug("Allumage TV")
     else fibaro:call(TV,'turnOff')
     fibaro:debug("Extinction TV")
     end 
    end
     
    -- et on peut aussi déclencher des scènes qu'on aura programmées à  l'avance ou qui sont gérées par la box (dans mon cas, ouvertures et fermetures diverses des volets de ma maison
     
    if (NumScene == 5) 
    then 
    fibaro:startScene(5)
     elseif (NumScene == 7)
     then fibaro:startScene(3)
     elseif (NumScene == 6) 
    then fibaro:startScene(2)
     elseif (NumScene == 8)
     then fibaro:startScene(4)
     end
     
    

    en réfléchissant un peu et en réveillant ses neurones ça fonctionne 

  3. JE viens de debugger les If Then end comme suit 

    --[[
    %% properties
    30 sceneActivation
    %% globals
    --]]
    -- l'id de ma télécommande est 30. Pensez à  mettre le votre
     
    -- Déclaration des variables
    -- 1/On récupère la scène activée, on convertit le texte en nombre (via la commande tonumber) et on la stocke dans la variable "NumScene" pour l'utiliser dans la suite du script
    local minimote = 30
    local NumScene = tonumber(fibaro:getValue(minimote, "sceneActivation")) 
    local Lampes_salon = {148,150,158}
    local Lampes_sejour = {153,157,159}
    local Lampes_etages = {Lampes_salon,Lampes_sejour}
    local TV = 154
     
    -- 2/ lancement des scènes
    -- Si la touche appuyée génère le numéro de scène 1 (touche 1 appui court)
    -- on récupère l'état des modules du salon et on fait l'inverse (s'ils sont allumés, on éteint et s'ils sont éteints on les allume) 
    
    if (NumScene == 1) 
      then
      fibaro:debug("Bouton 1 appuyé (court):")
      for _,v in inpairs(lampes_salon) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
        fibaro:debug("Allumage lampes Salon")
      else
        fibaro:call(v,'turnOff')
        fibaro:debug("Extinction Lampes Salon")
    end
    end
    end 
    -- même chose pour les lampes du séjour
    -- si un appui court sur le bouton 2 de la télécommande, on vérifie l'état des lampes et on fait l'inverse
    -- attention : la scène 1 correspond à  un appui COURT sur le bouton 1.
    -- la scène 2 correspond à  un appui LONG sur le bouton 1
    -- la scène 3 correspond à  un appui COURT sur le bouton 2
    -- la scène 4 correspond à  un appui long sur le bouton 2
    -- et ainsi de suite jusque 8
     
    if (NumScene == 3) 
      then
      for _,v in inpairs(lampes_sejour) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
        fibaro:debug("Bouton 2 appuyé (court):")
    
      else fibaro:call(v,'turnOff')
    end 
    end
    end
    -- maintenant si on appui longtemps sur le bouton (scène 2), on allume allume ou on éteint tout l'étage en même temps
     
    if (NumScene == 2)
    then fibaro:debug("Bouton 1 appuyé (long:") 
        for _,v in inpairs(Lampes_etages) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
     else fibaro:call(v,'turnOff')
    end 
    end
    end
    -- ça c'est pour moi seulement, c'est une prise qui est isolée
     
    if (NumScene == 4) then 
    fibaro:debug("Bouton 4 appuyé (long):")
     if ((tonumber(fibaro:getValue(TV, 'value'))) == 0)
     then fibaro:call(TV,'turnOn')
     fibaro:debug("Allumage TV")
     else fibaro:call(TV,'turnOff')
     fibaro:debug("Extinction TV")
     end 
    end
     
    -- et on peut aussi déclencher des scènes qu'on aura programmées à  l'avance ou qui sont gérées par la box (dans mon cas, ouvertures et fermetures diverses des volets de ma maison
     
    if (NumScene == 5) 
    then 
    fibaro:startScene(5)
     elseif (NumScene == 7)
     then fibaro:startScene(3)
     elseif (NumScene == 6) 
    then fibaro:startScene(2)
     elseif (NumScene == 8)
     then fibaro:startScene(4)
     end
    

    et maintenant j'ai ça

    [DEBUG] 09:09:09: [1;31m2015-09-28 09:09:09.034219 [ fatal] Runtime error: /opt/fibaro/scenes/147.lua:44: attempt to call global 'inpairs' (a nil value)[0m
    
  4. Salut Jojo,

    Je reviens vers toi pour ton explication de texte ci-dessus qui me renvoies une erreur que je ne comprends pas (pour info j'ai migré en V4.057 dernièrement).

    Voici mon code complet

    --[[
    %% properties
    30 sceneActivation
    %% globals
    --]]
    -- l'id de ma télécommande est 30. Pensez à  mettre le votre
     
    -- Déclaration des variables
    -- 1/On récupère la scène activée, on convertit le texte en nombre (via la commande tonumber) et on la stocke dans la variable "NumScene" pour l'utiliser dans la suite du script
    local minimote = 30
    local NumScene = tonumber(fibaro:getValue(minimote, "sceneActivation")) 
    local Lampes_salon = {148,150,158}
    local Lampes_sejour = {153,157,159}
    local Lampes_etages = {Lampes_salon,Lampes_sejour}
    local TV = 154
     
    -- 2/ lancement des scènes
    -- Si la touche appuyée génère le numéro de scène 1 (touche 1 appui court)
    -- on récupère l'état des modules du salon et on fait l'inverse (s'ils sont allumés, on éteint et s'ils sont éteints on les allume) 
    
    if (NumScene == 1) 
      then
      fibaro:debug("Bouton 1 appuyé (court):")
      for _,v in pairs(lampes_salon) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
        fibaro:debug("Allumage lampes Salon")
    end
        end
    
      else
        fibaro:call(v,'turnOff')
        fibaro:debug("Extinction Lampes Salon")
    end
    end
     
    -- même chose pour les lampes du séjour
    -- si un appui court sur le bouton 2 de la télécommande, on vérifie l'état des lampes et on fait l'inverse
    -- attention : la scène 1 correspond à  un appui COURT sur le bouton 1.
    -- la scène 2 correspond à  un appui LONG sur le bouton 1
    -- la scène 3 correspond à  un appui COURT sur le bouton 2
    -- la scène 4 correspond à  un appui long sur le bouton 2
    -- et ainsi de suite jusque 8
     
    if (NumScene == 3) 
      then
      for _,v in pairs(lampes_sejour) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
        fibaro:debug("Bouton 2 appuyé (court):")
    
      else fibaro:call(v,'turnOff')
    end 
    end
    
    -- maintenant si on appui longtemps sur le bouton (scène 2), on allume allume ou on éteint tout l'étage en même temps
     
    if (NumScene == 2)
    then fibaro:debug("Bouton 1 appuyé (long:") 
        for _,v in pairs(Lampes_etages) do
      if (tonumber(fibaro:getValue(v, 'value'))) == 0 then
        fibaro:call(v,'turnOn')
     else fibaro:call(v,'turnOff')
     
    end
    end
    -- ça c'est pour moi seulement, c'est une prise qui est isolée
     
    if (NumScene == 4) then 
    fibaro:debug("Bouton 4 appuyé (long):")
     if ((tonumber(fibaro:getValue(TV, 'value'))) == 0)
     then fibaro:call(TV,'turnOn')
     fibaro:debug("Allumage TV")
     else fibaro:call(TV,'turnOff')
     fibaro:debug("Extinction TV")
     end 
    end
     
    -- et on peut aussi déclencher des scènes qu'on aura programmées à  l'avance ou qui sont gérées par la box (dans mon cas, ouvertures et fermetures diverses des volets de ma maison
     
    if (NumScene == 5) 
    then 
    fibaro:startScene(5)
     elseif (NumScene == 7)
     then fibaro:startScene(3)
     elseif (NumScene == 6) 
    then fibaro:startScene(2)
     elseif (NumScene == 8)
     then fibaro:startScene(4)
     end
      end
    

    et voici ce que ça me renvoit

    [DEBUG] 08:58:04: [1;31m2015-09-28 08:58:04.328771 [ fatal] Runtime error: /opt/fibaro/scenes/147.lua:35: expected near 'end'[0m
    

    un p'tit coup de main ??? stp 

     

    Merci

  5. Salut les Gars, je viens de trouver une utilité très importante sur ces Main Zwave Device. Il s'agit bien du moteur ZWAVE de chaque module. C'est lui qui permet de gérer toute les modifications des paramètres et làoù je me suis rendu compte que c'étati top c'est pour les modules sur batterie. Plus d'utilité de réveiller tout de suite le module comme les FGMS par exemple. Il suffit de modifier le paramètre souhaité dans le main device et le paramètre est conserver jusqu'au prochain réveil du module. ça fonctionne nickel chez moi en tout cas et ça évite surtout de jouer les équilibriste àchaque fois pour aller décrocher et réveiller puis raccrocher le module après avoir vérifier que la prise en compte a bien était faite

  6. Salut à  tous

    J'ai fais la mise à  niveau en Bêta depuis le temps que j'attendais de passer en V4 pour l'instant je n'ai rien vu d'exceptionnel à  part des trucs bizarres qui me donne des Main_Zwave_Device quaiment à  chaque module. Quelqu'un sait y ce que c'est ? Autre question complètement à  part : On ne peut pas se réapproprier les anciens ID des modules ??? (j'ai une HCL en passerelle, et j'ai du la réintégrer mais il m'a mis de nouveaux ID partout !!!) 

     

    Merci les gars

  7. Salut à  tous, 

     

    J'ai une question et je n'arrive pas à  trouver de réponse alors je me tourne vers les pros du LUA.

     

    Contexte : je souhaite actionner en même plusieurs modules  mais en essayant de faire cela sur une seule variable mais je n'y arrive pas. J'illustre mon propos :

    
    local a,b,c,d,e,f = 37,39,57,48,58,56
    local TV = 49
     
    
      if ((tonumber(fibaro:getValue(a,b,c, 'value'))) == 0)
           then 
        fibaro:call(a,b,c,'turnOn')
     
    

    c'est faisable ou pas ? 

    • Upvote 1
  8. Oh c'est bizarre il m'a pas pris tout le code 

     

    voilà  la suite plus lisible

    -- attention : la scène 1 correspond à  un appui COURT sur le bouton 1.
    -- la scène 2 correspond à  un appui LONG sur le bouton 1
    -- la scène 3 correspond à  un appui COURT sur le bouton 2
    -- la scène 4 correspond à  un appui long sur le bouton 2
    -- et ainsi de suite jusque 8
    
    if (NumScene == 3) 
    then fibaro:debug("Bouton 2 appuyé (court):")
     if ((tonumber(fibaro:getValue(lampes_sejour, 'value'))) == 0)
     then
    fibaro:call(lampes_sejour,'turnOn')
    fibaro:debug("Allumage lampes Séjour")
     else fibaro:call(lampes_sejour,'turnOff')
     fibaro:debug("Extinction Lampes Séjour")
    end 
    end
    
    -- maintenant si on appui longtemps sur le bouton (scène 2), on allume allume ou on éteint tout l'étage en même temps
    
    if (NumScene == 2)
    then fibaro:debug("Bouton 1 appuyé (long:") 
    if ((tonumber(fibaro:getValue(lampes_1er_etage, 'value'))) == 0)
     then
     fibaro:call(lampes_1er_etage,'turnOn')
     fibaro:debug("Allumage toutes Lampes")
     else fibaro:call(lampes_1er_etage,'turnOff')
     fibaro:debug("Extinction toutes Lampes") 
    end 
    end
    
    -- ça c'est pour moi seulement, c'est une prise qui est isolée
    
    if (NumScene == 4) then 
    fibaro:debug("Bouton 4 appuyé (long):")
     if ((tonumber(fibaro:getValue(49, 'value'))) == 0)
     then fibaro:call(49,'turnOn')
     fibaro:debug("Allumage TV")
     else fibaro:call(49,'turnOff')
     fibaro:debug("Extinction TV")
     end 
    end
    
    -- et on peut aussi déclencher des scènes qu'on aura programmées à  l'avance ou qui sont gérées par la box (dans mon cas, ouvertures et fermetures diverses des volets de ma maison
    
    if (NumScene == 5) 
    then 
    fibaro:startScene(5)
     elseif (NumScene == 7)
     then fibaro:startScene(3)
     elseif (NumScene == 6) 
    then fibaro:startScene(2)
     elseif (NumScene == 8)
     then fibaro:startScene(4)
     end
    
    
  9. Salut à  tous. Voilà  ce que j'ai fait moi pour ma Minimote. Sachant que la Keyfob DSA22 fonctionne exactement sur le même principe. 

     

    Important, bien suivre le mode d'emploi ou le tuto http://tutoriels.domotique-store.fr/category/27/dsa22-_-zw088-_-keyfob.html qui est très bien fait pour régler les bons paramètres et que la télécommande fonctionne en mode activation de scène et en lien avec la HC2 et non en mode autonome (en sortie d'usine elle est paramétrée pour être associée directement avec des modules ZWAVE (contrôleur ZWAVE) et non en périphérique. 

    --[[
    %% properties
    30 sceneActivation
    %% globals
    --]]
    -- l'id de ma télécommande est 30. Pensez à  mettre le votre
    
    -- Déclaration des variables
    -- 1/On récupère la scène activée, on convertit le texte en nombre (via la commande tonumber) et on la stocke dans la variable "NumScene" pour l'utiliser dans la suite du script
    local minimote = 30
    local NumScene = tonumber(fibaro:getValue(minimote, "sceneActivation")) 
    Local lampes_salon = 37,39,57
    local lampes_sejour = 48, 58, 56
    local lampes_1er_etage = 37,39,57,48,58,56
    
    -- 2/ lancement des scènes
    -- Si la touche appuyée génère le numéro de scène 1 (touche 1 appui court)
    -- on récupère l'état des modules du salon et on fait l'inverse (s'ils sont allumés, on éteint et s'ils sont éteints on les allume) 
    
    if (NumScene == 1) 
      then
      fibaro:debug("Bouton 1 appuyé (court):")
      if ((tonumber(fibaro:getValue(lampes_salon, 'value'))) == 0)
           then 
        fibaro:call(lampes_salon,'turnOn')
        fibaro:debug("Allumage lampes Salon")
    
      else
        fibaro:call(lampes_salon,'turnOff')
        fibaro:debug("Extinction Lampes Salon")
      end
    end
    
    -- même chose pour les lampes du séjour
    -- si un appui court sur le bouton 2 de la télécommande, on vérifie l'état des lampes et on fait l'inverse
    
    -- attention : - la scène 1 correspond à  un appui COURT sur le bouton 1.

    -- - la scène 2 correspond à  un appui LONG sur le bouton 1
    -- - la scène 3 correspond à  un appui COURT sur le bouton 2
    -- - la scène 4 correspond à  un appui long sur le bouton 2
    -- et ainsi de suite jusque 8.
    if (NumScene == 3) then fibaro:debug("Bouton 2 appuyé (court):") if ((tonumber(fibaro:getValue(lampes_sejour, 'value'))) == 0) then
    fibaro:call(lampes_sejour,'turnOn') fibaro:debug("Allumage lampes Séjour") else fibaro:call(lampes_sejour,'turnOff') fibaro:debug("Extinction Lampes Séjour") end end

    -- maintenant si on appui longtemps sur le bouton (scène 2), on allume allume ou on éteint tout l'étage en même temps
    if (NumScene == 2)
    then fibaro:debug("Bouton 1 appuyé (long:") if ((tonumber(fibaro:getValue(lampes_1er_etage, 'value'))) == 0) then fibaro:call(lampes_1er_etage,'turnOn') fibaro:debug("Allumage toutes Lampes") else fibaro:call(lampes_1er_etage,'turnOff') fibaro:debug("Extinction toutes Lampes") end end
    -- ça c'est pour moi seulement, c'est une prise qui est isolée
    if (NumScene == 4) then fibaro:debug("Bouton 4 appuyé (long):") if ((tonumber(fibaro:getValue(49, 'value'))) == 0) then fibaro:call(49,'turnOn') fibaro:debug("Allumage TV") else fibaro:call(49,'turnOff') fibaro:debug("Extinction TV") end end
    -- et on peut aussi déclencher des scènes qu'on aura programmées à  l'avance ou qui sont gérées par la box (dans mon cas, ouvertures et fermetures diverses des volets de ma maison
    if (NumScene == 5) then fibaro:startScene(5) elseif (NumScene == 7) then fibaro:startScene(3) elseif (NumScene == 6) then fibaro:startScene(2) elseif (NumScene == 8) then fibaro:startScene(4) end

    Voilà  messieurs, si cela peut vous être utile... mais pour cette scène, je me suis beaucoup inspiré des travaux de ce bonhomme : http://www.vesternet.com/resources/application-notes/apnt-42#.VfLfbhHtlBc

×
×
  • Créer...