PatrickVH Posté(e) le 17 juillet 2015 Signaler Partager Posté(e) le 17 juillet 2015 Bonjour, d'abord mes excuses pour la mauvaise language, ma language maternelle est le néerlandais :-) J'ai réussi à commander (ON/OFF/STOP) mon système BTicino MyHome avec des VD's --> commandes HTTP POST F452 = Net.FHttp("192.168.1.35",80) jsonString = {Light="On"} jsonTable = json.encode(jsonString) fibaro:log(jsonTable) response, status, errorCode = F452:POST("/illumina.php?pag=5&tasto=1&azione=1", jsonTable ) fibaro:log(response) if errorCode == 0 then fibaro:log(status) else fibaro:log("error") end Afin d'améliorer l'usage je veux interrogé le status de la module BTicino avec le fonctionnement MAIN LOOP Je sais acquérir le status des modules avec une session telnet sur port 20000 du serveur BTicino. La session: 1. open session: - client -> server: telnet <IP du serveur BTicino, PORT 20000> - server -> client: commande de confirmation de la session par le serveur: *#*1## 2. status request d'une module BTicino: - client -> server: envoyé le commande "*1*33##" - server -> client: réponse "*1*1*33##" - server -> client: confirmation de la session "*#*1##" Note: la confirmation (le ack) de la session est toujours le même "*#1##" Comme je ne suis que débutant en LUA, est-ce qu'il y qqn qui puisse m'aider à écrire le script pour le MAIN LOOP? But du script main loop: 1. acquérir le status de la module BTicino au moment de l'activation du VD 2. changer l'icône du VD Optionel: 3. changer le status d'une GLOBAL VARABLE. Comme c'est un projet qui peut mise à niveau le système de beaucoup d'utilisateurs BTicino MyHome je vais partager le VD, y inclus tuto et les noms des gens qui ont aidé. Espérant d'avoir un peu d'aide des gens de la communauté Fibaro FR... Bav, Patrick 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 18 juillet 2015 Signaler Partager Posté(e) le 18 juillet 2015 Salut, Je ne comprends pas bien ce qu'est BTcino, mais si avec un VD tu fais ON/OFF/STOP, pourquoi pas ne pas passer par une VARIABLE GLOBALE pour connaitre le STATUT ON/OFF/STOP ? Créé une VARIABLE GLOBALE "STATUT" par exemple dans le panneau variable Dans ton VD lorsque tu mets à ON ton BTcinio, tu mets à ON ta VARIABLE GLOBALE "STATUT" comme cela : -- STATUT à ON fibaro:setGlobal("STATUT", "ON") --Connaitre la valeur de la variable globale : local statut = fibaro:getGlobalValue("STATUT") --debug fibaro:debug("STATUT est:" ..statut) --Affichage dans un label fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label2.value", statut) --Changement icone selon valeur du STATUT, methode simple pour comprendre -- Affichage icone local numiconeon = xxx local numiconeoff = xxx local numiconestop = xxx local id = fibaro:getSelfId() if ( fibaro:getGlobalValue("STATUT") == ("ON") ) then fibaro:call(id ,"setProperty","currentIcon", numiconeon) elseif (fibaro:getGlobalValue("STATUT") == ("OFF") ) fibaro:call(id ,"setProperty","currentIcon",numiconeoff) else fibaro:call(id ,"setProperty","currentIcon",numiconestop) end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shyrka973 Posté(e) le 18 juillet 2015 Signaler Partager Posté(e) le 18 juillet 2015 Salut, Essaies de passer "Net.FTcpSocket" comme cela: local ip = "192.168.1.40" local port = 20000 function GetTcp(cmd) -- construct the sting to send local stringtosend = cmd .. string.char(10) --open the socket local tcpSocket = Net.FTcpSocket(ip, port) --set the read timeout tcpSocket:setReadTimeout(2*1000) --send the command local bytes, errorCode = tcpSocket:write(stringtosend) -- Transforme "result" en chaine de caractere return tcpSocket:read() or string.char() end local res = GetTcp("*1*33##") if res == "*1*1*33#" then fibaro:debug("Ok") else fibaro:debug("Error: " .. res) end Lien vers le commentaire Partager sur d’autres sites More sharing options...
BenjyNet Posté(e) le 19 juillet 2015 Signaler Partager Posté(e) le 19 juillet 2015 @PatrickVH Bravo pour le partage et l'effort de traduction en français. Félicitation à vous. @pepite BTicino est une marque ! http://www.bticino.fr/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Did Posté(e) le 19 juillet 2015 Signaler Partager Posté(e) le 19 juillet 2015 Rachetée par Legrand. Lien vers le commentaire Partager sur d’autres sites More sharing options...
PatrickVH Posté(e) le 19 juillet 2015 Auteur Signaler Partager Posté(e) le 19 juillet 2015 Un très grand merci pour votre aide @pepite et @shyrka973, vraiment apprécié! concernant le code de shyrka973, je suis arrivé sur un nouveau problème. Avec ce code il y a une connection avec le serveur de BTicino, par contre le message retourné est "*1*1*33##*#*1##" au lieu de "*1*1*33##" J'ai remplacé la ligne 19 du script comme: "if res == "*1*1*33##*#*1##" then" Le résultat du debug est toujours "*#*1##". Donc, avec la code de @shyrka973, le Home Center reprend uniquement le ACK (*#*1##) du serveur et pas la première partie "*1*1*33##" qui est le status. Dans la documentation du serveur je retrouve que la chaine de commande a trois étappes: 1. client -> server: request status (ici *1*33##) 2. server -> client: status report (ici *1*1*33#) 3. server -> client: acknowledgement (ici *#*1##) Est-ce qu'il existe une methode pour programmé cette chaine de commande en LUA? Bav, Patrick Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 20 juillet 2015 Signaler Partager Posté(e) le 20 juillet 2015 ah merci messieurs pour ma culture, javoue je n'avais pas utilisé g??le non plus ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pocket998 Posté(e) le 2 février 2017 Signaler Partager Posté(e) le 2 février 2017 @PatrickVH Bonjour, je viens aux nouvelles, avez-vous réussi à créée une interface entre MyHome bticino ? Par exemple depuis l'application Fibaro est'il possible d'allumé la lumière sur MyHome ? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
PatrickVH Posté(e) le 14 février 2017 Auteur Signaler Partager Posté(e) le 14 février 2017 ça fonctionne depuis 2 ans sans interruption mais pas facile à intégrer et après intégration plus possible d'upgrader le home center Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés