Aller au contenu


Photo
Tuto HC2

Gea : Gestionnaire D'événements Automatique

SCRIPT LUA Contrôle Vérification

  • Ce sujet est fermé Ce sujet est fermé
905 réponses à ce sujet

#1 Steven

Steven

    Maître Yoda du forum

  • Membres +1
  • 3 058 messages
  • VilleValleiry, Haute-Savoie
  • Box:Home Center 2
  • Version:4.090 (X-ing fingers)

Posté 09 mai 2014 - 11:25

Gestionnaire d'Evénements Automatique (GEA)
ancienement : Wtdiso What To Do If Still Open


Edit : version 5.00 modifiée le 8 décembre 2014

But :
Ce script a pour but de contrôler, à intervalle régulier, l'état de votre environnement pendant une durée déterminée afin de vous avertir d'éventuel soucis et si nécessaire d'effectuer automatiquement certaines actions.
Depuis la version 3.00 vous avez aussi la possibilité d'utiliser ce script en exploitant les déclencheurs %%properties end %%globals.

 

Exemple :

  • Etre informé si la porte du garage est restée ouverte plus de 10 minutes
  • Recevoir une notification et allumer le radiateur s'il fait trop froid depuis 30 minutes
  • Eteindre automatiquement la lumière des WC si cette dernière est allumée plus de 5 minutes
  • Eteindre le frigo et recevoir une notification si ce dernier consomme trop d'électricité ou pas assez

 

 

Installation :

  • Nouveauté de la version 3.80 Depuis le panneau des variables, créer une variable (simple) appelée "GEA_Tasks" (son contenu n'a pas d'importance) 
  • Créer un scénario en mode LUA
  • Insérer le script ci-joint (GEA.lua))
  • Adapter les dernières lignes à vos besoins (en dessous de la ligne "A VOUS DE JOUER")

 

 

Paramétrage :

 

Définir l'intervalle de contrôle en secondes

GEA.checkEvery = <nb secondes> (30 par défaut)
Exemple : GEA.checkEvery = 30

Indique la liste des portables par défaut devant recevoir une notification {70, 71}
GEA.portables = {<id portable> [, <id portable>][, ...]}
Exemple : GEA.portables = {70, 71}

 

Indique si on utilise un firmware égale ou supérieur à la version 4.017

GEA.isVersionFour = true --- On est en version 4.017 Beta ou suppérieur

 

Indique la langue utilisée (Français : FR ou Anglais : EN)

GEA.language = "FR"


Bascule en mode de débogage pour obtenir plus de traces
GEA.debug = true | false (false par défaut)
Exemple : GEA.debug = true


Permet un débugage fort de GEA, chque erreur provoque l'arrêt de GEA si cette option est à false
GEA.catchError = true | false (true par défaut)
Exemple : GEA.catchError = false -- va afficher les erreurs et stopper GEA


Supsendre le script à la volée
GEA.getGlobalForActivation = {<variable globale>, <valeur>}
Exemple : GEA.getGlobalForActivation = {"SuspendreGEA", "non"}
Tant que la variable globale "SuspendreGEA" sera à "non" le script continuera son action.

 

Syntaxe :

    Simple condition : 
  GEA.add(<condition>, <durée en secondes|-1>, <message a notifier>[, <options>])
  Exemple : GEA.add(100, 10*60, "Lampe allumée de puis plus de 10mn, on l'éteint", {{"turnOff"}})
 
   Condition multiple :
  GEA.add( { <condition_principale>[, <condition2>[, ...]] } , <durée en secondes|-1>, <message a notifier>[, <options>])
  Exemple : GEA.add( { 100, {"Global", "JourNuit", "Nuit"} } }, 10*60, "Lampe allumée de puis plus de 10mn ET la variable global JourNuit indique Nuit alors on éteint la lampe", {{"turnOff"}})
 
   Conditions autorisées :
      <Id module>                             -- Identifiant du module *
      {"Global", <nom variable>, <valeur>}    -- Si la variable global X contient la valeur Y

      {"Weather", <valeur>}                   -- Si la météo indique la valeur
      {"Sensor+", <id module>, <valeur max>}  -- Si la valeur du sensor X est supérieur à Y
      {"Sensor-", <id module>, <valeur max>}  -- Si la valeur du sensor X est inférieur à Y
      {"Sensor", <id module>, <valeur max>}  -- Si la valeur du sensor X est égale à Y
      {"Sensor!", <id module>, <valeur max>}  -- Si la valeur du sensor X est différente à Y
      {"Value+", <id module>, <valeur max>}   -- Si la valeur du module X est supérieur à X
      {"Value-", <id module>, <valeur max>}   -- Si la valeur du module X est inférieur à X
      {"Value", <id module>, <valeur max>}   -- Si la valeur du module X est égale à X
      {"Value!", <id module>, <valeur max>}   -- Si la valeur du module X est différente à X
      {"Global+", <nom variable>, <valeur>}   -- Si la valeur de la variable globale X est supérieur à X
      {"Global-", <nom variable>, <valeur>}   -- Si la valeur de la variable globale X est inférieur à X
      {"Global", <nom variable>, <valeur>}   -- Si la valeur de la variable globale X est égale à X
      {"Global!", <nom variable>, <valeur>}   -- Si la valeur de la variable globale X est différente à X
      {"Slider-", <id_vd>, <nom slider>, <valeur>}   -- Si la valeur du slider est inférieur à X
      {"Slider+", <id_vd>, <nom slider>, <valeur>}   -- Si la valeur du slider est supérieur à X
      {"Slider", <id_vd>, <nom slider>, <valeur>}   -- Si la valeur du slider est égale à X
      {"Slider!", <id_vd>, <nom slider>, <valeur>}   -- Si la valeur du slider est différente à X
      {"Label", <id_vd>, <nom label>, <contenu>}   -- Si la valeur du label est égale à X
      {"Label!", <id_vd>, <nom label>, <contenu>}   -- Si la valeur du label est différente à X

      {"Property", <id_module>, <nom propriété>, <valeur>}   -- Si la valeur de la propriété du module est égale à la valeur indiquée
      {"Property!", <id_module>, <nom propriété>, <valeur>}   -- Si la valeur de la propriété du module est différente à la valeur indiquée
      {"Battery", <id module>, <valeur max>}  -- Si l'état de la pile du module X est inférieur ou égale à X
      {"Batteries", <valeur max>}             -- Si l'état de la pile des 350 premiers ont une pile inférieur ou égale à X
      {"Dead", <id module>}                   -- Si le module X ne répond plus
      {"Group", <numéro du groupe>}           -- Si le groupe X est valable
      {"SceneActivation", <id module>, <id scene>} -- Si la scene X du module Y est le déclencheur du script
      * Si seul l'Identifiant du module le script considère qu'il doit vérifier si le module est activé.
 
  Durée :
      <durée en secondes>                     -- Nombre de secondes pendant lequel la condition doit être respectée
 
  Message :
      <message à notifier>                    -- Le message devant être notifier **
      ** Si le message est vide "" aucune notification ne sera envoyée
         Un message peut contenir des variables qui seront remplacée à la volée. Ces variables sont
         #time#, #duration#, #value#, #date#, #seconds#, #name#, #runs#, #rooms# soit respectivement
         heure, durée, dernière valeur, date, secondes, nom du périphérique, nombre d'exécution et pièce
         Exemple "Le consommation #valeur#W relevée à #time#, le #date# sur le périphérique #name# est trop élevée"
         Depuis la version 4.20, il est possible de connaitre les valeurs des autres périphériques impliqué.
         GEA.add( { condition1, condition2, condition3 }, <durée>, "#value[1]# #value[2]# #value[3]#"). Les variables
         indexée sont : #value[index]#, #name[index]# et #room[index]#. #name#, #value# et #room# indique toujours
         la condition principale.

 
  Options :
    {<option>[,<option>][,...]}               -- Il s'agit d'un groupe d'options {{},{},{}}
 
       Option :   
        {"turnOff"[,<id module>]}             -- Eteint le périphérique concenné {"turnOff"} ou {"turnOff",21}
        {"turnOn"[,<id module>]}              -- Allume le périphérique concerné {"turnOn"} ou {"turnOn",21}
        {"Inverse"}                           -- On inverse la condition si elle était vrai, le script retourn faux
        {"Repeat"}                            -- On répete les avertissements tant que le périphérique n'a pas changé d'état.
        {"Portable", <id>}                    -- Le message associé à ce périphérique sera envoyé à ce portable au lieu de ceux par défaut {"Portable", 70}
        {"Scenario", <id>}                    -- Lance un scénario selon son identifiant {"Scenario", 2}
        {"Value", <value>}                    -- Met la valeur 20 dans le périphérique - dimmer une lampe. {"Value", 20}
        {"Value", <id>, <value>}              -- Met la valeur 20 dans le périphérique <id> - dimmer une lampe. {"Value", 19, 20}
        {"Open"}                    -- Ouvre le volet
        {"Open", <value>}                    -- Ouvre le volet de X % {"Open", 20}
        {"Open", <id>, <value>}               -- Ouvre le volet (id) de X% {"Open", 61, 20}
        {"Close"}                    -- Ferme le volet
        {"Close", <value>}            -- Ferme le volet de X % {"Close", 20}
        {"Close", <id>, <value>}      -- Ferme le volet (id) de X% {"Close", 61, 20}
        {"Global", <variable>, <valeur>}      -- Met la valeur "Oui" dans la variable globale "Maison" {"Global", "Maison", "Oui"}
        {"Global", <variable>, "inc+"}      -- Incrémente de 1 automatiquement la variable globale
        {"Global", <variable>, "dec-"}      -- Decrémente de 1 automatiquement la variable globale
        {"Time", <from>, <to>}                -- Ne vérifie l'évenement QUE si nous sommes dans la/les tranches horaires {"Time", "22:00", "06:00"}
        {"Dates", <from>, <to>}                -- Ne vérifie l'évenement QUE si nous sommes dans la/les périodes de dates spécifiée {"Dates", "01/01[/2014]", "31/01[/2014]"}
        {"Armed"}                -- Ne vérifie QUE si le module est armé
        {"Disarmed"}                -- Ne vérifie QUE si le module est désarmé
        {"setArmed", <id>}          -- arme le module <id>
        {"setDisarmed", <id>}       -- desarme le module <id>
        {"RestartTask", <id_tache>}       -- Redémarre une tâche selon son <id>
        {"StopTask", <id_tache>}       -- Stoppe une tâche selon son <id>
        {"NotStarted"}              -- Empêche la tache de démarrer automatiquement (voir RestartTask)
        {"MaxTime", <number>}       -- Stoppe une tâche après un certain nombre d'exécution
        {"DST"}                -- Ne vérifie l'évenement QUE si nous sommes en mode "Saving time" soit heure d'été
        {"NOTDST"}                -- Ne vérifie l'évenement QUE si nous sommes en mode heure d'hiver
        {"VirtualDevice", <id,_module>, <no_bouton>} -- Pr
