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

    Fibaro Wall Plug

    Je viens de configurer les 2 wall plug en association directe et ça marche impeccable et c'est instantané. TOP. Donc pas besoin d'utiliser GEA. Si suffit de configurer le seuil qui détermine la valeur entre On et Off en watt et de configurer l'association.
  2. MAM78

    Fibaro Wall Plug

    Hello les gars, j'ai un besoin similaire. J'ai une TV sur laquelle j'ai installé un bandeau LED (type Ambilight) piloté par un raspberry. Mais il déconne un peu, mes leds continuent de s'allumer alors que la TV est éteinte. Du coup lorsque nous sommes absents de la maison les variations de lumière des leds déclenchent des détections de mouvement intempestifs de mon détecteur du salon ce qui déclenche l'enregistrement de ma caméra avec des notifications inutiles. N'arrivant pas à régler le problème des leds qui s'allument, j'ai décidé d'utiliser 2 wall plug. Un sur la prise de la TV et l'autre sur l'alimentation des leds. Mon scénario dans GEA est le suivant : Si consommation du WP de la TV > 2W et WP des leds éteint alors mise en marche du WP des leds. Si consommation du WP de la TV < 2W et WP des leds allumé alors extinction du WP des leds. Ma TV lorsqu'elle est éteinte, elle consommes 1,2W. Cf. Ligne GEA : -- WP TV Marche/Arrêt ------------------------------------------------ -- Si la TV est allumée on allume les LEDs de la TV GEA.add({{"Power+", id["WP_TV"], 2}, id["WP_LED_TV"]}, 30 , "", {{"Inverse", 2}, {"turnOn", id["WP_LED_TV"]}}, "Mise en marche des leds de la TV") -- Si la TV est eteintes on éteint les LEDs de la TV GEA.add({{"Power-", id["WP_TV"], 2}, id["WP_LED_TV"]}, 30 , "", {"turnOff", id["WP_LED_TV"]}, "Arrêt des leds de la TV") La mise en marche et l'arrêt fonctionne très bien. Mais mon problème est similaire à celui rencontré par @jjacques68 j'ai des déclenchements intempestifs de GEA selon les variations de consommation du WP de la TV. Comment paramétrer mon WP de la TV pour éviter ces déclenchements intempestifs. Je souhaite uniquement des déclenchements de GEA lorsque la consommation et soit < 2 W (TV éteinte) ou > 2 W (TV allumée).
  3. Kanskje kan du i det minste uttrykke deg selv på engelsk
  4. MAM78

    Surveillance Station Manager

    Ajout en deuxième post du Tuto de quelques exemples d'utilisations via des commandes GEA.
  5. MAM78

    HomeMode Manager (type Geofence)

    Pour info. mise à jour des exemples de règles GEA dans le Tuto
  6. MAM78

    HomeMode Manager (type Geofence)

    Si tu veux le faire du Homekit pilotable depuis l'extérieur de ton domicile, il te faut un Hub HomeKit. Sinon comme indiqué, tu peux toujours utiliser le VD mais il te faudra un autre moyen d'agir dessus (IFTTT, Application tiers sur ton téléphone qui est en mesure d'envoyer une commande http/https via l'API Fibaro).
  7. MAM78

    Support Gea

    C'est un exemple d'usage de formules imbriquées suite à mon échange avec @Steven
  8. MAM78

    La fin complète de la zibase

    J'y ai assisté en direct. Faisait pas chaud ! Supporter du PSG mais étant Alsacien d'origine. Dilemme Le bon côté quoi qu'il arrivait je gagnais
  9. MAM78

    Support Gea

    Je confirme selon cette syntaxe. il n'y a pas de passage dans la fonction Label. Est-ce qu'il y a un problème dans ma syntaxe ou est-ce qu'il n'est pas possible en l'état d'imbriquer des formules dans la partie condition ?
  10. MAM78

    Support Gea

    J'ai supposé qu'il n'était pas possible d'imbriquer les fonction GEA (cf. ma question antérieur), d'où ma suggestion. Je viens d'essayer ta proposition ci-dessus, mais elle ne fonctionne pas pour un label. Je n'ai pas fait le test pour une VG. Voici mon test : GEA.add({{"RegEx", {"Label", id["VD_HomeMode_Manager"], "lblGaby"}, "Absent"} ,{"Trigger", "lblGaby"}} ,-1, "StringToAlpha" ,{"Push", {id["PHONE_ID_Michel"]}} ,"StringToAlpha") Le problème est que ma fonction "RegEx" reçoit la valeur nil et non le contenu du label. EDIT : je suppose donc que la fonction "Label" n'est pas exécutée avant la fonction "RegEx"
  11. MAM78

    Support Gea

    @Steven j'ai une suggestion à te faire concernant la mise en forme/filtrage des données qu'il est parfois nécessaire d'appliquer sur les données sources que nous récupérons dans nos devices, VD, VG, source externe via des commandes API, ... et que nous testons pour vérifier une condition. Est-ce qu'il serait envisageable de pouvoir ajouter un tag (exemple : "[Ma_Function, Paramètre1]") dans les fonctions GEA qui correspondrait à une fonction GEA. Cette fonction recevrait la donnée source brute (propriété du devices, Label d'un VD, VG, source externe via des commandes API) et cette fonction appliquera une transformation/mise en forme (en utilisant éventuellement un ou des paramètres optionnelles) et ce serait cette donnée transformée qui serait vérifiée par GEA évaluée la condition ou restituée pour les actions. Cela ouvrirait des grandes possibilités de création de nouvelles fonctions soit par les utilisateurs ou au sein même de GEA. Comme par exemple : StringToNumber qui utilisable à n'importe quel source (Label, VG, source externe via des commandes API, ... ) JSONDecodeFromGlobal pourrait devenir une fonction JSONDecode qui serait applicable à n'importe quel source (Label, VG, ...)
  12. Petites précisions concernant ce que je vous propose ici : L'idée est de référencer des conditions/actions qui ne sont pas déjà réalisables au travers des fonctions déjà disponibles sous GEA. Je pense que les fonctions conditions/actions que vous créez pour une simplification d'écriture ou de lecture n'ont pas lieu d'être référencer dans la bibliothèque. Mais rien n'empêche évidement que vous les présentiez dans vos messages, mais elles ne seraient pas intégrées dans la bibliothèque. C'est évidement c'est un sujet ouvert à discussion vous en pensez quoi ?
  13. Merci @pepite pour ta contribution que j'ai ajouté à la bibliothèque.
  14. MAM78

    Support Gea

    Je ne pense pas comme ça, mais de cette façon ce sera bon : GEA.add({"Or" ,{"Global","NameVG", "1"} ,{"Global","NameVG", "2"} ,{"Global","NameVG", "3"} ,{"Global","NameVG", "4"} ,{"Global","NameVG", "5"}} , 30 , "", {"Global","AutreVG","Résultat à afficher"})
  15. Reservé 3
  16. Reservé 2
  17. Reservé 1
  18. Bibliothèque des fonctions additionnelles pour GEA Nom : LabelRegEx Auteur : @MAM78 Description fonctionnelle : Permet de filtrer les caractères contenue dans un label d'un VD pour en conserver que les caractères utiles et les exploiter. Code : 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, } Description des paramètres de la fonction : value = données source, RegEx = chaine de caractères de filtrage, case = peut prendre la valeur UPPERCASE ou LOWERCASE afin de mettre en majuscule ou minuscule le résultat après filtrage. Exemples d'utilisations : GEA.add({{"LabelRegEx", id["VD_HomeMode_Manager"], "lblXXX", "[a-zA-Z0-9.-]", "Valeur rechercher"} ,-1, "La valeur du label lblXXX filtrée est égale à : #value#") Compatibilité : 6.11 Nom : TempInt Auteur : @pepite Description fonctionnelle : Permet le retour du relevé (et en TTS) de Température des différents modules d'une Station Météo Netatmo. Code : GEA.options.tempint = {name ="TempInt", math=true, optimize=true, getValue=function() return fibaro:getValue(164, "ui.lblTemp.value"):match("[0-9.]+") end, } GEA.options.tempext = {name="TempExt", math=true, optimize=true, getValue=function() return fibaro:getValue(147, "ui.lblTemp.value"):match("[0-9.%-]+") end, } GEA.options.tempinttts = {name ="TempIntTTS", optimmize=true, getValue=function() local temp = fibaro:getValue(164, "ui.lblTemp.value") return temp:match("[0-9.]+"):gsub("%.", "virgule").. "degrer" end, } GEA.options.tempexttts = {name ="TempExtTTS", optimize=true, getValue=function() local temp = fibaro:getValue(147, "ui.lblTemp.value") return temp:match("[0-9.%-]+"):gsub("%.", "virgule").. "degrer" end, } Exemples d'utilisations : -- Temperature Salon Netatmo-- GEA.add({ {"TempInt-",40},{"Time", "18:30"}}, 30, "Temperature intérieure : {TempInt} °C le {Date}", {"SMS", "Temperature du Salon #value# degrés le #date#"}, "Température Salon Netatmo 18h30") --=== Temp exter matin Station Netatmo ===== GEA.add( {{"Time", "07:00", "07:01"}, {"Time", "07:30", "07:31"}}, 30, "Température exterieure : {TempExt} °C", "Relevés Temperature extérieure" ) Compatibilité : 6.11
  19. GEA - Bibliothèque de fonction GEA additionnelles (conditions / actions) Préambule : A l'occasion de mes échanges avec @Steven au sujet des fonctions GEA et notamment celles qui ne sont pas forcement destinées à y être incluses dans la version officielle de GEA (notamment du fait qu'elles ne serait pas forcement utiles au plus grand nombre), il nous ai paru intéressant de référencer l'ensemble des fonctions additionnelles que chacun développe et les référencer sous la forme d'une bibliothèque dans laquelle chacun pourrait venir les récupérer et les intégrer dans son GEA. Le Projet : Nous avons tous des idées/besoins différents et GEA permet d'ajouter vos propres conditions/actions dans GEA. Référencer l'ensemble des fonctions que chacun développe de son côté et les référencer ici sous la forme d'une bibliothèque. Attention : L'idée est de référencer des conditions/actions qui ne sont pas déjà réalisables au travers des fonctions disponibles sous GEA. Les fonctions conditions/actions que vous créez pour une simplification d'écriture ou de lecture n'ont pas lieu d'être référencer ici. Mais rien n'empêche évidement que vous les présentiez dans vos messages, mais elles ne seront pas intégrées dans la bibliothèque. Comment développer une nouvelle fonction (option) : @Steven avait décrit comment développer une fonction (Option) GEA. Vous trouverez les explications ici : Pour rappel ces fonctions doivent être positionnée dans la partie : function config() de GEA. Comment soumettre une nouvelle fonction (option) : C'est simple vous créez un post dans ce sujet dans lequel vous souhaitez vos créations. Pour chaque proposition, il convient : d'en faire une description fonctionnelle de fournir le code de décrire les paramètres de la fonction : donner un ou plusieurs exemples d'utilisation d'indiquer avec quelle version de GEA est est compatible Les propositions seront référencées au fil de l'eau dans le deuxième post ci-dessous. Et peut-être qu'un jour elles seront intégrées dans une version officielle de GEA ` Historique des contributions : LabelRegEx @MAM78 du 22/01/2019 TempInt, TempExt,TempIntTTS, TempExtTTS @pepite du 232/01/2019
  20. MAM78

    Support Gea

    Ok sur 100% de ce que indiques. Merci en tout cas pour temps consacré. Du coup ce serait peut-être intéressant de créer un Tutoriel recensant les différentes GEA.options.xxxxx afin que chacun puisse y récupérer celles de la communautés. Si tu es d'accord, je peux me charger de créer le tutoriel et le compléter au fil du temps par les nouvelles contributions. J'ignore s'il est possible sur le forum de donner l'accès en modification sur le premier post d'un Sujet à plusieurs utilisateurs ?
  21. MAM78

    Support Gea

    Top ça. Si j'avais su j'aurais perdu un peu moins de temps, mais du coup j'ai appris plein de choses sur ton code GEA et la construction de fonctions utilisateur Est-ce qu'il ne serait pas intéressant néanmoins de pouvoir disposer d'une fonction permettant de filtrer un contenu selon sa propre règle de filtrage et/ou de remplacement de caractères ? Comme pour faire du String to Number ou du Upercase, Lowcase, ... EDIT : Mais du coup je ne sais toujours pas comment associer cette fonction au résultat d'une autre condition et la réutiliser dans la partie condition.
  22. MAM78

    Support Gea

    Je viens de tester et ça marche avec les lignes suivantes : GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblGaby", "#r#Présent"} ,{"Trigger", "lblGaby"}} ,-1, "Gaby arrive de la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblGaby", "#r#Absent"} ,{"Trigger", "lblGaby"}} ,-1, "Gaby quitte la maison") Ok je ne connaissais pas le regEx #r#, mais dans ce cas quels sont les caractères qui sont filtrés / remplacés ?
  23. MAM78

    Support Gea

    Pour moi et si les tranches horaires correspondent au moment ou l'action doit être réalisée, tu devrais l'écrire comme ça : GEA.add({{"Slider!", 305, "3", 21}, {"Time","7:19","7:20"}}, 30, "",{"Slider",305, "3", 21}) -- Play Wit Fm dans la salle de bain à 7h20 en mode Travail GEA.add({JourTravail, {"Time","7:20","7:21"}}, 30, "" , {"VirtualDevice", 305, 9}) -- Stop music dans la salle de bain à 8h30 en mode Travail GEA.add({JourTravail, {"Time","8:30","8:31"}}, 30, "" , {"VirtualDevice", 305, 2})
  24. MAM78

    Support Gea

    Ca il y a pas de souci, c'est ce que je fais déjà, de façon légèrement différente mais c'est toujours en passant par une fonction "LabelRegEx" qui va chercher le contenu de label (et pas autre chose comme un VD) et nettoyer la valeur. Ce voudrait pouvoir faire quelque chose comme cela : {"RegEx", {"Label", id["VD_HomeMode_Manager"], "lblMichel"}, "[a-zA-Z0-9.-]", "Absent"}}, , , "", {ACTIONS} ) {"RegEx", {"Global", id["VG_XXXXr"]}, "[a-zA-Z0-9.-]", "Absent"}} {"Label", id["VD_HomeMode_Manager"], "lblMichel"}, {"RegEx", #value#, "[a-zA-Z0-9.-]", "Absent"}} {"Global", id["VG_XXXXr"], "lblMichel"}, {"RegEx", #value#, "[a-zA-Z0-9.-]", "Absent"}}
  25. MAM78

    Support Gea

    J'ai bien essayé, mais je ne vois pas comment ça marche. J'ai essayé ça, mais sans succès. GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblMichel", "#[a-zA-Z0-9.-]#Prsent"} ,{"Trigger", "lblGaby"}} ,-1, "Gaby arrive de la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblGaby", "#[a-zA-Z0-9.-]#Absent"} ,{"Trigger", "lblGaby"}} ,-1, "Gaby quitte la maison") J'ai supposé qu'il fallait remplacer le r de #r# par la chaine ReGex. Ca ne doit pas être cela Pour rappel mes labels contiennent ça :
×
×
  • Créer...