-
Compteur de contenus
25 874 -
Inscription
-
Dernière visite
-
Jours gagnés
1 256
Tout ce qui a été posté par Lazer
-
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)
-
Quick App - DomoCharts - Graphiques sur NAS pour HC3
Lazer a répondu à un(e) sujet de Lazer dans Quick App Developpeur
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)- 408 réponses
-
- 1
-
- domocharts
- hc3
-
(et 1 en plus)
Étiqueté avec :
-
Quick App - Gestionnaire d'Événements Automatique - GEA pour HC3
Lazer a répondu à un(e) sujet de Lazer dans Quick App Developpeur
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. -
Quick App - DomoCharts - Graphiques sur NAS pour HC3
Lazer a répondu à un(e) sujet de Lazer dans Quick App Developpeur
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)- 408 réponses
-
- domocharts
- hc3
-
(et 1 en plus)
Étiqueté avec :
-
Quick App - GCE Electronics IPX800 v4 et EcoDevice RT2
Lazer a répondu à un(e) sujet de Lazer dans Quick App Developpeur
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}}, -
Du coup avec le variant polonais je préfère mettre mon masque, c'est plus prudent
-
Quick App - Gestionnaire d'Événements Automatique - GEA pour HC3
Lazer a répondu à un(e) sujet de Lazer dans Quick App Developpeur
"fonctionne presque", en informatique (en science tout court), on appelle ça "ne fonctionne pas" Je n'ai pas compris ta question sur l'adresse. -
Quick App - GCE Electronics IPX800 v4 et EcoDevice RT2
Lazer a répondu à un(e) sujet de Lazer dans Quick App Developpeur
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 ! -
Des variants ? Bah oui tient, c'est à la mode, pas de raison que Fibaro ne suive pas le mouvement
-
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
-
Modeste installation de débutant
Lazer a répondu à un(e) sujet de ToTo Buzet dans Mon installation domotique
@Moicphil possibilité d'ajouter HC3 et HC3L dans la liste des box du profil ? -
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
-
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)
-
Quick App - GCE Electronics IPX800 v4 et EcoDevice RT2
Lazer a répondu à un(e) sujet de Lazer dans Quick App Developpeur
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.... -
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
-
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.
-
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()
-
Modeste installation de débutant
Lazer a répondu à un(e) sujet de ToTo Buzet dans Mon installation domotique
Bon début, première Home Center 3 Lite sur le forum il me semble bien -
Mais elle est appelée comment cette fonction ?
-
Enlève aussi l'option timeout
-
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"
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Bienvenue sur le forum
-
Il me semble que c'est avec "Ask" (mais je ne l'ai jamais utilisé)
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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.
-
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