-
Compteur de contenus
4 434 -
Inscription
-
Dernière visite
-
Jours gagnés
201
Tout ce qui a été posté par Steven
-
Pour les Main Loop, je suis pas expert, je sais juste que effectivement, la HC2 libère mal la mémoire lors de requête HTTP et qu'à la longue cela plante le Main Loop. L'usage de "fonction" décrit plus haut me semble intéressant vu que dès que la fonction n'est plus utile, la mémoire alloué à cette dernière est (normalement) effacée. Maintenant, ce que je n'aime pas au Main Loop c'est qu'on peut jamais l'arrêter. Perso, je préfère un bon bouton "Vérifier" que je peux très bien mettre dans le Scheduler ou autre. L'avantage est que le Scheduler, GEA ou un scénario sont des scripts que l'on peut stopper donc stopper le MV. Mais cela ne regarde que moi @Fredric J'avais loué mes amis que 4 heures
-
Tu veux dire des testeurs bétas ?
-
Héhé dans ton exemple si tu ne mets pas "local" tu crées une variable globale donc cela fonctionne. Créer une variable local dans une condition "If" équivaut a créer un variable dans une fonction. Cela signifie que sa visibilité est réduite à la condition même. Ce qui est logique si on prend l'exemple suivante si ( je murmure à l'oreille de JossAlf) then local mon_message = "C'est un secret" end fibaro:debug(mon_message) -- Il en sait rien puisque c'est un secret Par contre, si on déclare proprement ces variables locales, il n'y aura aucun soucis local player = nil if (true) then player = "Coucou" end fibaro:debug(player) Ainsi le script à une visibilité sur la variable local player et peut la modifier. Cette dernière reste local à l'environnement ou elle a été créée. Si je fait fonction coucou() local player = "Mon player dans ma fonction" fibaro:debug(player) -- je suis dans la fonction, je connais donc player end debug:fibaro(player) -- connait pas car player est local à ma fonction et là , je n'y suis pas. J'espère que cela peux aider. Donc ton code propre et optimisé donnera local payer = nil if SqueezeNom == 'Cuisine' then player = "00:04:20:2b:81:00 " elseif SqueezeNom == 'Salon' then local player = "00:04:20:29:bb:3e " elseif SqueezeNom == 'ChambreB' then local player = "00:04:20:2c:0b:fe " elseif SqueezeNom == 'ChambreH' then local player = "00:04:20:2c:35:bc " end -- Ou --Bien plus joli local Squeezers = { ['Cuisine'] = "00:04:20:2b:81:00 ", ['Salon'] = "00:04:20:29:bb:3e ", ['ChambreB'] = "00:04:20:2c:0b:fe ", ['ChambreH'] = "00:04:20:2c:35:bc ", } fibaro:debug(Squeezers["Cuisine"])
-
Ok faut que je protège cela un peu mieux.
-
@Lazer Ne rêve pas
-
TU n'as rien loupé ... J'AI loupé quelque chose. En effet, la fonction "Email" ne fonctionne pas du tout et en plus. De plus j'avais décider moi-même comme un grand que si on voulait recevoir par e-mail cela n'envoyait pas par push. J'ai corrigé pour la prochaine version. Mea Culpa et merci pour le détails de ton message qui ma permis de vitre trouver le problème.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Perso, je ne supprime pas les messages, je leur attribue un "Label" et je vérifie le label pour être sà»r de ne pas faire 2 fois le même traitement. Par contre, "sendEmail" ne fonctionne pas chez moi.
-
@Fredric Normal, il manquait des accolades .. t'avais même pas vu ... je suis déçu ... plus sincèrement désolé. Voici le code "If" est suivi de {{ et non pas de { local paramsLampeExterieur = {{"If", {{"Global", "jour_nuit", "Jour"}}}, {"turnOff"}} GEA.add(118, -1, "", paramsLampeExterieur ) GEA.add(210, -1, "", paramsLampeExterieur ) Difficile sans pouvoir tester.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Bon ben bien évidement, j'ai testé avec le 91 et le 16 .... et tout fonctionne. Pourriez-vous me confirmer si c'est bon pour vous. Si c'est le cas, c'est que j'ai surement un soucis lorsqu'il met à jour le fichier XML sur leur serveur ou un truc du style.
-
J'ai du monde ce soir, je contrôle plus tard.
-
@Frederic MP ou autre sujet si cela peux aider d'autre personne @Diuck On monte les volets uniquement si UN n'est pas complètement remonté <100 local sont_pas_ouvert = {"If", {{"Value-", 19, 100},{"Value+-", 24, 100},{"Value-", 17, 100}}} GEA.add({"Value-", 41,600}, 10*60, "Remontée des volets Est par manque de luminosité #value# Lux #time#", {{"Time","05:30","14:00"},{"Open",19,100},{"Open",24,100},{"Open",17,100},{"DST"}, sont_pas_ouvert})
- 905 réponses
-
- 1
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
J'ai fini le module MétéoAlerte, j'ajouterais la fonction Eclipse dès que possible
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Pfffft Si tu utilises le code ci-dessous, il n'y aura aucun impacte sur les autres lignes Le délai de vérification d'une ligne est indiqué différemment sur chaque ligne. Mais si tu demandes au script de tourner toutes les 30 secondes et que met 45 secondes sur une ligne, cette ligne sera executée qu'a 60 secondes. Avec le mode "instantané" il n'y a aucun impact. Tu peux donc l'utiliser. Edit : lolomail répond 100 x plus vite que moi
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
--[[ %% autostart %% properties 118 value 210 value %% globals --]] local paramsLampeExterieur = {{"If", {"Global", "jour_nuit", "Jour"}}, {"turnOff"}} GEA.add(118, -1, "", paramsLampeExterieur ) GEA.add(210, -1, "", paramsLampeExterieur ) @lolomail ... merci Edit : -1 et non pas -1*60 ... Steven réveille toi.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Je ne trouve pas que cela soit forcément une bonne idée car si quelqu'un allume la lumière c'est peut-être pour une bonne raison. Dans ce cas, moi je laisserais un laps de temps de 5 à 10 minutes. Mais on n'est pas tous pareil Dans ton script tu spécifie GEA.CheckEvery = X secondes. Donc descendre tes ajout GEA.add en dessous de cette valeur n'a pas de sens puisque le système vérifie uniquement toutes les X secondes. Selon mes tests descendre en dessous des 3 secondes n'as pas très bon et 5 secondes si tu as beaucoup de périphérique à contrôler. Tu as 2 possibilités : 1 - tu veux que chaque lampe d'arrête après X minutes (1 ligne de code par lampe) 2 - le délai n'est pas important, dès que ta variable Jours_nuit est ""Jours" tu éteins tes lampes toutes les X minutes (1 ligne de codepour toutes les lampes) 3 - En mode instantané pour chaque lampe, dès qu'elle s'allume, tu l'éteints (1 ligne par lampe) A toi de voir. P.S. Dans tout les cas, ta ligne de code est fausse. Car elle met la variable à "Jour" au lieu de la controler.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Il est utile pour tout ceux qui trouvent leur scénario d'ouverture de volets trop facile. En cas d'alerte niveau 4, il faut mieux ne pas les lever Courage
-
Le -1 me permet de différencier les commandes dites "immédiates" des autres. Je viens de vérifier et de voir que je l'avait mal documenté. Je corrigerais cela àla prochaine version.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Voici voilà . Pour de l'instantané, il ne faut pas oublier d'ajouter l'ID dans l'entête du scipt --[[ %% autostart %% properties 207 value %% globals --]] Et de mettre -1 dans le nombre de secondes. Sinon, t'as tout bon, GEA.add(207, -1, "", {{"turnOn",100},{"Time", "Sunset", "Sunrise"}}) -- Allumer automatiquement l'éclairage Portail la nuit GEA.add(100, 30*60, "", {{"turnOff"}}) -- Eteindre automatiquement l'éclairage Portail
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
MeteoAlert - Version 1.40 But : Ce module virtuel à pour but d'aller chercher les informations d'alerte météo sur le site officiel vigilance métérologique et de parcourir le fichier XML afin de trouver les alertes relatives à votre département. Ce module peut aussi vous envoyer des messages push sur votre smartphone en cas d'alerte météo. Une possibilité d'utilisation de variable globale est aussi prévu afin de pouvoir bénéficier du niveau d'alerte dans vos autres scénarios. Installation : - Importer le module virtuel ci-joint : MeteoAlerte.vib Paramétrage : Il est important de modifier le code du bouton "Vérifier" afin que ce dernier correspond à vos attentes. Vérifier préalablement que votre département existe bien sur le site http://vigilance.meteofrance.com/ dans le cas contraire, notez un numéro de département proche du votre. -- -------------------------------------------------------------------------------------------------------------- -- MeteoAlerte est est script qui va vérifier les alertes méteo du site vigilance.meteofrance.com -- Le site retournant des informations XML, le script va donc les parser. -- Author = "Steven Piccand" -- Version = "V1.40" -- -------------------------------------------------------------------------------------------------------------- if (not MeteoAlerte) then MeteoAlerte = {} -- !!! VOS PARAMETRES !!! MeteoAlerte.dep = "74" -- votre département MeteoAlerte.smartphone = {70} -- {70,71} le(s) portable(s) ou envoyé la notification push en cas d'alerte MeteoAlerte.niveauAlerte = 3 -- le niveau minimum d'alerte pour être notifié MeteoAlerte.globalvariable = "" -- Nom de la variable globale a renseigné Météo France fourni un niveau d'alerte de 1 (rien à signaler) à 4 (Très dangereux). en mettant la variable MeteoAlerte.niveauAlerte = 3, le module virtuel enverra un message push dès que le niveau sera de 3 ou supérieure. Si vous renseigné MeteoAlerte.globalvariable avec le nom d'une variable que vous aurez précédemment créée, ce script renseignera sa valeur (1 à 4) dès que possible. Ce script est initialement prévu pour s'exécuter toutes les 12 6 heures. Visuel : Historique : Version 1.10 En de problème d'accès au fichier XML, le script tente 5 fois toutes les 10 minutes de récupérer le fichier. En cas d’échec, il attendra les prochaines 6 heures. Taux de rafraîchissement augmenté à toutes les 6 heures (précédemment 12 heures). Version 1.20 Autorisé l'envoi de la notification sur plusieurs smartphonesVersion 1.30 Correction des soucis apporté par le Main LoopVersion 1.40 Correction du status relevé par @JM13 Ajout de la possibilité de personnalisé l'icone selon le status en cours (demandé par @Gwendal) Version 2.00 Ajout du type de risque (nouveauté de MétéoFrance) Pour les développeurs : ce script inclus une fonction de parsing XML libre de droit. MeteoAlerte.vfib
-
Mille fois raison. Eventuellement, n'oublier pas l'usage de GEA.getGlobalForActivation = {"<variable>", "<valeur>"} qui permet de suspendre tout le code.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Tu as quelques erreurs de copier coller sur le test 5% qui est toujours associé au group 1 et jamais au 2 et 3.Sinon, oui cela fonctionne. Un grand bavo. Un seul soucis : c'est difficilement maintenable. Je te propose ce code suivant local absent = {"Global", "Absence", "0"} local vacances = {"Global", "Vacances", "0"} local temp21 = {"Value+", 37, 20.9} local temp23 = {"Value+", 37, 22.9} local temp20 = {"Value-", 37, 20.9} local group1 = {absent, vacances, temp21} local group2 = {absent, vacances, temp23} local group3 = {absent, vacances, temp20} GEA.add({"Value+", 78, 5}, 10*60, "Fermeture volet chambre à 60% à #time#, température >= 21°", {{"Value", 78, 50},{"Time", "10:00", "18:00"}, {"If", group1}}) GEA.add({"Value+", 78, 5}, 10*60, "Fermeture volet chambre à 70% à #time#, température >= 21°", {{"Value", 78, 70},{"Time", "10:00", "18:00"}, {"If", group2}}) GEA.add({"Value+", 78, 5}, 10*60, "Ouverture volet chambre à #time#, température < 21°", {{"Value", 78, 100},{"Time", "10:00", "18:00"}, {"If", group3}}) Il fait la même chose mais utilise le If au lieu de groupe, cela permet une meilleure lisibilité.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
T'es vraiment un tordu toi ...j'adore Aller et si on résolvait en 1 seconde GEA.add({"Time", "Sunrise>07:30", "Sunset<21:00"}, 60, "", {{"Group", 1},{"Group", 2}}) GEA.add({"Group", 1}, 60, "Ouverture volet - #time#", {{"Open", ID_VOLET1, 50}}) GEA.add({"Group", 1}, 90, "Ouverture volet - #time#", {{"Open", ID_VOLET2, 50}}) GEA.add({"Group", 1}, 120, "Ouverture volet - #time#", {{"Open", ID_VOLET3, 50}}) 1er volet à60 sec, 2ème à90 et 3ème à120 ... c'est un peu ça que tu souhaites non ?
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Met en commentaire tout les autres éléments, met le début àTrue. Appuie sur la télécommande de ta femme et regarde ce qui ce passe. La réponse est sûrement là. Éventuellement envoi moi les traces si tu veux bien.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Vérifie qu'il n'y ait pas d'autres scénarios en cause. Ou de soucis avec un id.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Vous fumez quoi ? On partage ?
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :