Aller au contenu

Bloug

Membres confirmés
  • Compteur de contenus

    1 324
  • Inscription

  • Dernière visite

  • Jours gagnés

    27

Tout ce qui a été posté par Bloug

  1. Fallait forcer un peu mdrrrrt
  2. Completely redesigned control of color controllers. Bien ou bien ? (Screen ?)
  3. @fredokl j'pose juste une alternative pour l'applique de @Dvittorio car je refais mes ampoules en ce moment mais surtout l'originalité du modèle m'a interpellé
  4. je vais pas faire le complotiste mais j'ai l'impression que c'est une fausse vrai erreur ... pour tester a grande echelle non ? Un air de déjà vu avec le vaccin Covid !.... Le vaccins est au point et sans danger MAIS si vous souhaitez nous faire part des effets indésirables qu'il provoque systématiquement en cas d'injection, envoyez nous un mail at Co.Baye.gouv.
  5. Bloug

    Les Childs pour les Nuls

    @jang I just did a test with your example library and .... You did it again ! At the first recording of the main I have the creation of the children. At the next recording there is again the creation of 6 additional children . Is it still a problem with my Hc3 !?
  6. Bloug

    Les Childs pour les Nuls

    Bon là c'est d'un autre niveau ! En tout cas Bravo ! j'ai jamais trop cherché a regarder ... surement la peur de voir le loup !
  7. T'as pas un QA pour ça ?
  8. Bloug

    Les Childs pour les Nuls

    @Lazer t'as toi aussi une méthode de Jedi bien spécifique avec ta librairie tools pour la création de QA ! si jamais t'as le temps pour qq lignes de code pour montrer comment tu appelles via ta librairie.
  9. Bloug

    Les Childs pour les Nuls

    It is above all YOUR job !
  10. Bloug

    Les Childs pour les Nuls

    Yes ! I am therefore not the only one to have heated with your example! Thanks again for your time !
  11. Bloug

    Les Childs pour les Nuls

    I think I have to restart my hc3 because it is still looping lol
  12. Bloug

    Les Childs pour les Nuls

    sorry maybe I corrected it wrong by testing your code. I have the following error: main.lua:59: attempt to call a nil value (method 'updateProperty')
  13. Bloug

    Les Childs pour les Nuls

    you are right ! The child is created (physically) but it generates the error: main.lua:20: attempt to index a nil value (global 'children')
  14. Bloug

    Les Childs pour les Nuls

    without children = {} its still works if if I replace by if children == nil then at L33 . the Child or Children tables are they created automatically ?
  15. Bloug

    Les Childs pour les Nuls

    Thank you very much @jang for your addition ! My example for 1 Child itself comes from my file indicated below for the 6 Childs ( " who can do more, can do less " => dummies power !! ) Can you help me, with your example, I have the following error: main.lua:33: attempt to index a nil value (global 'children') if not children[Name] then by ? if children == nil then Thx
  16. Ayant eu pas mal de pb pour la création de childs devices et leurs mises à jour ! Je poste ici une méthode (ma) pour leurs créations. Certes c’est loin d’être la meilleure…. Les Chuck Norris du lua y arrivent avec seulement deux lignes de codes …. Bref … c’est pas la meilleure méthode ! mais elle fonctionne ! Je n’ai pas la prétention d’expliquer le comment, le pourquoi ( c’est le travail de @lazer ) mais simplement d’indiquer ma méthode de débutant et je l’espère vous permettre d’avoir un exemple simple… le manipuler et comprendre ! Bon ! Comme dans toutes grandes sectes qui se respectent, celle-ci pour « les Nuls » se déroule en six étapes ! Alors voici un petit schéma avec les 6 étapes que j’utilise pour faire mes Childs 1 - Création du Child Pour l’exemple nous allons créer un Child température ! ------------------------------- -- 1 - Création d'un Child ------------------------------- -- Child Température : function QuickApp:createChildTmps(Nom) local child = self:createChildDevice({name = Nom, type = "com.fibaro.temperatureSensor",}, NOM_Temps) child:setVariable("Nappe_Child_ID" , "Child_Temps") end 2 - Définition des classes ------------------------------- -- 2 - Définition des classes ------------------------------- class 'NOM_Temps' (QuickAppChild) -- Class NOM_Temps pour "com.fibaro.temperatureSensor" 3 - Constructeur ------------------------------- -- 3 - Constructeur ------------------------------- -- Constructeur __init pour la classe NOM_Temps function NOM_Temps:__init(device) QuickAppChild.__init(self, device) end Normalement arrivé ici votre code ressemble à cela : ------------------------------- -- 1 - Création d'un Child ------------------------------- -- Child Température : function QuickApp:createChildTmps(Nom) local child = self:createChildDevice({name = Nom, type = "com.fibaro.temperatureSensor",}, NOM_Temps) child:setVariable("Nappe_Child_ID" , "Child_Temp") end ------------------------------- -- 2 - Définition des classes ------------------------------- class 'NOM_Temps' (QuickAppChild) -- Class NOM_Temps pour "com.fibaro.temperatureSensor" ------------------------------- -- 3 - Constructeur ------------------------------- -- Constructeur __init pour la classe NOM_Temps function NOM_Temps:__init(device) QuickAppChild.__init(self, device) end 4 - Initialisation des Childs -------------------------------- -- 4 - Initialisation des Childs -------------------------------- self:initChildDevices({ ["com.fibaro.temperatureSensor"] = NOM_Temps -- Température }) local i = 0 for id,device in pairs(self.childDevices) do i=i+1 self:debug("[", id, "]", device.name, ", type of: ", device.type) end if i == 0 then local Nom = "Température" self:createChildTmps(Nom) end 5 - Identification des Childs ------------------------------------- -- 5 - Identification des Childs ------------------------------------- for _, childDevice in pairs(self.childDevices) do if childDevice:getVariable("Nappe_Child_ID") == "Child_Temps" then ID_Child_1 = childDevice.id end end self:Mise_a_jour_des_Childs() end ------------------------- Fin du OnInit 6 - Mises à jour des variables -------------------------------- -- 6 - Mises à jours des Childs -------------------------------- -- Childs ID_Child_1 function QuickApp:Mise_a_jour_des_Childs() variable_qui_donne_la_temperature = 37 --- pour l'ex du tuto variable_pour_le_log = " I'm bad " --- pour l'ex du tuto self.childDevices[ID_Child_1]:updateProperty("value", variable_qui_donne_la_temperature ) self.childDevices[ID_Child_1]:updateProperty("log", variable_pour_le_log) end C’est peut être pas une bonne habitude !? A Confirmer au prochain Crash Voici : Le fichier svg plus facile à lire que sur le forum : Les Childs pour les nuls.svg Le fichier lua à coller dans un QA générique : Child_Temps.lua Et comme nous "les nuls " nous savons que le tuto machin truc qui explique ne parle jamais du child que l'on souhaite faire ! voici un fichier lua avec un multiChild ! : A coller dans un QA générique : Les_Childs_pour_les_Nuls.lua ou le QA à importer : Les_Childs_pour_les_Nuls.fqa PS : J'espère sincèrement ne pas avoir avoir raconté trop de bêtises ! ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Autres méthodes J'ajoute ici le liens direct d'autres méthodes plus complexes abordées ici : Contribution de Jang : ICI Création de Child qui sont définis dans la table (Ex de 6 Childs) Elle supprime les Childs qui ne sont pas dans la table, si vous modifiez le nombre d'enfants. Chaque Child dispose d'un identifiant unique qui est utilisé pour appeler des méthodes sur les childs ------------------------------------------------------------------------------------------------------------------------------
  17. alors, peut être une erreur dans mon code ! A vérifier ensemble point par point, je reste dispo tiens mois au jus ! en fait lors de la connexion ( complète ) il récupère un gros Json avec l'ensemble des devices du coup il est possible de le recopier pour l'indiquer dans la variable. Pour ton Erreur , Impossible d'avoir la suite du message ? : https://apis.groupe-atlantic.com/token 400{"error_de
  18. Bon au moins, maintenant j'arrive a comprendre ! et à faire ! une dernière précision la table : childDevices{} ou je pioche les infos est crée automatiquement lors de l'initialisation des appareils enfants ? En tout cas , Encore merci !
  19. développe ? y'a pas une histoire de stockage limité au démarrage suivant ? il me semble avoir déja testé mais avec un Nil au démarrage suivant .... mais a vérifier c'est vous les foufouX du code !
  20. Tout fonctionne chez moi, j'entends par là " pas de changement sur le fonctionnement avec l'api dans mes requetés " donc si c'est le mot de passe : il faut ajouter la fonction urlencode ( après la ligne 126 ) : -------------------------------------------------------------------------------------- -- UrlEncode pour le password -------------------------------------------------------------------------------------- function QuickApp:urlencode(s) if (s) then s = string.gsub (s, "\n", "\r\n") s = string.gsub (s, "([^%w ])", function (c) return string.format ("%%%02X", string.byte(c)) end) s = string.gsub (s, " ", "+") end return s end -------------------------------------------------------------------------------------- -- Modification du Password -------------------------------------------------------------------------------------- mypassword = self:getVariable("Password") PasswordEncode = self:urlencode(mypassword) -------------------------------------------------------------------------------------- et dans la fonction: function QuickApp:GetJwt() remplacer par la nouvelle variable " PasswordEncode " data = 'grant_type=password&username=GA-PRIVATEPERSON/' .. self:getVariable("UserName") .. '&password=' .. self:getVariable("Password") .. '&scope=openid', par data = 'grant_type=password&username=GA-PRIVATEPERSON/' .. self:getVariable("UserName") .. '&password=' .. PasswordEncode .. '&scope=openid',
  21. De Grands mercis ! Je détaille pour si un gars comme moi en quête de réponses ... j'ai simplifié mon code avec : child:setVariable("Nappe_Child_ID" , "N3") -- Fonction pour le Child BSS_3 function QuickApp:createChild_BSS_3(Nom) local child = self:createChildDevice({name = Nom, type = "com.fibaro.multilevelSensor",}, BSS_3) child:setVariable("Nappe_Child_ID" , "N3") end Du coup je liste ma table childDevices et j'attribue une variable : print("---------- liste des Childs -------------") for _, childDevice in pairs(self.childDevices) do print(childDevice:getVariable("Nappe_Child_ID") , " a l'ID : " .. childDevice.id) if childDevice:getVariable("Nappe_Child_ID") == "N1" then ID_Child_1 = childDevice.id end if childDevice:getVariable("Nappe_Child_ID") == "N2" then ID_Child_2 = childDevice.id end if childDevice:getVariable("Nappe_Child_ID") == "N3" then ID_Child_3 = childDevice.id end end print("---------------- Fin --------------------") J'arrive donc à mettre à jour mes childs : -- Mise à Jour du Childs Bss_1 avec la variable N1 : self.childDevices[ID_Child_1]:updateProperty("value", LastResultReleve) -- Mise à Jour du Childs Bss_2 avec la variable N2 : self.childDevices[ID_Child_3]:updateProperty("value", LastResultReleve) -- Mise à Jour du Childs Bss_3 avec la variable N3 : self.childDevices[ID_Child_3]:updateProperty("value", LastResultReleve) Maiss !!! ??? du coup ?? j'ai plus besoin de ma table sondes{} ???? Quelques messages plus haut j'avais créer une table sonde{} dans le Oninit: local i = 0 self.sondes = {} for id,device in pairs(self.childDevices) do i=i+1 self:debug("[", id, "]", device.name, ", type of: ", device.type) self.sondes[i] = id end j'ai testé la même procédure avec : print("------- Test avec ma table Sondes ------- ") for id, childDevice in pairs(self.sondes) do print(id, childDevice, (childDevice:getVariable("Nappe_Child_ID"))) end print("---------------- Fin --------------------") mais elle crash à cause du : (childDevice:getVariable("Nappe_Child_ID")) [ERROR] [QUICKAPP876]: QuickApp crashed [ERROR] [QUICKAPP876]: main.lua:315: attempt to index a number value (local 'childDevice') vraiment merci pour vos retours ! PS : vous passez quand même moins de temps à écrire un tuto :
  22. Si, désolé, j'ai répondu rapidement avec mon téléphone désolé. Je vais les nommer Nappe_1 Nappe_2 et Nappe_3 c'est presque mieux/pire (Je fais un QA sur le niveau des nappes phréatiques dans mon secteur avec trois points piézométrique) rien de bien passionnant mais l'exercice est bon.
  23. En remplacement la valeur, par un nom plus clair tel que "child n°1" Mais comment je me balade en lua ?
×
×
  • Créer...