jjacques68
Membres confirmés-
Compteur de contenus
4409 -
Inscription
-
Dernière visite
-
Jours gagnés
40
Tout ce qui a été posté par jjacques68
-
ben oui mais d’après ce qu’il disait, même pendant la calibration, le moteur forçait...
-
alors les icônes, c’est un bug. il a été remonté. ce sera corrigé avec une mise à jour.
-
ah ok ! et ce serait pas un erreur de branchement électrique ? Parce que la je sèche, si d'autres membres pouvaient passer
-
Tu as quoi comme interrupteur pour piloter manullement les volets ? des boutons poussoirs ou des simples inverseurs ?
-
alors là ! ça va être chiant mais tu peux nous communiquer tes paramètres de 3 à 29 ?
-
étrange ça c'est qu'elle module Z-Wave ?
-
dans l'onglet "Advanced" de device, tu as un bouton "Start Calibration". clique dessus et laisse le faire. Chez moi je l'ai fait pour chaque volet. Il me semble que ça lui permet de trouver les butées !
-
merciiiiiii !
-
et c'est volontaire ?
-
aaaaah encore un truc étrange : on a pas le même résultat pour la commande suivant que l'on soit dans une scène ou dans un QA : fibaro.getGlobalVariable("") dans une scène, on a bien la valeur de la VG. Mais dans un QA on a la valeur + je pense, le TimeStamp de la dernière modification
-
Après avoir mis la box en mode apprentissage, il faut que tu fasses une manipulation sur le module que tu veux inclure : Triple appui sur le bouton B (quoique j'ai des modules qui sont pris au premier appui)
-
oui oui bravo à eux ! et pour les dirigeants, dans toute leur splendeur, no comment.
-
oui moi j’ai la chance d’être dans une maison avec jardin, donc je peux tenir aussi. j’ai la HC3 qui va beaucoup m’occuper après ce sera ménage jardinage... mais après...
-
mouai j’ai l’impression que les gens ne vont, pas tenir longtemps. je constate, par rapport au premier jour, de plus en plus de mouvements.
-
nan pas du tout. ça craint. ça craint sur tous les plans.
-
c’est un peu pareil...
-
ben j’aurai bien aimé moi, mais la boîte a pas voulu.
-
ah nan pas de télé travail !!!
-
et bien j’ai fais des essais, et si la socket tombe, le tableau à l’air de garder les infos, car je les vois arriver dès que je remets le serveur en route. elles apparaissent bien en premier. et le tableau continue à stocker les données suivantes. ben écoute je pense que ça va le faire comme ça... je vais surveiller ça sur le long. là j’ai continué à migrer d’autres device. Suis loin d’avoir fini... merci pour ton aide précieuse @Krikroff
-
bon c'est fait, c'était pas la mort à faire... ça à l'air ok. mais je suis sceptique sur l'appel de la méthode "send", que j'ai peut-être trop souvent inséré dans le code... si tu as 5 minutes, peux tu y jeter un oeil ? merciiii ! --------------------------------------------------------------------------------------- -- 12/03/2020 - V1 : permet d'envoyer les infos des device vers Display Soft -- 19/03/2020 - V2 : utilise un tableau pour faire du FIFO --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- function QuickApp:onInit() self:debug("onInit") self:setVariable("Status", "0") self:updateProperty("value", false) self.ip = self:getVariable("IP") self.port = tonumber(self:getVariable("Port")) self.sock = net.TCPSocket() self.ListElement = {} self:connect() end --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- function QuickApp:connect() self.sock:connect(self.ip, self.port, { success = function() self:setVariable("Status", "1") self:updateProperty("value", true) self:debug("OPEN - connected") self:waitForResponseFunction() self:send() end, error = function(err) self:setVariable("Status", "0") self.sock:close() self:debug("OPEN ERROR - "..err) fibaro.setTimeout(500, function() self:connect() end) end, }) end --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- function QuickApp:close() self.sock:close() self:updateProperty("value", false) end --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- function QuickApp:waitForResponseFunction() self.sock:read({ success = function(data) self:debug("RX - "..data) self:waitForResponseFunction() end, error = function(err) self:setVariable("Status", "0") self:debug("READ ERROR - "..err) self.sock:close() fibaro.setTimeout(200, function() self:connect() end) end }) end --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- function QuickApp:send() if self:getVariable("Status") == "1" then if self.ListElement[1] then self.sock:write(self.ListElement[1].."\r", { success = function() table.remove(self.ListElement,1) if #self.ListElement > 0 then self:send() end end, error = function(err) self:setVariable("Status", "0") self:debug("WRITE ERROR - "..err) self.sock:close() fibaro.setTimeout(200, function() self:connect() end) end }) end end end --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- function QuickApp:AddElement(element) if element ~= "" then table.insert(self.ListElement,element) self:send() end end
-
oui j'ai compris. bon ben y a plus cas.
-
une VG avec les data séparées par un séparateur ? tant que la VG est <> "" on traite un par un ? La scène n'envoie pas directement sur la socket, mais rempli cette VG ? (super... en lua ... )
-
@Krikroff tu avais raison, c'est la commande "read" qui permet de détecter une déconnexion : "End of file". La reconnexion est donc quasi immédiate (1 seconde max). sauf que si une commande write est envoyée pendant ce temps, c'est la merde total. pas réussi à empêcher d'une manière propre le "write" si plus de connexion. la seule chose qui me fait qqch de stable, c'est : d'avoir créé une variable "Status" dans le QA, qui prend 1 ou 0 selon le status de la socket. Alors attention, surtout pas passer la variable à 0 dans la méthode "close". ça prend trop de temps de traitement. Il faut la mettre à 0 dès qu'on intercepte l'erreur. je teste, avant de faire le "write", le status de cette variable. si 1 j'envoie, si 0 j'envoie pas, le paquet est perdu ! j'ai essayé de mettre, juste avant la commande write: while self:getVariable("Status") == 0 do fibaro.sleep(100) end mais dans le cas où Status = 0, le QA se fige, pas de crash, pas d'erreur, rien ! Dommage ça m'aurait évité de perdre des paquets... punaise, j'utilise des sockets partout au boulo entre les automates et des PC pour récupérer des données !! jamais vu ça !! Voici le code, si qqun a une solution !! je suis preneur ! function QuickApp:onInit() self:setVariable("Status", "0") self:debug("onInit") self.ip = "192.168.2.8" self.port = tonumber("2000") self.sock = net.TCPSocket() self:connect() end function QuickApp:connect() self.sock:connect(self.ip, self.port, { success = function() self:setVariable("Status", "1") self:debug("OPEN - connected") self:waitForResponseFunction() end, error = function(err) self:setVariable("Status", "0") self.sock:close() self:debug("OPEN ERROR - "..err) fibaro.setTimeout(2000, function() self:connect() end) end, }) end function QuickApp:close() self.sock:close() end function QuickApp:waitForResponseFunction() self.sock:read({ success = function(data) self:debug("RX - "..data) self:waitForResponseFunction() end, error = function(err) self:setVariable("Status", "0") self:debug("READ ERROR - "..err) self.sock:close() fibaro.setTimeout(200, function() self:connect() end) end }) end function QuickApp:send(strToSend) if self:getVariable("Status") == "1" then self.sock:write(strToSend.."\n", { success = function() --self:debug("TX - "..strToSend) end, error = function(err) self:setVariable("Status", "0") self:debug("WRITE ERROR - "..err) self.sock:close() fibaro.setTimeout(200, function() self:connect() end) end }) end end
-
idem en passant par une VG
-
bon ben mon principe de sémaphore ne fonctionne pas. Manque de réactivité entre le changement d'état du QA et la scène...