ess le bouton du module virtuel {"VirtualDevice", 2, 1}

        {"Label", <id_module>, <name>, <message>} -- Attribue le message au label du module virtuel {"Label", 21, "ui.Label1.value", "activé"}
        {"WakeUp", <id,_module>}              -- Essai de réveillé le module {"WakeUp", 54}
        {"Email", <id_user>,}                 -- Envoi le message par email à l'utilisateur {"Email", 2}

        {"Email", <id_user>,<sujet>}          -- Envoi le message par email à l'utilisateur {"Email", 2, "Sujet du message"}
        {"Group", <numero>}                   -- Attribut cet événement au groupe {"Group", 2}
        {"Slider", <id_module>, <id_slider>, <valeur>} -- Met la valeur dans le slider du module {"Slider", 19, 1, 21.3}
        {"Program", <id_module>, <no>}        -- Exécute le programme du module RGB {"Program", 19, 5}
        {"RGB", <id_module>, <col1>, <col2>, <col3>, <col4>} -- Modifie la couleur RGB du module {"RGB", 19, 100, 100, 0, 100}
        {"Days", <jours>}                     -- Ne vérifie l'évenement que si le jours d'exécution est dans le/les jours indiqué (jeurs peut prendre les valeurs suivantes "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, All, Weekday, Weekend")

        {"CurrentIcon", <id_module>, <no_icon>}        -- Modifie l'icone d'un module virtuel 

        {"CopyGlobal", <var_source>, <var_dest>}        -- Copy la valeur de la variable global <var_source> dans la variable global <var_dest>
        {"If", {[{<condition}[,{<condition}[,...]]}}       -- L'événement sera autorisé uniquement si toutes les conditions sont valides
 

 
Demande de support / FAQ : un topic a été dédié pour répondre à toutes les questions sur le projet : Support GEA n'hésitez pas à venir nous y retrouver.
 

 

Explication :

Vous précisez quel module le scénario doit contrôler (GEA.add(28, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes")). Toutes les 30 secondes, le scénario va vérifier l'état de la porte 28. Si cette porte est restée ouverte plus de 10 minutes, il vous enverra un message push. Contrairement à d'autre scénario, celui-ci contrôle l'état d'une porte/lumière/volet toutes les X secondes. Dans l'exemple de la porte de garage, si cet dernière a été fermée et ré-ouverte pendant les dernières 10 minutes, le compteur sera redémarré.

Ce scénario permet de cumuler plusieurs avertissements, il vous suffit donc d'un seul scénario pour contrôler tout votre environnement :[/indent]
 

  1.  
  2. GEA.add(28, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"})
  3. GEA.add(69, 5*60, "La lumière du local technique est allumée depuis plus de 5 minutes")
  4. GEA.add({"Global", "Capsule", "100"}, 1*60, "Il faut commander du café, plus de capsule")
  5. GEA.add({"Sensor+", 19, 450}, 5*60, "Consommation du frigo excessive (#value#W), on l'éteint", {{"turnOff"}})  

Voici un exemple minimaliste de scénario

  1.  
  2. -- ==================================================
  3. -- A VOUS DE JOUER
  4. -- ==================================================
  5. GEA.checkEvery = 30 -- On vérifie toutes les X secondes
  6. GEA.portables = {70} -- Liste des portables devant recevoir une notification {70, 71}
  7.  
  8. GEA.add(28, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}})
  9. GEA.add(69, 5*60, "", {{"turnOff"}}) -- Eteindre automatiquement le local technique
  10.  
  11. -- Si un enfant allume sa lampe le soir, après 10mn le système la dim à 20%. Après 20mn le système éteint la lampe.
  12. GEA.add(66, 10*60, "Chambre Kendra allumée 20%", {{"Time", "22:00", "06:00"}, {"Value", 20}})
  13. GEA.add(66, 20*60, "Chambre Kendra extinction", {{"Time", "22:00", "06:00"}, {"turnOff"}})
  14.  
  15. -- Variable global
  16. GEA.add({"Sensor+", 80, 100}, 30, "Consommation cafetière, café en cours", {{"Global", "Capsule", "inc+"}})
  17. GEA.add({"Global", "Capsule", "100"}, 1*60, "Recommander du café")
  18.  
  19. -- Sensor et valeur
  20. GEA.add({"Sensor+", 19, 100}, 1*60, "Consommation excessive de la WMC #value#")
  21. GEA.add({"Value-", 8, 18}, 30*60, "Il fait froid au salon #value# à #time#")
  22.  
  23. -- NE PAS OUBLIER - Démarrage du scénario
  24. GEA.run()
  25.  

Special Thanks to :

Fredric, Diuck, Domodial, moicphil, lolomail, byackee, JossAlf, Did, Hansolo, Shyrka973, fredo, jompa98 et tous les autres gars de Domotique-fibaro.fr

 

 

 

 

Quelques exemples :

  1.  
  2. GEA.add(28, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}})
  3. -- On vérifie toutes les 10mn si la porte du garage est ouverte et on envoi un message push. On répète l'opération tant que la porte n'est pas fermée.
  4.  
  5. GEA.add(28, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}, {"Time", "22:00", "06:00"}})
  6. -- Idem de précédent mais on vérifie uniquement entre 22:00 et 06:00
  7.  
  8. GEA.add(28, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}, {"Time", "22:00", "06:00"}, {"Time", "12:00", "13:00"}})
  9. -- Idem de précédent mais on vérifie entre 22:00 - 06:00 et 12:00 - 13:00
  10.  
  11. GEA.add(28, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Scenario", 1}, {"Time", "22:00", "06:00"}, {"Time", "12:00", "13:00"}})
  12. -- Si la porte du garage est ouverte plus de 10mn entre 22:00 - 06:00 ou 12:00 - 13:00, on lance le scénario 1
  13.  
  14. GEA.add(69, 5*60, "", {{"turnOff"}})
  15. -- On éteint la lumière des toilettes automatiquement après 5 minutes
  16.  
  17. GEA.add(69, 5*60, "", {{"turnOff"}, {"Global", "WC", "Allumé"}, {"Time", "22:00", "06:00"}})
  18. -- On éteint la lumière des toilettes automatiquement après 5 minutes si ils ont été allumé entre 22:00 et 06:00 et on met la variable global "WC" à "Allumé"
  19.  
  20. GEA.add(19, 5*60, "Lumière extérieur est éteinte", {{"Inverse"},  {"Time", "Sunset", "Sunrise"}, {"Portable", 71}})
  21. -- Si la lumière extérieur est éteinte (inverse) depuis plus de 5minutes entre le couché du soleil et le levé on envoi un message push au portable ayant l'ID 71 au lieu de celui par defaut.
  22.  
  23. GEA.add(69, 5*60, "", {{"Global", "Karotz", "WC occuper"}, {"VirtualDevice", 20, 1}})
  24. -- Si la lumière est allumée plus de 5mn, on met la variable "Karotz" à "WC occuper" et on appuie sur le bouton (id : 1) du module virtuel (id : 20)
  25.  
  26. GEA.add(69, 5*60, "", {{"Days", "Weekend, Monday"}})
  27. -- On vérifie si la lumière est allumée plus de 5mn, uniquement les Samedis, Dimanches et Lundi
  28.  
  29. -- On dimme la lampe à 20% si elle est allumée plus de 10mn entre 22:00 et 06:00 puis après 20mn on l'éteint
  30. GEA.add(31, 10*60, "", {"Time", "22:00", "06:00"}, {"Value", 20}})
  31. GEA.add(31, 20*60, "", {"Time", "22:00", "06:00"}, {"turnOff"}})
  32.  
  33. -- Variable globale
  34. -- si la variable "Capsule" contient "100" depuis plus d'une minute
  35. GEA.add({"Global", "Capsule", "100"}, 1*60, "Commander du café, plus de capsule")
  36.  
  37. -- Batterie
  38. -- parcours les 350 premiers modules à la recherche de pile inférieur ou égal à 40%
  39. GEA.add({"Batteries", 40}, 24*60"60, "", {{"Repeat"}})
  40.  
  41. -- Sensors
  42. -- Si le frigo comsomme trop depuis 5 minutes (plus de 450W), on l'arrête
  43. GEA.add({"Sensor+", 19, 450}, 5*60, "Consommation excessive #value# > 450W", {{"turnOff"}})
  44. -- Si le frigo ne comsomme pas assez depuis 5 minutes (moins de 3W), on averti
  45. GEA.add({"Sensor-", 19, 3}, 5*60, "Consommation insuffisante #value#< 3W", {{"Repeat"}})
  46.  
  47. -- Value
  48. GEA.add({"Value-", 8, 20}, 1*60, "Il fait froid au salon #value# à #time#") -- moins de 20
  49. GEA.add({"Value+", 8, 22}, 1*60, "Il fait trop chaud #value# au salon depuis #duration#") -- plus de 22
  50.  
  51. -- RGB si la consommation du frigo est trop élevée (> 450W)
  52. GEA.add({"Sensor+", 19, 450}, 1*60, "Le périphérique #name# consomme trop (#value#)", {{"RGB", 27, 100, 0, 100, 100}})
  53.  
  54. -- Slider - attribue 100 à la valeur d'un slider (1) du module virtuel (27) si la lampe (19) est allumée depuis 1 minutes
  55. GEA.add(19, 1*60, "", {{"Slider", 27, 1, 100}})
  56.  
  57. -- Programme - lance le programme 5 du module 23 si la lampe (19) est allumée depuis 1 minutes
  58. -- puis éteint la lampe 19
  59. GEA.add(19, 1*60, "", {{"Program", 23, 5}, {"turnOff"}})
  60.  
  61. -- Dead
  62. GEA.add({"Dead", 27}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", 27}})
  63.  
  64. -- Détecteur (id 200) avec allumage de lampe (id 100)
  65. -- Chaque détection redémarre le time de la lampe
  66. local myTask = GEA.add(100, 5*60, "Extinction de la lampe après 5mn", {{"turnOff"}})
  67. GEA.add(200, -1, "", {{"RestartTask", myTask}})
  68.  
  69. -- Groupes
  70. GEA.add({"Global", "absent", "oui"}, 10*60, "", {{"Group", 2}})
  71. GEA.add(19, 10*60, "", {{"Group", 2}})
  72. GEA.add({"Group", 2}, 5*60, "Absent mais la lampe (19) est encore allumée, extinction", {{"turnOff", 19}})
  73. -- Si la variable global "absent" est sur "oui" depuis 10 minutes 
  74. -- Si la lampe 19 est allumée depuis 10 minutes 
  75. -- Si ces éléments sont vrai pendant plus de 5 minutes alors j'envoi un push et j'éteint la lampe 19.
  76.  

Déclenchement instantané
La version 3+ permet de déclenché ce script en instantané
Exemple allumé la lampe (65) à l'ouverture de la porte (18) et l'éteindre à la fermeture

  1.  
  2. --[[
  3. %% autostart
  4. %% properties
  5.  18 value
  6. %% globals
  7.  Capsule
  8. --]]
  9. ...
  10. GEA.add(18, -1, "", {{"turnOn",65}})
  11. GEA.add(18, -1, "", {{"Inverse"},{"turnOff",65}})
  12. GEA.add({"Global","Capsule", "100"}
  13.  

Paramètre "If"
La version 3.10 voit naître le paramètre "If". Ce dernier permet de valider un certain nombre de conditions avant de valider l'événement.

  1.  
  2. -- Si la lumière (69) est allumée un Lundi, Samedi ou Dimanche
  3. -- ET que "Vacances = 0" ET que "Absence" = 1
  4. -- ET que la température (8) est inférieur à 18°
  5. local condition = {"If",{{"Global", "Absence", "1"},{"Global", "Vacances", "0"},{"Value-", 8, 18}}}
  6. GEA.add(69, -1, "La lumière est allumée", {{"Days", "Monday, Weekend"}, condition})
  7.  

Historique des versions

Version 1.10

  • [Nouveauté] Si vous mettez "turnOff" comme message, le scénario ne vous enverra pas d'avertissement mais éteindra directement le périphérique en question
  • [Fix] Correction pour les périphérique de type dimmable_light et binary_light

Version 1.20

  • [Nouveauté] GEA.getGlobalForActivation
    Cette nouvelle fonctionnalité permet de suspendre/activé le scénario par le biais d'une variable global
    GEA.getGlobalForActivation = {"Alerte", "activé"} -- Le scénario ne fonctionnera que si la variable globale "Alerte" contient "activé"
  • [Nouveauté] GEA.setGlobalMessages
    Cette nouvelle fonctionnalité permet de mettre a jour une variable globale au lieu d'envoyé un message push.
    GEA.setGlobalMessages = {{"SARAH:", "parle"}, {"KAROTZ:", "Karotz"}} -- Indique au scénario que si le message contient "SARAH:" ou "KAROTZ:" le scénario doit mettre à jour la variable "parle" ou "Karotz" au lieu d'envoyé un message push.
  • [Nouveauté] Repeat
    Vous pouvez ajouté un dernier paramètre à la fonction GEA.add pour indiquer si l'avertissement doit être répété ou non.
    GEA.add(71, 5*60, "Toilette r-c allumée") -- l'avertissement ne sera pas répété
    GEA.add(71, 5*60, "Toilette r-c allumée", true) --  l'avertissement sera répété
    GEA.add(71, 5*60, "Toilette r-c allumée", false) --  l'avertissement ne sera pas répété

Version 1.30 - Refonte globale

  • [Supprimé] GEA.setGlobalMessages
    Cette fonctionnalité est remplacée par le paramètre {"Global", "MaVariable", "MaValeur"}
  • [Supprimé] Repeat
    Le paramètres Repeat a été supprimé et remplacé par le paramètre {"Repeat"}

Version 1.40

  • [Ajouté] Paramètre {"Days", "..."}
  • [Ajouté] Sunset et Sunrise {"Time", "Sunset", "Sunrise"}

Version 1.41

  • [Fix] Suppression du message "hors plage horaires" prêtant à confusion

Version 1.42

  • [Fix] Si une plage horaires est définie et que la vérification à lieu dans cette même plage, le scénario ne contrôlait plus le paramètre {"Days"}

Version 1.50

  • [Ajouté] Paramètre  {"Value", <valeur>}
    Ce paramètre permet de modifier la valeur d'un périphérique.
    Utiliser principalement pour dimmer une lampe par exemple on dimme la lampe à 20% si elle est allumée plus de 10mn entre 22:00 et 06:00 puis après 20mn on l'éteint.
    GEA.add(31, 10*60, "", {"Time", "22:00", "06:00"}, {"Value", 20}})
    GEA.add(31, 20*60, "", {"Time", "22:00", "06:00"}, {"turnOff"}})

Version 1.51

  • [Ajouté] Message d'avertissement lorsque le scénario est suspendu

Version 1.52

  • [Modifié] Trace plus clair en mode "debug"

Version 1.55

  • [Optimisation] Optimisation du code

Version 1.60

  • [Nouveauté] Ajout de déclencheur
    Avant, il n'était possible uniquement d'avoir comme déclencheur l'identifiant d'un périphérique et le système utilisait sont état (actif ou non). Il est maintenant possible d'avoir comme déclencheur une variable global ou la valeur d'un sensor (voir les derniers exemples)

Version 1.70

  • [Nouveauté] Ajout des déclencheurs "Value+", "Value-" et "Dead"
  • [Nouveauté] Ajout des actions "Email", "Label" et "WakeUp"
  • [Nouveauté] Ajout de variables dans le message : time, duration, value, date, seconds, name

Version 1.71

  • [Nouveauté] Possibilité de précisé un ID différent pour turnOn ou turnOff (ex : {"turnOff", 21})

Version 1.80

  • [Nouveauté] Ajout des actions "Program", "RGB" et "Slider"
  • [Nouveauté] Ajout de la propriété {"Group", 1}
  • [Nouveauté] Ajout du déclencheur {"Group", 1}

Version 1.81

  • [Fix] Gestion des groupes

Version 2.00

  • [Modification] Renommage du projet (anciennement Wdtiso)

Version 2.01

  • [Nouveauté] Ajout de l'action {"Value", <id>, <valeur>} permettant de modifier la valeur d'un module autre que celui testé

Version 3.00

  • [Nouveauté] Ajout de l'action {"Open"} et {"Close"} permettant d'ouvrir fermer les volets
  • [Nouveauté] Ajout de l'action {"Open", valeur} et {"Close", valeur} permettant d'ouvrir fermer les volets selon un pourcentage
  • [Nouveauté] Ajout de l'action {"Open", id, valeur} et {"Close", id, valeur} permettant d'ouvrir fermer les volets du module (ID) selon un pourcentage
  • [Nouveauté] Possibilité des déclencheurs %%properties et %%globales avec comme durée -1

Version 3.10

  • [Correction] Correction des modes {"Open", <id>, <value>} et {"Open", <id>, <value>}
  • [Nouveauté] Ajout du paramètre {"DST"} permettant de vérifié l'heure d'été
  • [Nouveauté] Ajout du paramètre {"If", {[{condition}][,{condition}[,...]]}} Permet de valider X conditions avant de lancer les actions

Version 3.15

  • [Nouveauté] Ajout du paramètre {"NOTDST"} permettant de vérifié l'heure d'hiver

Version 3.20

  • [Fix] Correction des paramètres {"DST"} et {"NOTDST"}
  • [Modification] Une correction est maintenant appliquée sur le délai entre 2 vérifications selon la durée de traitement des événements. Exemple, vous avez spécifier un intervalle de 30 secondes entre 2 passage. La durée de traitement est de 1 seconde, le nouveau délai sera donc de 29 secondes

Version 3.21

  • [Modification] #duration# affiche dorénavant la vrai durée et au format Xh Xm Xs (La porte est ouverte depuis 5m 30s)
  • [Nouveauté] Ajout de l'action {"Stop"} et {"Stop", <id>}

Version 3.30

  • [Nouveauté] Ajout de l'options {"Dates", "01/01[/2014]", "31/01[/2014]"}
  • [Nouveauté] Ajout de l'option {"Time", "Sunrise<07:30", "Sunset<22:00
  • [Nouveauté] Ajout de l'option {"Time", "Sunrise+20", "Sunset-100"}
  • [Nouveauté] Ajout de la variable #durationfull#  pour les message (3 heures 5 minutes 30 secondes)
  • [Nouveauté] Les variables de message #time#, #duration#, #date#, ... sont utilisable dans les variables globales, les labels et les emails
  • [Nouveauté] Supporte le format d'heure H:mm
  • [Nouveauté] Ajout des options {"Armed"} et {"Disarmed"}
  • [Nouveauté] Ajout de la condition {"Battery", <id>, <valeur max>}
  • [Correction] Correction du paramètre {"Email", <id user>} [size]
  • [Optimisation]Isolation des commandes en cas d'erreur
  • [Optimisation]Ajout de validations techniques

Version 3.40

  • [Nouveauté] Ajout de la condition {"Batteries", <valeur max>}
  • [Nouveauté] Ajout de la condition {"SceneActivation", <id module>, <id scene>}
  • [Correction] détection activation/désactivation sur module RGB par HANSOLO

Version 3.50

  • [Nouveauté] Ajout des conditions {"Global+", <variable>, <valeur>} et {"Global+", <variable>, <valeur>} par HANSOLO
  • [Nouveauté] Ajout des conditions {"setArmed", <id>} et {"setDisarmed", <id>}
  • [Correction] Erreur lorsqu'un module à pile ne retourne pas son information
  • [Correction] Mode debug dans certains circonstance

Version 3.51

  • [Correction] Batteries, la valeur n'était pas prise en compte et fixée à 80
  • [Correction] #durationfull# amélioration en utilisant le "et" (exemple : 1 heure et 30 minutes, 23 minutes et 30 secondes, 1 heure 20 minutes et 30 secondes,...)

Version 3.60

  • [Nouveauté] Ajout de la condition {"Slider-", <id_vd>, <nom_slider>, <valeur>}
  • [Nouveauté] Ajout de la condition {"Slider+", <id_vd>, <nom_slider>, <valeur>}
  • [Nouveauté] Ajout de la condition {"Label", <id_vd>, <nom_label>, <contenu>}

Version 3.61

  • [Correction] Les options Label et Slider introduit dans la v1.70 ne fonctionnaient pas correctement

Version 3.62

  • [Amélioration] Etat des capteurs (mouvement, porte, inondation) par Shyrka973
  • [Amélioration] Coloration des logs pour plus de lisibilité (inspiré du Maestro Krikroff)

Version 3.65

  • [Amélioration] Déportation du code utilisateur en début de script, proposition de  fredo
  • [Nouveauté] Ajout de l' action {"Global", <variable>, "inc+"} pour incrémenter de 1 automatiquement la variable
  • [Nouveauté] Ajout de l' action {"Global", <variable>, "dec-"} pour décrémenter de 1 automatiquement la variable

Version 3.70

  • [Amélioration] RGBW : permettre de spécifier chaque canal indépendamment  par Shyrka973

Version 3.75

  • [Nouveauté] GEA devient multilingue. Par défaut le français est conservé.

Version 3.80

  • [Nouveauté] Possibilité de stopper n'importe quel tâche {"StopTask", <id_task>}.
  • [Nouveauté] Possibilité de redémarrer n'importe quel tâche {"RestartTask", <id_task>}.
  • [Nouveauté] Possibilité de spécifier le nombre d’exécution d'une  tâche {"MaxTime", <number>}
  • [ATTENTION] Veuillez créer la variable globale GEA_Tasks

Version 3.81

  • [Correction]  {"StopTask", <id_task>},  {"RestartTask", <id_task>} et {"MaxTime", <number>} était issu d'une mauvaise implémentation.
  • [Nouveauté] Add {"Global!", <variable>, <value>} Pour vérifier qu'une variable globale ne soit pas égale à la valeur.
  • [Nouveauté] Ajout de la variable #runs# dans les messages pour savoir le nombre de fois que la tâche a été exécutée.
  • [ATTENTION] Veuillez créer la variable globale GEA_Tasks

Version 3.82

  • [Correction]  réparation du {"Repeat"} cassé lors de la 3.81. (thanks jompa68)
  • [Amélioration] Ajout du code de Shyrka973 affichant l'ID d'un module déclenchant GEA sans pour autant avoir de tâche à effectuer.

Version 4.017

  • [Correction]  Mise en phase avec la version du firmware 4.017. (thanks jompa68)

Version 4.020

  • [Adaptation]  Mise en phase avec la version du firmware 4.017 et plus.
  • [Nouveauté] Multiple condition pour remplacer les If
  • [Nouveauté]  #value[Index]#, #name[Index]# et #room[Index]# indexé par périphérique.

Version 4.021

  • [Correction]  Impossible d'éteindre un dimmer.

Version 4.10

  • [Correction] Déclenchement instantané : prise en compte de Global!, Global+ et Global-.
  • [Nouveauté] {"Weather", "rain"} permet de savoir s'il pleux
  • [Nouveauté - condition] {"Property", <id_module>, <nom propriété>, <valeur>} Permet de savoir si la propriété <nom propriété> du module <id module> est égala à <valeur>
  • [Nouveauté - condition] {"Property!", <id_module>, <nom propriété>, <valeur>} Permet de savoir si la propriété <nom propriété> du module <id module> est égala à <valeur>
  • [Nouveauté - action] {"CurrentIcon", <id_module>, <id_icon>} Permet modiifier l'icone d'un module virtuel
  • [Nouveauté - action] {"CopyGlobal", <ivar_source>, <var_dest>} Permet copy la variable global <var source> dans <var dest>
  • [Nouveauté] Utilisation des regex pour Value, Property, Weather, Global, et Label ainsi que leur déclinaison.

Version 5.00

 

  • [Correction] Message indiquant les piles faibles {Batteries}
  • [Correction] #value[?]#, #room[?]# sont maintenant corrigé
  • [Correction] Allumage et extinction des module RGB
  • [Correction] {"Global", "", ""} ne fonctionne plus en 4.x et est maintenant transformer en "true" à la volée
  • [Ajout] l'option {"NotStarted"} empêche une tache de démarrer automatiquement (c.f. RestartTask pour la démarrer)
  • [Ajout] {"Email", <id utilisateur>[, <sujet>]} Le sujet du message peut maintenant être personnalisé.

 

 

 

Attention, pour obtenir l'icone en 128x128, veuillez préalablement cliquer dessus avant de l'enregistrer.

Fichier(s) joint(s)


Modifié par Steven, 09 décembre 2014 - 10:44 .

  • Moicphil, Rems, Did et 23 autres aiment ceci
Image IPB HOME CENTER 2, ZIBASE PRO, KAROTZ, NETATMO, IPX800 (X400-CT)
Image IPB GEA (SUPPORT), GESTION CHAUFFAGE, METEOALERTE, OPENKAROTZ, MY BATTERIES (old), EVENEMENTS, TASKER4HC, IMPERIHOME VD

#2 Fredric

Fredric

    Gourou du forum

  • Membres +1
  • 1 719 messages
  • VilleANGOULEME
  • Box:Home Center 2
  • Version:4.090

Posté 09 mai 2014 - 11:50

c'est pas mal personnalisable, tous ce que j'aime, j'y jette un œil  ^_^

Merci pour le partage  ;)


