Aller au contenu
Steven

Gea : Gestionnaire D'événements Automatique

Recommended Posts

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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 : 

  1. Variable globale de suspension du scénario (Wtdiso.getGlobalForActivation)

    Pour chaque périphérique :
    1. Vérification des plages horaires ("Time")
    2. Vérification si le périphérique est activé ou non ("Inverse")
    3. Vérification de la période d'activation du périphérique (Nombre de secondes)
    4. Les actions (scenario, virtualdevice, global,...) sont exécuté dans l'ordre qu'elles ont été déclarées par l'utilisateur.

Partager ce message


Lien à poster
Partager sur d’autres sites

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"

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :D

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

"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.

Partager ce message


Lien à poster
Partager sur d’autres sites

quel boulot!!!  :blink:

 

J'avais quelques heures à  tuer vu que tu me poses plus de questions  :77:

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour ta réponse :)

En fait, en ce moment je bricole dans le garage, hier j'ai changé mes amortisseurs :D

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 :D mais je ne sais pas faire.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 !

Partager ce message


Lien à poster
Partager sur d’autres sites

 

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"}  :lol: 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour simplifier on va utiliser la variable "SuspendreWtdiso" ... DéménagementEnCours est trop long :)

  1.  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)
     
  2. Dans le scénario tu ajoute ligne 301
    Wtdiso.getGlobalForActivation = {"SuspendreWtdiso", "non"}
  3. Tu crée un module virtuel avec 1 "Label" et 1 "Two buttons par line"
  • Label
    Tu mets le nom (label) "En fonction"
  • Bouton 1
    Tu mets le nom (label) "Oui" et le code suivant 
    fibaro:setGlobal("SuspendreWtdiso", "oui")
  • Bouton 2
    Tu 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.

post-339-0-27172100-1399983329_thumb.png

post-339-0-68497100-1399983356_thumb.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Steven, t'inquiette je vais m'en sortir avec tout ça.

Maintenant c'est simple :D

Encore merci !

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

@Domodial

 

Petite correction sur le module virtuel

  • Label
    Tu mets le nom (label) "En fonction" "Suspendu :"

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :D

 

Punaise je comprends plus rien  :15:

Partager ce message


Lien à poster
Partager sur d’autres sites
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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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 !? :60:

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

×