Aller au contenu

sumsum

Membres confirmés
  • Compteur de contenus

    57
  • Inscription

  • Dernière visite

Messages posté(e)s par sumsum

  1. @jojo Il faut deux lignes car il faut changer le statut de profile à Away une fois qu'il était à Home

     

    GEA.add( {"Or", {"Value", 188, false}, {"Value", 202, false} }, 30, "Bernard, Nathalie ou les deux sont absents changé à Away", {{"Profile", "Away"}, {"Portable", Phone_Bernard}})
    GEA.add( {{"Value", 188, true}, {"Value", 202, true}, }, 30, "Bernard, Nathalie sont présents changé à Home", {{"Profile", "Home"}, {"Portable", Phone_Bernard}})

    PS je n'ai pas testé, mais ça devrait couvrir tes besoins

     

     

     

    • Like 1
  2. @Domodial j'essaie de simplifier ton besoin pour limiter le nombre de conditions et donc de lignes. Comme @jojo je suis pour la simplicité.
    Si je lis les commentaires que tu as mis dans ton code, j'y vois des conditions qui s'annulent.
    Par exemple le changement de l'état de la box:

    • Condition 1: Si je suis absent, change le mode de la box à 2 (AWAY), s'il ne détecte pas mon smartphone
    • Condition 2: Si je suis présent (true), passe le mode HC3 à 1 (HOME)
    • Condition 3: Si Nathalie est absent, change le mode de la box à 2 (AWAY), s'il ne détecte pas son smartphone
    • Condition 4: Si Nathalie est présent (true), passe le mode HC3 à 1 (HOME)

    Comme vous êtes 2 il faut impérativement inclure les deux variables dans les conditions, sinon, la condition 1 et 2 sera annulée par la 3 ou la 4 et c'est là que la table dont je parlais plus haut prend tout son sens.
     

    Nathalie
    0 = absente
    1 = Présente

    Bernard
    0 = absent
    1 = Présent

    Etat Box
    2 = AWAY
    1 = HOME

    Etat Lumière
    0 = éteinte
    1 = allumée

    0

    0

    2

    0

    0

    1

    1

    0

    1

    0

    1

    0

    1

    1

    1

    1

     

    Vérifie/confirme ou modifie la table ci-dessus pour que tes conditions et tes actions correspondent à ce que tu veux que GEA fasse.
    En lisant tes commentaires dans ton code et analysant ton code, les deux ne correspondent pas. Comme dit plus haut, si tu travailles aux conditions de Nathalie et de Bernard ligne par ligne, tu ne couvriras pas le cas de Bernard et Nathalie présents les deux ou absents les deux.

    PS dans tes actions de pilotage de ta lampe tu mets "Value+". Value+ est prévu pour tester une valeur plus grande que... dans les conditions. Pour les actions, c'est "Value" qu'il faut employer.
    Une fois ta table confirmée il restera à créer les lignes GEA qui engloberont tes conditions et tes actions.
    Redis-moi et je t'assiste pour les créer, cela te permet d'avoir le strict nécessaire de lignes et des actions qui correspondent exactement à ce que tu souhaites.
     

  3. Il y a 19 heures, Domodial a dit :

    Hello la foule,

     

    Je viens poster une complication crânienne de niveau 12 :unsure:

    Je n'arrive pas à transposer dans GEA ce que je veux faire.

     

    Sur détection de présence, je souhaite que lorsque l'un "ou" l'autre du foyer est "Présent" cela actionne ou pas un truc.

    J'ai pris exemple avec une simple lampe, mais je ne comprends pas comment faire un "Ou" car ça fonctionne uniquement avec des "Et" > "Alors"

     

    
    -- Test l'état du QA Présence (ID 188), si mon smartphone est présent ou non..
    	local B_estAbsent        	= {"Value","188","false"}
    	local B_estPresent       	= {"Value","188","true"}
    
    -- Test l'état du QA Présence (ID 202), si le smartphone de Nathalie est présent ou non.
    	local N_estAbsente     	= {"Value","202","false"}
    	local N_estPresente     = {"Value","202","true"}
    
    -----------------------------
    --- là c'est compliqué car chacun change l'état de la box en fonction de si il est là ou pas.
    ------------------------------
    -- Si je suis absent, change le mode de la box à 2 (AWAY), s'il ne détecte pas mon smartphone
    	GEA.add({"Value", 188, false}, 0, "Bernard est absent profile changé à Away", {{"Profile", "Away"}, {"Portable", Phone_Bernard}})
    -- Si je suis présent (true), passe le mode HC3 à 1 (HOME)
    	GEA.add({"Value", 188, true}, 0, "Bernard est présent profile changé à Home", {{"Profile", "Home"}, {"Portable", Phone_Bernard}})
    
    -- Si Nathalie est absent, change le mode de la box à 2 (AWAY), s'il ne détecte pas son smartphone
    	GEA.add({"Value", 202, false}, 0, "Nathalie est absente profile changé à Away", {{"Profile", "Away"}, {"Portable", Phone_Bernard}})
    -- Si Nathalie est présent (true), passe le mode HC3 à 1 (HOME)
    	GEA.add({"Value", 202, true}, 0, "Nathalie est présente profile changé à Home", {{"Profile", "Home"}, {"Portable", Phone_Bernard}})
    
    -----------------------------------------------------------------
    -- ACTIONS
    
    
    -- Bernard est absent, rien ne se passe car Nathalie est présente
    	GEA.add({B_estAbsent, N_estPresente}, 0, "Allumage du couloir à #time#", {{"Value+",Lum_Entree, 10}, {"Portable", Phone_Bernard}})
    
    -- Nathalie est absente, rien ne se passe car Bernard est présent
    	GEA.add({B_estPresent, N_estAbsente}, 0, "Allumage du couloir à #time#", {{"Value+",Lum_Entree, 10}, {"Portable", Phone_Bernard}})
    
    -- Nathalie et Bernard sont présent, la lumière s'allume.
    	GEA.add({B_estPresent, N_estPresente}, 0, "Allumage du couloir à #time#", {{"Value+",Lum_Entree, 10}, {"Portable", Phone_Bernard}})
    
    -- Besoin que quand l'un ou l'autre soit là, la lumière s'allume ou une action quelconque.

    Si quelqu'un a plus de cerveau que moi, il est le bienvenue :60:

    Pour ce type de réflexions, rien ne vaut la création d'une table de vérité, employée lorsqu'on simplifie des fonctions avec l'algèbre booleen.
    Par exemple:
    A = Bernard

    B = Nathalie


    A peut prendre les valeurs suivantes:
    Bernard Présent = 1
    Bernard Absent = 0

    B peut prendre les valeurs suivantes:
    Nathalie Présente = 1
    Nathalie Absente = 0

     

    La création de la table de vérité permet d'envisager tous les cas de figure. Le nombre de variables d'entrées ne se limite pas qu'a 2.
    Dans ton exemple, la table pour XOR (OU exclusif) ressemble à cela:
    image.thumb.png.1d7feaa802de9b19e0d2385e6e29fa10.png

    En passant par cette approche, tu définis clairement la fonction puis il ne te reste plus qu'à employer la bonne fonction ET, OU, OU Exclusif, etc...
    L'exemple ci dessus provient d'un exemple créé par Didier Müller qui a publié le document complet sous https://www.apprendre-en-ligne.net/info/logique/logique.pdf 

    Cette approche permet de gagner beaucoup de temps et d'éviter d'omettre des conditions.
     

    • Like 2
  4. @MAM78 Je continue les tests

    Lorsque j'actionne un bouton du VD, "Arrêt cameras" ou "Snapshot", en général la fonction s'exécute correctement pour 2 des 4 caméras.

    Lorsque je regarde le débug de plus près, je constate que l'adresse IP de l'instruction API est ":0".

    As-tu déjà rencontré ce cas de figure ?

     

    Voici un extrait du débug:

     

    Capture d’écran 2019-03-03 à 07.55.07.png

  5. @MAM78 je propose une modif pour faciliter l'obtention des Cam_ID en une seule fois, sans bug dans la boucle principale du VD.

    Dans l'entête on rajoute une variable SetupMode qui est à true lors de l'installation du VD.

    Dans ce cas la boucle n'essaie pas d'exécuter la récupération de l'état des caméras, mais on exécute quelques lignes de code qui affichent dans la fenêtre de débug et dans les labels des caméras du VD, les numéros d'ID des caméras trouvées dans Surveillance Station.

    Une fois les valeurs récupérées, on remplace les ID_CAM_xx par les Cam_ID récupérés dans la code de la boucle principale du VD.

    On change la variable SetupMode à faux et la boucle du VD s'exécute normalement.

    Voici un exemple de l'affichage des ID affichés dans les labels, ayant mis la variable SetupMode à true.

     

    Capture d’écran 2019-03-02 à 22.51.30.png

     

    Je peux te fournir le code modifié

    • Like 1
  6. Voici la ligne 517 de mon code

    Capture d’écran 2019-03-01 à 18.34.57.png

     

    En y regardant de plus près, j'ai rajouté une ligne de DEBUG pour obtenir l'ID de la cam

     

                    local Cam_Name = jsonTable.data.cameras[i].name
                    local Cam_ID = jsonTable.data.cameras[i].id
                    local Cam_VD_Id = ""
    --- Code inséré ----
    self:message("white", "Caméra ID : "..Cam_ID)
    --- Fin Code inséré ---
                    cameras = cameras..Cam_ID
                    if i < nbcameras then 
                      cameras = cameras ..","
                    end

    Du coup en cliquant sur le bouton "Déboguer" de la boucle principale du VD principal, juste avant le message d'erreur de la plantée du code, j'obtiens le Cam_ID.

    Je remplace le ID_CAM_xx par le Cam_ID récupéré dans le débug, je sauve et je recommence l'opération jusqu'à obtenir le Cam_ID de chacune de mes caméras.
    A mon avis il faut revoir la procédure pour affecter les Cam_ID ce n'est pas viable de cette manière.

     

    PS: Il y a plusieurs erreurs d'anglais dans les textes débug du code dans cette zone. Voici les textes modifiés:

                    if Cam_VD_Id ~= nil and Cam_VD_Id ~= "" then
                      if debug then
                        self:message("green", "Found VD ID : "..Cam_VD_Id.." for Camera ID "..Cam_ID..', Name '..Cam_Name)
                      end
                    else
                      self:message("purple", "VD ID not found for Camera ID "..Cam_ID..', Name '..Cam_Name.." in the table List_CAM in then Users parameters")
                    end

     

  7. Le 24/09/2018 à 16:43, pepite a dit :

     

    Et j'aurais mis  ceci pour creer la variable automatiquement au demarrage de GEA selon le retour de @FeligSi c'est ok, il nous aura fait gagner beaucoup de temps. Ne pas oublier que cela n'est pas bloquant normalement.

    J'ai testé cette solution et ça résout les API not found, mais surtout ça résout les latences d'exécution des instructions à déclenchement instantané.
    Voir mon post dans le topic Support GEA

    il y a 5 minutes, sumsum a dit :

    J'ai implémenté la ligne mentionnée ci-dessus et mes problèmes de latences sur l'exécution d'instruction à déclenchement instantanés ont disparu.
    Donc le message d'erreur "API not found" semblait ne pas perturber le fonctionnement de GEA, comme mentionné dans plusieurs posts, par contre il ralentissait de manière très aléatoire les instructions à déclenchement instantanés. Avez-vous constaté la même chose @ymarchive et @fredokl ?

    Merci @oldelvis @pepite @Felig 

     

    Ma box est en version 4.511B et GEA est en version 6.07 (incluant les modifs proposées)

     

  8. J'ai implémenté la ligne mentionnée ci-dessus et mes problèmes de latences sur l'exécution d'instruction à déclenchement instantanés ont disparu.
    Donc le message d'erreur "API not found" semblait ne pas perturber le fonctionnement de GEA, comme mentionné dans plusieurs posts, par contre il ralentissait de manière très aléatoire les instructions à déclenchement instantanés. Avez-vous constaté la même chose @ymarchive et @fredokl ?

    Merci @oldelvis @pepite @Felig 

     

    Ma box est en version 4.511B et GEA est en version 6.07 (incluant les modifs proposées)

  9. Le 19/10/2018 à 18:27, fredokl a dit :

    Salut. J'ai les mêmes symptômes que @oldelvis et @ymarchive. On dirait que la box tourne effectivement au ralenti. J'ai fait la mise à jour en 4.511 Bêta mais rien n'y fait. Tous les déclenchements instantanés arrivent avec une latence allant parfois jusqu'à presque 10 secondes. Les notifications c'est pareilles, un coup je les ai et un coup non. Ça reste aléatoire.

    ...

    Idem chez moi que @oldelvis, @ymarchive et @fredokl

    La latence est parfois de plus de 30 à 40 secondes. Ce sont surtout les déclenchements instantanés qui posent problèmes.
    Bizarrement, c'est comme si toutes les instructions se stockaient dans un buffer et qu'elles s'exécutent d'un coup.
    Le problème existe depuis la FW 4.510

    Je suis passé à al FW 4.511B mais aucune amélioration.

     

    EDIT: Résolu voir mon post plus bas

  10. Le 10/09/2018 à 22:32, Franco268 a dit :

    Hello,

     

    avec cette version, avez vous aussi eu votre box qui ne répond pas. Je m’explique... tout fonctionne bien depuis plusieurs jour puis les scènes ne se lance plus, et impossible de se connecter à l’interface. Un petit redémarrage puis tout rentre dans l’ordre.

    Depuis l’apparition de cette version, le phénomène s’est produit 3 fois chez moi

    idem ici, lenteurs, fonctionnement aléatoire.
    Rien ne se passe pour 1 minute, puis toutes les actions qui auraient dû se dérouler s'exécutent à la suite, comme s'il y avait un stack d'instruction qui se vide.

    • Like 1
  11. @schwinny de mémoire les déclarations des ID "999 value" dans l'entête doivent être placés juste après %% properties et avant %% events.

    Après %% globals, tu déclare les variables globales.

    Dans des posts précédents j'avais demandé de l'aide pour des fonctionnements erronés ou aléatoires des déclenchements instantanés et en supprimant des lignes vides entre les déclarations, le problème avait disparu!

    Les déclarations dans l'entêtes sont sensibles au niveau de la syntaxe et ils n'y a pas de message d'erreur.

    Voici la syntaxe. J'ai rajouté %% events qui manquait.

     

    PS: Es-tu sûr que tu as autant de modules qui sont employés dans une instruction GEA avec déclenchement instantané -1 ?

    On ne déclare que les ID des modules qui sont employés dans une ligne GEA avec -1

    --[[
    %% autostart
    %% properties
    8 value
    60 value
    74 value
    65 value
    13 value
    18 value
    70 value
    317 value
    85 value
    265 value
    23 value
    92 value  
    236 value
    97 value  
    209 value  
    311 value
    291 value
    241 value
    188 value
    176 value
    182 value
    259 value
    253 value
    165 value
    272 value
    313 value
    293 value
    243 value
    190 value
    178 value
    184 value
    261 value
    255 value
    167 value
    274 value  
    312 value
    292 value
    242 value
    189 value
    177 value
    183 value
    260 value
    254 value
    166 value
    273 value   
    238 value
    279 value
    287 value  
    52 value
    43 value
    42 value
    44 value
    357 value
    324 value
    327 value
    330 value
    78 value
    26 value
    30 value
    82 value
    303 value
    337 value
    345 value
    259 value
    %% events
    %% globals
    TimeOfDay
    PresentState
    CycleLaveVaisselle
    CycleLaveLinge
    --]]

     

  12. @Steven @pepite @971jmd merci pour vos suggestions.

    J'ai trouvé ce qui provoque le problème en me penchant de manière systématique sur mon code et en réussissant à provoquer l'erreur.

    Mon extrait de code problèmatique:

    	GEA.add({"Or", {"Value+", id["OEIL_SALON_FENETRE_GAUCHE"],LuminositeMaxSalon}, {"Value+", id["OEIL_SALON_FENETRE_DROITE"],LuminositeMaxSalon}},
    			 2*60, "Il y a TROP de luminosité, la valeur mesurée est de #value[1]# et #value[2]# fermeture des stores", 
    			 {{"Days", "Weekend"}, {"Time", "08:30", "18:00"},
    			 {"Close", {id["STORE_GAUCHE"],id["STORE_MILIEU"],id["STORE_DROITE"]},90}}
    			 )

    c'est la syntaxe #value[1]# et #value[2]#qui pose problèmes.
    Si je remplace par #value# le code fonctionne et il n'y a plus de message d'erreur.

    Mon extrait de code qui fonctionne:

    GEA.add({"Or", {"Value+", id["OEIL_SALON_FENETRE_GAUCHE"],LuminositeMaxSalon}, {"Value+", id["OEIL_SALON_FENETRE_DROITE"],LuminositeMaxSalon}},
    			 2*60, "Il y a TROP de luminosité, la valeur mesurée est de #value# fermeture des stores", 
    			 {{"Days", "Weekend"}, {"Time", "08:30", "18:00"},
    			 {"Close", {id["STORE_GAUCHE"],id["STORE_MILIEU"],id["STORE_DROITE"]},90}}
    			 )

    Par contre le message récupéré sur mon téléphone mobile est le suivant:

    "Il y a TROP de luminosité, la valeur mesurée est de true fermeture des stores"

     

    Je suis satisfait que mon code re-fonctionne et ne plante plus avec cette modification. Par contre je ne sais pas quelle syntaxe mettre si je veux indiquer la valeur en lux de mes deux détecteurs. Si quelqu'un a une idée je suis preneur. 

  13. @pepite non je n'ai pas essayé car malheureusement ce problème n'est pas permanent.
    Une fois que j'ai ce message d'erreur, tous les timers ne réagissent plus.
    Le seul moyen que j'ai trouvé pour m'en sortir, c'est de redémarrer ma HC2.

     

  14. @Steven et @pepite Désolé, je n'avais pas beaucoup de temps ce matin en partant.

    Ci-dessous les quelques lignes où j'ai une durée d'une minute. (est-ce bien celles-ci que vous voulez voir ?)

    GEA.add({id["DETECTEUR_PORTE_ENTREE"]}, -1,"Ouverture porte entrée à #time# le #date#",{"turnOn", id["LUMIERE_ENTREE"],1*60})
    GEA.add({id["DETECTEUR_PORTE_CAVE"]}, -1,"Ouverture porte cave à #time# le #date#",{"turnOn", {id["LUMIERE_ESCALIER_CAVE_BAS"],id["LUMIERE_PORTE_ENTREE_EXT"]},1*60})
    
    GEA.add({id["DETECTEUR_PORTE_ARM_GAUCHE"]}, -1,"",{"turnOn", id["LUMIERE_ENTREE"],1*60})
    GEA.add({id["DETECTEUR_PORTE_ARM_DROITE"]}, -1,"",{"turnOn", id["LUMIERE_ENTREE"],1*60})
    
    
    GEA.add({"Or", {"Value+", id["OEIL_SALON_FENETRE_GAUCHE"],LuminositeMaxSalon}, {"Value+", id["OEIL_SALON_FENETRE_DROITE"],LuminositeMaxSalon}},
    		 1*60, "Il y a trop de luminosité au salon, #value[1]# et #value[2]# lux, extinction des lumières",
    		 {"turnOff", id["SALON_ECLAIRAGE_PLAFOND"]})
    		 
    GEA.add({{"Value", id["OEIL_MEUBLE_SDB"], 0},{"Value", id["OEIL_COULOIR_DRESSING"],0}}, 2*30, "", {"turnOff", id["STRIP_LED_MEUBLE_SDB"]})

     

  15. Merci @971jmd dans ta proposition
    Tu supprimes le "Or" et tu passes par une variable globale. Quel est le but ?

    Le code fonctionne, c'est simplement que subitement j'ai un message d'erreur timer que je n'arrive pas à identifier.

    A partir de ce moment là, la plupart des lignes qui contiennent un temps ne fonctionnent plus.

    Je dois donc redémarrer le HC2

  16. Salut @Steven et Salut @pepite

     

    Je vous joins l'entier de mon code.

    Il y a des lignes en commentaires car en phase de remise en état après des travaux importants chez moi.

     

    23.06.2018 -> J'ai supprimé l'entier de mon code pour alléger le forum.

     

  17. Bonjour,

    Vous avez déjà eu le message d'erreur [error] timer handler failed with error ?

    J'ai beau analyser, je ne sais pas où chercher. L'erreur suit le code qui pilote la descente des stores à lamelles en cas de luminosité trop importante.

    GEA.add({"Or", {"Value+", id["OEIL_SALON_FENETRE_GAUCHE"],LuminositeMaxSalon}, {"Value+", id["OEIL_SALON_FENETRE_DROITE"],LuminositeMaxSalon}},
    			 2*60, "Il y a TROP de luminosité, la valeur mesurée est de #value[1]# et #value[2]#", 
    			 {{"Days", "Weekend"}, {"Time", "08:30", "18:00"},
    			 {"Close", {id["STORE_GAUCHE"],id["STORE_MILIEU"],id["STORE_DROITE"]},90}}
    			 )

     

    Capture d’écran 2018-06-17 à 16.25.34.png

  18. il y a 6 minutes, Lazer a dit :

    PS à tout le monde : il faut être root et je ne donnerai pas la procédure, pas la peine de me faire un MP. De toute façon passer root sur un Linux, c'est le premier truc qu'un sysadmin apprend à faire, donc catégorie "facile". Celui qui ne sait pas le faire n'a rien à faire avec le compte root à part des bêtises.

    Ok pris note mais comme ça tu ne pourras pas comparer ton logfile avec d'autres ;-) donc définir si c'est mécanique ou pas.

    Your choice

  19. Bonjour,

    Un grand merci pour ce tuto qui m'a permis de piloter un boiler triphasé via un triac pilotable 0-10V.

    Je publierai sous-peu mon tutoriel complet. 

    Mon code fonctionne parfaitement, mais j'aurai besoin de l'expertise des pros pour optimiser une boucle de moyenne glissante calculée sur les 5 dernières valeurs de consommation.

    Si vous avez le temps, je suis preneur, je me disais que de travailler avec json serait sûrement plus efficace, mais je ne maîtrise pas assez le json.

     

    Création des variables globales:

    createGlobalIfNotExists("Consommation_Instantanee_0","0") -- Variable pour stocker conso instantanée t0
    createGlobalIfNotExists("Consommation_Instantanee_1","0") -- Variable pour stocker conso instantanée t-1
    createGlobalIfNotExists("Consommation_Instantanee_2","0") -- Variable pour stocker conso instantanée t-2
    createGlobalIfNotExists("Consommation_Instantanee_3","0") -- Variable pour stocker conso instantanée t-3
    createGlobalIfNotExists("Consommation_Instantanee_4","0") -- Variable pour stocker conso instantanée t-4
    createGlobalIfNotExists("Consommation_Instantanee_5","0") -- Variable pour stocker conso instantanée t-5
    createGlobalIfNotExists("Consommation_Instantanee_Compteur_Moyenne","0") -- Variable pour stocker t afin de calculer la moyenne de consommation

    Appel de la fonction:

    -- ---------------------------------------------------------
      -- Calcule la moyenne glissante sur les 5 dernières mesures
      -- de consomation pour permettre de founir une consigne plus
      -- stable au triac pilotant le boiler
      -- ---------------------------------------------------------
      ConsoInstantanee = CalculMoyenneGlissanteConsoInstantanee(ConsoInstantaneeBrute)
      debug(ConsoInstantanee, "fuchsia") 

    Fonction:

    ---------------------------------------------------------
    -- CalculMoyenneGlissanteConsoInstantanee(ValeurInstantanee)
    -- Fonction pour calculer une moyenne glissante sur les 5
    -- dernières mesures de consommation.
    -- Ceci permet de calculer une consigne de pilotage du triac
    -- lissée et évite les pics d'appels de courant.
    -- Comme la mesure s'effectue toutes les 2 secondes, la moyenne
    -- de consomation Instantanée est donc de 5 mesures en 10 secondes.
    -- Les valeurs de consommation sont stockées dans 5 variables globales
    -- La ValeurTemps également.
    -- On retourne la valeur Moyenne de la consommation sur 5 mesures
    -- Formatée avec 2 chiffres après la virgule.
    ---------------------------------------------------------
    function CalculMoyenneGlissanteConsoInstantanee(ValeurInstantanee)
    	local ValeurTemps
    	local NomVariableGlobale = {"Consommation_Instantanee_0", "Consommation_Instantanee_1", "Consommation_Instantanee_2", "Consommation_Instantanee_3", "Consommation_Instantanee_4", "Consommation_Instantanee_5"}
    	local ValeurTempsCalculVar = 1
    	local ValeurMoyenneConsommation = 0
    
    	ValeurTemps = fibaro:getGlobalValue("Consommation_Instantanee_Compteur_Moyenne")
    	
    	ValeurTemps = tonumber(ValeurTemps)
    	
    	if ValeurTemps <= 5 then  
       		ValeurTemps = ValeurTemps + 1
       	else
    	   	ValeurTemps = 1
       	end
       fibaro:setGlobal(NomVariableGlobale[ValeurTemps], ValeurInstantanee)
       debug("NomVariableConteneur"..NomVariableGlobale[ValeurTemps])
    		
       debug("ValeurTemps"..tostring(ValeurTemps))
       fibaro:setGlobal("Consommation_Instantanee_Compteur_Moyenne", ValeurTemps)
       while ValeurTempsCalculVar<= 5 do       
    	   ValeurMoyenneConsommation = ValeurMoyenneConsommation + fibaro:getGlobal(NomVariableGlobale[ValeurTempsCalculVar])
    	   debug(ValeurTempsCalculVar, "red")
    	   debug(ValeurMoyenneConsommation, "red")
    	   ValeurTempsCalculVar = ValeurTempsCalculVar + 1
    	end
      	return(tonumber(string.format("%.2f",ValeurMoyenneConsommation/5)))
    end
    	

     

    Merci aux Dieux du forum, @Gazous @Did @pepite @Steven et les autres pour vos suggestions d'optimisation :D

×
×
  • Créer...