Box : Fibaro Home Center 2

Modules Z-Wave : Fibaro FGS-222, Fibaro FGS-212, Fibaro FGS-221, Fibaro FGRM-222 Roller Shutter, Fibaro FGBS-001 Universal Sensor, Fibaro Wall Plug, Fibaro FGMS-001, Fibaro FGSD-002, Fibaro FGK-101, Swipe , The Button FGPB-101, Everspring ST814, SF812, AN158, AN145, Aeon Labs ZW089, Greenwave PowerNode, Greenwave NS310-F, VISION ZD2012, Dédecteurs d’inondation Vision Security, TKB TZ66D, VISION ZG8101, HSP02, Sirène Vision Security, NodOn "Octan Remote".

Autres : GCE Eco-Devices, Advance Caméra IP, Caméra HEDEN V7.2, WANSCAM HW0025 V1, WANSCAM JW0010, WANSCAM JW0003, WANSCAM JW0008-I, WANSCAM HW0028, Foscam FI9803P, XD10TT-AM, Station Météo Netatmo, Synology 216Play, Wiko Goa, NUC I5, Antenne Z-Wave 3dBi, Asus ME176CX-1c, écran tactile 24", SARAH.

Nombre de dispositifs: 109


#3 Moicphil

Moicphil

    Dieu du forum

  • Co-Administrateur
  • 5 220 messages
  • VilleRégion Lyonnaise
  • Box:HC2 + HCL
  • Version:HC2 : 4.091 - HCLite : 4.080

