Aller au contenu

QA & Envoi TCP


pilou87

Recommended Posts

Une question pour envoyer des commande à un projecteur MITSUBISHI
Sur ma HC2 cela fonctionné

-----

local tcpSocket = Net.FTcpSocket("192.168.1.5", 4352);
tcpSocket:setReadTimeout(350); 
tcpSocket:write("%1POWR 1");

sur ma HC3 rien ne fonctionne

---

-- Generic device type have no default actions to handle
-- Allume projecteur
 
function QuickApp:onInit()
    self:debug("Allumage projecteur demandé")
    self:allumeProjecteur()
end
 
function QuickApp:allumeProjecteur()
    self.sock = net.TCPSocket()
    self.sock:connect("192.168.1.5"4352, {
        success = function()
            self:debug("Vidéo-projecteur connecté")
            self:debug("Envoi commande allumage")
            self:send("%1POWR 1")
            self.sock:close() -- socket closed
        end,
        error = function(message)
            self:debug("connection error:", message)
        end,
    })
    
end
 
function QuickApp:send(strToSend)
    self:debug("data sent: "..strToSend)
    self.sock:write(strToSend, {
        success = function() -- the function that will be triggered when the data is correctly sent
            self:debug("data sent")
        end,
        error = function(err) -- the function that will be triggered in the event of an error in data transmission
            self:debug("error while sending data")
        end
    })
end
----
J'ai un retour qui me dit :
ERROR WHILE SENDING DATA
Quelqu'un peux-t-il m'aider. D'avance merci


 
Lien vers le commentaire
Partager sur d’autres sites

Re-bonjour,
je viens de trouver c'est un problème de timeout car l'ordre de fermeture

self.sock:close() -- socket closed
est à proscrire car ce type d'appareil ne dispose pas en général d'un buffer pour tamponner
l'envoi des caractères et l'ordre de fermeture est instantané.
Pour ceux qui possède un vidéo-projecteur, cela peux les aider.

Lien vers le commentaire
Partager sur d’autres sites

Excellente remarque.

Du coup je l'ai purement supprimé et cela fonctionne.
Je vais re-tester de cette manière, c'est plus propre. 
Je profite du post pour poser une question bête, mais je découvre les QA.
Dans les scénarios comment lancer un QA, considéré comme un appareil d'ailleurs...
Je débute la-dessus et il y a surement quelque chose que je n'ai pas vu.
Merci

Lien vers le commentaire
Partager sur d’autres sites

On ne lance pas un QA, celui-ci se lance automatiquement à chaque boot de la box ou sauvegarde du QA (après modif)

 

Tu peux lancer l'exécution d'une fonction d'un QuickApp, avec fibaro.call()

Voire chapitre Mapping actions to methods : https://manuals.fibaro.com/home-center-3-quick-apps/

 

ça me fait penser qu'il faudrait que je partage mon QuickApp pour vidéoprojecteurs Epson, mais pas sûr qu'il intéresse grand monde...

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Merci Lazer, je crois que comme moi tu es un des plus anciens à t'être intéresser à Fibaro, cela me fait plaisir
d'avoir eu une petite réponse. Toujours aussi réactif... 10 ans plus tard... on vieillit
Je viens enfin de piger le nouveau mode de pensée des QA et comme tu l'as dit dans un post c'est quand même
plus moderne que les boutons des plugins HC2.
Bonne journée.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...