Domodial Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 Du coup j'ai changé le réglage et je trouve bizarre j'ai toujours le meme message. Voici mon code Wtdiso.add(27, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Scenario", 61}, {"Time", "20:30", "06:00"}, {"Time", "08:00", "19:00"}}) Et il me dit : [DEBUG] 11:11:43: Added id: 27 secondes: 600 msg: La porte du garage est ouverte depuis plus de 10 minutes [Repeat:no] [DEBUG] 11:11:43: Running... [DEBUG] 11:11:43: 27 est en dehors de la plage horaire 20:30-06:00 [DEBUG] 11:12:13: 27 est en dehors de la plage horaire 20:30-06:00 [DEBUG] 11:12:43: 27 est en dehors de la plage horaire 20:30-06:00 [DEBUG] 11:13:13: 27 est en dehors de la plage horaire 20:30-06:00 Il ne devrait pas me dire ça non ? Là il est sur la plage 08h00-19h00 Je pige pas.
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 Le message n'est pas clair, je suis bien d'accord .. mais si tu regarde bien tu ne vois pas [DEBUG] 11:13:13: 27 est en dehors de la plage horaire 08:00-19:00 Car il vérifie bien le module 27 pour cette plage. Je vais enlever ce message qui prête à confusion.
Domodial Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 ha d'accord ! bon ça me rassure alors. En effet, ce n'est pas évident de formuler la phrase, mais un truc du genre : "L'ID 27 n'est pas vérifié car il est en dehors de cette plage horaire" Pour le mode Bi-Plage "L'ID 27 n'est pas vérifié car il est en dehors de cette plage horaire, mais il est vérifié pour la deuxième plage" Quelque chose comme ça.
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 version 1.41 disponible. J'ai supprimé le message (disponible en mode debug). Mon code ne sais pas s'il est en mode bi-plage ou non. C'est du LUA, donc du code interprété. Afin d'être le plus optimisé possible, j'ai mis le moins de contrôle possible et essayé de les priorisés (ex: si on est pas dans la plage horaires, cela ne sert à rien d'aller voir si le périphérique est activé, ...) Priorités : Variable globale de suspension du scénario (Wtdiso.getGlobalForActivation) Pour chaque périphérique : Vérification des plages horaires ("Time") Vérification si le périphérique est activé ou non ("Inverse") Vérification de la période d'activation du périphérique (Nombre de secondes) Les actions (scenario, virtualdevice, global,...) sont exécuté dans l'ordre qu'elles ont été déclarées par l'utilisateur.
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 Version 1.42 disponible. Désolé, mais la phase de stabilisation est douloureuse J'ai trouvé un bug. Wtdiso.add(27, 10*60, "La porte du garage est ouverte", {{"Time", "20:30", "06:00"}, {"Days", "Monday"}}) Dans le cas ou on m'était une plage horaire, le système ignorait le paramètre "Days" alors que l'on veux justement ne vérifier que les Lundis. * Cette mise à jour est compatible depuis la version 1.30, vous pouvez donc garder votre code situé en dessous de "A vous de jouer"
Domodial Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 Pour le jour du déménagement, je te conseil d'utiliser une variable globale "DéménagementEnCours" et de mettre le code ci-dessous Wtdiso.getGlobalForActivation = {"DéménagementEnCours", "non"} Le scénario ne fera rien si la variable passe à "oui".C'est tout bon, j'ai rien oublié ? Re, Je ne comprends pas un point. Le fait de me faire un switch qui passe ma variable a "oui" Comment ? Je veux dire que pour désactiver temporairement le controle des ouvrants, je crée une variable comme tu l'as indiqué. Je met le bout de code : Wtdiso.getGlobalForActivation = {"DéménagementEnCours", "non"} A quel endroit dans ton code ? Et mon bouton de désactivation je le fait a partir de quoi ? c'est obscure tout d'un coup pour moi Merci
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 "A quel endroit dans ton code ?" Ligne 301 ... si tu regarde, le code y est déjà mais en commentaire Là , on parle d'une chose qui arrivera .. 1 fois tout les 3 ans .. alors il ne faut pas faire une usine à gas. Il te suffit de créer une Variables prédéfinies depuis le panneau des variables est de lui mettre comme valeur "oui" et "non". Ensuite tu la positionne sur "non". Le jour de ton déménagement, tu retournes dans le panneau des variables, tu la positionne sur "oui" et le scénario ne viendra plus te fermer la porte du garage sur la tête Sinon, on peux créer un module virtuel ... et scénario ... un appel à ton agenda Google ... 10000 possibilités.
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 quel boulot!!! J'avais quelques heures à tuer vu que tu me poses plus de questions
Domodial Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 Merci pour ta réponse En fait, en ce moment je bricole dans le garage, hier j'ai changé mes amortisseurs Ce soir ou je ne sais quand je vais modifier mon freinage, j'ai besoin de plus de lumière donc j'ouvre le garage. Je me dis que si ses besoins se repetent, l'idéal serait que j'ai un switch sur mon portable pour activer / désactiver sans aller dans mon panneau de variable. D'ou ma question sur un truc du genre interrupteur mais je ne sais pas faire.
Domodial Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 tu as changé le code entre temps, ce n'est plus oui / non mais active / inactive ? je viens de me rendre compte que dans mon panneau variable j'ai déjà une variable qui porte le nom scheduleActive En ligne 301 de ton code j'ai : Wtdiso.getGlobalForActivation = {"scheduleActive", "Active"}
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 C'est ce que tu veux ... il faut juste que la variable (1er mot) contienne le 2ème mot. tu peux mettre Wtdiso.getGlobalForActivation = {"scheduleActive", "Active"} Wtdiso.getGlobalForActivation = {"DemenagementEnCours", "oui"} Wtdiso.getGlobalForActivation = {"MaGrandMere", "Est en vacances"} le code va faire fibaro:getGlobalValue("MaGrandMere") == "Est en vacances" .. et si c'est le cas le scénario s’exécute. Je m'occupe de ton module virtuel pour switcher ... je ne voudrais pas que tu reçoives la porte de ton garage sur la tête
Domodial Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 Ha ok, je croyais que la variable défini était en relation avec autre chose dans le code, qui ferait déconner le tout si je changeait le nom ^^ Merci beaucoup ! Je vais avoir des ouvrants hyper sécurisés avec ça !
Fredric Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 Je m'occupe de ton module virtuel pour switcher ... je ne voudrais pas que tu reçoives la porte de ton garage sur la tête Surtout si il y a la fonction {"Repeat"} 1
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 Pour simplifier on va utiliser la variable "SuspendreWtdiso" ... DéménagementEnCours est trop long Tu vas dans le panneau des variables et tu crée une variable prédéfinie "SuspendreWtdiso" pouvant recevoir "oui" et "non" (voir image jointe) Dans le scénario tu ajoute ligne 301 Wtdiso.getGlobalForActivation = {"SuspendreWtdiso", "non"} Tu crée un module virtuel avec 1 "Label" et 1 "Two buttons par line" LabelTu mets le nom (label) "En fonction" Bouton 1Tu mets le nom (label) "Oui" et le code suivant fibaro:setGlobal("SuspendreWtdiso", "oui") Bouton 2Tu mets le nom (label) "Non" et le code suivant fibaro:setGlobal("SuspendreWtdiso", "non") Dans le main loop tu mets le code fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label1.value", fibaro:getGlobalValue("SuspendreWtdiso")) Ou alors tu attends ce soir que je puisse t'exporter le module virtuel.
Domodial Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 Merci Steven, t'inquiette je vais m'en sortir avec tout ça. Maintenant c'est simple Encore merci ! 1
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 Vous allez me détesté mais Edit : code mise à jour en 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.Wtdiso.add(31, 10*60, "", {"Time", "22:00", "06:00"}, {"Value", 20}}) Wtdiso.add(31, 20*60, "", {"Time", "22:00", "06:00"}, {"turnOff"}}) Je me calme pour aujourd’hui sauf si une nouvelle demande arrive
Domodial Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 Mon état change bien ! Je test ce soir. Super tes messages dans le debug ! [DEBUG] 14:47:29: 108 ignoré car en dehors de la plage horaire 20:30-06:00[DEBUG] 14:47:29: Checking time [id:108] Time: 08:00-19:00[DEBUG] 14:47:29: 108 contrôlé car dans la plage horaire spécifiée 08:00-19:00 Il faudrait qu'il remonte la meme chose quand on désactive le script, ça serait cool.
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 Corrigé, livré dans la prochaine version [DEBUG] 14:53:09: Running... [DEBUG] 14:53:39: Scénario suspendu par la variable globale SuspendreWtdiso valeur oui attendu non [DEBUG] 14:54:09: Scénario suspendu par la variable globale SuspendreWtdiso valeur oui attendu non
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 @Domodial Petite correction sur le module virtuel LabelTu mets le nom (label) "En fonction" "Suspendu :"
Domodial Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 humm... Si je change le label par Suspendu Alors il faut la valeur à non, et l'autre a oui (?) Car mon label "En fonction" est à oui. Pis l'autre bouton "Non" j'en fait quoi Punaise je comprends plus rien
Steven Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 En fonction = "oui" = SuspendreWtdiso C'est pas très logique tout cela. Si la variable est à oui et que Wtdiso.getGlobalForActivation = {"SuspendreWtdiso", "non"} Alors le scénario est suspendu mais cela ne se voit pas car comme tu l'as indiqué, il n'y a pas de message. Donc oui, nomme le "Suspendu" et bascule sur "non" (clique sur le bouton non) pour que cela tourne. C'est ma faute car sans le message on dirait que cela tourne alors que non. Profite si tu peux pour reprendre le script du post #1, je viens de le mettre en version 1.51 avec le message d'avertissement si cela est suspendu.
bbart Posté(e) le 13 mai 2014 Signaler Posté(e) le 13 mai 2014 Je sens que tu t'ennuie Steven, alors un petit détail : tu pourrais nous faire un petit fibaro:getName(id) dans tous les messages debug en plus de l'id, pour savoir de quel module on parle !?
Messages recommandés