Posté 09 mai 2014 - 12:12

Merci pour le partage Steven  ;)


Fibaro :2 x HC2  - 1 X HC Lite -  4 x RGBW - 8 x FGS211 - 2 x FGS221 - 1 x FGFS-101 - 17 x FGK101 - 3 x WallPlug - 1 x  FGSS-001 - 1 X FGBS.321 - 1 X FGD211 - 4 X FGSS-002 - 2 X FGMS-001

Everspring :   3 x SM103 - 1x HSM02 - 4 x AN157 - 4 x ST814

Vision Security : 1 x ZG8101 , 2 x ZM1602 . 

Aeon Labs : 2 x Minimote - 1 X Smart Energy DSC06106

GreenWave : 2 x Power Node 6

Divers : 1 x EcoDevices - 1 x IPX800 - 1 x Sirène Elkron - 3 x Foscam - 1 x Zmodo - 1 x Tablette Xpéria Z - 1 x Ipad2 - 1 x Syno DS214Play - 1 x Boulder - Sonos: 1xPlaybar , 1xSub, 2xPlay3 , 4xPlay1 , Thermostat NetAtmo + Station, Nuc, Karotz, Kit Philips Hue , Roomba 620.

Tutos :  Notifications via Pushover  /  Thermostat GreenMomit et HC2 / Sirène exterieure Ffilaire et HC2  /  Ecodevice Notifiction quotidienne  / Module Virtuel Alarme avancée / Contrôler sa Home Center par sms

 

