Aller au contenu

Recommended Posts

Bonjour messieurs,

 

@Domodial,

etre précis par rapport à  la nuit tombée, et qu'il fasse "nuit noire" sans capteur de luminosite, à  part avec le sunset, je ne vois pas, aispeut-etre qu'un expert aurait une autre dee ;-) Je vais y réflechir tout de même encore.

 

Pour la clim, tres simple, as-tu une variable globale que tu utiliserais deja et qui aurait une valeur differente lorsque tu es en vacances ou non ?

ensuite, en fonction de cette variable, soit tes lignes sont lues par GEA, ou non en fonction de la valeur de cette variable.

 

Dis moi tu les bichonnes tes chiens ;-) Clim, lumiere ;-)

 

@Kiwi : la c'est la tuile, franchement qu'elle m...

Meme en recreant  ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous !

 

j'aurais besoin d'un petit conseil.

Ma HC2 (4.049 mais ca date d'avant déjà ) plante ma scene GEA avec une belle erreur system sur une lib lua.

C'est aléatoire et arrive au bout de plus ou moins de jours.

Je me demande donc si cela vient pas de ma syntaxe avec les "If"

 

Voici un exemple que j'utilise:

  -- Debut: Gestion de l'allumage/extinction auto de l'entrée
  	GEA.add(id["PORTE_ENTREE"], -1, "", {{"If",{{"Value-",id["LUMINOSITE_SALON"],30}}}, {"Value", id["LUMIERE_ENTREE"], 95}})
        GEA.add(id["LUMIERE_ENTREE"], 5*60, "", {{"If",{{"Value-",id["LUMIERE_ENTREE"],96}}}, {"Value", id["LUMIERE_ENTREE"], 50}})
  	GEA.add(id["LUMIERE_ENTREE"], 1*60, "", {{"If",{{"Value-",id["LUMIERE_ENTREE"],51}}}, {"Value", id["LUMIERE_ENTREE"], 0}})
  -- Fin: Gestion de l'allumage/extinction auto de l'entrée

Le principe est le suivant:

  - Si la porte s'ouvre et que la luminosité est inférieure à  30 lux alors allumage a 95%

  - Si la lumière est allumée depuis plus de 5mins et que la valeur de la lumière était inférieur à  96% (en somme si c'était un allumage automatique) alors je reduite a 50

  - Et enfin si la lumière est allumée depuis plus d'1mins supplémentaire et que la valeur de la lumière était inférieur à  51% (même principe que précédement) alors j'éteins

 

Ma question est donc est ce qu'il n'y a pas une manière plus "propre", sans "If" car il me semble que c'est pas top les "If" ?

 

Merci d'avance pour votre aide à  tous ! :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Non je ne vois rien dans le log, on dirais que... GEA est devenu amnésique.

Bon y a peut-etre une raison j'ai la connection free qui reboote toutes les heures (voir rouge sur le graphique)....

 

1437554395.png

J'espère que c'est le problème. Suis en train de fighter avec Free (en attendant le retour d'info j'ai viré la femto, si c'est pas ca je colle un cisco 837).

 

Bref... Un truc a devenir dingue

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous !

 

j'aurais besoin d'un petit conseil.

Ma HC2 (4.049 mais ca date d'avant déjà ) plante ma scene GEA avec une belle erreur system sur une lib lua.

C'est aléatoire et arrive au bout de plus ou moins de jours.

Je me demande donc si cela vient pas de ma syntaxe avec les "If"

 

Voici un exemple que j'utilise:

  -- Debut: Gestion de l'allumage/extinction auto de l'entrée
  	GEA.add(id["PORTE_ENTREE"], -1, "", {{"If",{{"Value-",id["LUMINOSITE_SALON"],30}}}, {"Value", id["LUMIERE_ENTREE"], 95}})
        GEA.add(id["LUMIERE_ENTREE"], 5*60, "", {{"If",{{"Value-",id["LUMIERE_ENTREE"],96}}}, {"Value", id["LUMIERE_ENTREE"], 50}})
  	GEA.add(id["LUMIERE_ENTREE"], 1*60, "", {{"If",{{"Value-",id["LUMIERE_ENTREE"],51}}}, {"Value", id["LUMIERE_ENTREE"], 0}})
  -- Fin: Gestion de l'allumage/extinction auto de l'entrée

Le principe est le suivant:

  - Si la porte s'ouvre et que la luminosité est inférieure à  30 lux alors allumage a 95%

  - Si la lumière est allumée depuis plus de 5mins et que la valeur de la lumière était inférieur à  96% (en somme si c'était un allumage automatique) alors je reduite a 50

  - Et enfin si la lumière est allumée depuis plus d'1mins supplémentaire et que la valeur de la lumière était inférieur à  51% (même principe que précédement) alors j'éteins

 

Ma question est donc est ce qu'il n'y a pas une manière plus "propre", sans "If" car il me semble que c'est pas top les "If" ?

 

Merci d'avance pour votre aide à  tous ! :)

 

je fais une gestion similaire, tu peux t'inspirer de cet exemple dans le showoom gea:

 

http://www.domotique-fibaro.fr/index.php/topic/2143-showroom-configs-gea/#entry48677

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @Tomsavy,

 

Jamais eu cette erreur, je connais pas assez, peut-etre les experts pourront meiux t'aider. As-tu essaye de recréer une scene GEA avec la derniere version ?

 

Pour les IF je peux faire : ;-)

GEA.add({id["PORTE_ENTREE"], {"Value-",id["LUMINOSITE_SALON"],30}} -1, "", {{"Value", id["LUMIERE_ENTREE"], 95}})
GEA.add({id["LUMIERE_ENTREE"], {"Value-",id["LUMIERE_ENTREE"],96}}, 5*60, "", {{"Value", id["LUMIERE_ENTREE"], 50}})
GEA.add({id["LUMIERE_ENTREE"], {"Value-",id["LUMIERE_ENTREE"],51}}, 1*60, "", {{"Value", id["LUMIERE_ENTREE"], 0}})

@Domodial

 

quelquechose du genre :

 

SI ta variable Globale "Maison" a pour valeur "PRESENCE", la lignne sera lue par GEA et executée si les 2 conditions sont remplies : VG=PRESENCE et Temp > 23 ou < 23

Tu pars en vacances, tu mets MAISON à  VACANCES, 1 seule des 2 conitions sera remplie, les lignes ne seront pas executees ;-)

 

 


-- Si la température capteur SPA dépasse 23° j'allume la climatisation en mode froid
GEA.add({{"Global", "Maison", "PRESENCE"},{"Value+",id["TEMPERATURE_SPA"], 23}}, 10*60, "Température excessive, je climatise", {{"VirtualDevice", id["CLIMATISATION_SALON"], "16"}})
-- Si la température capteur SPA est inférieur à  23° j'arrette la climatisation
GEA.add({{"Global", "Maison", "PRESENCE"},{"Value-",id["TEMPERATURE_SPA"], 23}}, 10*60, "Température Ok j'arrette la clim", {{"VirtualDevice", id["CLIMATISATION_SALON"], "2"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci c'est génial a vous tous !

Je m'y met dès que je rentre ce soir !! :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Les IF sont àéviter. Ils ne seront plus supportés dans un prochaine version, et ce n'est pas logique de mettre cette condition dans les options, alors que toutes les autres conditions sont au début

Partager ce message


Lien à poster
Partager sur d’autres sites

 

@Domodial

 

quelquechose du genre :

 

SI ta variable Globale "Maison" a pour valeur "PRESENCE", la lignne sera lue par GEA et executée si les 2 conditions sont remplies : VG=PRESENCE et Temp > 23 ou < 23

Tu pars en vacances, tu mets MAISON à  VACANCES, 1 seule des 2 conitions sera remplie, les lignes ne seront pas executees ;-)

 

 

Merci Pepite, ça fonctionne super bien !! :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Steven est VIVANT !!! Halleluia !  :60:  :60:   :)   :2:

 

Et il a posté une mise à  jour de GEA (V5.4) qui "corrige" les lenteurs sur HC2 en V4 et +

 

Voir Github dans ma signature :-)

  • Upvote 5

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonne vacances père Steven et reviens nous en pleine forme àla rentrée enfin si tu le veux bien

Envoyé de mon SM-G900F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites
GEA.add({{"Value",id["Porte_GARAGE"],0},{"Global", "JouretNuit", "Nuit"}} , -1, "", {{"turnOn", id["Lumiere_GARAGE"]}})

voici une ligne qui fonctionné parfaitement sous la V3.60.

depuis la V4.49, cette ligne ce lance toute seul dans la nuit alors que la porte du garage est fermée depuis longtemps.

 

j'ai plusieurs ligne dans le même esprit, "on ferme les volets la nuit alors on allume la lumière de la pièce".

 

 je vois bien dans le panneau d’événement que seul les ouvrants qui ont une ligne dans GEA ont le problème, c'est à  dire quand pleine nuit, aléatoirement, ils sont notés "fermés" sans avoir étaient ouverts ( dans le panneau d’événement de la HC2)

je suis en cours de test avec des variable "Open" "Close" mais si vous avez ce genre de ligne et pas le soucis, je suis preneur de la syntaxe ;)  

ce problème à  l'air d’être lié à  GEA car des ouvrant, j'en ai plein et il ne note pas de fermeture aléatoirement alors qu'il sont déjà  noté fermés.

 

j'ai contacté le support, ils m'ont répondu, demandaient des infos complémentaires et plus de nouvelle depuis le 9 juillet... à  la plage certainement  :P

Partager ce message


Lien à poster
Partager sur d’autres sites

Yes, on était inquiet !!!  MErci le king pour la nouvelle version, je la mets de suite ;-)

@kiwi : essaie la 5.40 du jour, au point où tu en es ;-) ca peut pas etre pire ;-)

 

