chelson Posté(e) le 7 mai 2022 Signaler Posté(e) le 7 mai 2022 Hi, J'essaie de capturer les données "broadcast" UDP envoyées par une Pompe à chaleur grace aux fonction UDP socket de la HC3 ? Mais cela ne fonctionne pas... Auriez-vous une idée ? Voici le code d'essai... function QuickApp:onInit() self.udp = net.UDPSocket({ broadcast = true, timeout = 5000 }) local payload = string.char(0x0D,0x0A) self.udp:sendTo(payload, '102.168.0.110', 1031, { success = function() self:receiveData() end, error = function(error) self:debug('Error Send:', error) end }) end function QuickApp:receiveData() self.udp:receive({ success = function(data) self:debug("Received:",data) self:receiveData() -- will read next datagram end, error = function(error) self:error("Error Receive:", error) end}) end The return is [02.05.2022] [19:47:45] [ERROR] [QUICKAPP169]: Error Receive: Operation canceled [02.05.2022] [19:48:24] [ERROR] [QUICKAPP169]: Error Receive: Operation canceled Voici une capture du traffic réseau.
Lazer Posté(e) le 7 mai 2022 Signaler Posté(e) le 7 mai 2022 D'après la capture du trafic, on voit que ta PAC ne répond pas au broadcast (255.255.255.255) Donc enlève : broadcast = true, dans ton code LUA
chelson Posté(e) le 8 mai 2022 Auteur Signaler Posté(e) le 8 mai 2022 Merci pour ta réactivité (comme d'habitude) Lazer, ! Malheureusement, cela ne change rien ;-( En fait, la PAC envoie directement des broadcast UDP sur tout le réseau sans qui il soit nécessaire d'envoyer des données. L'erreur 'Operation canceled' vient de la fonction 'ReceiveData' et pas du 'udpSend'. En fait j'essaie d'ouvrir la communication UDP antre la PAC et ma HC3 en exécutant en 'udpsend' à l'adresse de la PAC de manière à pouvoir lire ces datagramme UDP avec la HC3. En résumé, je voudrais juste lire les broadcasts envoyés par la PAC 192.168.0.110 vers 255.255.255.255:1031, les de la PAC ne sont pas envoyée en UDP mai bien en TCP sur le port 4000 (ou via une interface Web) Une autre idée ? Merci
Lazer Posté(e) le 8 mai 2022 Signaler Posté(e) le 8 mai 2022 Dans ce cas, pas certain que la HC3 permette d'écouter les broadcast du réseau, je ne pense pas que ça soit prévu. J'avais bien vu dans ton log que l'erreur provenant du receive(), mais c'est justement parce que la HC3 considère qu'elle ne reçoit rien (malgré les paquets envoyés précédemment) que tu as cette erreur. Tant que ta PAC enverra en broadcast, tu ne recevras rien dans ton code LUA, car ce n'est pas une réponse à un paquet destiné à la HC3. Mais si tu dis que tu peux communiquer en TCP, pourquoi ne pas utiliser ce protocole ?
Messages recommandés