Aller au contenu

jjacques68

Membres confirmés
  • Compteur de contenus

    4 364
  • Inscription

  • Dernière visite

  • Jours gagnés

    39

Tout ce qui a été posté par jjacques68

  1. jjacques68

    virtual device

    Il faut tout recréer dans des QA (les label, boutons, ...) Après tu peux "copier/coller" du code de la HC2 vers la HC3, mais il y a quand même beaucoup de chose qui ont changé !!! Il faudra adapter ligne par ligne... Il y a de nouvelle notions telles que les variables propres aux QA (qui évite de passer par des VG par exemple) il y a une section sur le fofo https://www.domotique-fibaro.fr/forum/120-quick-app-developpeur/ où beaucoup de QA ont été réalisé, tu peux largement t'en inspirer. Et oui ce sera du boulo...
  2. jjacques68

    virtual device

    Non il n'y a pas de VD sur la HC3. L'equivalent est le Quick App (QA). voir ici : https://manuals.fibaro.com/home-center-3-quick-apps/ et la section Quick App de ce forum... bonne chance
  3. prends alors les HV-MM, comme ça pas de raccord à faire
  4. Je ne sais pas ce que tu appelles "long"... mais peut-être qu'un caractère particulier est interpreté comme marqueur de fin ! Peut être qu'il faudrait mieux utiliser la fonction sock:readUntil() voir ici : https://manuals.fibaro.com/home-center-3-quick-apps/ Tu pourras ainsi définir un marqueur de fin de trames spécifique... C'est ce que j'utilise et aucun soucis, après mes trames ne sont pas "longues"...
  5. Alors peut on accéder de la même manière à d'autre info qui ne sont pas dans "properties" ? comme par exemple le roomID d'un device ? J'ai essayé ça mais ça ne marche pas : local RoomID = api.get("/devices/203/roomID")
  6. @Krikroff : mais oui biensûr !! je n'y avais pas penser pour le get !! Directement cibler la propriété que l'on souhaite dans la commande ! J'essaye ça ce soir ! oulala, va y avoir de l'optimisation de code dans l'air ce weekend...
  7. jjacques68

    Comment planté ca HC3

    si tu copies les commentaires dans notepad++ et tu affiches les caractères spéciaux, tu vois qqch à la fin de ces lignes ?
  8. les HV100 sont de très bon produits, idem pour la Miniclick. J'ai ça depuis plusieurs années, j'ai absolument aucun soucis... Je recommande.
  9. oui les traces je les ai commenté... juste gardé l'essentiel...
  10. jjacques68

    Petits bug de la HC3

    pfffiou les gars, j'ai du mal à suivre, mais je suis d'accord ! sur quoi ? avec qui ? je sais pas... Mais je suis tout cœur avec vous. ( @mprinfo fais gaffe avec tes cœurs )
  11. @mprinfo
  12. oui j'avais observé ça, les 4 cœurs montent en flèches
  13. pas moyen de savoir quel cœur est utilisé ? je me suis posé ces questions de performances, suite à mes problèmes liés au manque de multi instances des scènes. Un gars sur le fofo officiel m'a proposé d'utilité l'API RefreshStates. Qui recense tous les événements. Je l'interroge toutes les 200 ms. selon des filtres que j'ai mis en place, je lance des fonctions dans des QA. Du coup, avec ce procédé, je ne passe plus par des scènes triggées. Et j'ai donc résolu le problème d'événements "loupé" ou plutôt d'actions non effectuées. Mais ! je constate une légère latence dans les actions...
  14. ben suis entrain de me demander si c'est parce qu'elle est chargée ou parce que je code comme un pied
  15. @Lazer : j'ai repris le code de @Steven comme tu proposais : os.clock() n'existe pas, il me retourne une erreur, je l'ai donc enlevé dommage... -- Parameters -- local NameScene = "Test" local id_exist = 600 local global_exist = "DelayVmc" local nbIteration = 1000 -- Do not touch please --- local id_not_exist = 100056 local global_not_exist = "AABBCCDDEEFFGGHHIIFFF" function log(name, start) if (start) then fibaro.trace(NameScene,string.format("%s instruction time : %ds", name, os.time()-start)) else fibaro.trace(NameScene,string.format("%s", name)) end end function execute(name, func) if not pcall(function() local start = os.time() for i= 1, nbIteration do func() end log(name, start) end) then fibaro.warning(NameScene, "ERROR : " .. name) end end log("Nb runs : " .. nbIteration .. " | id : " .. id_exist .. " | G.Variable : " .. global_exist) log("----------------------------------------------") log("") -- Tests --- execute("getValue Exist_________________:", function() fibaro.getValue(id_exist, "value") end) execute("getValue Not Exist_____________:", function() fibaro.getValue(id_not_exist, "value") end) execute("turnOn_________________________:", function() fibaro.call(id_exist, "turnOn") end) execute("getGlobalVariable Exist________:", function() fibaro.getGlobalVariable(global_exist) end) execute("getGlobalVariable Not Exist____:", function() fibaro.getGlobalVariable(global_not_exist) end) execute("setGlobalVariable______________:", function() fibaro.setGlobalVariable(global_exist, fibaro.getGlobalVariable(global_exist)) end) execute("getType________________________:", function() fibaro.getType(id_exist) end) execute("getName________________________:", function() fibaro.getName(id_exist) end) execute("getRoomID______________________:", function() fibaro.getRoomID(id_exist) end) execute("getRoomName____________________:", function() fibaro.getRoomName(fibaro.getRoomID(id_exist)) end) execute("getSunrise_____________________:", function() fibaro.getValue(1, "sunsetHour") end) log("") log("----------------------------------------------") log("ALL DONE") Résultat : [06.06.2020] [17:31:04] [TRACE] [TEST]: Nb runs : 1000 | id : 600 | G.Variable : DelayVmc [06.06.2020] [17:31:04] [TRACE] [TEST]: ---------------------------------------------- [06.06.2020] [17:31:04] [TRACE] [TEST]: [06.06.2020] [17:31:08] [TRACE] [TEST]: getValue Exist_________________: instruction time : 4s [06.06.2020] [17:31:11] [TRACE] [TEST]: getValue Not Exist_____________: instruction time : 3s [06.06.2020] [17:32:11] [TRACE] [TEST]: turnOn_________________________: instruction time : 60s [06.06.2020] [17:32:11] [TRACE] [TEST]: getGlobalVariable Exist________: instruction time : 0s [06.06.2020] [17:32:11] [TRACE] [TEST]: getGlobalVariable Not Exist____: instruction time : 0s [06.06.2020] [17:32:11] [TRACE] [TEST]: setGlobalVariable______________: instruction time : 0s [06.06.2020] [17:32:25] [TRACE] [TEST]: getType________________________: instruction time : 14s [06.06.2020] [17:32:37] [TRACE] [TEST]: getName________________________: instruction time : 12s [06.06.2020] [17:32:50] [TRACE] [TEST]: getRoomID______________________: instruction time : 13s [06.06.2020] [17:33:07] [TRACE] [TEST]: getRoomName____________________: instruction time : 17s [06.06.2020] [17:33:10] [TRACE] [TEST]: getSunrise_____________________: instruction time : 3s [06.06.2020] [17:33:10] [TRACE] [TEST]: [06.06.2020] [17:33:10] [TRACE] [TEST]: ---------------------------------------------- [06.06.2020] [17:33:10] [TRACE] [TEST]: ALL DONE
  16. rapide conclusion de ce test, si on peut en faire une à ce stade, il faut mieux utiliser les commande Fibaro, du moins pour le GET !! j'aurai jamais pensé ça !
  17. Alors dans une scène : déjà la fonction os.difftime() est pas dispo par grave, j'ai contourné... voilà le résultat : [06.06.2020] [12:03:01] [TRACE] [TEST SCENE]: Start GET with API [06.06.2020] [12:03:21] [TRACE] [TEST SCENE]: Get with API : 20 secondes [06.06.2020] [12:03:21] [TRACE] [TEST SCENE]: Start GET with FIBARO [06.06.2020] [12:03:24] [TRACE] [TEST SCENE]: Get with FIBARO : 3 secondes ---------------------------------------------------------------------------- [06.06.2020] [12:03:24] [TRACE] [TEST SCENE]: Start CALL with API [06.06.2020] [12:04:58] [TRACE] [TEST SCENE]: CALL with API : 94 secondes [06.06.2020] [12:04:58] [TRACE] [TEST SCENE]: Start CALL with FIBARO [06.06.2020] [12:06:15] [TRACE] [TEST SCENE]: CALL with FIBARO : 77 secondes
  18. et pour le CALL : function QuickApp:button3(event) local t1 = os.time() self:trace("Start CALL with API") for i = 1, 1000 do res = api.post("/devices/203/action/turnOn",{}) end self:trace("CALL with API : ", os.difftime(os.time(),t1), "secondes") end function QuickApp:button4(event) local t1 = os.time() self:trace("Start CALL with FIBARO") for i = 1, 1000 do res = fibaro.call(203, "turnOn") end self:trace("CALL with FIBARO : ", os.difftime(os.time(),t1), "secondes") end résultat : [06.06.2020] [11:48:05] [TRACE] [QUICKAPP600]: Start CALL with API [06.06.2020] [11:49:30] [TRACE] [QUICKAPP600]: CALL with API : 85.0 secondes [06.06.2020] [11:49:36] [TRACE] [QUICKAPP600]: Start CALL with FIBARO [06.06.2020] [11:51:04] [TRACE] [QUICKAPP600]: CALL with FIBARO : 88.0 secondes donc ça c’était depuis un QA, je vais essayer depuis une scène...
  19. oh ben merde ! je m'y attendais pas à ça !!!! function QuickApp:button1(event) local t1 = os.time() self:trace("Start GET with API") for i = 1, 1000 do res = api.get("/devices/38").properties.value end self:trace("Get with API : ", os.difftime(os.time(),t1), "secondes") end function QuickApp:button2(event) local t1 = os.time() self:trace("Start GET with FIBARO") for i = 1, 1000 do res = fibaro.getValue(38, "value") end self:trace("Get with FIBARO : ", os.difftime(os.time(),t1), "secondes") end résultat : [06.06.2020] [11:38:57] [TRACE] [QUICKAPP600]: Start GET with API [06.06.2020] [11:39:10] [TRACE] [QUICKAPP600]: Get with API : 13.0 secondes [06.06.2020] [11:39:13] [TRACE] [QUICKAPP600]: Start GET with FIBARO [06.06.2020] [11:39:16] [TRACE] [QUICKAPP600]: Get with FIBARO : 3.0 secondes
  20. pas bête vais le faire, je posterai les résultats...
  21. hello !! Je me pose la question suivante, niveau performances (rapidité d'exécution, réactivité, autres ...) : j'essaye de prendre des précautions dans les termes choisi... faudrait-il mieux utiliser : par exemple : api.post("/devices/xxx/action/turnOn", {}) ou fibaro.call(xxx, "turnOn") autre exemple : api.get("/devices/xxx").properties.value ou fibaro.getValue(xxx, "value") je demande ça car j'ai l'impression qu'il y a une différence au niveau de la "latence" ou "réactivité", certes très légère... Mais quand les script commencent à devenir lourd, ça peut peut-être avoir son importance non ? J'ai envie de dire que passer par l'API semble plus rapide qu'utiliser les fonctions Fibaro ! Je me trompe ? c'est juste une impression ? Y a t il une règle spécifique ? Qu'en pensez vous ?
  22. jjacques68

    Petits bug de la HC3

    y aurait pas un tableau recap des modules bon à changer qqpart ?
  23. jjacques68

    Petits bug de la HC3

    @TonyC : ben je crois bien qu'en effet, le changement de ces paramètres a réglé le problème. j'ose pas m'avancer trop vite, mais cela fais 2 jours que j'ai les volets qui ont enfin le bon status dans la HC3...
  24. jjacques68

    Petits bug de la HC3

    23 chez moi... @TonyC je vais essayer de modifier tes paramètres 40 à 43 à 0
  25. jjacques68

    Petits bug de la HC3

    allé !!! le premier roller que je vérifie...
×
×
  • Créer...