Shad Posté(e) le 5 janvier 2014 Signaler Posté(e) le 5 janvier 2014 Ce code a été écrit par robmac avec l'aide de jompa68 , A.Socha.J'ai également fais une traduction du poste original ici. Je ne vais pas tout expliquez mais juste faire comprendre le fonctionnement de base. Ce script a été écrit pour pouvoir gérer tout les heures de lancement d'une action depuis une seule scène.Personnellement ce script fonctionne beaucoup que le code standard lua. Les commandes sunset or sunrise fonctionne très bien. ATTENTION CE CODE NE FONCTIONNE PAS CHAQUE MINUTES DONC N'UTILISE PAS DE RESSOURCES SYSTEME. ILS DÉMARRENT SEULEMENT LORSQU'UNE TACHE EST PLANIFIÉE. Personnellement, depuis que j'utilise ce code ma HC2 ne fonctionne que mieux, dans chaque scène vous n'avez juste qu'à y mettre vos conditions et actions. Je ne posterais pas le code car il fait plus de 1000 lignes. Ce script ajoute également une fonctionne qui manque cruellement à la HC2, des alarmes. Par défaut il n'en possède que deux. Pour mon usage j'en ai programmé deux, une pour la semaine et l'autre pour le week-end. Installation du script: Créer une scène en Lua et collez le code du fichier Scene-1 - ID 1 Scheduler.txt, importez le fichier Alarm_Clock.vfib 4 fois (editez le numéro de chaqu'un dans le code) et 1 fois le Scheduler Control. Il vous faudra ensuite créer des globals variables avec comme nom: - scheduleGroup - scheduleActive - alarmTime1 - alarmTime2 - alarmTime3 - alarmTime4 Après pour redémarrez le scheduler il faut créer une scène avec: --[[ %% properties %% globals --]] local scheduleScene = 1 while (fibaro:countScenes(scheduleScene) > 0) do fibaro:killScenes(scheduleScene); fibaro:debug("Kill") end; active = active or { Active = 1, Disabled = 2 } activeIndex = activeIndex or { [1] = "Active", [2] = "Disabled"} local scheduleActive = fibaro:getGlobalValue("scheduleActive") or activeIndex[1] if scheduleActive == activeIndex[1] then -- restart a new instance if active fibaro:startScene(scheduleScene) end Maintenant pour paramétrez tout sa c'est très simple. Dans le scheduler il faut éditez les lignes: - 96: Id scène pour redémarrer - 97: Id virtual device pour controler le scheduler - 98, 103, 108 et 113: les id des virtuals devices pour les alarmes. Ensuite dans la scène pour redémarrer le scheduler éditez la ligne suivante avec l'id de la scène du scheduler: local scheduleScene = 1 Normallement c'est tout pour la configuration. MISE EN PLACE DU SCENARIO: Vous devez insérez vos lignes en-dessous la section <ADD YOUR LINES HERE> luaDaySchedule:add(<time>,<id>, <parameter> , <action>, <days> ,<catchup>,<p1>,<p2>,<p3>) Heure de lancement du scénario: <time> : Remplacez cette balise par une heure dans un format de 24h exemple: "23:21" ou "07:00". PS: Vous ne pouvez changer une variable globale pour changez l'heure de la scène sans relancez la scène. SUNRISE - SUNSET avec + ou - x minutes: <time>: Remplacez cette balise par "Sunrise" ou Sunset"<p1> Remplacez cette balise par 27 pour ajoutez 27 minutes ou - 11 pour lancez 11 minutes plus tôt. ID DU MODULE OU DE LA SCENE: <id> Remplacez cette balise par l'id de votre module ou scène. ACTION POSSIBLE (liste non entière et consulter le poste originale pour voir les commandes): Allumez ou éteindre un modulerégler une valeur pour un dimerenvoyer un mailenvoyer une notification push à un ou tous les périphériquesenvoyer un mail à un ou tous les utilisateursappuyer sur un modules virtuelsrégler un slider pour un modules virtuelsrégler un variable globalarmer ou désarmer un modulerégler toute chacune des couleurs d'un module RGBdémarrer un programme RGBdémarrer une autre scène CHOIX DES JOURS DE LANCEMENT DES SCENARIOS: <days> Remplacer cette balise par jour de la semaine Il est également possible de mettre plusieurs jours de la semaine avec {"Sunday','Monday"}.Il y a 3 commandes spécial:{"All"] = Tous les jours de la semaines{"Weekend"} = Samedi et Dimanche{"Weekday"} = Lundi au VendrediIls peuvent également être fusionner avec les jours de la semaine{"Weekend","Monday"} = Samedie, Dimanche et Lundi LES ALARMES: Pour configurer les alarmes, un fichier vfib est disponible dans le zip joint.A la ligne 92 du scheduler vous devez paramétrer les id de vos modules virtuels ainsi que l'id de la scene du redémarrage du scheduler (également fournie dans le zip). Dans chaque bouton du module virtuel vous devez également reconfigurer l'id de ce module virtuel.Et pour finir vous devez créer des variables globales pour alarmDays1 - alarmDays2 - alarmTime1- alarmTime2. Voici les lignes que vous devez ajoutez à votre scheduler: --Réveil 1 luaDaySchedule:add(getAlarm("alarmTime1"),{"4"}, "" , "startScene", {"All"} ,false) --Réveil 2 luaDaySchedule:add(getAlarm("alarmTime2"),{"5"}, "" , "startScene", {"All"} ,false) Voici quelques une de mes lignes: luaDaySchedule:add("07:00","30", "" , "startScene", {"Weekday"}, false); luaDaySchedule:add("07:30","30", "" , "startScene", {"Saturday"}, false); luaDaySchedule:add("Sunset","Nightime", "1" , "setGlobal", {"All"}, false , 0); Comme écrit plus haut je n'ai pas tout expliquer car trop long. Il s'agit juste d'un résumé Des exemples sont fournis dans le scheduler + d'autre explication sur le poste originale du forum officiel. scheduler-1-3-0.zip Scheduler1-3-1.zip 4
i-magin Posté(e) le 5 janvier 2014 Signaler Posté(e) le 5 janvier 2014 Je me suis intéressé au module virtuel livré dans le packaging, et qui a été créé par @Ucciogenerale + @robmac + @jompa6 J'utilise moi même un module plus rustique (http://www.domotique-fibaro.fr/index.php/topic/128-module-radiateur-avec-fil-pilote-thermostat-de-zone/?p=620) Je vais donc vraisemblablement adopter celui-ci Le fichier compressé mis en téléchargement par @Shad comprend 4 fichiers. Deux concernent le module virtuel : - Alarm_Clock.vfib (le module virtuel lui-même, à intégrer à la box par la fonction import)) - mzlkuexotyh128x128_75_476.png (l'icône) ET j'ai appris deux choses que certains connaissent peut-être ... Mon module virtuel ,parmi tous les autres modules, ressemble à ceci : Celui du Scheduler à çà !!! Au début, je n'avais pas l'affichage de l'heure à droite, mais un grand vide (n'ayant pas initialisé une heure)... j'ai cru à un bug d'affichage ! Quelle option permet d'obtenir cela ? Ce sont les deux options "main" choisies (boutons bleus) Deuxième information pour moi : remarquez la ligne suivante dans l'image : local newora = fibaro:get(alarmClockDevice,"ui.lblTime.value") Jusqu'à présent je n'utilisais que la fonction "call" pour renseigner un label Dans ce bouton virtuel, cette fonction permet de vérifier son contenu et s'il est vide, la procédure initialise à 00:00 Ceci m'ouvre des perspectives pour gérer la phase de redémarrage de la box qui, dans certains cas, remet la zone label à blanc NB : pour le module virtuel en français ... j'ai fait rapide et j'espère qu'il n'y aura pas de problème Je le télécharge au format zip (le format natif vfib est interdit au téléchargement sur le forum) Réveil.zip 1
Moicphil Posté(e) le 1 février 2014 Signaler Posté(e) le 1 février 2014 Mise àjour version de téléchargement sur 1er post - Nouvelle version du scheduler = 1.3.1
Shad Posté(e) le 13 mars 2014 Auteur Signaler Posté(e) le 13 mars 2014 Petit up pour que tout le trouve ce post.
jtella45 Posté(e) le 13 mars 2014 Signaler Posté(e) le 13 mars 2014 merci Shad juste une question, comme je disais sur l'autre post, si je me sers du scheduler je rajoute les lignes àl'endroit add your line a chaque fois je ne crée pas de nouvelles scènes?
Shad Posté(e) le 13 mars 2014 Auteur Signaler Posté(e) le 13 mars 2014 Tout dépend ce que tu veux faire. Si tu veux juste changer l'état d'un module ou groupe de module par rapport au temps, l'heure. Non pas besoin.
jtella45 Posté(e) le 13 mars 2014 Signaler Posté(e) le 13 mars 2014 et c'est pas gênant d'avoir un scene énorme par rapport àplusieurs petites en lua? ca ne ralenti pas l'interface?
Shad Posté(e) le 13 mars 2014 Auteur Signaler Posté(e) le 13 mars 2014 Non en aucun cas, car en fait le scheduler n'est pas en fonctionnement en permanence, il regarde àquel heure il doit lancer la prochaine action et ne se réveillera qu'àce moment là. Donc je te dirais au contraire, au lieu d'avoir plein de petite scène qui attend le moment de ce lancer, làtu en as qu'une
amonthet Posté(e) le 3 avril 2014 Signaler Posté(e) le 3 avril 2014 Bon j'ai essayé de me mettre à ce scheduler.....ouahou je patauge à mort . Bon en premier je pense avoir compris l'intérêt (c'est déjà pas mal!) En second j'ai une première question: il est indiqué "Dans le scheduler il faut éditez les lignes: - 96: Id scène pour redémarrer - 97: Id virtual device pour controler le scheduler - 98, 103, 108 et 113: les id des virtuals devices pour les alarmes." Je ne comprends pas au niveau de la ligne 97. Lorsque je regarde le programme, on passe directement de l'Id de la scène aux Id des alarmes (ci-joint ce que j'ai) Sinon j'ai une autre question concernant les variables, il est dit qu'il faut créer des "globals variables", dans le panneau des variables on a le choix entre 2 types de variables: les "variables" et les "varaibles prédéfinies". Quelles sont celles à créer et quelles sont leurs valeurs? Désolé si les réponses à ces questions vous paraissent évidentes Merci
Shad Posté(e) le 3 avril 2014 Auteur Signaler Posté(e) le 3 avril 2014 Sa on s'en fou ^^ faut pas touché Xd. Récupère la dernière version sur le forum officiel qui est la 1.3.1 je crois. La partie à modifier est tout en bas du code + des variables à créer.
Fredric Posté(e) le 17 avril 2014 Signaler Posté(e) le 17 avril 2014 @Shad: j'installe enfin le scheduler, j'ai suivit ton tuto, donc renseigné les ID des vd, j'ai pas encore programmé quoi que ce soit mais cela a l'air de fonctionner. il n'y avait pas besoin de renseigner les ID des VD?
Shad Posté(e) le 17 avril 2014 Auteur Signaler Posté(e) le 17 avril 2014 Je comprend pas trop ce que tu me dis là donc renseigné les ID des Virtual Device et après pas besoin de renseigner les ID des Virtual Device mdr
Fredric Posté(e) le 17 avril 2014 Signaler Posté(e) le 17 avril 2014 Sa on s'en fou ^^ faut pas touché Xd. Récupère la dernière version sur le forum officiel qui est la 1.3.1 je crois. La partie àmodifier est tout en bas du code + des variables àcréer. Je sais que Phil n'aime pas mais je suis obligé de te citer. Dans ton tuto, tu dis qu'il faut renseigner les ID, et là, tu dis on s'en fout. Alors je posais la question pour éventuellement renseigner d'autres personnes dans le futur et comprendre pourquoi en haut oui et en bas non
Shad Posté(e) le 17 avril 2014 Auteur Signaler Posté(e) le 17 avril 2014 Je sais plus dans quel contexte j'ai dis sa. Les trucs à modifier dans les scènes sont restartScene/controlDevide et tout les devices ID des alarmClocks Et par exemple pour changer une variable au lever du soleil: luaDaySchedule:add("Sunrise","Nightime", "Off" , "setGlobal", {"All"}, false , 0); Et au coucher luaDaySchedule:add("Sunset","Nightime", "On" , "setGlobal", {"All"}, false , 0);
amonthet Posté(e) le 23 avril 2014 Signaler Posté(e) le 23 avril 2014 Je crois que dans un premier temps je vais me limiter aux blocs car je ne comprends rien au scheduler, on verra plus tard si je me démerde mieux
Fredric Posté(e) le 23 avril 2014 Signaler Posté(e) le 23 avril 2014 @Shad, j'ai quelques doute, peut tu me confirmer si c'est bon mes lignes? je veux que la scène 52 soit active 30 minute avant le couché du soleil et s’arrête 30 minute après le couché du soleil: luaDaySchedule:add("Sunset","52", "On" , "", {"All"}, false , -30); luaDaySchedule:add("Sunrise","52", "Off" , "", {"All"}, false , 30);
Shad Posté(e) le 23 avril 2014 Auteur Signaler Posté(e) le 23 avril 2014 Essaye ce code: luaDaySchedule:add("Sunset", "52", "true", "setSceneEnabled", {"All"}, true , -30); luaDaySchedule:add("Sunrise", "52", "", "killScenes", {"All"}, false , 30);
Fredric Posté(e) le 23 avril 2014 Signaler Posté(e) le 23 avril 2014 je ne sais pas si cela fonctionne, je verrai demain. par contre j'ai un débug dans le scheduler: [DEBUG] 22:50:21: Closing down scheduler because the scheduler is Disabled [DEBUG] 22:50:21: Closing down coplete [DEBUG] 22:54:24: Scheduler is intitialising. Loading with profile group WinterHoliday. [DEBUG] 22:55:24: Initialise Alarm alarmTime1 in room Scheduler. [DEBUG] 22:55:24: Initialise Alarm alarmTime4 in room Scheduler. [DEBUG] 22:55:24: Initialise Alarm alarmTime2 in room Scheduler. [DEBUG] 22:55:24: Initialise Alarm alarmTime3 in room Scheduler. [DEBUG] 22:55:24: Catching up actions. [DEBUG] 22:55:24: Pause for ZWave to initialise. c'est normal?
Shad Posté(e) le 23 avril 2014 Auteur Signaler Posté(e) le 23 avril 2014 c'est bien activé dans ton virtual device.
Fredric Posté(e) le 23 avril 2014 Signaler Posté(e) le 23 avril 2014 je capte rien dans les groupe / set state / winterholiday ....
Messages recommandés