encore merci Steven pour la 5.40 ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok je me lance direct ! Enfin le dieu vivant de GEA est revenu !

/me se prosterne !

Partager ce message


Lien à poster
Partager sur d’autres sites

@Frederic,

 

J'ai pas ce genre de ligne mais ta syntaxe a l'air OK, si tu penses que cela vient de GEA, tente la 5.40 ou essaie cette syntaxe la, on ne sait jamais, ou encore sans le declenchement instantané, pour tests

GEA.add({id["Porte_GARAGE"],{"Global", "JouretNuit", "Nuit"}} , -1, "", {{"Inverse"}, {"turnOn", id["Lumiere_GARAGE"]}})

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

En fait les test sont sur long terme car c'est aléatoire, ça fait déjà  un moment que je suis sur le dossier  :(

j'ai mis en prod la 5.40 et je vais mettre en ta ligne sur un des ouvrants pour voir.

je ne connais pas trop les fonctions de "Inverse", je ne l'ai jamais utilisé, en gros, il fait l'inverse de l'état?

Partager ce message


Lien à poster
Partager sur d’autres sites

@kiwi : oui vas y, je viens de le faire sur mes 3 instances, panipwoblem, j'ai testé quelques trucs, du genre allulme la lumiere alors que je suis en mode ABSENCE, ca a bien lance le module d'extinction des lumieres ;-)

