Aller au contenu

MAM78

Membres confirmés
  • Compteur de contenus

    2 506
  • Inscription

  • Dernière visite

  • Jours gagnés

    28

Tout ce qui a été posté par MAM78

  1. MAM78

    Support Gea

    J'y ai bien pensé mais lorsque le type == "property" il n'y a que 2 sous valeurs possibles : deviceID: numéro d’ID du module propertyName: nom de la propriété Pour deviceID je ne vois pas trop utilités dans la mesure ou la ligne qui sera déclenchée contiendra déjà une condition avec ce deviceID. Sauf peut-être si la condition concerne plusieurs deviceID, dans ce cas cela peut être utile de savoir lequel. EDIT : est-ce qu'il possible dans GEA de tester en une fois plusieurs ID de module comment par exemple : Dans cas effectivement il serait utile de pouvoir vérifier quel deviceID a déclenché la condition GEA.add( {"Label", {72, 73, 74}, "lblXXX", "ZZZZ"}, , "", {ACTIONS} )
  2. MAM78

    Support Gea

    Si c'était bien le but, mais après réflexion je me suis dit que ce serait plus utile de pouvoir mettre le RegEx en paramètre de la fonction afin de pouvoir créer les filtres que l'on veux J'ai néanmoins eu quelques soucis avec les Emoji puisque certain intègre des caractères accentués, du coup je suis obligé de supprimé les caractères les caractères accentués du coup je suis obligé de tester de la façon suivante : Présent devient Prsent dans mon test. Cf. exemple ci-dessous. GEA.add({{"LabelRegEx", id["VD_HomeMode_Manager"], "lblGaby", "[a-zA-Z0-9.-]", "Prsent"} ,{"Trigger", "lblGaby"}} ,-1, "Gaby arrive de la maison") Super, je vais tester ça. Si c'est bon, il sera possible d'utiliser une fonction RegEx indépendamment de la source de donnée (Label, VG, Données récupérées via une API, ...)
  3. MAM78

    Support Gea

    Merci. J'ai testé et ça fonctionne également tout comme ma suggestion qui était sur la même base. Ce sera peut-être effectivement plus simplement intégrable en réutilisant la fonction existante "Trigger". J'ai néanmoins adapté la fonction afin d'évite de devoir renseigner "ui." et ".device" dans le paramètre de la fonction et ne garder que le nom du label. Voici le code modifié. GEA.options.trigger = { name = "Trigger", getValue=function(value) if (not value)then if (GEA.source.type == "autostart") then return "autostart" elseif (GEA.source.type == "global") then return "Global["..GEA.source.name.."]" elseif (GEA.source.type == "property") then return "Property[" ..GEA.source.deviceID .."]" elseif (GEA.source.type == "event") then return "Event["..GEA.source.event.data.deviceId.."]" end elseif (value) then if (GEA.source.type == "property") then return GEA.source.propertyName:gsub("ui.", ""):gsub(".value", "") == value end end return "other" end }
  4. Ah oui effectivement si c'est une solution à tiroirs. L'addition risque d'être salée
  5. MAM78

    Support Gea

    Essay de modifier ton slider manuellement (via l'application ou sur ta console HC2) et il devrait tout seul revenir sur 21.
  6. Et il en manque plein d'autres Toi tu vas te faire des copains
  7. MAM78

    Support Gea

    Je viens de faire le test et ça fonctionne très bien. Mais il faut mettre en place une condition de déclenchement : par exemple une vérification tous les jours à 4h00 du matin. Si tu es sur IE ou Safari pense à bien réactualiser la page. La modification apparaît bien en chiffre, mais le slider lui ne bouge pas tant que tu n'a pas réactualisé ta page. Sur l'application c'est bon.
  8. MAM78

    Support Gea

    c'est donc bien cela qu'il te faut : GEA.add({"Slider!", 305, "3", 21},-1, "",{"Slider",305, "3", 21}) Bien évidement, il faut ajouter les conditions horaires.
  9. MAM78

    Support Gea

    Tient nous avons les mêmes idées
  10. 300 euros d'écarts avec la HC2 ce n'est pas si énorme que ça, s'il y a moins de bug, plus de fonctionnalité et plus protocoles ?
  11. MAM78

    Support Gea

    Tout dépend de ce que tu cherches à faire. Il faudrait que tu nous indiques fonctionnellement ce que tu veux faire (dans quelles circonstances)
  12. MAM78

    Support Gea

    oui puisqu'il faut déclarer dans l'entête de GEA ton label pour qu'il soit considéré comme un déclencheur de GEA. 305 ui.nonlabel.value -- remplace nomlabel par ton nom du Slider et si tu veux que la modification se fasse immédiatement suite au changement de la valeur de ton slider, il faut modifier ta ligne de la façon suivante : GEA.add({"Slider!", 305, "3", 21}, , "",{"Slider",305, "3", 21}) Mettre -1 à la place de 30 qui permet d'indique qu'il s'agit d'un déclenchement immédiat suite à une modification d'un élément de ton Virual Device. 30 c'est pour un déclenchement 30 secondes après avoir fait la modification (avec une valeur différente de 21)
  13. MAM78

    Support Gea

    Je suppose qu'il n'est pas possible : d'imbriquer 2 conditions du genre ? {"RegEx" {"Label", id["VD_HomeMode_Manager"], "lblMichel"}, "[a-zA-Z0-9.-], "Absent"} La fonction Label récupère la valeur lblMichel qui après est traitée par la fonction RegEx pour nettoyer la valeur restituée. ou d'utiliser la valeur restituée dans une première condition pour la tester dans une deuxième, du genre ? {"Label", id["VD_HomeMode_Manager"], "lblMichel"}, {"RegEx", #valeur#, "[a-zA-Z0-9.-], "Absent"}
  14. MAM78

    Support Gea

    Si je peux abuser de ton temps, j'ai la question suivante : Est-ce qu'il est déjà possible avec GEA d'appliquer une nettoyage de la valeur restituée par la condition "Label" par l'utilisation d'un RegEx. Comme tu peux le voir dans mon VD Home Manager dans les labels, j'ai des emoji pour faire plus jolie et les rendre plus explicite. mais dans GEA pour tester la valeur des labels, il est préférable de supprimer ces caractères. N'ayant pas trouvé comment, j'ai créé la fonction suivante qui fait le nécessaire : GEA.options.labelregex = {name="LabelRegEx", math=true, optimize = true, depends = {"label"}, control =function(id, property, RegEx, condition) if condition == nil or RegEx == nill then return false, "Check option StringToAlpha condition or ReGex" else return true end end, getValue=function(id, property, RegEx, condition, case) local newvalue = "" for word in string.gmatch(GEA.options.label.getValue(id, property), RegEx) do newvalue = newvalue..word end if case ~= nil then if string.upper(case) == "UPPERCASE" then newvalue = string.upper(newvalue) elseif string.upper(case) == "LOWERCASE" then newvalue = string.lower(newvalue) end end return condition==newvalue end, } Je l'utilise de la façon suivante : GEA.add({{"LabelRegEx", id["VD_HomeMode_Manager"], "lblGaby", "[a-zA-Z0-9.-]", "Absent"} ,{"TriggerPropertyName", "lblGaby"}} ,-1, "Gaby quitte la maison") Il est également possible de mettre tout en majuscule ou minuscule si l'on ajoute "UPPERCASE" ou "LOWERCASE" en dernier paramètre qui lui est optionnel.
  15. MAM78

    Support Gea

    Je confirme que ça ne fonctionne pas comme je le souhaite (Seule la ligne pour laquelle le label a été modifié doit s'exécuter). Je ne sais pas s'il faut parler d'un bug ou d'une fonctionnalité non prévue. Mais quoi qu'il en soit ma proposition de fonction TriggerPropertyName elle fonctionne quid de son intégration dans une prochaine version ou de la correction s'il est considéré qu'il s'agit d'un bug.
  16. MAM78

    Support Gea

    Je pense que j'ai du mal à me faire comprendre. Il faut un VD dans lequel il y a au moins 2 labels. Crée 2 lignes dans GEA avec pour chacune des labels différents. Fait en sorte que la condition soit déjà vraie pour l'une des 2 lignes. Puis modifie le 2ème label pour que la deuxième condition de la deuxième ligne soit également également vrai, tu constateras que les 2 actions seront exécutées alors que tu n'auras modifié qu'un seul des label.
  17. MAM78

    Support Gea

    Comme évoqué précédemment, tu n'as pas renseigné le nom de la variable globale et sa valeur à tester dans la partie condition.
  18. MAM78

    Support Gea

    Merci @pepite J'ai bien essayé ta proposition, mais elle ne fonctionne pas. Je l'ai même modifiée puisqu'il me semble que la syntaxe devrait être la suivante : il manquait "ui." et ".value" GEA.add({"Property", id["VD_HomeMode_Manager"], "ui.lblGaby.value", "X Présent"},-1, "Gaby arrive de la maison") Comme exposé précédemment à chaque modification d'un des labels, les autres conditions sont évaluées et si elle sont vraies elles exécutes les actions alors qu'il n'y a pas eu modification des autres label. Il faut donc identifier à chaque passage quel est le label qui a été modifié. c'est également ce que j'avais indiqué ci-dessus
  19. MAM78

    Support Gea

    Il y a beaucoup de choses qui ne vont pas dans ta ligne ci-dessous : Il manque le nom de ta variable globale ici (en rouge) qui est en condition. cf. Syntaxe : {"Global", <nom variable>, <valeur>} Il manque la valeur de ta variable globale tu veux tester (en vert). cf. Syntaxe : {"Global", <nom variable>, <valeur>} Il manque le mot qui détermine l'action que tu veux réaliser (en violet) "Label" ou "Slider" selon la syntaxes suivante : {"Slider", <id_vd>, <id_label>, <valeur>} ou {"Label", <id_vd>, <id_label>, <valeur>} Si tu veux un déclenchement automatique selon un changement de valeur de la variable globale, il faut mette -1 (en bleu) à la place de ton nombre 30. Soit une fois corrigé, ça devrait donner ça : GEA.add({"Global", "xxxx", "yyyy"}, -1, "",{"Label", id["VD_HEOS_SDB_P"], "slider", 21}) en supposant que "slider" correspond au nom du label du VD dont l'id est VD_HEOS_SDB_P que tu as préalablement déclaré dans la partie function setEvents() ainsi que la variable Global dans l'entête de GEA après : --[[ %% autostart %% properties Je t'invite à étudier la documentation des fonctions GEA rédigée par @pepite et rappelée à la fin du tutoriel de @Steven ici :
  20. MAM78

    Support Gea

    Après quelques recherches et analyse du code GEA, je pense que cette fonctionnalité n'est pas disponible en l'état dans GEA 6.11. J'espère ne pas me tromper sur mon analyse Je même surpris d'être le premier à rencontrer cette situation. J'ai donc entrepris de voir comment ajouter cette fonctionnalité à GEA et qui est toutefois relativement simple à mettre en oeuvre Rappel de mon PB exposé précédemment. Lorsque l'on déclenche des actions GEA selon les états de plusieurs label d'un même VD et qu'on les utilises comme conditions. A chaque execution de GEA du fait d'un changement d'un des labels, l'ensemble des conditions utilisant ce VD sont vérifiées (même si les autres labels n'ont pas été modifié) et si ces conditions pour sont vrais alors les actions associées sont exécutées. Ce qui peut être gênant lorsque si l'on veut déclencher seulement les conditions liées aux labels qui ont changé de valeur et pas les autres. C'est exactement mon cas exposé dans l'exemple ci-dessus. Fonctionnellement ce n'est pas parce que Michel vient d'arriver à la maison que pour autant Gaby vient également d'arriver ou de partir de la maison. J'espère avoir été clair. Cf. l'image de mon VD ci-dessous. Pour traité ces cas de figures : je passe par l'utilisation de la propriété propertyName de la fonction fibaro:getSourceTrigger() qui retourne la nom du label qui a déclenché (trigger) le lancement de la scène GEA. et donc l'ajout de la nouvelle fonction GEA ci-dessous. Il convient de l'ajouter dans la liste des fonctions renseignées dans la partie : function config() GEA.options.triggerpropertyname = { name = "TriggerPropertyName",getValue=function() if (GEA.source.type == "property") then return GEA.source.propertyName:gsub("ui.", ""):gsub(".value", "") end return "other" end} Dès lors, vous pouvez ajouter dans vos conditions une condition additionnelle qui va tester quel est le label qui à déclencher GEA. CQFD Voici quelques lignes d'exemples d'utilisation : GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblMichel", "X Présent"} ,{"TriggerPropertyName", "lblMichel"}} ,-1, "Michel arrive de la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblMichel", "Y Absent"} ,{"TriggerPropertyName", "lblMichel"}} ,-1, "Michel quitte la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblGaby", "X Présent"} ,{"TriggerPropertyName", "lblGaby"}} ,-1, "Gaby arrive de la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblGaby", "Y Absent"} ,{"TriggerPropertyName", "lblGaby"}} ,-1, "Gaby quitte la maison") Peut-être que @Steven trouvera cette nouvelle fonction pertinente et l'intégrera dans les fonctions de base dans une future version de GEA peut-être la 6.12 ?
  21. MAM78

    Support Gea

    Je comprends bien ta réaction à ma sollicitation, désolé celle-ci t'a agacée. Je patienterais le temps qu'il faudra ou j'essayerais de trouver par moi-même la solution qu'évidement je partagerais comme à mon habitude. Voir MP sur le sujet.
  22. Oui
  23. au moins tu n'aurais plus de plantage de ta box. Et c'est relativement simple à mettre en oeuvre, notamment dans un usage par hysteresis. Si tu as besoin d'un coup de main. Pas de PB
  24. MAM78

    HomeMode Manager (type Geofence)

    Pour identifier votre arrivée et départ de la maison vous pouvez également utiliser l'application Synology DS CAM disponible sur iOS et Android pour sa solution Surveillance Station. Elle permet de connaitre les entrées et sorties de la maison. Cette info est exploitable directement sur votre NAS et elle peut être interceptée avec une règle d'action qui va envoyer en local (sans passer par le Cloud/Internet) une requête sur votre HC2 via une commande de type : http://<HC2 ip address>/api/callAction?deviceID=XXX&name=pressButton&arg1=2 Voilà une solution compatible pour les 2 mondes iOS et Android sans faire circuler sur internet vos mots de passe (comme par exemple avec IFTTT).
  25. MAM78

    Support Gea

    Hello @Steven, @pepite vous êtes en vacances ?
×
×
  • Créer...