Fredric Posté(e) le 14 mai 2014 Signaler Posté(e) le 14 mai 2014 ça fonctionne Wtdiso.add(118, 30*60, "", {{"Global", "parleaussi", "la+lumière+extérieure+est+allumée"} , {"VirtualDevice", 216,1} , {"Time", "Sunset", "Sunrise"} , {"Repeat"}}) vu que c'était bien utile que la variable "parle" fasse démarrer le vd à son changement d'état, j'ai créé une autre variable que pour ce script. Maintenant, avec ce script et le Scheduler, je vais ne plus avoir d'autre scènes active. merci Steven 1
Domodial Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Bonjour à tous, Je ne comprends pas comment faire parler le Karotz. Comment il est reconnu par le script ? PS : j'ai fait une variable globale "Karotz"
Steven Posté(e) le 15 mai 2014 Auteur Signaler Posté(e) le 15 mai 2014 Tout dépend si tu utilises OpenKarotz ou le firmware officiel ? Sinon l'idée de base est de mettre le message souhaité dans une variable global puis activer un module virtuel qui va récupérer le contenu de cette variable pour faire parler le Karotz. .. {"Global", "Karotz", "la lumière extérieure+est allumée"} , {"VirtualDevice", 216, 1}, ...
Domodial Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Hello Steven, J'utilise OpenKarotz Je viens de comprendre pourquoi mon portail et garage n'est pas compris par le script Galère ! En fait, j'utilise des micros modules connectés a mes contacts sec. Lorsque les micros modules sont activés pour ouvrir un portail, ceux ci passe a "Off" au bout de 2 secondes. Ce qui explique que le script voit toujours le device a OFF et ne fait rien ^^ Pour connaitre l'état de mes ouvrants j'utilise 2 variables. etat_portail et etat_garage qui m'indique respectivement "open" ou "close" Ceci afin de toujours avoir une notification correct (portail ouvert ou fermé) sachant que ce type de micro module ne peuvent refermer les ouvrants que lorsqu'ils sont passé à On puis a Off (pour pouvoir refaire un on derrière afin de fermer) ou, ouvrir. A mon avis je dois utiliser {"Global", <variable>, <valeur>}
Domodial Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Ne fonctionne toujours pas... Wtdiso.add(108, 1*60, "Le portail est ouvert depuis plus de une minute", {{"Global", "etat_portail", "close"}, {"Scenario", 58}}) Ce coup çi je pige plus
Domodial Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Finalement je pense que ce que le script voit mon module a OFF et rien ne peux se passer. Est-il possible qu'il voit l'état de ma variable à"Open" de manière a ce que je puisse agir dessus (au lieu qu'il regarde l'état de micromodule) ?
Steven Posté(e) le 15 mai 2014 Auteur Signaler Posté(e) le 15 mai 2014 Ne fonctionne toujours pas... Wtdiso.add(108, 1*60, "Le portail est ouvert depuis plus de une minute", {{"Global", "etat_portail", "close"}, {"Scenario", 58}}) Ce coup çi je pige plus Cela veux dire : Si le module 108 est activé depuis plus d'une minute : Mettre la variable globale "etat_portail" à "close" Lancer le scénario 58 Envoyer un push "Le portail est ouvert..." Alors que toi tu souhaiterais que Si le module 108 est activé la variable global "etat_portail" est à "open" depuis plus d'une minute : Lancer le scénario 58 Envoyer un push "Le portail est ouvert..." Si on est d'accord avec cela, je vais trouver une solution.
Domodial Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Je vais essayer avec le parametre "inverse" dernière chance
Domodial Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Cela veux dire : Si le module 108 est activé depuis plus d'une minute : Mettre la variable globale "etat_portail" à "close" Lancer le scénario 58 Envoyer un push "Le portail est ouvert..." Alors que toi tu souhaiterais que Si le module 108 est activé la variable global "etat_portail" est à "open" depuis plus d'une minute : Lancer le scénario 58 Envoyer un push "Le portail est ouvert..." Si on est d'accord avec cela, je vais trouver une solution. C'est exactement ça (je viens d'essayer avec inverse mais ça ne va pas non plus car mon module est toujours a off quoi qu'il arrive, pret a passer a on pour fermer/ouvrir) C'est vraiment une plaie ses micro module, je ne comprends pas pourquoi le comportement ne serait pas comme une simple ampoule punaise. Donc pour répondre, oui c'est exactement ça, je me suis retrouver dans le brouillard, confusion et fonctionnement pour comprendre qu'avec ces modules il est impossible de faire fonctionner le script. Le scénario 58 est en fait un scénario qui : Ferme le portail et envoi un push. J'ai 4 scénarios 2 pour ouvrir, 2 pour fermer (garage et portail) Chacun a une tempo qui remet le module a OFF, ainsi qu'un push en fonction de Fermé/Ouvert. Chaque scénario renseigne la variable "open" ou "close" et c'est en fonction de ça que j'ai une vraie notification, sinon j'aurais toujours la même que le portail/garage soit fermé ou ouvert. Ca a été une sacré galère a mettre en place, et tout repose la dessus, les minimotes etc. Merci, tu vas me sauver. J'aurais pu cherche longtemps pourquoi ça ne fonctionnait pas, mais quand le script a fonctionné sur une lampe, je me suis dit que mes micros modules était la cause du bleme. EDIT : le probleme c'est que je vais recevoir 2 push du coup (mais bon c'est pas si grave). 1 push des mes scénarios et 1 de ton script. Ou alors avec un parametre "nopush" ?
Steven Posté(e) le 15 mai 2014 Auteur Signaler Posté(e) le 15 mai 2014 Si tu mets le message à vide "" au lieu de "Le portail.." je n'envoi pas de push Je code une solution a ta problématique et on test dans les 30 prochaines minutes.
Fredric Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 (modifié) bonjour, bonjour, encore une question un peut spécial pour toi Steven j'ai une scène qui surveille mon frigo, après avoir eu un soucis avec, j'ai mis un wall plug pour m'avertir d’éventuel problèmes. de temps en temps, le wall plug m'envoie une alerte comme quoi la conso est à 0w, apparemment, ça dur un 1/4 de seconde, c'est même pas retranscrit dans les courbes de la HC2. dans ma scène, je ne sais pas faire que "si la conso passe en dessous de 3w plus de 60 secondes m'envoyer un push" c'est la partie "plus de X secondes" que j'arrive pas à traiter. crois tu que ton script peux gérer ça? voici ma scène --[[ %% properties 54 valueSensor %% globals --]] local dt = os.date(); local conso54 = fibaro:getValue(54, "valueSensor") if (( tonumber(fibaro:getValue(54, "valueSensor")) < 3 )) then fibaro:call(217, "pressButton", "1"); --Pushover fibaro:call(53, "sendPush", tostring(dt).."-Attention: Le le frigo à une consommation anormalement basse-"..conso54) fibaro:call(58, "sendPush", tostring(dt).."-Attention: Le le frigo à une consommation anormalement basse-"..conso54) fibaro:call(62, "sendPush", tostring(dt).."-Attention: Le le frigo à une consommation anormalement basse-"..conso54) fibaro:debug (fibaro:getValue(54, "valueSensor")) fibaro:setGlobal("parle", "Attention+le+frigo+à +une+consommation+anormalement+basse"); --fibaro:call(216, "pressButton", "1"); elseif ( tonumber(fibaro:getValue(54, "valueSensor")) > 450) then fibaro:call(217, "pressButton", "2"); --Pushover fibaro:call(53, "sendPush", tostring(dt).."-Attention: Le le frigo à une consommation anormalement haute-"..conso54); fibaro:call(58, "sendPush", tostring(dt).."-Attention: Le le frigo à une consommation anormalement haute-"..conso54); fibaro:call(62, "sendPush", tostring(dt).."-Attention: Le le frigo à une consommation anormalement haute-"..conso54); fibaro:debug (fibaro:getValue(54, "valueSensor")) fibaro:setGlobal("parle", "Attention+le+frigo+à +une+consommation+anormalement+haute"); --fibaro:call(216, "pressButton", "1"); end fibaro:debug (conso54) fibaro:sleep(60*1000); Modifié le 15 mai 2014 par Fredric
Steven Posté(e) le 15 mai 2014 Auteur Signaler Posté(e) le 15 mai 2014 Edit : code mise àjour en version 1.60 [Nouveauté] Ajout de déclencheurAvant, 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 Cettte version est compatible avec la version 1.30 et supérieur. Vous pouvez donc garder votre section [A VOUS DE JOUER]
Steven Posté(e) le 15 mai 2014 Auteur Signaler Posté(e) le 15 mai 2014 @Domodial Si la variable globale "etat_portail" est à"open" plus d'une minute, on lance le scénario 58. Le script ne fera pas de push car le message est vide "" -- Le portail est ouvert depuis plus de une minute Wtdiso.add({"Global", "etat_portail", "open"}, 1*60, "", {{"Scenario", 58}}) @FredericSi la consommation du périphérique 54 est supérieur à450W = {"Sensor+", 54, 450} alors ... Si la consommation du périphérique 54 est inférieur à3W = {"Sensor-", 54, 450} alors ... local sarahVd = {"VirtualDevice", 216,1} -- Si le frigo comsomme trop (plus de 450W), on l'arrête Wtdiso.add({"Sensor+", 54, 450}, 5*60, "Attention: Le le frigo àune consommation anormalement haute > 450W", {{"VirtualDevice", 217, "1"},, {"Global", "parleaussi", "Attention+le+frigo+à+une+consommation+anormalement+haute"}, sarahVd}) -- Si le frigo ne comsomme pas assez (moins de 3W), on averti Wtdiso.add({"Sensor-", 54, 3}, 5*60, "Attention: Le le frigo àune consommation anormalement basse < 3W", {{"Repeat"}, {"VirtualDevice", 217, "1"}, {"Global", "parleaussi", "Attention+le+frigo+à+une+consommation+anormalement+basse"}, sarahVd}) Tu pourrais aussi mettre un {"turnOff"} pour éteindre automatiquement le frigo si la consommation est supérieur à450W.
Domodial Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Je suis sans voix ! Ca fonctionne à la perfection !!! Du premier coup ! Je rajoute même le push car dans ce cas, il est bon de savoir pourquoi les ouvrants se sont refermés (notifications que j'ai avec mes scénarios), mais cela n'indique pas pourquoi ? et bien parce que justement les ouvrants étaient ouverts depuis plus de xx minutes ! Donc les deux se cumule à la perfection ! Un ENORME MERCI !! C'est LE script qui va rendre les gens heureux (là moi je fais des bonds en ce moment), jamais vu un truc pareil, d'ailleurs c'est en train de m'ouvrir pleins d'idées Merci merci merci !
Fredric Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 tu es un peut comme à la Maaf, tu as réponse à tout super, merci, une scène de moins
Domodial Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Je sais pas, il code comme moi je fait des graphs ^^ Il doit etre codeur, c'est pas possible autrement
Domodial Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Je viens de voir la ville de Steven Je suis originaire de St Julien en Genevois ! Ca fait 25 ans que ne suis retourné dans mon coins Cet année ma destination (en camping car) n'est pas dans le bas de la France, mais dès que nous redescendons je te MP, on se fera une teuf
Steven Posté(e) le 15 mai 2014 Auteur Signaler Posté(e) le 15 mai 2014 Héhé, en effet, cela serait avec plaisir. Je confirme, mon métier est Ingénieur de Développement. Codeur si on veut
Steven Posté(e) le 15 mai 2014 Auteur Signaler Posté(e) le 15 mai 2014 Edit : code mise àjour en version 1.70[Nouveauté] Ajout du déclencheur "Value" et "Dead" [Nouveauté] Ajout du actions "Email", "Label" et "WakeUp" [Nouveauté] Ajout de variables dans le message : time, duration, value, date, seconds, name Cettte version est compatible avec la version 1.30 et supérieur. Vous pouvez donc garder votre section [A VOUS DE JOUER] 1
Steven Posté(e) le 15 mai 2014 Auteur Signaler Posté(e) le 15 mai 2014 Exemple des modifications de la v 1.70 - == Gestion du chauffage ==- -- Il fait trop froid (moins de 20° depuis plus de 10mn, on démarre le chauffage Wtdiso.add({"Value-", 8, 20}, 10*60, "Il fait froid au salon #value# à #time#", {{"Scenario", 20}}) -- Il fait suffisament chaud (plus de 20° depuis plus de 10mn, on arrête le chauffage Wtdiso.add({"Value+", 8, 20}, 10*60, "Il fait froid au salon #value# à #time#", {{"Scenario", 21}}) - == Controle congélateur ==- Wtdiso.add({"Value+", 8, 0}, 10*60, "Le congélateur est trop chaud #value#", {{"Repeat"}, {"Email",2}}) -== NÅ“ud mort ==- Wtdiso.add({"Dead", 27}, 5*60, "Le périphérique #name# ne répond plus, tentative de réveil", {{"WakeUp", 27}}) @Frederic#value# contient la dernière valeur du périphérique, dans le cas de ton frigo c'est très pratique Wtdiso.add({"Sensor+", 54, 450}, 2*60, "Consommation excessive du frigo #value# > 450") Les mots clés pouvant être contenu dans le message sont :#time# L'heure de l'action HH:MM:ss#duration# La durée en secondes#value# La dernière valeur enregistrée (dépend) du type de demande et de périphérique#date# La date de l'action dd/MM/AAAA#seconds# Le nombre de secondes programmé#name# Le nom du périphérique analysé#value# :Si l'action est {"Sensor+/-"} pour un périphérique avec relevé de consommation, "value" contiendra le dernier relevé de consommation.Si l'action est {"Value+/-") sur un thermomètre, "value" contiendra la dernière températurePour un dimmer "value" contient la valeur du dimmer.
Steven Posté(e) le 15 mai 2014 Auteur Signaler Posté(e) le 15 mai 2014 Je crois qu'il va falloir trouver un nouveau nom au projet car cela n'a plus rien àvoir avec un simple "avertisseur de porte ouverte". J'attends vos propositions
Fredric Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 "Le couteau suisse" il fait tout ;p 1
Domodial Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Yaute Tools C'est vrais que ça devient une usine Envoyé de mon GT-N7105 en utilisant Tapatalk 1
lolomail Posté(e) le 15 mai 2014 Signaler Posté(e) le 15 mai 2014 Petite demande Steven, je n'ai pas encore testé le script car j'etais en déplacement pro mais j'ai dans l'idée de l'utiliser pour arrêter certains wallplug la journée pour couper la télé et autre, du coup faudrait que le script soit capable de rallumer ces wallplug lors que la variable absence serait neutraliser ou a la fin de la période d'utilisation du script si c'est planifier avec une plage horaire' Cela serait possible? Milles merci
Steven Posté(e) le 15 mai 2014 Auteur Signaler Posté(e) le 15 mai 2014 C'est prévu : -- Si la variable globale "abscence" est a oui depuis plus de 5 minutes, on éteint les périphérique 21, 31 et 41 Wtdiso.add({"Global", "abscence", "oui"}, 5*60, "", { {"turnOff",21},{"turnOff",31},{"turnOff",41} }) -- Si la variable globale "abscence" N?EST PAS a oui depuis plus de 1 secondes, on éteint les périphérique 21, 31 et 41 -- ATTENTION, si le script tourne toutes les 30 secondes, il se peut que cela prennent 30 secondes avant de tout allumer. Wtdiso.add({"Global", "abscence", "oui"}, 1, "", { {"Inverse"}, {"turnOn",21},{"turnOn",31},{"turnOn",41} }) 1
Messages recommandés