Aller au contenu
Lazer

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

Recommended Posts

j'ai pas bien compris le role de tools

Partager ce message


Lien à poster
Partager sur d’autres sites

sur GEA 7.20 j'ai un code erreur 

[13.03.2021] [22:50:17] [ERROR] [QA_GEA_274]: certificate verify failed

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour

Je remonte, une info, mais je ne sais pas si cela correspond à un bug de GEA ou une incompréhension de ma part

J'expose le problème et on verra bien

 

A l'aide de GEA v7.20 Syntaxe.lua j'ai enfin pu aisément entré une ligne dans a config (encore merci pour le boulot Lazer). j'ai donc mis ceci :

	-- ==========================================================
        -- Ouvertures volets
        -- ==========================================================

        GEA.add({"Time", "Sunrise>07:40", "07:45"}, 60, "Ouverture volets", {"Open", {50, 51}} )
        GEA.add({"Time", "Sunrise>08:30", "09:00"}, 60, "Ouverture velux", {"Open", 60} )
        GEA.add({"Time", "Sunset+10"}, 60, "Fermeture volets", {"Close", {50, 51, 60}} )

Je me suis aperçu du soucis dès hier soir. les volets 50 et 51 ne se sont pas fermé, tandis que le 60 nickel (idem ce matin)

On vois pourtant l'action effectué correctement dans les logs

 

La grosse différence entre ces volets,  c'est que le 60 est un module qubino appairé sur la HC3 et les deux autre sont du somfy RTS et j'utilise le RFXCom avec domoticz comme passerelle. j'en déduit donc qu'il s’agit d'un problème de communication avec la passerelle domoticz

 

j'ai remarqué cette différence dans les logs de la HC3 lorsque GEA demande l'action par rapport à une demande depuis une scene sur la HC3 :

=> depuis GEA :

 

640629753_avecgea.thumb.png.4313b2efd855ad116c427abad2ccff7e.png

=> depuis une scenes de la HC3 :

 

1429189440_avecscenes.thumb.png.1c141230fcd668bd77e3f104d200f860.png

 

J’espère avoir été assez clair

 

Je vous remercie par avance de vos retour

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui, j'ai vu ça aussi. Il faut que tu fasses 2 commandes"open"
Les ID multiples ne sont pas prises en compte. @Lazer si tu passes par la ;)

Envoyé de mon RMX1993 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Euh... si, les ID multiples sont censés être pris en compte pour les actions Open et Close, c'est étrange ça.

Il faudra que je fasse des tests alors.

 

@manulemalin concernant tes volets RTS, si ça ne fonctionne pas, c'est que tes modules ne sont pas correctement configurés. Un com.fibaro.rollerShutter doit toujours répondre aux actions Open et Close. D'ailleurs si ce n'est pas le cas, alors ils sont probablement également inutilisable depuis l'interface Web ou l'application mobile.

Mais je pense que c'est totalement hors sujet ici. Je ne connais pas du tout ce QuickApp, il faut que tu ailles demander à son développeur.

 

Il y a 10 heures, 971jmd a dit :

j'ai tester le HTTPGET et ça ne fonctionne pas 

 

GEA.add(true0"off", {{"httpGet""https://admin:admin@192.168.XX.XX/api/callAction?deviceID=108&name=turnOff"}} )
 
et visiblement GEA 7.20 ne prend pas en charge les mots de passe  

Je n'ai pas implémenté les login/password pour les requêtes http, donc ça ne fonctionne probablement pas dans l'URL, ce qui est normal (c'est une syntaxe qui n'existe que dans les navigateurs Web, et qui d'ailleurs est fortement déconseillée depuis pas mal d'année....).

Je l'ajouterai à l'occasion, mais par contre, si c'est pour faire une requête de la box Fibaro, je ne vois pas l'intérêt de passer par ce chemin là ?

Tu peux soit utiliser une option native de GEA, ou bien utiliser getApi

L'option httpGet, je l'ai pensé pour d'autres usages, par exemple appeler une URL sur un NAS, un objet connecté, etc.

Elle est très limitée car GEA n'a pas non plus vocation à devenir un outil pour traiter des données externes, pour cela il vaut mieux avoir sa propre scène/QA à coté, éventuellement appelé par GEA

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, @Lazer

 

le test HTTPGET Avait pour but de communiquer avec un autre boxe HC2 sur meme réseaux. 

Et un autre teste que j’ai pas encore fair avec HTTPGET et te récupérer et d’envoyer toutes sortes de données depuis GEA  vers une base SQL, ce que je faisais avec ma box HC2 et ça fonctionnait super bien. 
 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah OK.
Bon j'ajouterai le login/password dans une prochaine version alors.

 

Pour ton second point, voilà exactement ce pour quoi GEA n'est pas fait !!!

