971jmd Posté(e) le 5 octobre 2020 Signaler Posté(e) le 5 octobre 2020 (modifié) Salut a tout Ne sachant pas ou trouvée un topic sur le code LUA sur la HC3 je cherche à attribuer la valeur d'un module dans une variable Le print me revois bien la valeur de mon FGD-212 mais rien dans ma variable local valeur = (fibaro.get(107, "value")) print("message telegram = " .. valeur) fibaro.setGlobalVariable('telegrame', valeur) merci d'avance pour votre aide Modifié le 5 octobre 2020 par 971jmd
Lazer Posté(e) le 5 octobre 2020 Signaler Posté(e) le 5 octobre 2020 La syntaxe semble correcte. Tu es certain que ta variable globale "telegrame" existe bien avec ce nom exact (il fait la différence minuscule/majuscule) ? En copiant/collant ton texte, il y a des caractères invisibles symbolisés par des points : Tu devrais retaper entièrement al ligne comme ceci : fibaro.setGlobalVariable('telegrame', valeur) Je ne sais pas quel éditeur tu utilises, mais il t'a inséré ces caractères spéciaux, c'est certainement la raison de ton problème
971jmd Posté(e) le 5 octobre 2020 Auteur Signaler Posté(e) le 5 octobre 2020 salut j'ai refait ma variable local valeur = fibaro.get(107, "value") print("message telegram = " .. valeur) fibaro.setGlobalVariable('telegram', valeur) et toujours la même erreur [05.10.2020] [13:39:14] [DEBUG] [SCENE74]: message telegram = 44 [05.10.2020] [13:39:14] [ERROR] [SCENE74]: (load):3: Assertion failed: Expected string
Lazer Posté(e) le 5 octobre 2020 Signaler Posté(e) le 5 octobre 2020 Alors comme ceci : fibaro.setGlobalVariable('telegram', tostring(valeur))
971jmd Posté(e) le 5 octobre 2020 Auteur Signaler Posté(e) le 5 octobre 2020 Merci ça fonctionne télégramme fonctionne sur ma HC3 C'est quoi la fonctionne de tostring en 2 mots je cherche désespérément à prendre des cours sur les bases du LUA FIBARO
971jmd Posté(e) le 5 octobre 2020 Auteur Signaler Posté(e) le 5 octobre 2020 et si je souhait ajouter un texte après valeur Pour le moment je recrois un chiffre comme par exemple 27 et je souhaiterais 27 % fibaro.setGlobalVariable('telegram', tostring(valeur))
Lazer Posté(e) le 5 octobre 2020 Signaler Posté(e) le 5 octobre 2020 Google a réponse à ce genre de question simple : Pour ta 2nde question, il faut concaténer les chaines de caractères, plusieurs façon de le faire, en voici une simple et efficace : fibaro.setGlobalVariable('telegram', tostring(valeur).."%")
971jmd Posté(e) le 5 octobre 2020 Auteur Signaler Posté(e) le 5 octobre 2020 Merci pour l'info sinon .."%" ne fonctionne pas, si je ne trompe pas % permet de comblée des espaces un truc comme ça fonctionne fibaro.setGlobalVariable('telegram', tostring(valeur).."pourcentage") Ne fonctionne pas fibaro.setGlobalVariable('telegram', tostring(valeur).."%")
Lazer Posté(e) le 5 octobre 2020 Signaler Posté(e) le 5 octobre 2020 Ah bon ? Essaye en mettant 2 pourcents cote à cote alors : .."%%"
971jmd Posté(e) le 5 octobre 2020 Auteur Signaler Posté(e) le 5 octobre 2020 fibaro.setGlobalVariable('telegram', tostring(valeur) .. "%%") non plus et si je teste avec : fibaro.setGlobalVariable('telegram', tostring(valeur) .. "la HC3 %") non plus
971jmd Posté(e) le 5 octobre 2020 Auteur Signaler Posté(e) le 5 octobre 2020 j'ai testé ça aussi pour essayer de placer un mot devant la valeur et reçois que lampe j'ai tester avec ou sans les () toujour rien fibaro.setGlobalVariable("telegram", ("..lampe.."), tostring(valeur) .. " P100")
Lazer Posté(e) le 5 octobre 2020 Signaler Posté(e) le 5 octobre 2020 Pour le % franchement là je ne sais pas trop. Par contre ta dernière syntaxe est mauvaise, c'est certain, tu ne peux pas avoir 3 arguments (séparés par les virgules) dans ta fonction fibaro.setGlobalVariable() Fait un peu attention, la programmation est un exercice très rigoureux, chaque caractère compte.
971jmd Posté(e) le 5 octobre 2020 Auteur Signaler Posté(e) le 5 octobre 2020 c'est comme ça qu'on apprend ça fonctionne fibaro.setGlobalVariable("telegram", tostring(idlampe .. " est à " .. valeur) .. " P100") Merci j'ai appris une choses: concaténer
Yannick Posté(e) le 11 juillet 2022 Signaler Posté(e) le 11 juillet 2022 Salut à tous, je cherche aussi un topic pour les différence LUA entre la HC2 et la HC3 si quelqu'un peu me guider ??? ce serait top ? Sinon ma question est la suivante : Avant j'avais scène LUA d'allumage automatique de lumière et il y avait un test de l'heure pour tuer la scène si on était dans la fourchette en gros j'avais cette commande local now = tonumber(os.date("%H") if (now > heurefin and now < heuredebut) then fibaro:abort() mais je crois me rappeler que le fibaro:abort() n'existe plus. Merci
Lazer Posté(e) le 11 juillet 2022 Signaler Posté(e) le 11 juillet 2022 Tu peux utiliser return, tout simplement.
jojo Posté(e) le 11 juillet 2022 Signaler Posté(e) le 11 juillet 2022 ou encore plus simple : gérer l'allumage et l'extinction de tes lumière avec GEA ... 1
Yannick Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 Ouais mais non, parce que j'avais déjà demandé à @Lazer il y a un certain temps et il 'avait répondu que GEA n'était pas fait pour ce genre de chose. Cette scène déclenche la lumière avec un FGMS lors de la détection d'un mouvement, teste pendant 3 min s'il y ça bouge toujours et si c'est le cas remets le compteur à 0 et éteint tout lorsque plus rien ne se passe. Mais j'aimerais qu'elle ne se déclenche que le soir (en été) et matin et soir en hiver. Il y a 14 heures, Lazer a dit : Tu peux utiliser return, tout simplement. Avec les mêmes conditions ? la récupération de l'heure se fait de la même façon ? Un topic pour la Syntaxe GEA de la HC3 ? Merci
Lazer Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 Mais pour cet usage précis de gestion des lumières, ça se fait très bien via GEA, toutes mes lumières sur détection de mouvement sont gérées de la sorte. Je ne me souviens pas dans quel contexte je t'avais déconseillé l'usage de GEA, mais c'était peut être parce que tu voulais une gestion très fine des heures et temporisations, genre à la seconde près, pour laquelle GEA n'est effectivement pas adapté. Mais pour de l'allumage instantané de lumière sur détection de mouvement, puis extinction automatique à 30 secondes près, GEA fait parfaitement le boulot, en 2 ou 3 règles. Voir les showrooms. En LUA, return ça permet de sortir d'une fonction. Si tu appelles cette instruction alors que ton code en cours d'exécution n'est pas une fonction (c'est à dire dans le corps principale de la scène), alors ça va simplement "sortir" de la scène, c'est à dire arrêter son exécution. La syntaxe GEA, voir la doc (fichier LUA à télécharger sur le topic de GEA pour HC3)
jojo Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 (modifié) chez moi, je fais tout ça avec GEA. 1) tu crées un QA de type binary SWITCH (Auth_lum) 2) avec GEA, tu le mets à On ou Off en fonction de tes conditions? 3) pour allumer la lampe GEA.add avec condition sur mvt ET Auth_lum avec -1 4) pour éteindre la lampe, je me rappelle avoir vu un bel exemple dans la doc GEA. on se revoit donc bientôt sur le topic support GEA (qui maintenant est dans est dans tes favoris) ? Modifié le 14 juillet 2022 par jojo 2
Yannick Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 Mouais alors il va me falloir un coup de main pour créer ce QA parce que là.... j'en suis pas encore arrivé là !! Evidemment qu'il est dans mes favoris... besoin de vous moi ! mais pour cette scène à traduire en GEA, j'avoue que j'ai du mal à visualiser le code GEA et encore moins le fonctionnement du QA. Je vais tester mais j'ai peur de m'y perdre.... y a un topic pour la création de QA ? si je peux partager la scène que vous ne donniez un coup de paluche ce serait cool. Je bascule sur le support GEA
Yannick Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 (modifié) Il y a 4 heures, Lazer a dit : Mais pour cet usage précis de gestion des lumières, ça se fait très bien via GEA, toutes mes lumières sur détection de mouvement sont gérées de la sorte. Je ne me souviens pas dans quel contexte je t'avais déconseillé l'usage de GEA, mais c'était peut être parce que tu voulais une gestion très fine des heures et temporisations, genre à la seconde près, pour laquelle GEA n'est effectivement pas adapté. Mais pour de l'allumage instantané de lumière sur détection de mouvement, puis extinction automatique à 30 secondes près, GEA fait parfaitement le boulot, en 2 ou 3 règles. Voir les showrooms. En LUA, return ça permet de sortir d'une fonction. Si tu appelles cette instruction alors que ton code en cours d'exécution n'est pas une fonction (c'est à dire dans le corps principale de la scène), alors ça va simplement "sortir" de la scène, c'est à dire arrêter son exécution. La syntaxe GEA, voir la doc (fichier LUA à télécharger sur le topic de GEA pour HC3) tu m'avais répondu cela à l'époque @Lazer Le 26/10/2021 à 18:52, Lazer a dit : J'ai déplacé ton message au bon endroit, je suis sympa car je ne l'ai pas supprimé sans préavis comme expliqué sur l'autre topic Mais euh, désolé là je n'ai aucune motivation pour me lancer dans la lecture de ta longue scène.... GEA est un moteur d'exécution de règles. 1 ligne = 1 règle. Chaque règle comprend 1 ou plusieurs conditions, et 1 ou plusieurs actions. L'ensemble des règles sont parcourues, testée, et exécutées le cas échant, toutes les 30 secondes. Ce n'est pas du tout la même approche qu'une grosse scène complexe qui fait papa maman à boire et à manger. Cela dit GEA fait aussi papa maman à boire et à manger mais avec une approche totalement différente. Le mieux à faire est de te lancer avec des règles simples, que tu étofferas au fur et à mesure, et tu trouveras facilement de l'aide pour te dépanner au cas par cas. Après tout n'est pas faisable avec GEA (ou alors ça serait trop complexe et pas adapté à mon avis). Exemple concret, j'ai une scène réveil douceur qui effectue plusieurs actions pendant plusieurs minutes. Ben là déjà rien qu'en disant ça, on comprend que GEA n'est pas adapté, il vaut mieux se faire une petite scène à coté (que GEA peut déclencher) Idem, j'ai une scène alarme, qui est autonome. Bon cela dit, sauf si quelqu'un est motivé pour lire ta scène en entier... bon courage Modifié le 12 juillet 2022 par Yannick
Yannick Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 il y a 35 minutes, Yannick a dit : La syntaxe GEA, voir la doc (fichier LUA à télécharger sur le topic de GEA pour HC3) pas la syntaxe GEA @Lazer mais la syntaxe LUA pour HC3 !!!
Lazer Posté(e) le 12 juillet 2022 Signaler Posté(e) le 12 juillet 2022 Hum maintenant je me souviens, une scène que je n'avais pas du tout l'envie ni le temps de relire... Tu n'as pas la bonne approche je pense. On ne convertie pas une scène en GEA. On fait des choses différemment avec GEA, pour au final arriver au même résultat (plus ou moins, pas forcément exactement le même résultat... quand ça ne convient pas, alors on écrit sa propre scène) Je vais m’auto-paraphraser : Le mieux à faire est de te lancer avec des règles simples, que tu étofferas au fur et à mesure... Les exemples simples tu les trouveras dans la doc de syntaxe de GEA. Les exemples un peu plus étoffés, tu les trouveras dans le showroom. Je n'ai pas compris pourquoi @jojo t'as suggéré de créer un QA... ça me semble bien compliqué, et inutile pour gérer des lumières avec détection de mouvement.... comme dit, 2 ou 3 règles GEA et c'est terminé. C'est un classique... voir le showroom GEA pour divers exemples réels d'utilisateurs (il y a souvent plusieurs façon de le faire... plus ou moins simples) La syntaxe du LUA sur HC3.... ben... il n'y en a pas. C'est du LUA quoi, un langage parfaitement documenté sur plusieurs sites (c'est la version 5.3 pour info) Perso je pose mes question à Google, on retombe toujours sur les 2 ou 3 mêmes sites. Sinon pour les fonctions spécifiques à la HC3, voir la doc de Fibaro : https://manuals.fibaro.com/home-center-3-quick-apps/ https://manuals.fibaro.com/home-center-3-lua-scenes/ Et le Swagger pour toute la documentation de l'API, intégré dans la HC3 et accessible par le petit bouton en bas à gauche de l'interface Web : 2
jojo Posté(e) le 14 juillet 2022 Signaler Posté(e) le 14 juillet 2022 Le 12/07/2022 à 17:14, jojo a dit : binary sensor errore, c'est un binary SWITCH
jojo Posté(e) le 14 juillet 2022 Signaler Posté(e) le 14 juillet 2022 Le 12/07/2022 à 19:06, Lazer a dit : Je n'ai pas compris pourquoi @jojo t'as suggéré de créer un QA... ça me semble bien compliqué, et inutile pour gérer des lumières avec détection de mouvement.... comme dit, 2 ou 3 règles GEA et c'est terminé. je crée des QA de type binary switch, dès que j'ai besoins d'une variable booléenne. je proposais de gérer l'allumage des lumières avec -1 sur le mouvement (la base quoi) et si on était autorisé à l'allumer (QA binary switch) et là les conditions peuvent être multiples (heure, luminosité, âge du capitaine, météo, saison, ...) => on peut facilement rajouter d'autres règles GEA pour ce QA (qui, @Yannick (au passage, ne changerais-tu pas ton avatar avec un fantôme souriant - cela m'interpelle à chaque message ) est comme une simple lampe virtuelle pilotage avec GEA avec les options "TurnOn" & "TurnOff".) Pour la création des QA, c'est archi simple, tu l'as déjà fait : GEA. Au lieu de faire depuis un fichier, tu chois (suspens ) "Quick App". et tu choisis, pour ici, binary switch. (plus simple, tu meurs, mais reste avec nous ) ...
Messages recommandés