Référencement des tutos et scripts du forum disponibles ici : http://blog-fibaro.fr


#4 Steven

Steven

    Maître Yoda du forum

  • Membres +1
  • 3 058 messages
  • VilleValleiry, Haute-Savoie
  • Box:Home Center 2
  • Version:4.090 (X-ing fingers)

Posté 09 mai 2014 - 21:50

Edit version modifiée afin de corrigé un bug lié au périphérique de type Light

+ Ajout de la possibilité de mettre "turnOff" comme message pour automatiquement éteindre le périphérique


Image IPB HOME CENTER 2, ZIBASE PRO, KAROTZ, NETATMO, IPX800 (X400-CT)
Image IPB GEA (SUPPORT), GESTION CHAUFFAGE, METEOALERTE, OPENKAROTZ, MY BATTERIES (old), EVENEMENTS, TASKER4HC, IMPERIHOME VD

#5 JossAlf

JossAlf

    Gourou du forum

  • Membres +1
  • 1 037 messages
  • VilleIle de France
  • Box:Home Center 2
  • Version:4.056

Posté 09 mai 2014 - 22:04

Excellent ! 



#6 Moicphil

Moicphil

    Dieu du forum

  • Co-Administrateur
  • 5 220 messages
  • VilleRégion Lyonnaise
  • Box:HC2 + HCL
  • Version:HC2 : 4.091 - HCLite : 4.080

