Aller au contenu
MAM78

GEA - Bibliothèque de fonction GEA additionnelles

Recommended Posts

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

 

 

Modifié par MAM78
  • Like 2
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 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

Modifié par MAM78
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

EDIT: Super idée MAM ;) 

 

Modifié par schwinny

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà ;-)

 

Nom : TempInt                                                  

Auteur : @MAM78

Description fonctionnelle : Permet le retour du relevé (et en TTS)  de Température des différents modules de  ma 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

 

 

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @pepite pour ta contribution que j'ai ajouté à la bibliothèque.

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

 

Modifié par MAM78

Partager ce message


Lien à poster
Partager sur d’autres sites

×