Aller au contenu

Lazer

Administrateur
  • Compteur de contenus

    25 874
  • Inscription

  • Dernière visite

  • Jours gagnés

    1 256

Tout ce qui a été posté par Lazer

  1. Lazer

    fibaro.setTimeout

    Déjà il faut bien que tu comprennes la notion d'asynchronisme, et donc l'ordre d'exécution des instructions lors d'une requête http:request() Relis mon mini-tuto ici si ce n'est pas clair : Donc dès que tu commences à avoir de l'asynchronisme dans ton code, il faut se méfier des appels de fonctions synchrones. Car tout ce qui est exécuté pendant l'appel de cette fonction synchrone (et les éventuels sous-fonctions appelées, etc) vont bloquer la suite du code, et surtout les autres parties de code en asynchrone qui sont en attente d'être exécutées. A l'inverse, appeler une fonction avec setTimeout, même avec un retard de 0 secondes, va placer cet appel dans la fil d'attente des appels asynchrones, et donc l'exécuter soit tout de suite s'il elle est seule, soit après les autres fonctions en attente. Ainsi on rétablie l'ordre "normal" des choses. Je met entre guillemets, car l'ordre normal, c'est celui que le programmeur a décidé (sans faire d'erreurs de logique, rappelons nous que les bugs informatiques sont d'origine humaine). Parfois on veut maitriser quel code doit s'exécuter avant tel autre, parfois on préfère laisser le système gérer. Une requête http est un bon exemple, car elle dépend d'une machine tiers sur le réseau, on (= le programmeur) ne maitrise pas sa durée (car elle dépend du réseau, du serveur en face, etc), donc dans ce cas on préfère laisser le système nous rendre la main tout de suite pour faire autre chose, puis la fonction success() ou error() est appelée en callback plus tard, lorsque la réponse arrive, ou non. En fait, ce mode de fonctionnement asynchrone du LUA, c'est un pseudo mode de fonctionnement multi-threadé comme on l'aurait dans un vrai programme écrit en C par exemple. Mais en plus simple (car le vrai multi-thread c'est vraiment complexe à gérer)
  2. Les "librairies", ce sont des fichiers dans le QuickApp (que tu peux ouvrir pour la curiosité) Je m'en sert pour structure mon code, et surtout réutiliser facilement les parties entières (que j'appelle librairies) entre mes différents QuickApps. En fait, ces pseudo librairies ne sont jamais que des tables au sens LUA du terme, avec tout plein de fonctions à l'intérieur. - tools : tout plein de fonctions utiles - domocharts : exactement 3 fonctions, qui peuvent être reprises dans un autre QuickApp qui voudrait communiquer en direct avec la DB hébergée sur le NAS, soit pour y insérer des données, soit pour aller faire des requêtes. Exemple que j'ai en tête pour un projet futur : un gestionnaire de chauffage qui va lire la courbe de température passée pour apprendre, et déterminer la nouvelle heure de chauffe (autrement appelé anticipation de chauffe en fonction de la météo) Dans d'autres de mes QA, tu trouveras par exemple la librairie SNMP qui servira aussi pour des projets futurs Pour ta seconde question je te suggère de créer un nouveau topic parce que je pense qu'il y a matière à discuter (et si tu peux partager un extrait d'un petit bout de code pour donner un cas concret)
  3. OK mais euh... tu parles bien d'une URL dans GEA ? Ou bien de ton navigateur en général ? GEA se contente d'utiliser le réseau fourni par la HC3, donc si il n'arrive pas à résoudre les noms de domaines, c'est que ta config DNS est défectueuse, un petit tour dans le panneau de configuration réseau de la box s'impose.
  4. 1/ ce message signifie qu'il a tenté d'insérer des données dans la DB qui étaient déjà présentes (= avec la même date/heure). Probablement dû à tes manips avec mysqldump Bref rien de grave, c'est une sécurité pour éviter d'insérer les données en double (d'ailleurs c'est tout nouveau, et c'est justement un correctif que j'ai ajouté depuis Domocharts pour HC2, sur laquelle j'avais de temps en temps la scène qui tournait en double instances, et insérait les données en double... pas bon) 2/ rien d'alarmant, mais ce message est surprenant... ça montre une différence de fonctionnement des box, ou plus probablement dû au fait que tu aies très peu de mesures (seulement 12) En fait, ce message d'avertissement est .... un avertissement Pour signaler que peut être, il se passe quelque chose, mais dans ton cas rien de grave. Mon script vérifie que la mémoire consommée par le QuickAPp n'a pas augmenté durant les X dernières minutes. Je n'ai rien inventé, c'est inspiré de ce que @Steven avait mis dans GEA probablement suite à l'époque des fuites mémoires sur les v4 betastable de la HC2. Dans mes réglages, ce message n'apparait jamais, mais c'est parce que j'ai plus de modules, donc je manipule des données plus grosses, du coup l'optimiseur LUA (garbage collector) se déclenche plus souvent et fait le ménage plus souvent. Donc au final, ma mémoire n'augmente jamais. Chez toi, très peu de mémoire utilisé, le Garbage collector se déclenche moins souvent, laissant la RAM augmenter avant de faire le ménage.... mais rien de méchant, tu utilises très peu de RAM. Je suis sûr que quand tu auras plus de modules, ce message disparaitra. On parle là de 1 Mo sur une box qui a 2 Go (2048 Mo, ça laisse de la marge) Tu pourras commencer à t'inquiéter quand tu verras 10 Mo par exemple (ce qui arrivera si tu coupes ton NAS et que le QuickApp se met à mémoriser les données.... selon ce que tu as autorité : 10000 échantillons, ou bien plus)
  5. OK je comprends mieux Et c'est vrai que les compteurs coupent sur la conso en Ampère, pas en Watts. Voici une ligne de config qui devrait fonctionner pour remonter la valeur de la pince en Ampères dans un module dédié de type Multilevel Sensor avec l'unité en "A" : {device = {name = "Conso Maison" , type = "MultilevelSensor", unit = "A"}, value = {command = "Get", argument = "VA", pin = "VA16", formula = function(x) return tools:round(x*0.00646, 0) end}},
  6. Lazer

    [Résolu] mise a jour de l'œil

    Du coup avec le variant polonais je préfère mettre mon masque, c'est plus prudent
  7. "fonctionne presque", en informatique (en science tout court), on appelle ça "ne fonctionne pas" Je n'ai pas compris ta question sur l'adresse.
  8. Tu veux le courant en Ampères et non pas la puissance en Watts ? Je ne comprend pas trop l'intérêt, c'est assez peu exploitable comme information (sauf si tu as un scénario bien précis en tête) Le souci c'est que le courant ne pourra pas être mis dans le champ power du module enfant, donc il va falloir que tu créer un module enfant dédié rien que pour cette mesure. Je peux te donner la ligne, mais tu es certain que c'est ce que tu veux faire ? Par ailleurs, le formule de ton eedomus, c'est pour la pince CT-50A, et non pas la CT-20A, attention !
  9. Lazer

    [Résolu] mise a jour de l'œil

    Des variants ? Bah oui tient, c'est à la mode, pas de raison que Fibaro ne suive pas le mouvement
  10. Lazer

    [Résolu] mise a jour de l'œil

    Ah Bah moi j'ai bien un FGMS inclus sur la HC3, mais il ne me propose pas de mise à jour C'est un FGMS-001 v2 en Z-Wave+, version 3.2
  11. @Moicphil possibilité d'ajouter HC3 et HC3L dans la liste des box du profil ?
  12. Lazer

    Conso RAM HC3

    donc 28% utilisé, rien de bien méchant Pour info je suis à 37% sur la mienne Il faudrait vraiment que Fibaro apprenne à compter la RAM sur une machine Linux.... un jour peut être.... gardons espoir
  13. Lazer

    Conso RAM HC3

    Comment tu sais que tu es à 59% sur la HC3 ? Ce que tu montres c'est la HC2 (qui n'est qu'à 17% et non pas 29, c'est vrai que c'est assez faible)
  14. Je ne suis pas sûr de comprendre ce que tu veux faire Par ailleurs pour copier/coller tes lignes, il vaut mieux utiliser du texte (avec les balises d'insertion de code) que des images, car là c'est difficilement exploitable sur un petit écran....
  15. Lazer

    question HTTP request

    Euh sérieux c'était juste ça, tu n'avais réellement pas mis le http devant ton IP ? de façon générale, il faut que tu penses à inclure les request() dans un pcall pour capturer et traiter l'erreur
  16. Lazer

    Wall Plug déconnecté

    Ce n'est pas un problème connu avec ce module en particulier, mais de façon générale, un réseau Z-Wave avec un seul module ça ne peut pas bien fonctionner (réseau maillé...) La distance n'est pas vraiment représentative tant les ondes radios sont capricieuses (interférence, obstacle, etc), on a souvent des surprises. ça ira mieux quand tu auras complété ton nouveau réseau Sinon via GEA tu as la possibilité de détecter les nœuds morts avec "Dead" puis les réveiller avec "WakeUp", en attendant ça fera l'affaire.
  17. Lazer

    question HTTP request

    OK mais justement ma question c'est comment tu l'appelles ? La ligne de LUA je veux dire Parce que self:getIPXValue() ce n'est pas pareil que QuickApp:getIPXValue()
  18. Bon début, première Home Center 3 Lite sur le forum il me semble bien
  19. Lazer

    question HTTP request

    Mais elle est appelée comment cette fonction ?
  20. Lazer

    question HTTP request

    Enlève aussi l'option timeout
  21. Lazer

    Support Gea

    Il faut mettre le nom de ta fonction entre guillemets, il faut que ça soit une string. En l'état, le moteur LUA pense que c'est un nom de variable, qui n'existe pas, donc qui prend la valeur nil. Du coup ta fonction n'est jamais appelée Quant à ton argument, inutile de le mettre entre crochets, tu peux directement l'envoyer comme une valeur (numérique je suppose ?) Un truc dans le genre : GEA.add({{"Time", "07:26", "07:27"}}, 30, "", { {"QuickApp", id["COLOR_WP"], "setIdWallPlug", id["WP01_COLORS"]}, {"QuickApp", id["COLOR_WP"], "onOn"} } ) Extrait de la doc de syntaxe que je suis en train de mettre à jour pour la prochaine version : -- "QuickApp" - "QA" : Appelle une fonction d'un QuickApp -- SYNTAXE : {"QuickApp", <id_module>, <méthode>} {"QuickApp", <id_module>, <méthode>, <paramètre_1>} {"QuickApp", <id_module>, <méthode>, <paramètre_1>, <paramètre_2>} {"QuickApp", <id_module>, <méthode>, <paramètre_1>, <paramètre_2>, ...} -- CONDITIONS : Ne peut pas être utilisé comme CONDITION -- ACTIONS : GEA.add( {CONDITIONS}, 30, "", {"QuickApp", 73, "sendData", "Hello world"} ) -- Appelle la méthode sendData() du QuickApp numéro 73 avec l'argument "Hello world" GEA.add( {CONDITIONS}, 30, "", {"QuickApp", {73, 74}, "sendData", "Hello world"} ) -- Appelle la méthode sendData() des QuickApps numéros 73 ET 74 avec l'argument "Hello world"
  22. Bienvenue sur le forum
  23. Lazer

    Support Gea

    Il me semble que c'est avec "Ask" (mais je ne l'ai jamais utilisé)
  24. Lazer

    icones

    Concernant le type d'un QuickApp, en effet, je ne pense pas qu'on puisse le changer après coup, il faut le supprimer et le recréer. Pour chaque type, il y a tout un tas de propriétés et actions associées, donc c'est plus sûr ainsi.
  25. Lazer

    [Résolu] mise a jour de l'œil

    Euh, si tu as lancé 3 mises à jour de firmware de modules Z-Wave en parallèle, ça va pas bien se passer (saturation du réseau, échec) En plus ce sont des modules sur batterie, donc ils se sont rendormis. Essaye d'en réveiller un (et surtout approche le de la box, à moins d'un mètre) Et regarde le tuto : c'était pour HC2 mais les conseils sont toujours valable sur HC3
×
×
  • Créer...