Posté 09 mai 2014 - 22:10

Testé et ... approuvé ! fonctionne impec ! ;)

  1.  
  2. [DEBUG] 23:08:21: Added id: 229 secondes: 120 msg: La porte du garage est ouverte depuis plus de 2 minutes
  3. [DEBUG] 23:08:21: Running...
  4. [DEBUG] 23:08:21: 229 activated since 0 secondes / 120
  5. [DEBUG] 23:08:51: 229 activated since 30 secondes / 120
  6. [DEBUG] 23:09:21: 229 activated since 60 secondes / 120
  7. [DEBUG] 23:09:51: 229 activated since 90 secondes / 120
  8. [DEBUG] 23:10:21: 229 activated since 120 secondes / 120
  9. [DEBUG] 23:10:21: Action id: 229 msg: La porte du garage est ouverte depuis plus de 2 minutes
  10.  

Fibaro :2 x HC2  - 1 X HC Lite -  4 x RGBW - 8 x FGS211 - 2 x FGS221 - 1 x FGFS-101 - 17 x FGK101 - 3 x WallPlug - 1 x  FGSS-001 - 1 X FGBS.321 - 1 X FGD211 - 4 X FGSS-002 - 2 X FGMS-001

Everspring :   3 x SM103 - 1x HSM02 - 4 x AN157 - 4 x ST814

Vision Security : 1 x ZG8101 , 2 x ZM1602 . 

Aeon Labs : 2 x Minimote - 1 X Smart Energy DSC06106

GreenWave : 2 x Power Node 6

Divers : 1 x EcoDevices - 1 x IPX800 - 1 x Sirène Elkron - 3 x Foscam - 1 x Zmodo - 1 x Tablette Xpéria Z - 1 x Ipad2 - 1 x Syno DS214Play - 1 x Boulder - Sonos: 1xPlaybar , 1xSub, 2xPlay3 , 4xPlay1 , Thermostat NetAtmo + Station, Nuc, Karotz, Kit Philips Hue , Roomba 620.

Tutos :  Notifications via Pushover  /  Thermostat GreenMomit et HC2 / Sirène exterieure Ffilaire et HC2  /  Ecodevice Notifiction quotidienne  / Module Virtuel Alarme avancée / Contrôler sa Home Center par sms

 

Référencement des tutos et scripts du forum disponibles ici : http://blog-fibaro.fr


#7 Steven

Steven

    Maître Yoda du forum

  • Membres +1
  • 3 058 messages
  • VilleValleiry, Haute-Savoie
  • Box:Home Center 2
  • Version:4.090 (X-ing fingers)

Posté 09 mai 2014 - 22:39

Ce scénario répond à mes besoins, je n'ai donc pas d'intérêt à le faire évoluer. Par contre, si quelqu'un a des besoins spécifiques, n'hésiter pas à me le faire savoir. Ensemble, on peux aller loin.

Exemples :
  • être averti si la lumière est allumée plus de 5mn uniquement entre 22:00 et 06:00
  • démarrer le scénario X si la porte est ouverte pendant plus de X minutes
  • ...
A vous devoir si vous avez besoin de quelque chose.
  • Fredric aime ceci
Image IPB HOME CENTER 2, ZIBASE PRO, KAROTZ, NETATMO, IPX800 (X400-CT)
Image IPB GEA (SUPPORT), GESTION CHAUFFAGE, METEOALERTE, OPENKAROTZ, MY BATTERIES (old), EVENEMENTS, TASKER4HC, IMPERIHOME VD

#8 Fredric

Fredric

    Gourou du forum

  • Membres +1
  • 1 719 messages
  • VilleANGOULEME
  • Box:Home Center 2
  • Version:4.090

Posté 09 mai 2014 - 23:21

Pour les vd, c'est possible?
Je veux me servir de ton script pour que Sarah me le dise.

Box : Fibaro Home Center 2

Modules Z-Wave : Fibaro FGS-222, Fibaro FGS-212, Fibaro FGS-221, Fibaro FGRM-222 Roller Shutter, Fibaro FGBS-001 Universal Sensor, Fibaro Wall Plug, Fibaro FGMS-001, Fibaro FGSD-002, Fibaro FGK-101, Swipe , The Button FGPB-101, Everspring ST814, SF812, AN158, AN145, Aeon Labs ZW089, Greenwave PowerNode, Greenwave NS310-F, VISION ZD2012, Dédecteurs d’inondation Vision Security, TKB TZ66D, VISION ZG8101, HSP02, Sirène Vision Security, NodOn "Octan Remote".

Autres : GCE Eco-Devices, Advance Caméra IP, Caméra HEDEN V7.2, WANSCAM HW0025 V1, WANSCAM JW0010, WANSCAM JW0003, WANSCAM JW0008-I, WANSCAM HW0028, Foscam FI9803P, XD10TT-AM, Station Météo Netatmo, Synology 216Play, Wiko Goa, NUC I5, Antenne Z-Wave 3dBi, Asus ME176CX-1c, écran tactile 24", SARAH.

Nombre de dispositifs: 109


#9 Steven

Steven

    Maître Yoda du forum

  • Membres +1
  • 3 058 messages
  • VilleValleiry, Haute-Savoie
  • Box:Home Center 2
  • Version:4.090 (X-ing fingers)

Posté 10 mai 2014 - 00:07

Si ne pars du principe que pour faire parler Sarah, tu mets à jour une variable global avec le message puis que tu appuies sur le boutons d'un module virtuel pour faire parler Sarah.

 

Si je prend comme exemple la variable global "SARAH" et le module virtuel ayant un ID 100 je remplacerais la méthode Wtdiso.sendWarning par ceci :

  1.  
  2. -- ---------------------------------------------------------------------------
  3. -- Envoi le message en push
  4. -- ---------------------------------------------------------------------------
  5. Wtdiso.sendWarning = function(id, message)
  6. fibaro:debug("Action id: " .. id .. " msg: " .. message)
  7. if (message == "turnOff") then
  8. fibaro:call(tonumber(id), message)
  9. elseif (string.find(message, "SARAH:")) then
  10. message = message:gsub("SARAH:", "")
  11. fibaro:setGlobalValue("SARAH", message)
  12. fibaro:call(100, "pressButton", "1")
  13. else
  14. for i = 1, #Wtdiso.portables do
  15. fibaro:call(tonumber(Wtdiso.portables[i]), "sendPush", message)
  16. end
  17. end
  18. end
  19.  
  20.  

Ensuite tu n'aurais plus qu'a déclaré tes temporisation ainsi :

  1.  
  2. Wtdiso.add(28, 10*60, "SARAH: La porte du garage est ouverte depuis plus de 10 minutes")
  3.  
  4.  

Le système va donc détecter le mot clé "SARAH:" et mettre en variable global "La porte du garage est ouverte depuis plus de 10 minutes" puis activé ton module virtuel.

 

J'espère que c'est à cela que tu t'attendais ?


Image IPB HOME CENTER 2, ZIBASE PRO, KAROTZ, NETATMO, IPX800 (X400-CT)
Image IPB GEA (SUPPORT), GESTION CHAUFFAGE, METEOALERTE, OPENKAROTZ, MY BATTERIES (old), EVENEMENTS, TASKER4HC, IMPERIHOME VD

#10 lolomail

lolomail

    Membre passionné

  • Membres +1
  • PipPipPip
  • 491 messages
  • Box:Home Center 2
  • Version:3.600

Posté 10 mai 2014 - 13:29

Tu pourrais faire déclencher ce script quand une variable est dans un état définie? Par exemple une variable "hors de la maison" avec deux état "oui" et "non"?



#11 Fredric

