Aller au contenu
Lazer

Quick App - Gestionnaire d'Événements Automatique - GEA pour HC3

Recommended Posts

OK, dans ce cas on va conserver le comportement actuel qui utilise le pont Hue.

 

Pour les childs, on va ajouter des nouvelles options.

La luminosité devrait déjà pouvoir se régler de façon traditionnelle comme pour tout dimmer avec "Value" et la valeur en numérique, je pense que ça doit fonctionner :

GEA.add( {CONDITIONS}, 30, "", {"Value", 21, 50} )

 

Dans le JSON de ton child, je vois qu'il y a une méthode "setColor" avec 1 seul paramètre, mais je n'ai aucune idée de la valeur qu'il faut donner à se paramètre. Tu pourrais faire des tests directement en LUA avec fibaro.call(...) pour comprendre le fonctionnement ?

Il semble que la valeur soit stockée dans le champ properties.color.

Si ça se trouve, le paramètre à passer est littéralement la chaine "255,255,255,0" qui semble indique du blanc (les 3 composantes RGB à 255), mais que signifie le dernier paramètre à 0 ?

 

 

EDIT : laisse tomber, j'ai compris, c'est la même API que pour les modules RGBW.

Donc tu peux utiliser directement sur un child Hue :

 

GEA.add( {CONDITIONS}, 30, "", {"RGB", 21, 100, 0, 100, 100} )

 

 

Elle est géniale cette HC3, l'intégration native des modules externes, comme pour les modules Z-Wave, ça simplifie tout :D

 

Du coup je pense que je vais ajouter un alias pour "RGB" qui sera "Color", tout simplement, et ça sera plus parlant, et l'usage de l'un ou l'autre sera au choix de l'utilisateur :)

 

 

Je suis preneur d'autres suggestions bien sûr

 

Modifié par Lazer

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon,  je suis passé d'un scène bloc vers lua.

 

setColor prend bien 4 paramètres (R+G+B)+ ?, le quatrième n'a pas l'air d'influer énormément, mais je pense que c'est la saturation.

 

fibaro.call(23, 'setColor', 255,0,0,0)
fibaro.call(23, 'setValue',50)

 

le setValue correspond à la luminosité et fait l'objet d'une règle de trois, les 50 % demandés ici , deviennent 128

"brightness": 128,

L'espace colorimétrique est recalculé, le rouge demandé ci dessus devient

 "color": "1,27,255,0",

 

D'ailleurs, le child est bizarre, il est en deux parties, une première on/off avec couleur et luminosité, une seconde avec la saturation en plus, qui réagit avec retard (le polling du pont ?).

 

il y a d'autres possibilités, dont

fibaro.call(23, 'toggle')
fibaro.call(23, 'startLevelIncrease')

mais pas super utile.

 

donc si on sait positionner setColor et setValue avec 4 et 1 paramètres, on doit pouvoir s'en sortir.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

en complément, un fibaro.call(23, 'value',0) ne fait rien.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 17 minutes, Dgille a dit :

fibaro.call(23, 'value',0) ne fait rien

Normal, il faut utiliser "setValue"

 

"value" n'est pas une fonction, c'est juste une propriété

Partager ce message


Lien à poster
Partager sur d’autres sites

oui, j'avais compris, c'était pour bien préciser c'est c'était une propriété non gérée ici.

Je teste cela demain...

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui mais en fait pour une meilleure compréhension, ce qu'il faut retenir c'est que fibaro.call() est juste un passe-plat qui peut appeler n'importe quel fonction dans le module cible.

Les plugins Fibaro sont en fait des QuickApps.

 

Donc que tu développeras tes propres QuickApps, tu pourras créer tes propres fonctions et les appeler depuis n'importe où. L'intérêt est énorme, on n'a plus besoin de "cliquer" sur le boutons (avec leur fameux numéro qui change dès qu'on déplace ledit bouton), il suffit d'appeler la fonction qui est toujours accessible.

Exemple dans ton QuickApp :

function QuickApp:maSuperFonction(un, ou, plusieurs, paramètres)
	-- fait plein de choses
end
fibaro.call(ID, "maSuperFonction", "avec un paramètre", "et un autre")

 

Les propriétés (telles que value ou color), quant à elles, sont accessibles directement via le JSON du module, comme sur la HC2.

 

 

Ensuite, un module d'un certain type (par exemple les actionneurs dimmer (type com.fibaro.multilevelSwitch) ou un relai (type com.fibaro.binarySwitch) doivent toujours proposer certaines fonctions obligatoires, et notamment le fameux setValue()