C'est une gestionnaire de scénario avant tout.

Pour ton usage, tu peux utiliser un QuickApp (ou une scène) dédié, comme je fais avec DomoCharts par exemple, ou aussi @jjacques68 avec sa propre base de données.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je voulais aussi t'informer d'un crash sur GEA 7.20.  sous 5.0.63

 

GEA démarre très bien dans la configuration ci-dessous:

function config(GEA)
	-- ===================================================
	-- Configuration générale
	-- ===================================================
	GEA.debug = false
	GEA.portables = {216,219}
end

function setEvents()
	-- ==========================================================
	-- Règles utilisateur
	-- ==========================================================


	local id = {     }


	GEA.add(true, 0, "Démarrage de GEA 720 le #date# à #time#", nil, "Démarrage GEA 720")
	GEA.add({"Info+", "serverStatus", os.time()-120}, 0, "Box redémarrée le #date# à #time#", nil, "Démarrage box")
	GEA.add({"Info", "updateStableAvailable", true}, 24*60*60, "Une nouvelle version Stable est disponible", nil, "Détection nouvelle version stable")
	GEA.add({"Info", "updateBetaAvailable", true}, 24*60*60, "Une nouvelle version BETA est disponible", nil, "Détection nouvelle version beta")

 

mai si je rajoute par exemple entre les guillemets :    

local id = {  LAMPE_CH = 154   } par exemple,  bin c'est le crash total 

Bizarre

 

Actuellement tout va fonctionne tout simplement parce que j'ai du restaurer une sauvegarde de ma HC3

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, Lazer a dit :

@manulemalin concernant tes volets RTS, si ça ne fonctionne pas, c'est que tes modules ne sont pas correctement configurés. Un com.fibaro.rollerShutter doit toujours répondre aux actions Open et Close. D'ailleurs si ce n'est pas le cas, alors ils sont probablement également inutilisable depuis l'interface Web ou l'application mobile.

Mais je pense que c'est totalement hors sujet ici. Je ne connais pas du tout ce QuickApp, il faut que tu ailles demander à son développeur.

les commandes fonctionnent parfaitement depuis l'app mobile et l'interface web; d'ailleurs, la capture du log depuis la scène fonctionne parfaitement (c'est loguer et ça fonctionne).

Si je peux t'aider pour tester quelques choses ou si tu as besoin d'autres infos, n'hesite pas

Partager ce message


Lien à poster
Partager sur d’autres sites

Donne moi le lien vers le QA, j'irai regarder comment il est fait

Partager ce message


Lien à poster
Partager sur d’autres sites

heu... je suppose que tu veux une copie du de la QA d'un des volets

Si c'est bien ça, le voici

function QuickApp:open()
   self: debug ("roller shutter opened")
   self: updateProperty ("value", 99)
fibaro.call (self.id, "fcCommands", "Off")
end

function QuickApp:close()
   self: debug ("roller shutter closed")
   self: updateProperty ("value", 0)
fibaro.call (self.id, "fcCommands", "On")
end

function QuickApp:stopLevelChange()
   self: debug ("roller shutter stopped")
   self: updateProperty ("value", 50)
fibaro.call (self.id, "fcCommands", "stop")
end

function QuickApp: fcCommands(cmd)
local address = "http://192.168.50.9:8081/json.htm?type=command&param=switchlight&idx=4&switchcmd=" ..cmd
 
    self.http:request(address, {
        options={
            headers = { 
                Accept = "application/json"
            },
            checkCertificate = true,
            method = 'GET'
        },
        success = function(response)
            self:debug("response status:", response.status) 
            self:debug("headers:", response.headers["Content-Type"]) 
            local data = json.decode(response.data)
        end,
        error = function(error)
            self:debug('error: ' .. json.encode(error))
        end
    }) 
end

-- Value is type of integer (0-99)
function QuickApp:setValue(value)
    self:debug("roller shutter set to: " .. tostring(value))
    self:updateProperty("value", value)    
end

function QuickApp:onInit()
    self:debug("onInit")
     self.http = net.HTTPClient({timeout=3000})
end

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Mais c'est quoi ce QuickApp ?

Un QA que tu as créé toi même ?

 

En tout cas, je comprends mieux pourquoi ça ne fonctionne pas.

GEA appelle setValue(), et le code de cette fonction setValue ne fait rien du tout (à part mettre à jour le champ value)

Je suis pas sûr, mais je pense qu'il faudrait appeler la fonction fcCommands, puisque c'est ce qui est fait dans les fonctions open() et close()

 

Désolé, c'est définitivement HS ici, sur le topic de GEA.

 