Fredric

    Gourou du forum

  • Membres +1
  • 1 719 messages
  • VilleANGOULEME
  • Box:Home Center 2
  • Version:4.090

Posté 10 mai 2014 - 16:12

non, Steven, j'ai pas réussi a inclure la variable dans la ligne du vd de Sarah

j'ai créé la variable "parle" mais j'arrive pas à la mettre du texte, Sarah ne comprend pas.

  1.  
  2. HC2 = Net.FHttp("192.168.1.26", 8080);
  3. response = HC2:GET("/sarah/parle?phrase=la+fenêtre+du+bureau+est+ouverte")
  4.  
  5.  

donc, j'ai créé un vd avec un bouton pour chaque ouverture, vu que j'habite pas un château, j'en ai pas 50.


Box : Fibaro Home Center 2

Modules Z-Wave : Fibaro FGS-222, Fibaro FGS-212, Fibaro FGS-221, Fibaro FGRM-222 Roller Shutter, Fibaro FGBS-001 Universal Sensor, Fibaro Wall Plug, Fibaro FGMS-001, Fibaro FGSD-002, Fibaro FGK-101, Swipe , The Button FGPB-101, Everspring ST814, SF812, AN158, AN145, Aeon Labs ZW089, Greenwave PowerNode, Greenwave NS310-F, VISION ZD2012, Dédecteurs d’inondation Vision Security, TKB TZ66D, VISION ZG8101, HSP02, Sirène Vision Security, NodOn "Octan Remote".

Autres : GCE Eco-Devices, Advance Caméra IP, Caméra HEDEN V7.2, WANSCAM HW0025 V1, WANSCAM JW0010, WANSCAM JW0003, WANSCAM JW0008-I, WANSCAM HW0028, Foscam FI9803P, XD10TT-AM, Station Météo Netatmo, Synology 216Play, Wiko Goa, NUC I5, Antenne Z-Wave 3dBi, Asus ME176CX-1c, écran tactile 24", SARAH.

Nombre de dispositifs: 109


#12 Steven

Steven

    Maître Yoda du forum

  • Membres +1
  • 3 058 messages
  • VilleValleiry, Haute-Savoie
  • Box:Home Center 2
  • Version:4.090 (X-ing fingers)

Posté 10 mai 2014 - 21:37

Tu pourrais faire déclencher ce script quand une variable est dans un état définie? Par exemple une variable "hors de la maison" avec deux état "oui" et "non"?

 
Le script doit tourner en permanence, pas de choix. Par contre, il peut très bien ne prendre en compte si une porte est ouverte ou une lumière allumée uniquement si ta variable globale est à "oui".
 
Dans ce cas, il faudrait modifier le code ainsi 
  1. Wtdiso.isActivate = function(id)
  2.  
  3. if (fibaro:getGlobalValue("hors de la maison")) == "non") then
  4. return false
  5. end
  6.  
  7. ...
  8.  
Ainsi, tant que tu es à la maison, le système fera croire à ce scénario que le périphérique n'est pas actif. Il n'y aura donc pas d'avertissement. Dès que la variable passera à "oui" le scénario fera son travail.
Image IPB HOME CENTER 2, ZIBASE PRO, KAROTZ, NETATMO, IPX800 (X400-CT)
Image IPB GEA (SUPPORT), GESTION CHAUFFAGE, METEOALERTE, OPENKAROTZ, MY BATTERIES (old), EVENEMENTS, TASKER4HC, IMPERIHOME VD

#13 Steven

Steven

    Maître Yoda du forum

  • Membres +1
  • 3 058 messages
  • VilleValleiry, Haute-Savoie
  • Box:Home Center 2
  • Version:4.090 (X-ing fingers)

Posté 10 mai 2014 - 21:55

non, Steven, j'ai pas réussi a inclure la variable dans la ligne du vd de Sarah
j'ai créé la variable "parle" mais j'arrive pas à la mettre du texte, Sarah ne comprend pas.

  1.  
  2. HC2 = Net.FHttp("192.168.1.26", 8080);
  3. response = HC2:GET("/sarah/parle?phrase=la+fenêtre+du+bureau+est+ouverte")
  4.  
  5.  
donc, j'ai créé un vd avec un bouton pour chaque ouverture, vu que j'habite pas un château, j'en ai pas 50.

 

 
 
Ok, c'est pas terrible tout cela :-)
 

 

Pour faire parler Sarah, tu ne devrais avoir besoin que de taper le code suivant 

  1.  
  2. fibaro:setGlobal("parle", "Sarah+est+ma+meilleure+amie");
  3.  

Mais pour ce faire, il faut créer un module virtuel et un scénario.

Le module virtuel va, bien évidement, envoyer la requête HTTP à Sarah avec la phrase "parle". Et le scénario va lui faire appel au module virtuel chaque fois que la variable "parle" sera modifiée.

 

 

1) Création du module virtuel avec 1 bouton. Derrière ce bouton, tu colles le code suivant :
 

  1.  
  2. HC2 = Net.FHttp("192.168.1.26", 8080);
  3.  
  4. -- la variable doit s'appeler "parle" dans le panneau des variables
  5. local quoidire = fibaro:getGlobalValue("parle"))
  6.  
  7. if (quoidire == "") then
  8. quoidire = "Je+n+ai+rien+a+dire"
  9. end
  10.  
  11. response = HC2:GET("/sarah/parle?phrase="..quoidire)
  12.  

 
2) Création d'un scénario qui va automatiquement faire parler Sarah
 

  1.  
  2. --[[
  3. %% properties
  4. %% globals
  5.  parle
  6. --]]
  7.  
  8. -- Ce scénario va s’exécuter automatiquement dès que la variable globale "parle"
  9. -- va être modifiée
  10.  
  11. local vd_id = 29 -- Id de ton module virtuel sarah
  12.  
  13. fibaro:call(vd_id, "pressButton", "1");
  14.  
  15.  

N'importe ou dans tes scénarios, modules virtuels, dès que tu changeras la valeur de ta variable "parle", le scénario (2) sera exécuter. Il lancera ton module virtuel qui va récupérer le contenu de la variable pour l'envoyer à Sarah.
 
Essaye cela et tiens moi au courant.

 

Tu verras, c'est magique car après il ne te suffit plus que de faire appel au code  

fibaro:setGlobal("parle", "Ma+phrase");

pour faire parler Sarah 


Image IPB HOME CENTER 2, ZIBASE PRO, KAROTZ, NETATMO, IPX800 (X400-CT)
Image IPB GEA (SUPPORT), GESTION CHAUFFAGE, METEOALERTE, OPENKAROTZ, MY BATTERIES (old), EVENEMENTS, TASKER4HC, IMPERIHOME VD

#14 lolomail

lolomail

    Membre passionné

  • Membres +1
  • PipPipPip
  • 491 messages
  • Box:Home Center 2
  • Version:3.600

Posté 11 mai 2014 - 10:30

Merci pour le retour, tu ajouterais ce bout de code où dans ton code?

Merci ;)



#15 Steven

Steven

    Maître Yoda du forum

  • Membres +1
  • 3 058 messages
  • VilleValleiry, Haute-Savoie
  • Box:Home Center 2
  • Version:4.090 (X-ing fingers)

Posté 11 mai 2014 - 10:52

Ben précisément en remplacement de la ligne 82 comme indiqué :)
Image IPB HOME CENTER 2, ZIBASE PRO, KAROTZ, NETATMO, IPX800 (X400-CT)
Image IPB GEA (SUPPORT), GESTION CHAUFFAGE, METEOALERTE, OPENKAROTZ, MY BATTERIES (old), EVENEMENTS, TASKER4HC, IMPERIHOME VD

#16 Fredric

Fredric

    Gourou du forum

  • Membres +1
  • 1 719 messages
  • VilleANGOULEME
  • Box:Home Center 2
  • Version:4.090

Posté 11 mai 2014 - 10:56

Et bien non Steven, cela ne marche pas, mis à part c'est ligne que au quelles je n'avez pas pensé qui me semble plutôt bien vu

  1.  
  2. if (quoidire == "") then
  3. quoidire = "Je+n+ai+rien+a+dire"
  4.  

