
jjacques68
Membres confirmés-
Compteur de contenus
4 349 -
Inscription
-
Dernière visite
-
Jours gagnés
39
Tout ce qui a été posté par jjacques68
-
Hello ! voici ma méthode pour faire remonter la valeur d'un capteur de la HC2 vers la HC3 dans QA. Le QA est typé "Door Sensor" avec les icones qui vont bien voici le code du QA : avec la méthode "set" appelée par la HC2 function QuickApp:set(MyValue) self:debug(MyValue) if MyValue == tonumber(0) then MyValue = false else MyValue = true end self:updateProperty('value', MyValue) self:updateView("label", "text", tostring(MyValue)) end et voici le code de la HC2 : --[[ %% properties 57 value %% events %% globals --]] local http = net.HTTPClient() --connexion à la HC2 local Command = "http://192.168.2.60/api/callAction?deviceID=36&name=set&arg1="..fibaro:getValue(57, "value") http:request(Command, { options = { headers = { ['Authorization']='Basic YWRtxxxxxxxxxx', ['Content-type']='application/x-www-form-urlencoded' }, method = 'GET' }, success = function(response) print("OK "..response.status) end, error = function(response) print("NOK "..response) end }) la requête est un peu lourde... mais ça marche très bien. De cette manière, on peut utiliser un capteur pas encore migré sur la HC3, autant en interrogeant sa valeur que comme trigger de scène. J'arrive pas à trouver la syntaxe pour faire du POST... m'énerve ces syntaxes de requête... Mais du coup, ça fait une scene pour un capteur et donc un QA. Les QA j'aurais pas le choix, c'est comme un device. Mais pour la HC2, c'est me fait ch... de faire une scène par capteur... faut que je réfléchisse encore...
-
si je pouvais aussi avec un PUT comme l'a fait @TonyC mais cela ne marchera pas pour les remonté de capteurs, je souhaite avoir qqch de plus générique... mais je sais pas si je vais trouver comment faire. Si les capteurs sont juste des valeurs à exploiter dans les scènes, je pourrais les stocker dans une VG tableau... Mais s'ils doivent être trigger d'une scène, vais être obligé de passer par un QA spécifique à chaque capteur
-
et bien ça marche nickel ça !! viens de tester... je remonte la valeur d'une VG de la HC2 dans une VG de la HC3 en passant par un QA... cela me permet dans ce cas, d'avoir mon statut Present/Absent sur la HC3... Maintenant faut que je réfléchisse pour avoir un système générique, pas trop envie de créer une multitude de scènes sur le HC2 et de QA sur le HC3, juste pour le temps de la migration...
-
bon je me réponds tout seul, il manquait un "s" à "option"...
-
Hello ! j'essaye de faire fonctionner une requête HTTP qui marche parfaitement bien depuis l'outil Advanced REST, mais que je n'arrive pas à transposer dans la HC2 : voici le code : local http = net.HTTPClient() --connexion à la HC3 local Command = "http://192.168.2.60/api/callAction?deviceID=35&name=State&arg1=toto" http:request(Command, { option = { headers = { ['Authorization']='Basic YWRtaxxxxxxxxxxxx', ['Content-type']='application/x-www-form-urlencoded;' }, method = 'GET' }, success = function(response) print("OK "..response.status) end, error = function(response) print("NOK "..response) end }) et j'ai en retour : OK 401 401 = utilisateur non authentifié Je fais quoi comme erreur ? merci à vous !!
-
ben j'avais vu ça... mais alors faut vachement extrapoler...
-
alors j'ai essayé sans le close, même résultat. mais le QA ne plante pas, (du moins j'ai pas le message du crash comme j'ai déjà eu) J'ai essayé de faire un Open à chaque envoi (un peu comme sur la HC2), mais ça marche pas non plus. On dirait qu'on a perd de la réactivité avec ces sockets. Pourtant tant que tu redémarres pas le serveur TCP, ça marche nickel !!
-
Encore moi désolé j'ai tendance à bombarder le forum de questions, mais je vous promets que je cherche des réponses avant de poster Alors on en avait un peu discuté avec @Lazer je crois, mais je me rends compte que les Trigger dans les scènes semblent être plus compliqués... Je m'explique : Je veux qu'une scène soit triggée lorsque qu'un Wall Plug (pour cette exemple) change d'état. Et bien je suis obligé de mettre 2 lignes de conditions, une pour tester le "True" et pour le "False". { operator = "any", conditions = { {type = "device", id = 34, property = "value", operator = "==", value = true, isTrigger = true}, {type = "device", id = 34, property = "value", operator = "==", value = false, isTrigger = true} } } Je pensais qu'il était possible, par exemple, d'en avoir qu'une : { operator = "any", conditions = { {type = "device", id = 34, property = "value", operator = "!=", value = 2, isTrigger = true}, } } Mais visiblement, il n'accepte (pour ce type de module) que le "True" et "False" comme "value". Alors imaginons maintenant que cette scène doit être triggée par tout tout tout plein de device ! La liste des conditions va exploser, minimum le double que ce qu'on faisait sur la HC2 !! c'est un peu bof comme méthode non ? où je me trompe complètement !
-
yes !! merci @Krikroff ! ça marche nickel ! Mais où as tu ces informations, elles ne sont pas renseignées dans les pages d'aide de Fibaro ?
-
Hello tout le mode ! On a visiblement plus le getSourceTrigger dans la HC3 du coup pour une scène qui a comme trigger ce genre de chose : { operator = "any", conditions = { { type = "device", id = 10, property = "value", operator = "==", value = true, isTrigger = true }, { type = "device", id = 12, property = "value", operator = "==", value = true, isTrigger = true } } } et qu’on cherche à savoir qui à déclenché la scène ? comment fait-on ? merciiiii !
-
J'ai fais comme tu dis : function QuickApp:onInit() self.sock = net.TCPSocket() self.ip = self:getVariable("IP") self.port = tonumber(self:getVariable("Port")) self:Open_Socket() end function QuickApp:Open_Socket() self.sock:connect(self.ip, self.port) self:debug("Socket open") end function QuickApp:Close_Socket() self.sock.close() self:debug("Socket close") end function QuickApp:Send(MaTrame) --affiche la trame dans le label self:updateView("LBL_Buffer", "text", tostring(MaTrame)) --envoi la trame self.sock:write(MaTrame, { success = function() self:debug("data sent") end, error = function(err) self:debug("error : "..err) self:Close_Socket() fibaro.setTimeout(5000, function() self:Open_Socket() self:Send(MaTRame) end) end }) end Le comportement est vraiment étrange : - tout est toujours ok au démarrage du QA. - mais après redémarrage du serveur TCP, pareil la 1ère trame envoyée me répond "data sent", mais je vois toujours rien ! - à la 2ème trame, j'ai l'erreur "Broken Pipe" (logique je comprends...) - et le setTimeout semble prendre après très très longtemps (plus que les 5 secondes) : j'ai le "Socket Open" qui arrive après 10 s !! - et la trame n'a pas été renvoyée étrange tout ça
-
Bonjour à tous, Pour ceux qui ont commencé à jouer avec la HC3, j'ai une petite question : J'ai un QA qui envoie des trames sur une socket TCP vers un serveur. ça marche avec ce code (je vois mes trames arriver sur le serveur) : function QuickApp:onInit() self:debug("onInit") self:Open_Socket() end function QuickApp:Open_Socket() self.ip = self:getVariable("IP") self.port = tonumber(self:getVariable("Port")) self.sock = net.TCPSocket() self.sock:connect(self.ip, self.port) end function QuickApp:Send(MaTrame) --affiche la trame dans le label self:updateView("LBL_Buffer", "text", tostring(MaTrame)) --envoi la trame self.sock:write(MaTrame, { success = function() self:debug("data sent") end, error = function(err) self:debug("error while sending data") self.sock:close() fibaro.sleep(200) self:Open_Socket() fibaro.sleep(200) self:Send(MaTrame) end }) end Donc en gros, J'ouvre la socket au démarrage du QA, et j'envoi la trame sur appel de la méthode Send(MaTrame) Actuellement je passe par un bouton dans le QA pour déclencher l'envoi, plus tard ce sera fait par scène, bref... le problème est pas là. Le soucis est que si le serveur TCP redémarre, je n'arrive plus à relancer la connexion depuis le QA ! malgré ces lignes : self.sock:close() fibaro.sleep(200) self:Open_Socket() fibaro.sleep(200) self:Send(MaTrame) où je ferme la précédente socket, je la ré-ouvre, et je renvoi la trame (le tout temporisé) ! Et bien au premier essai, après redémarrage du serveur TCP, il me répond que la trame a bien été envoyé. Et biensûr j'ai rien vu arriver sur le serveur. Au deuxième essai il boucle indéfiniment en me disant "error while sending data". Comment peut-on réinitialiser la socket proprement, et relancer la trame qui n'a pas pu être envoyée !! des idées ???? merciiiiiiiiiiiiii !
-
j’attends surtout avec impatience le bluetooth pour virer jeedom
-
trop fort, je pilote l'IPX depuis la HC2, et je reçois le retour d'état sur la HC3 bon je sais c'est pas vraiment le but...
-
j'ai rien dit !!! fallait mettre tostring dans l'affichage function QuickApp:essai(arg) self:updateView("label", "text", tostring(arg)) end et ça marche nickel ! @Krikroff @Lazer, oui j'ai la tête qui explose d'idées
-
alors je pense pas que ce soit un problème d'accès car je vois bien dans l'icone en haut à droite, le user créé pour l'IPX. J'ai bien accordé les droits d'accéder au QA pour ce user... mais il se passe rien... et rien dans le debug... J'utilise ça dans le message push de l'IPX : /api/callAction?deviceID=28&name=essai&arg1=1 où "essai" est : function QuickApp:essai(arg) self:updateView("label", "text", arg) end
-
mouai, j'ai craqué, suis entrain d'essayé, mais ça marche pô
-
alors je peux pas essayer maintenant, mais est ce qu'on peut appeler les méthodes de QA depuis l'extérieur ? genre depuis un IPX (V2 = pas de POST) j'ai ça dans les commande push des sortie (pour actionner un bouton d'un VD) : /api/callAction?deviceID=266&name=pressButton&arg1=1 on peut imaginer : /api/callAction?deviceID=266&name=Ma_Methode_QA&arg1=1 ????
-
ah, j'espère qu'ils vont corriger ça !! parce ces QA semblent être vraiment de la bombe !!! On déclare une fonction dedans, et on accède à cette fonction depuis les scènes et le passage d'arguments -----> on va économiser un paquet de VG avec ce système !! c'est nickel ça !!
-
allé c'est parti Pour les heureux possesseur d'une HC3, arrivez-vous à afficher les QA dans l'application Mobile ?
-
Ben moi ça y est je suis en plein de dedans... Viens de la recevoir...
-
Home Center 3 présentée au CES 2020
jjacques68 a répondu à un(e) sujet de eric_le_belge dans Annonces et suggestions
ah ben punaise oui tu as raison ! je viens de relire les doc vite fait... et bien ça va simplifier les choses ça cool !! -
Home Center 3 présentée au CES 2020
jjacques68 a répondu à un(e) sujet de eric_le_belge dans Annonces et suggestions
ha bon ? depuis toujours ça ? -
Home Center 3 présentée au CES 2020
jjacques68 a répondu à un(e) sujet de eric_le_belge dans Annonces et suggestions
Ouuuiiii mais ! Un petit peu d’aventure ne fait pas de mal !! Envoyé de mon iPhone en utilisant Tapatalk Pro -
Home Center 3 présentée au CES 2020
jjacques68 a répondu à un(e) sujet de eric_le_belge dans Annonces et suggestions
Et ben non ! Mais je vais y aller tranquillou... Sauf si ça va comme je veux et je sens que je vais y passer des soirées, nuits, week-end entier dessus !! Envoyé de mon iPhone en utilisant Tapatalk Pro