Quand tu as compris tout ça, tu vois à quel point il est facile et puissance de faire interagir les QuickApps entre eux.... GEA n'était qu'un QuickApp parmi d'autres :) mais aussi via l'interface Web et l'Application, ou bien encore via l'API HTTP pour que les QuickApps soient accessible depuis l'extérieur (typiquement un IPX800 ou tout autre box domotique)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

salut 

 

je pense avoir trouvée un bug avec CentralSceneEvent et le bouton de FIBARO

 

1 click  et 2 click   ne fonctionne pas

 

3 - 4 - 5 - maintenue fonctionne très bien 

 

-----BUTON JAUNE    
----1 click  
GEA.add({"CentralSceneEvent", id["BOUTON_JAUNE"], 1, "Pressed"},  -1, "1 click")
 ---2click
GEA.add({"CentralSceneEvent", id["BOUTON_JAUNE"], 1, "Pressed2"}, -1, "2 click")
----3 click      
GEA.add({"CentralSceneEvent", id["BOUTON_JAUNE"], 1, "Pressed3"}, -1, "3 click") 
----4 clicks
GEA.add({"CentralSceneEvent",  id["BOUTON_JAUNE"], 1, "Pressed4"},-1, "4 click") ---, {{.....
----5 clicks
GEA.add({"CentralSceneEvent",  id["BOUTON_JAUNE"], 1, "Pressed5"},-1, "5 click") ---, {{.....
 ----6  Maitenue
GEA.add({"CentralSceneEvent",  id["BOUTON_JAUNE"], 1, "HeldDown"},-1, "OFF Général", {{"Sleep", 30, {"QuickApp", 238, "p4"   }}} )

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 18 heures, Lazer a dit :

Elle est étrange ton ancienne syntaxe, tu es certaine qu'elle était valide ?

Oui, cela fonctionnait très bien en V6.13 !

En fait, cela me permettait de recevoir les messages du debug GEA directement dans PUSHOVER, plutôt que de devoir passer par une option et un ordre spécifique.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@Dragoniacs

OK en effet, j'ai compris.

Je ne connaissais tout simplement pas cette fonctionnalité. Tu m'a enduis d'erreur :P en parlant d'options, alors qu'en fait ce n'est pas une "options" au sens GEA du terme, donc je ne cherchais pas au bon endroit.

Mais c'est parfaitement décrit tout à la fin du document de @pepite

Citation

- GEA.output :
    -> A N"UTILISER" QUE LORSQUE les PUSHs de Fibaro ne fonctionnent pas
    -> Permet de recevoir les messages par SMS (dans l"exemple" ci-dessous, il est possible de faire différemment) en contournant les PUSHs

    -> Ajouter la fonction <GEA.output> dans <function config()> comme ci-dessous :

        function config()
               ...
               GEA.output = function(message) fibaro:setGlobal("FreeSMS", message) end
              ...
        end

    - > tous les messages "MESSAGE" de GEA.add({CONDITIONS}, duree, "MESSAGE", {ACTIONS}) seront redirigés vers la variable globale "FreeSMS".

 

J'ai retrouvé où ça se passe dans le code de GEA, je pense comprendre pourquoi ça plante, je vais préparer un correctif.

 

 

Il y a 9 heures, 971jmd a dit :

je pense avoir trouvée un bug avec CentralSceneEvent et le bouton de FIBARO

 

1 click  et 2 click   ne fonctionne pas 

 

3 - 4 - 5 - maintenue fonctionne très bien 

@971jmd

Je n'ai pas de bouton disponible pour reproduire le comportement chez moi.

Il faudrait que tu reproduises le bug après avoir activé le mode GEA.debug=true dans ton fichier de config :

function config(GEA)
	GEA.debug = true
	-- suite...
end

Et ensuite tu m'envoies le contenu des logs, qui devraient donner beaucoup d'informations.

Partager ce message


Lien à poster
Partager sur d’autres sites

je pense que le bug vient de la HC3, car ce matin ça fonctionne ;) bizard

 

il arrive que je click j'ai 7 - 10 sec avant que l'action s'effectue  avec : SceneActivation  et  CentralSceneEvent

 

 

 

GEA.add({"CentralSceneEvent", id["BOUTON_JAUNE"], 1"Pressed"},  -1"1 click" , {{"OnOff", id["PLAN_TRAVAIL"] } })

 

[20.11.2020] [07:59:43] [TRACE] [QA_GEA_217]: --------------------------------------------------------------------------------
[20.11.2020] [07:59:43] [TRACE] [QA_GEA_217]: Démarrage par événement de GEA 7.02 (mode device [143])
[20.11.2020] [07:59:43] [TRACE] [QA_GEA_217]: --------------------------------------------------------------------------------
[20.11.2020] [07:59:43] [DEBUG] [QA_GEA_217]: @0s [Validation*] #18 [CentralSceneEvent, [143,1,"Pressed"]][On Off, [137]]
[20.11.2020] [07:59:43] [TRACE] [QA_GEA_217]:    [Démarrage] #18 [CentralSceneEvent, [143,1,"Pressed"]][On Off, [137]]
[20.11.2020] [07:59:43] [DEBUG] [QA_GEA_217]:         [action] [On Off, [137]]
[20.11.2020] [07:59:44] [DEBUG] [QA_GEA_217]: @0s [Validation] #19 [CentralSceneEvent, [143,1,"Pressed2"]]
[20.11.2020] [07:59:44] [DEBUG] [QA_GEA_217]: @0s [Validation] #20 [CentralSceneEvent, [143,1,"Pressed3"]]
[20.11.2020] [07:59:44] [DEBUG] [QA_GEA_217]: @0s [Validation] #21 [CentralSceneEvent, [143,1,"Pressed4"]]
[20.11.2020] [07:59:44] [DEBUG] [QA_GEA_217]: @0s [Validation] #22 [CentralSceneEvent, [143,1,"Pressed5"]]
[20.11.2020] [07:59:44] [DEBUG] [QA_GEA_217]: @0s [Validation] #23 [CentralSceneEvent, [143,1,"HeldDown"]][Sleep, [30,["QuickApp",238,"p4"]]]

 

Partager ce message


Lien à poster
Partager sur d’autres sites

7 à 10 secondes de retard ?

Aie, ta HC3 est débordée ?

Que dit le monitoring CPU, tu n'aurais pas un module Z-Wave, un QuickApp, ou une scène, qui saturerait le système ?

Partager ce message


Lien à poster
Partager sur d’autres sites

La RAM est à 60%

 

CPU cor 1 - 2 -3 - 4  sous les 10%

.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

CPU normal quoi

(pour la RAM je suppose que tu as compté le cache, qui est de la mémoire libre...)

 

étrange cette lenteur, mais donc ce n'est pas lié à GEA, c'est le système qui met du temps à traiter l'événement ?

Partager ce message


Lien à poster
Partager sur d’autres sites

oui étrange, même ma HC2 fonctionnée mieux  

 

ram.thumb.JPG.7b799cae35266ccde1f460fbad8e1df0.JPG

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir,  @Lazer, effectivement, les Hue sont vues comme des RGB, cela passe avec la syntaxe GEA.add( {CONDITIONS}, 30, "", {"RGB", 21, 100, 0, 100, 100} ).    Oui, elle est géniale, et oui, on se complique la vie alors que les QA font le boulot....

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Voici la version 7.03 :

- correctif pour GEA.output

- ajout de l'alias "Color" identique à "RGB"

- minor bugfixes (si si :D)

 

 

GEA v7.03.lua

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 20/11/2020 à 19:16, Lazer a dit :

Voici la version 7.03 :

- correctif pour GEA.output

- ajout de l'alias "Color" identique à "RGB"

- minor bugfixes (si si :D)

 

 

GEA v7.03.lua

 

Parfaitement fonctionnel, merci @Lazer !

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut à tous!

Je suis encore dans les travaux de ma nouvelle maison et qu'est-ce-que je vois! Une version de GEA pour HC3!

J'ai vu qu'elle a débarquée fin octobre, trop cool.

Je n'ai pas encore attaqué la partie domotique mais j'ai hâte!

Merci @Lazer pour ce travail de titan.

Je suis pressé de vous retrouver plus régulièrement.

  • Like 3

Partager ce message


Lien à poster
Partager sur d’autres sites

Hier j'ai importé mes 2 premiers modules dans la HC3 :60:

Mais paf, un bug pour les gérer dans GEA :mellow:

J'explique. J'ai détourné un capteur d'eau Everspring pour vérifier le niveau d'une cuve d'eau pour mon aquarium. S'il y a de l'eau, la petite pompe fonctionne, sinon, ca coupe ma prise connectée pour pas griller la pompe.

-- Gestion de l'osmolateur
    GEA.add({{"Value","Réserve Némo",1},{"Value","Osmolateur Némo",0}},30,"&-1&OSMOLATEUR : Mise en marche de l'osmolateur",{"turnOn","Osmolateur Némo"})
    GEA.add({{"Value","Réserve Némo",0},{"Value","Osmolateur Némo",1}},30,"&0&OSMOLATEUR : Réserve vide - Arrêt de l'osmolateur",{"turnOff","Osmolateur Némo"})

Problème : la pompe se coupe tout le temps, quelque soit l'état du capteur d'eau...

J'ai essayé d'inverser les 0 & 1, j'ai tenté un true/false... c'est tout pareil...

J'ai tenté de comprendre en regardant l'api du module (en passant, c'est pas mal cette fonctionnalité de la HC3)

{
    "id": 36,
    "name": "Réserve Némo",
    "roomID": 225,
    "view": [],
    "type": "com.fibaro.floodSensor",
    "baseType": "com.fibaro.lifeDangerSensor",
    "enabled": true,
    "visible": true,
    "isPlugin": false,
    "parentId": 35,
    "viewXml": false,
    "configXml": false,
    "interfaces": [
      "battery",
      "fibaroBreach",
      "zwave",
      "zwaveConfiguration",
      "zwaveWakeup"
    ],
    "properties": {
      "pollingTimeSec": 0,
      "wakeUpTime": 4000,
      "zwaveCompany": "Everspring",
      "zwaveInfo": "6,2,64",
      "zwaveVersion": "1.3",
      "batteryLevel": 100,
      "batteryLowNotification": true,
      "categories": [
        "remotes"
      ],
      "configured": true,
      "dead": false,
      "deadReason": "",
      "defInterval": 0,
      "deviceControlType": 0,
      "deviceIcon": 45,
      "emailNotificationID": 0,
      "emailNotificationType": 0,
      "endPointId": 0,
      "lastBreached": 1606982743,
      "log": "En attente du réveil",
      "logTemp": "TxtGreen",
      "manufacturer": "",
      "markAsDead": true,
      "maxInterval": 0,
      "minInterval": 0,
      "model": "",
      "nodeId": 2,
      "parametersTemplate": 22,
      "pendingActions": true,
      "productInfo": "0,96,0,11,0,1,1,3",
      "pushNotificationID": 0,
      "pushNotificationType": 0,
      "saveLogs": true,
      "serialNumber": "",
      "smsNotificationID": 0,
      "smsNotificationType": 0,
      "stepInterval": 0,
      "useTemplate": true,
      "userDescription": "",
      "value": true
    },
    "actions": {
      "getParameter": 1,
      "reconfigure": 0,
      "setInterval": 1,
      "setParameter": 2
    },
    "created": 1606924157,
    "modified": 1606924157,
    "sortOrder": 19
  },

 

Partager ce message


Lien à poster
Partager sur d’autres sites

je vais peut être dire une bêtise, mais dans tes actions "turnOn" et "turnOff", tu ne spécifie pas l'ID du module qui pilote la pompe.


Et il me faudrait le log de GEA aussi au moment où l'événement se déclenche

Partager ce message


Lien à poster
Partager sur d’autres sites

Je n'ai pas de problème avec l'action qui est réalisée mais les conditions de déclenchement.

Et c'est bien le capteur d'eau qui pose problème.

[03.12.2020] [11:23:49] [DEBUG] [QA_GEA_26]: @30s [Validation*] #10 [Value, ["Réserve Némo",1]][Value, ["Osmolateur Némo",0]][TurnOn, ["Osmolateur Némo"]]

[03.12.2020] [11:23:49] [TRACE] [QA_GEA_26]:    [Démarrage] #10 [Value, ["Réserve Némo",1]][Value, ["Osmolateur Némo",0]][TurnOn, ["Osmolateur Némo"]]

[03.12.2020] [11:23:49] [DEBUG] [QA_GEA_26]:         [action] [TurnOn, ["Osmolateur Némo"]]

[03.12.2020] [11:23:49] [DEBUG] [QA_GEA_26]: @30s [Validation*] #11 [Value, ["Réserve Némo",0]][Value, ["Osmolateur Némo",1]][TurnOff, ["Osmolateur Némo"]]

[03.12.2020] [11:23:49] [TRACE] [QA_GEA_26]:    [Démarrage] #11 [Value, ["Réserve Némo",0]][Value, ["Osmolateur Némo",1]][TurnOff, ["Osmolateur Némo"]]

[03.12.2020] [11:23:49] [DEBUG] [QA_GEA_26]:         [action] [TurnOff, ["Osmolateur Némo"]]

Modifié par Dragoniacs

Partager ce message


Lien à poster
Partager sur d’autres sites

OK merci, je vais jeter un oeil au code et essayer de trouver ce qui coince dans la détection

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est beau :-) ce debug

 

Envoyé de mon BND-L21 en utilisant Tapatalk

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@Dragoniacs j'ai identifié le bug, qui est particulièrement vicieux.... j'ai du mal à le corriger.

En fait je l'ai corrigé, mais ça a entrainé une cascade de nouveaux bugs !

Donc je planche dessus.... mais je vais y arriver... à suivre

 

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

×