-
Compteur de contenus
453 -
Inscription
-
Dernière visite
-
Jours gagnés
26
Tout ce qui a été posté par fel-x
-
Je vais donner une précision sur la finalité car ce n'est pas très clair à la relecture J'écris une QA (dont vous pourrez peut-être profiter sous peu) qui permet de sélectionner des icônes de sa box, et de les attribuer à n'importe quel device (parent, enfant, caché, etc.), avec interface visuelle pratique. C'est purement pour enjoliver le UI ! Afin d'éviter une situation où un utilisateur attribuerait une icône monostate à un device 'multistate' (on devrait plutôt dire "multi-icône"), je voudrais les détecter et empêcher l'exécution. En effet, le UI va chercher les états différents d'une icône dans le cas des modules/QA qui peuvent changer d'état, comme les switches ON/OFF ou des volets par exemple. --> Ce que je cherche c'est une façon (simple?) d'identifier si pour un module donné, la box va chercher des icônes selon l'état ou une icône fixe. Le properties.deviceIcon n'est pas suffisant, ni le contenu du properties.icon (qui parfois est vide, ou fait référence dans properties.icon.path à un fichier SVG plutôt qu'à une icône PNG avec suffixes d'état '#ID0.png' '#ID100.png'). Quant à properties.icon.source il peut valoir 'HC' ou 'HC_USER' sans que cela n'ait d'impact réel sur le fonctionnement. j'espère que ça a du sens ce que je dis
-
Salut dans mon code, je voudrais pouvoir vérifier si un device est multistate ou pas. En fournissant l'ID d'un module ou d'une QA, je voudrais une vérification immédiate du status multistate ou non. J'ai été lire les Json de plusieurs devices via /api/devices/#ID mais je n'ai pas trouvé une propriété caractéristique... Bien entendu on peut le déduire assez facilement selon le type, ou le basetype, ou le supportedDeviceRoles, etc... Mais je cherche un fonction Lua qui pourra me le dire tout de suite ? Suis-je passé à côté d'une évidence? merci
-
Je retombe sur ceci durant mes recherches... Est-ce équivalent à ça si on l'utilise au sein de la QA elle-même (donc si id_module = self) self:updateProperty("deviceIcon", id_icon_numerique) Ou bien il y a une différence ?
-
Pour info c'est une QA "Edenred" qui calcule le nombre de jours ouvrables du mois prochain (via une API publique), et l'antépénultième jour ouvrable du mois en cours. Ce jour-là, une alerte est envoyée en Push pour rappeler de commander un certain nombre de chèques Ederend (= n jours ouvrables du mois suivant) pour le mois suivant. Je ne pense pas que ça intéressera beaucoup de monde.. ou alors quelques rares utilisateurs en Belgique ? J'ignore si la France ou d'autres pays emploient aussi ce système de "chèques-repas" ou un équivalent.
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Tu as parfaitement raison @jojo je pourrais faire tous les calculs dans ma QA et simplement dire à GEA de vérifier une seule variable "aujourd'hui c'est le jour J" ! Mais tu sais comment ça marche... j'ai écrit une QA qui fonctionne.. j'ai plus envie de la modifier ... je cherche à l'exploiter depuis GEA sans la changer... je m'embourbe dans mes idées de contournement pour pas changer ma QA... Au final ça fonctionne et en bonus j'ai appris des trucs ! Si j'étais un programmeur/codeur professionnel je pense que je serais déjà viré pour avoir fait si compliqué alors qu'une solution simple existait Heureusement c'est juste un hobby Mais maintenant que ça fonctionne de façon complexe, je vais trouver un moment pour simplifier ma logique. merci pour cette autre perspective du KISS
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Ha ben zut alors, j'ai loupé ça ! Alors que la syntaxe est ouverte dans ZeroBrane en permanence sur mon ordi et que je plonge dedans sans arrêt Par contre soit tu as raccourci/customisé ta syntaxe, soit tu es dyslexique car chez moi c'est la ligne 1930
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Par curiosité, @Lazer sais-tu m'indiquer le comportement attendu de #value ? Il peut être employé directement dans la règle GEA dès qu'il est "généré" ? Comme par exemple dans une seconde condition ? Je sais qu'on peut l'employer plusieurs fois dans la même règle, mais qu'en est-il s'il y a 2 values générées comme dans ma citation ci-dessus ? Est-ce possible ou il est envisageable d'employer #value1 et #value2 par exemple ? Ou c'est seulement la dernière qui sera reprise par #value ? J'ai fait quelques tests mais avec 2 #value générées dans les conditions, il n'y a ni crash ni exécution de la règle.
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
c'est plus long à programmer, mais ça fonctionne ! Merci @Lazer
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Et maintenant, je voudrais construire une date de toutes pièces, et plutôt que de faire des essais-erreurs, je viens demander si cela est possible ? Je m'explique : il faudrait que la condition d'une règle GEA soit "Dates" La syntaxe de base est claire : GEA.add( {"Dates", "01/01"} , 30, "", {ACTIONS} ) Mais je voudrais que la date soit construite au départ de 2 variables locales (AlertDay, CurrentMonth) appartenant à une QA (941). Par exemple AlertDay = 27 et CurrentMonth = 3 et donc je souhaite la règle suivante : GEA.add( {"Dates", "27/03"} , 30, "", {ACTIONS} ) Est-ce que je peux la générer dynamiquement comme ceci : GEA.add( {{"VariableQuickApp+", 941, "AlertDay", 0}, {"VariableQuickApp+", 941, "CurrentMonth", 0}, {"Dates", "#value#/#value#"}} , 30, "", {ACTIONS} ) Déjà je ne suis pas certain que GEA va récupérer une #value# d'une condition à la suivante, mais en plus je ne sais pas s'il va gérer 2 #value# consécutifs dans la même condition et les distinguer d'office par leur ordre ? Les variables AlertDay et CurrentMonth changent en début de mois dans la QA, et déterminent le jour où une certaine action devra être lancée. AlertDay vaut toujours entre 1 et 31, et CurrentMonth est évidemment toujours le mois en cours (de 1 à 12). Sans doute on pourrait simplifier puisque CurrentMonth est logique à déduire et j'aurais volontiers employé {"Monthly", <num_jour>} comme ceci : GEA.add( {{"VariableQuickApp+", 941, "AlertDay", 0}, {"Monthly", #value#}}, 30, "", {ACTIONS} ) mais "Monthly" ne fonctionne pas comme prévu. Je suis preneur de tout bon conseil
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
merci @Lazer tout devient plus simple avec ton aide Ca fonctionne très bien avec "Global+" c'est le plus simple pour récupérer la valeur de la variable plutôt que de faire appel à une fonction. Et je sais que tu n'aimes/emploies pas trop les Push mais dans mon environnement et pour mon usage c'est super pratique. Et pour le coup je découvre l'action "Test" en bonus.
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Salut, Encore besoin d'un coup de main avec GEA Je voudrais que le debug ou le push affiche une phrase contenant la valeur d'une variable globale. J'essaye d'exploiter "Function" mais sans succès. Peut-être que je ne cherche pas du bon côté ? Par exemple pour avoir un push : "Il y a eu xx passages aujourd'hui" où xx est la valeur (nombre) de la variable globale "PassToday" j'ai essayé plusieurs combinaisons comme: GEA.add ( {CONDITIONS}, 30, "", {"Push", 840, {"Function", function() local pass = fibaro.getGlobalVariable("PassToday") or "?" return "Il y a eu " .. pass .. " passages aujourd'hui" end} } ) Je suis sur la bone piste? C'est possible de lire la variable en temps réel pour l'inclure dans le push ? merci
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
J'ai buté longtemps sur ce problème où dans une liste générée dynamiquement, il faut sélectionner deux fois de suite une option pour que l'updateView du "selectedItem" fonctionne. J'ai fini par trouver une solution, par essais-erreurs et ça fonctionne dans tous les cas chez moi. J'ai converti la valeur en chaine de caractères avec tostring() voici pour le code ci-dessus ma solution: self:updateView("SelectSwing", "selectedItem", tostring(event.values[1])) De là à expliquer pourquoi la "double sélection consécutive" de la même option revient au même... je ne trouve pas ??? Mais bon c'est une solution facile Ca fonctionne chez vous aussi ? En tout cas moi je peux continuer à bosser sur ma prochain QA...
-
@Supermilk As-tu eu des nouvelles du support Fibaro ? J'ai une HCL en parfait état de marche qui repose dans une boite à chaussures... J'imagine que je pourrais en tirer le firmware pour te le partager ?? En plus elle était à jour il y a encore moins de 2 ans PS: si en plus quelqu'un veut la racheter
-
Tiens c'est peut-être une bête idée mais est-il possible/envisageable d'implémenter le * (wildcard) dans GEA? Pour permettre par exemple : GEA.add({{"Dates", "27/**"}, {"Time", "11:30"}}, 0, "message", {"Push", 840}) J'imagine que ça risquerait d'affoler le CPU si on l'emploie mal
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Oui oui j'ai bien la bonne config de base avec GEA.portables = {840} Ceci dit je ne souhaite pas avoir une notification sur mon portable à chaque règle exécutée. Je préfère donc préciser en action vers quel(s) deviceID(s) doivent partir les push. Par exemple ceci fonctionne aussi : {"Push", {840, 716, 717, 718}, "Coucou la famille !"} mais je sais qu'un "Push" tout seul sans aucun argument/paramètre derrière va envoyer vers le {840}
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
oui en effet @Lazer je n'avais pas saisi le sens de ton message. Je suis justement occupé à remplacer tous mes "Monthly" par 12 lignes mensuelles, car de façon définitive aucune ligne "Monthly" ne fonctionne (même sans autre condition). Et là tu viens de me faire percuter. Je préfère une longue ligne pas jolie, mais une optimisation des ressources ! Je vais modifier de ce pas. J'en profite pour signaler que je constate que le message Push est celui qui est dans l'action et pas dans la notification, lorsque j'emploie "Dates" en condition. GEA.add({"Dates", "01/01"}, 30, "message 1", {"Push", 840) -- l'ID 840 (smartphone) ne reçoit rien GEA.add({"Dates", "01/01"}, 30, "message 1", {"Push", 840, "message 2"}) -- l'ID 840 (smartphone) reçoit "message 2" A quoi sert le "message 1" que je pensais retrouver dans le Push et dans le debug, mais que je ne retrouve nulle part ? Ou c'est moi qui fait un truc pas juste ? Parce qu'avec "Time" ou "Days" (ou les deux) en condition, je reçois bien le "message 1 en Push" et n'ai pas besoin d'ajouter un "message 2" GEA.add({{"Time", "13:10"}, {"Days", "All"}}, 30, "message 1", {"Push", 840}) -- l'ID 840 (smartphone) reçoit "message 1"
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Et donc doit-on partir du principe qu'à défaut de pouvoir ajouter une condition "Time", pour l'instant "Monthly" se déclenche une et une seule fois par mois à minuit (entre 00:00:00 et 00:00:31) à la date correspondante ? Par exemple {"Monthly","Samedi"} se déclenchera dès qu'on passera du premier vendredi au premier samedi du mois à minuit.
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Bien vu @jojo C'est pas le plus élégant mais ça contourne le problème. Je n'y avais pas pensé car on réfléchit toujours à prendre le chemin le plus court. Et "Monthly" était une évidence ergonomique... j'espère que @Lazer trouvera un jour le temps de tester. Bref je vais écrire les 12 lignes de ce genre pour toute l'année : GEA.add({{"Dates", "27/01"}, {"Time", "11:30"}}, 30, "message", {"Push", 840}) GEA.add({{"Dates", "27/02"}, {"Time", "11:30"}}, 30, "message", {"Push", 840}) GEA.add({{"Dates", "27/03"}, {"Time", "11:30"}}, 30, "message", {"Push", 840}) ...
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Pour info, j'ai testé plusieurs combinaisons durant quelques jours et j'en conclus que "Monthly" n'accepte pas de condition complémentaire. Les seules possibilités d'emploi de "Monthly" sont décrites dans la syntaxe (v7.39) : -- SYNTAXE : {"Monthly"} {"Monthly", "First|Begin|1"} {"Monthly", "Last|End|31"} {"Monthly", <num_jour>} {"Monthly", <jour>} Si quelqu'un trouve le moyen d'y combiner une seconde condition horaire, je suis preneur En attendant je vais utiliser un scénario en LUA pur.
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
...enfin si : je comprends que "Monthly" revient =true et que "Time" revient "false" systématiquement. Si je change la date (21 au lieu de 20 par exemple, puisqu'on est le 20 aujourd'hui) le "Monthly" revient =false aussi (même si je mets le "Temps" sous forme d'intervalle de 1 ou 2 minutes) Mais rien à faire pour que "Time" devienne =true (sauf à retirer la condition "Monthly")
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
J'avais déjà testé en mettant un intervalle d'une minute, mais sans impact. J'emploierai sans doute cette méthode si je constate des latences dans le futur mais pour le moment ma box n'est pas du tout surchargée et aucune règle GEA n'est loupée. Si je retire la condition "Monthly" ça fonctionne sans problème: GEA.add({"Time", "21:45"}, 30, "il est 21h45", {"Push", 840}) Mais si j'ajoute la condition "Monthly", il n'y a pas de déclenchement: GEA.add({{"Monthly", 20}, {"Time", "21:50"}}, 30, "On est le 20 du mois et il est 21:50", {"Push", 840}) et le debug complet (GEA.debug=true et GEA.lldebug=true) donne ceci : [20.01.2026] [21:50:10] [DEBUG] [QA_GEA_820]: GEA:encapsule() copy.check() copy.name="Monthly" id=20 property=20 value=20 value2=20 value3=20 value4=20 [20.01.2026] [21:50:10] [DEBUG] [QA_GEA_820]: GEA:encapsule() copy.getValue() 2 return copy.lastvalue, copy.lastDisplayValue : true, true [20.01.2026] [21:50:10] [DEBUG] [QA_GEA_820]: GEA:encapsule() copy.check() result = true [20.01.2026] [21:50:10] [DEBUG] [QA_GEA_820]: GEA:check() result = false, true [20.01.2026] [21:50:10] [DEBUG] [QA_GEA_820]: GEA:check() ready = false [20.01.2026] [21:50:10] [DEBUG] [QA_GEA_820]: @180s [Validation] #25 : ["Monthly",[20]] ["Time",["21:50"]] => ["Push",[840]] Idem à 21:50:40 (@210s) Je n'arrive pas à comprendre la cause sur base de ce log, et je veux bien un coup de main
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Hello Je tente de mettre en place des rappels mensuels mais il apparait que "monthly" soit capricieux chez moi. Ou alors j'ai fait une erreur ? Ceci ne fonctionne pas : GEA.add({{"Monthly", 20}, {"Time", "18:15"}}, 30, "On est le 20 du mois et il est 18h15", {"Push", 840}) Vers 18h15 le 20 de chaque mois je devrais recevoir ce push n'est-ce pas ? Au lancement de GEA je vois que la condition est prise en compte, mais le moment venu, aucun push... Où est mon erreur ?
- 12 510 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Ce sont 3 QA du même auteur : https://marketplace.fibaro.com/items/openweather-weather-provider https://marketplace.fibaro.com/items/sma-pv-power-sensor https://marketplace.fibaro.com/items/sma-pv-energy-meter Je l'ai prévenu personnellement. Car je ne trouve rien dans son code qui tente de régler le niveau de debug... Une autre QA qu'il a écrite (https://marketplace.fibaro.com/items/velux-active-shutters-integration) a été rapportée avec le même bug, mais je ne l'emploie pas. On est bien d'accord, ce sont uniquement des QA proposées par lui qui plantaient à la mise à jour, et les miennes par exemple, ou GEA en l'occurence n'ont aucun problème.
-
Salut, Je comprends ton coup de gueule @Lazer Pour le coup, mon info ne venait pas d'une IA mais d'un membre reconnu du forum officiel Fibaro (@jgab) J'aurais du le noter : https://forum.fibaro.com/topic/79616-unknown-error-occurred-no-static-loglevel-in-class-quickapp/ Ce n'est qu'après avoir lu la doc Fibaro mentionnée plus haut, et l'avoir testée sans succès (ou alors j'ai commis une erreur?), que je suis parti à la recherche de la réponse sur le forum officiel. Par contre ne trouvant pas l'explication de la valeur "1" j'ai demandé à une IA c'est vrai La réponse de l'IA.. je ne l'ai testée qu'avec des valeurs chiffrées et ça marchait aussi. Sinon avant de la coller ici j'aurais noté que les valeurs textuelles ne devaient pas être en minuscules mais en majuscules. Merci de ta correction. Je vais aller plus loin avec ce que tu as expliqué.
-
D'après Gemini on peut donner la valeur 0 pour supprimer le log ou alors : Valeur Niveau Description 1 Error N'affiche que les erreurs critiques qui empêchent le bon fonctionnement. 2 Warning Affiche les erreurs + les avertissements (problèmes potentiels). 3 Info (Par défaut) Affiche les erreurs, warnings et les informations générales. 4 Debug Affiche tout, y compris les détails techniques de développement (très verbeux).
