-
Compteur de contenus
249 -
Inscription
-
Dernière visite
Tout ce qui a été posté par maconly34
-
Me revoilou ;-) bon pour le moment j'ai joué la carte de la simplicité : création d'une table de mes modules dans le panneau de variables globales ex. : nom raccourci du module / n° ID VB1 valeur 51 VS1 valeur 111 VS2 valeur 8 ainsi dans mes scripts, je fais juste une récupération de la VG dans une VLocale local VS1 = fibaro:getGlobalValue("VS1") Ensuite les scripts non plus jamais à être modifiés : Action sur les volets fibaro:call(VS1, "close") fibaro:call(VS2, "close") fibaro:call(VS3, "setValue", « 50 ») En cas de réinclusion d’un module, il me suffit de mettre à jour le nouvel ID dans la table des VG Pour le moment, pas constaté de ralentissement.
-
@mprinfo Alors on flingue les Macs Bon, je suis sur qu'un jour tu feras comme Petermoto -> tu switcheras, comme les milliers de personnes que j'ai formées sur Mac depuis 20 ans Alors un petit coup de main pour les switchers ! pourquoi pas une rubrique Help on Mac
-
Ce qui est bizarre, c'est que la déclaration de var du panneau de var global, n'affecte pas le type "number" àune variable déclarée avec un nombre. Elle est associée àun type "String" ?!?!
-
Merci pour ton dernier lien très instructif, il a répondu à mes questions, ce qui me permettra de faire plus attention aux types de var, et ne pas tomber dans des pièges comme ce dernier ! voilà ce qui est très intéressant dans cette doc : Le Typage dynamique des variables en LUA Et voilà comment obtenir le type d'une variable
-
Et oui c'est ça les nouveaux langages... En C on doit déclarer le type de variable (numérique, chaine de caractères etc) comme ça si l'on essai de comparer 2 var de type différent on à une erreur de générée. Tonumber et Tostring ne sont que des convertisseurs d'un type vers un autre, on ne devrait pas en avoir besoin si dans la déclaration on spécifié le type. exemple En langage C les principaux types de variables sont les suivants : Booléen : Ensemble de définition : {FAUX , VRAI} Déclaration algorithmique : a , b : booléen Déclaration C : bool a ,b ; Entier : Ensemble de définition : 9 Déclaration algorithmique : i , j : entier Déclaration C : int i , j ; Flottant : Ensemble de définition : IF Déclaration algorithmique : x,y : flottant Déclaration C : float x , y ; ou double x , y ; Caractère : Ensemble de définition : La table ASCII Déclaration algorithmique : c, g : caractère Déclaration C : char c , g ;
-
Effectivement c'était ça ! Visuellement l'état des variables était bon, mais pas le type. Dommage de ne pas avoir d'erreur "type mismatch" comme en C, C++ etc. Ne peut ton pas définir les variables comme en C++ avec un type (string, num, bin...)
-
Effectivement cela sera plus précis, bien que si on passait par le test elsif on modifierait la valeur de la global à 0 Test effectué, mais toujours pas OK bizarrre, je ne vois absolument pas d'erreur !
-
Bon encore petit souci, on dirait que le test avec la var globale ne fonctionne pas j'ai inversé le test du elseIf des tempértures pour ne pas attendre (Test n°2) et je n'est pas d'action exécutée --[[ %% properties 49 value 45 value %% globals --]] local TempSalon = fibaro:getValue(49, "value") local TempVeranda = fibaro:getValue(45, "value") local fermerVolet = fibaro:getGlobalValue("fermerVolet") local actionTEST = "éteint" if TempVeranda > TempSalon and fermerVolet == 0 then fibaro:setGlobal("fermerVolet", 1) fibaro:call(39, "turnOn") fibaro:sleep(3*1000) fibaro:call(39, "turnOff") elseif TempSalon < TempVeranda and fermerVolet == 1 then fibaro:setGlobal("fermerVolet", 0) fibaro:call(39, "turnOn") fibaro:sleep(10*1000) fibaro:call(39, "turnOff") actionTEST = "allumé" end fibaro:debug("Temp Salon = " .. TempSalon) fibaro:debug("Temp Veranda = " .. TempVeranda) fibaro:debug(fermerVolet) fibaro:debug("Action TEST = " .. actionTEST) [DEBUG] 20:39:52: Temp Salon = 27.2 [DEBUG] 20:39:52: Temp Veranda = 27.8 [DEBUG] 20:39:52: 1 [DEBUG] 20:39:52: Action TEST = éteint
-
Trop cool, ENCORE UN GRAND MERCI AU MASTERS DE CONSACRER DU TEMPS POUR LES NEWBIES
-
voilà mon débug (on voit le cycle de 2 minutes) [DEBUG] 19:40:51: Temp Salon = 27.2 [DEBUG] 19:40:51: Temp Veranda = 30 [DEBUG] 19:40:51: 1 [DEBUG] 19:42:51: Temp Salon = 27.1 [DEBUG] 19:42:51: Temp Veranda = 30 [DEBUG] 19:42:51: 1 [DEBUG] 19:44:51: Temp Salon = 27.2 [DEBUG] 19:44:51: Temp Veranda = 30 [DEBUG] 19:44:51: 1
-
Tout simplement parce-que je peut être dans un cas ou j'ai besoin d'ouvrir le volet en manuel, alors le prog me le refermerai aussitôt. Pour le moment ce scripts me prévient seulement de l'inversion des températures (coup de sirène pendant une seconde) mais pas encore donné l'ordre de fermer les volets SUD CQFD
-
Le prog tourne toutes les 2 minutes, puisque mon capteur de température rafraîchi les valeurs toutes les 2 minutes (déjà testé), donc déclenchement du script Volets SUD : id 8 et 113
-
Bien si on fait plusieurs tour de programme avec tempVeranda > tempSalon on a : fermeVolet = 0 donc les conditions du 1er if sont remplies alors fermeVolet = 1 Donc tant que tempVeranda > tempSalon on effectuera les actions du 1er if Alors que je veux qu'elles ne se fassent qu'une seules fois Voilà pourquoi pas de déclaration en début de code. Mais c'est de ma faute je ne t'ai pas expliqué le rôle de ce script : il doit me prévenir quand il fait plus chaud dehors que dedans (un coup de sirène pendant x secondes) alors je ferme les volets SUD puis Stop jusqu'à ce la température extérieure soit plus fraiche qu'à l'intérieure re-coup de sirène plus ouverture des volets SUD et Stop jusqu'au prochain cycle
-
Super je vais décortiquer ces fonctions, qui déjà m'apporte beaucoup dans l'apprentissage du code LUA P.S. où déclares tu ces fonctions. y'a-t-il un emplacement spécifique de façon à pouvoir les utiliser dans toutes les scènes, sans avoir à les déclarer à chaque fois ?
-
Salut mprinfo ;-) Comme je savais que tu allais regarder peut-être depuis Tapatalk, j'ai fais exprès de le mettre en txt simple, pour que tu puisses le lire ;-) Voilàle vrai script non modifié. Je n'ai pas utilisé de var local car elle ne serait visible que dans le bloc if-end, et comme elle doit me servir de flip/flop, il faut qu'elle soit visible dans tous les blocs. De plus je ne peux pas la déclarer en début de script car elle se réinitialiserai àchaque fois --[[ %% properties 49 value 45 value %% globals --]] local TempSalon = fibaro:getValue(49, "value") local TempVeranda = fibaro:getValue(45, "value") if ( TempVeranda > TempSalon and fermerVolet == 0 ) then fermerVolet = 1 fibaro:call(39, "turnOn") fibaro:sleep(3*1000) fibaro:call(39, "turnOff") end if ( TempSalon > TempVeranda and fermerVolet == 1 ) then fermerVolet = 0 fibaro:call(39, "turnOn") fibaro:sleep(1*1000) fibaro:call(39, "turnOff") end fibaro:debug("Temp Salon = " .. TempSalon) fibaro:debug("Temp Veranda = " .. TempVeranda) fibaro:debug(fermerVolet) Je vais faire des test avec les Fibaro Globales (Set et Get) MERCI
-
Salut les Masters truc bête, je déclare une variable dans le panneau de variables globales (fermevolet à 1) voilà ma scène de test : --[[ %% properties %% globals --]] fibaro:debug(fermevolet) voilà le débug : [DEBUG] 14:48:59: nil pourquoi Debug me retourne une valeur nulle ? P.S. j'ai bien étudié le tuto sur variables locales ou globales. MERCI
-
Bravo PITP2 [emoji41] Je mémorise cette info ainsi que lien de Jojo. Envoyé de mon iPhone en utilisant Tapatalk
-
Moi aussi 3.60. ->4.048 -> 4.0.49 juste quelques soucis de déclenchement de scène qui se sont réglés grace aux Masters du forum !
-
Et le mecs BRAVO. Il fallait vos 2 réponses pour corriger les 2 bugs : PB sceneActivation 4.0.48 Et paramètre 50 du FGRM-222 à mettre sur scène activation (cause réinclusion en 4.xxx) Bon je m'attaque, maintenant à une autre scène qui ne veut plus se déclencher (encore une) en fonction du Sunset -> ferme tous les volets à sunset + 25 min. @mprinfo, il va falloir sérieusement penser à troquer ton Androà¯d par un iPhone, si tu veux être plus performant sur Tapatalk
-
@mprinfo Comment il s'appelle ton tuto ? C'est celui sur les Triggers que j'ai déjà vu ? Merci MoicPhil, je tente la mise à jour...
-
Hello Master of Trigger Cette fois c'est sceneActivation qui me joue des tours : aucun affichage dans le débug quand j'appuie sur le bouton du volet ID = 111 voilàle code : --[[ %% properties 111 sceneActivation %% globals --]] -- Only allow one instance of the current scene to run at a time if ( fibaro:countScenes() > 1 ) then fibaro:abort() end local NumScene = tonumber(fibaro:getValue(111, "sceneActivation")) if ( NumScene == 13 ) then fibaro:call(111, "open") fibaro:call(8, "open") fibaro:call(113, "open") elseif ( NumScene ==23 ) then fibaro:call(111, "close") fibaro:call(8, "close") fibaro:call(113, "close") end if ( NumScene == 15 ) then fibaro:call(111, "setValue", "50") fibaro:call(8, "setValue", "50") fibaro:call(113, "setValue", "50") elseif ( NumScene ==25 ) then fibaro:call(111, "setValue", "40") fibaro:call(8, "setValue", "40") fibaro:call(113, "setValue", "40") end fibaro:debug("numero de scene" .. NumScene) D'avance un grand MERCI
-
Effectivement ça tient la route, je dirai même que c'est binaire ;-)
-
Effectivement, on doit pouvoir déclencher sur n'importe quelle variable, ça me parait pas loufoque comme réflexion
-
Et Jojo, alors comment on fait pour s'y retrouver
-
Bon faut que je me repose ! je me suis planté d'IP, j'ai mis l'IP de mon clone Synology ça marche ave le bon IP