A voir plus tard lol

 

@Frederic,

ah oui tres bizarre que cela soit aleatoire ;-)

 

Le "Inverse" ne concerne toujours que la 1ere condition, dans ton cas id["Porte_Garage"], effectivement, cela "inverse" l'etat de la condition testée.

Pour la ligne, cela signifie que GEA teste que la porte de garage est fermée, ce qui équivaut à  ton Value = 0 pour la porte de garage.

Partager ce message


Lien à poster
Partager sur d’autres sites

@sebcbien merci pour cet exemple je vais voir ce que je peux en tirer !
@pepite je teste ca de suite et je vous tiendrai au courant si cela change bien la situation ! :)
@jojo oui d'où le fait que je demande un petit peu d'aide pour me debarrasser des IF ;)

pour info voici le genre d'erreur que j'ai dans la log GEA lorsque j'active toutes les traces:
 

[DEBUG] 16:04:05: [ 86 | Entrée ] En cours : vérification (ID:1) [If..] [Value,86,50]
[DEBUG] 16:04:05: [ 86 | Entrée ] Check : démarrage vérification (ID:1) [If..] [Value,86,50]
[DEBUG] 16:04:05: [ 86 | Entrée ] Check : vérification des dates (ID:1) [If..] [Value,86,50]
[DEBUG] 16:04:05: [ 86 | Entrée ] isActivate : vérification de l'activation (ID:1) [If..] [Value,86,50]
[DEBUG] 16:04:05: [ 86 | Entrée ] isActivate : type : com.fibaro.multilevelSwitch (ID:1) [If..] [Value,86,50]
[DEBUG] 16:04:05: [ 86 | Entrée ] !CANCEL! isActivate : désactivé (ID:1) [If..] [Value,86,50]
[DEBUG] 16:04:05: [ 86 | Entrée ] En cours : vérification (ID:2) [If..] [Value,86,0]
[DEBUG] 16:04:05: [ 86 | Entrée ] Check : démarrage vérification (ID:2) [If..] [Value,86,0]
[DEBUG] 16:04:05: [ 86 | Entrée ] Check : vérification des dates (ID:2) [If..] [Value,86,0]
[DEBUG] 16:04:05: [ 86 | Entrée ] isActivate : vérification de l'activation (ID:2) [If..] [Value,86,0]
[DEBUG] 16:04:05: [ 86 | Entrée ] isActivate : type : com.fibaro.multilevelSwitch (ID:2) [If..] [Value,86,0]
[ERROR] 16:04:05: Runtime error: /usr/share/lua/5.2/json/decode/util.lua:35: unexpected character @ character: 2 0:2 [X] line:
[ERROR] 16:04:05: ,X

Partager ce message


Lien à poster
Partager sur d’autres sites