et "quoidire", javais mis "blabla", sinon, c'est exactement ce que j'avais fait et elle reste sans voix.

la variable ce charge bien, je vois bien sont changement dans le panneau variable mais il ne sort rien.


Box : Fibaro Home Center 2

Modules Z-Wave : Fibaro FGS-222, Fibaro FGS-212, Fibaro FGS-221, Fibaro FGRM-222 Roller Shutter, Fibaro FGBS-001 Universal Sensor, Fibaro Wall Plug, Fibaro FGMS-001, Fibaro FGSD-002, Fibaro FGK-101, Swipe , The Button FGPB-101, Everspring ST814, SF812, AN158, AN145, Aeon Labs ZW089, Greenwave PowerNode, Greenwave NS310-F, VISION ZD2012, Dédecteurs d’inondation Vision Security, TKB TZ66D, VISION ZG8101, HSP02, Sirène Vision Security, NodOn "Octan Remote".

Autres : GCE Eco-Devices, Advance Caméra IP, Caméra HEDEN V7.2, WANSCAM HW0025 V1, WANSCAM JW0010, WANSCAM JW0003, WANSCAM JW0008-I, WANSCAM HW0028, Foscam FI9803P, XD10TT-AM, Station Météo Netatmo, Synology 216Play, Wiko Goa, NUC I5, Antenne Z-Wave 3dBi, Asus ME176CX-1c, écran tactile 24", SARAH.

Nombre de dispositifs: 109


#17 Steven

Steven

    Maître Yoda du forum

  • Membres +1
  • 3 058 messages
  • VilleValleiry, Haute-Savoie
  • Box:Home Center 2
  • Version:4.090 (X-ing fingers)

Posté 11 mai 2014 - 11:37

Fred envoi moi tes scénarios à la maison, il doit manquer un tout petit truc. A deux on trouve plus vite :-)
Image IPB HOME CENTER 2, ZIBASE PRO, KAROTZ, NETATMO, IPX800 (X400-CT)
Image IPB GEA (SUPPORT), GESTION CHAUFFAGE, METEOALERTE, OPENKAROTZ, MY BATTERIES (old), EVENEMENTS, TASKER4HC, IMPERIHOME VD

#18 Fredric

Fredric

    Gourou du forum

  • Membres +1
  • 1 719 messages
  • VilleANGOULEME
  • Box:Home Center 2
  • Version:4.090

Posté 11 mai 2014 - 12:06

  1.  
  2. HC2 = Net.FHttp("192.168.1.26", 8080);
  3.  
  4. -- la variable doit s'appeler "parle" dans le panneau des variables
  5. local quoidire = fibaro:getGlobalValue("parle"))
  6.  
  7. if (quoidire == "") then
  8. quoidire = "Je+n+ai+rien+a+dire"
  9. end
  10.  
  11. response = HC2:GET("/sarah/parle?phrase="..quoidire)
  12.  

en fait c'est dans cette partie que ça pêche, si je vais dan le panneau variable, je vois le texte que j'ai vais entrer dans le variable par cet exemple:

  1.  
  2. fibaro:setGlobal("parle", "Sarah+est+une+mule");
  3.  

elle ne parle plus dés qu'il y a une local dans le srcip, exemple:

  1.  
  2. HC2 = Net.FHttp("192.168.1.26", 8080);
  3.  
  4. -- la variable doit s'appeler "parle" dans le panneau des variables
  5. local quoidire = fibaro:getGlobalValue("parle"))
  6.  
  7. --if (quoidire == "") then
  8. -- quoidire = "Je+n+ai+rien+a+dire"
  9. --end
  10.  
  11. response = HC2:GET("/sarah/parle?phrase=esssai")--..quoidire)
  12.  

là rien, si je désactive la ligne "local" elle dit "essai"


Box : Fibaro Home Center 2

Modules Z-Wave : Fibaro FGS-222, Fibaro FGS-212, Fibaro FGS-221, Fibaro FGRM-222 Roller Shutter, Fibaro FGBS-001 Universal Sensor, Fibaro Wall Plug, Fibaro FGMS-001, Fibaro FGSD-002, Fibaro FGK-101, Swipe , The Button FGPB-101, Everspring ST814, SF812, AN158, AN145, Aeon Labs ZW089, Greenwave PowerNode, Greenwave NS310-F, VISION ZD2012, Dédecteurs d’inondation Vision Security, TKB TZ66D, VISION ZG8101, HSP02, Sirène Vision Security, NodOn "Octan Remote".

Autres : GCE Eco-Devices, Advance Caméra IP, Caméra HEDEN V7.2, WANSCAM HW0025 V1, WANSCAM JW0010, WANSCAM JW0003, WANSCAM JW0008-I, WANSCAM HW0028, Foscam FI9803P, XD10TT-AM, Station Météo Netatmo, Synology 216Play, Wiko Goa, NUC I5, Antenne Z-Wave 3dBi, Asus ME176CX-1c, écran tactile 24", SARAH.

Nombre de dispositifs: 109


#19 Steven

Steven

    Maître Yoda du forum

  • Membres +1
  • 3 058 messages
  • VilleValleiry, Haute-Savoie
  • Box:Home Center 2
  • Version:4.090 (X-ing fingers)

Posté 11 mai 2014 - 12:21

Zut, sur la fameuse ligne "local quoidire..." il y a 2 parenthèses fermantes. Enlèves en une et reteste stp.
Image IPB HOME CENTER 2, ZIBASE PRO, KAROTZ, NETATMO, IPX800 (X400-CT)
Image IPB GEA (SUPPORT), GESTION CHAUFFAGE, METEOALERTE, OPENKAROTZ, MY BATTERIES (old), EVENEMENTS, TASKER4HC, IMPERIHOME VD

#20 Fredric

Fredric

    Gourou du forum

  • Membres +1
  • 1 719 messages
  • VilleANGOULEME
  • Box:Home Center 2
  • Version:4.090

Posté 11 mai 2014 - 13:25

ok, elle a bien dit "essai", avais pas vu la parenthésé  :unsure:

 

j'ai remis ça et elle ne dit plus rien.

  1.  
  2. HC2 = Net.FHttp("192.168.1.26", 8080);
  3.  
  4. -- la variable doit s'appeler "parle" dans le panneau des variables
  5. local quoidire = fibaro:getGlobalValue("parle")
  6.  
  7. --if (quoidire == "") then
  8. -- quoidire = "Je+n+ai+rien+a+dire"
  9. --end
  10.  
  11. response = HC2:GET("/sarah/parle?phrase=")..quoidire)
  12.  
  13.  

j'ai enlever la parenthèse après "..quoidire" et le plugin parle de Sarah dit "je n'ai rien à dire". c'est sont message par défault quand un envoie est vide.


Modifié par Fredric, 11 mai 2014 - 13:30 .

Box : Fibaro Home Center 2

Modules Z-Wave : Fibaro FGS-222, Fibaro FGS-212, Fibaro FGS-221, Fibaro FGRM-222 Roller Shutter, Fibaro FGBS-001 Universal Sensor, Fibaro Wall Plug, Fibaro FGMS-001, Fibaro FGSD-002, Fibaro FGK-101, Swipe , The Button FGPB-101, Everspring ST814, SF812, AN158, AN145, Aeon Labs ZW089, Greenwave PowerNode, Greenwave NS310-F, VISION ZD2012, Dédecteurs d’inondation Vision Security, TKB TZ66D, VISION ZG8101, HSP02, Sirène Vision Security, NodOn "Octan Remote".

Autres : GCE Eco-Devices, Advance Caméra IP, Caméra HEDEN V7.2, WANSCAM HW0025 V1, WANSCAM JW0010, WANSCAM JW0003, WANSCAM JW0008-I, WANSCAM HW0028, Foscam FI9803P, XD10TT-AM, Station Météo Netatmo, Synology 216Play, Wiko Goa, NUC I5, Antenne Z-Wave 3dBi, Asus ME176CX-1c, écran tactile 24", SARAH.

Nombre de dispositifs: 109






Aussi étiqueté avec au moins un de ces mots-clés : Tuto HC2, SCRIPT LUA, Contrôle, Vérification

0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)