PS : Et je maintiens ce que j'ai fait tout à l'heure, si tu fais glisser le slider de ton module volet roulant, que ça soit depuis l'application mobile ou l'interface Web, je vois pas bien par quelle magie ça pourrait agir sur le volet à la lecture du code.

Alors c'est sûr, si tu fais juste un open/close complet, ça marche, mais ça limite l'usage.

 

Modifié par Lazer

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui , c est le moyen que j ai trouvé pour les contrôler depuis Fibaro 

Effectivement, le slider ne fonctionne pas (pas gérer par le volet à l’origine non plus remarque LOL ), juste la montée, descente et stop 

 

c est donc de mon côté que ça bloque ;-)

merci d avoir pris le temps de regarder 

Partager ce message


Lien à poster
Partager sur d’autres sites

GEA peut planter, il peut y avoir des bugs, notamment dans la détection des conditions.

 

Mais les actions qu'il réalise sont assez basiques, il se contente d'appeler les actions standards sur les modules via l'API fournie par Fibaro.

Du coup quand une action fonctionne sur un module (Z-Wave physique) mais pas sur un QuickApp, c'est que le problème se situe probablement dans le QuickApp de l'utilisateur.


Et c'est là toute la magie et la difficulté des QuickApps sur HC3, ils permettent une intégration native dans la box, mais encore faut-il les programmer correctement et penser à tous les cas de figure. Pas toujours simple.

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@manulemalin : je veux pas faire de l'hors- sujet, mais tu pilotes quoi une passerelle RTS ? laquelle ?

Modifié par jjacques68

Partager ce message


Lien à poster
Partager sur d’autres sites

@jjacques68 j’utilise un module RFXCom avec domotictz sur un raspberry

Si tu veux en discuté, j'avais debuté un post la :

 

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai toujours une erreur avec mes profiles.

Je crois que c'est lié à la vérification de la variable cachée

[15.03.2021] [09:00:58] [ERROR] [QA_GEA_26]: Ajout auto #23 : ["Profile",["AWAY"]] ["Or",[["Value","Présence Belette",true],["Value","Présence Loup",true]]] => ["Profile",[["VariableCache","Previous_Profile"]]] Règle exclue : ./include/main.lua:1729: Profil manquant

Car toutes les autres lignes ne remontent pas d'erreur et je n'ai plus d'erreur quand je passe le self.control à "false"

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui c'est normal, je t'avais expliqué pourquoi.

Sinon en alternative, il faudrait peut être utiliser une variable globale à la place, car les VG sont persistantes, du coup la valeur du profil mémorisé sera correctement initialisé lors du démarrage de GEA, permettant de valider les vérifications du lancement.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok, pas de soucis, je pensais que tu avais pu intégrer aussi ça, mais je me débrouillerai sans :)

Envoyé de mon RMX1993 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Non, c'est le principe même de la vérification, elle est effectuée avant la première exécution des règles.

 

ça ne gêne pas de désactiver cette vérification pour le bon fonctionnement de GEA, le seul souci étant que tu peux passer à coté d'autres "vraies" erreurs potentielles dans d'autres de tes règles GEA.

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai toujours des soucis avec mes profiles.

Dans les CONDITIONS, GEA ne prend pas le nom du profile. Ma ligne ne se déclenche pas si je mets le nom du profil, mais elle fonctionne avec le numéro du profile.

Et lorsque je veux enregistrer le profil actuel, GEA note son numéro dans un format "string", qui du coup n'est pas compris dans les ACTIONS.

 

Désolée, @Lazer....

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu peux partager les lignes en question ?

Je m'en servira pour reproduire le problème.

Partager ce message


Lien à poster
Partager sur d’autres sites

J'air repris exactement les lignes que j'ai depuis le début et qui sont dans le fichier de syntaxe...

-- Gestion du mode "AWAY"
   GEA.add({{"Profile!","Vacances"},{"Value","Présence Belette",false},{"Value","Présence Loup",false}},30,"&-1&GEA HC3 : Personne à la maison, activation du mode AWAY",{{"Profile","Away"},{"Global","Previous_Profile","#profile#"}})
    GEA.add({{"Profile","Away"},{"Value","Présence Belette",true}},30,"&-1&GEA HC3 : Il y a du monde à la maison, retour au mode #Previous_Profile#",{"Profile",{"Global","Previous_Profile"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

OK, je regarderai ça

Partager ce message


Lien à poster
Partager sur d’autres sites

quelqu'un pourrait-il me dire ou se situe l'erreur dans cette ligne ? 

 

GEA.add( {"CustomEvent", "onCivilDusk"}, -1, "event onCivilDusk", {"Close", 199, 100} ) 

 

si j'ajoute cette ligne dans mon GEA, les cpu montent ) 50% et GEA part en cacahuète :-)

 

mais je ne vois pas ou est l'erreur 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×