Je me permets de poster ici le message que j'ai mis sur GitHub pour expliquer la modification effectuée sur la 5.40

 

L'une des faiblesse de la 4.x est la perte de performance sur les instructions tel que getName, getRoom. Afin de soulager GEA, je propose un variable qui va permettre d'aller chercher ou non ces informations.

GEA.optimize = GEA.typeOptimize["IMEDIATE_ONLY"]

les valeurs possible sont :

GEA.typeOptimize["NONE"] -- aucune optimisation (défaut)

GEA.typeOptimize["IMEDIATE_ONLY"] -- optimisation uniquement des déclenchements immédiats

GEA.typeOptimize["ALL"] -- optimisation de toutes les entrées GEA.add()

ATTENTION : chaque entrée optimisée ne donnera plus l'affichage du nom et de la pièce du modules en question.

Il s'agit bien d'un contournement du problème et pas d'une solution à  long terme.

Dans mon cas, les déclenchements immédiats ont retrouvé leur efficacité (plus de 3 secondes de latence).

 

 

Donc si vous ajouter cette ligne dans votre code :

GEA.optimize = GEA.typeOptimize["IMEDIATE_ONLY"]
ou cela

GEA.optimize = GEA.typeOptimize["ALL"]
 

Dans vos log, vous verrez apparaître quelque chose comme 

[ 112 | n/a ] Add Property : ajout de la tache pour lancement instantané (ID:17) 

Car on ne va plus chercher le nom du module. J'ai fait au plus simple donc que cela soit une variable Globale, un module, un label, ... je n'affiche plus son nom.

Je ne voulais pas en arrivé là , mais vu que Fibaro ne fait pas l'effort de modifier son code, c'est la seule solution que j'ai trouvé.

 

DONC :

  • Installez la version 5.40
  • Mettez en commentaire la ligne (ajouté -- devant) GEA.optimize = GEA.typeOptimize["IMEDIATE_ONLY"]
  • TESTER, TESTER et TESTER encore.
  • Une fois que votre configuration vous semble correcte vous pourrez décommenté la ligne
  • Si vous souhaiter une optimisation complète, utilisé GEA.typeOptimize["ALL"] mais votre console ne vous affichera plus grand chose d'utile.
Allez ... A vous de jouer :-)
  • Upvote 5

Partager ce message


Lien à poster
Partager sur d’autres sites

@@Tomsauy

Je te propose de supprimer la variable globale GEA_Tasks et de la recréer pour tester.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

Merci effectivement je n'avais pas forcement songé à  la variable global, par contre vu que c'est un pb aléatoire qui intervient au bout de quelque jours est ce bien possible que la cause vienne de la variable ?

Dans tous les cas je ferai le test ca ne coute rien ;)

 

Et merci pour cette nouvelle version ! :)

Partager ce message


Lien à poster
Partager sur d’autres sites

yes merci pour l'explication @steven ;-)

 

Me suis lancé tout de suite sans commenter, wait and see ;-) Mais j'ai une petite config ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

@@Tomsauy

Laisse tomber, cela ne servira a rien, j'avais oublié que je n'avais pas utiliser la librairie JSON justement pour éviter ce genre de soucis.

 

Par contre, Fibaro utilise le json pour répondre au instruction getName, getRoom, ... et pour afficher un tableau dans la console (fibaro:debug())

 

Donc je procéderais ainsi :

- vérifier que je n'ai pas mis un fibaro:debug() qui traînerais quelque part.

- vérifier que TOUS les ID utilisés dans GEA soient correcte (je sais, c'est chi<censuré>)

- vérifier que mes modules ont bien tous un nom, une pièce ... rien de bizarre.

- que les noms de mes modules ne contiennent pas de caractère ennuyant {},:;

 

Et dans le pire des cas, envoyer ta config GEA et ton JSON complet (http://....../api/devices) ... en fichier zipper ... car on connait des cas qui envoi tout en tant que message et qui arrive tuer un forum :)

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven,

ça fait plaisir de "réentendre le son de ta voix".

J'avais fait deux instances GEA une immédiate et une autre, ce qui avait amélioré la perf, sans atteindre celle de 3.600.

Avec cette optimisation, on pourrait tout remette dans une seule instance ?

 

On est d'accord que si on veut optimiser les performances, il faut limiter au strict nécessaire les immédiats (-1) à  ce qui ne peut se permettre d'attendre max 30 sec (1 cycle) (exple lumières sur détecteur de mvt)

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

 

Merci pour cette MAJ je viens de l'installer est c'est parfait :60: j'en ais profiter pour faire le ménage en supprimant ma 2éme instance

Partager ce message


Lien à poster
Partager sur d’autres sites

×