Aller au contenu

jjacques68

Membres confirmés
  • Compteur de contenus

    4 368
  • Inscription

  • Dernière visite

  • Jours gagnés

    39

Tout ce qui a été posté par jjacques68

  1. jjacques68

    Question TCPSocket

    tu ne constates pas la même chose de ton côté ?
  2. jjacques68

    Question TCPSocket

    J'ai rien programmé comme réponses sur le serveur... du coup j'ai pas besoin de traité les read().
  3. jjacques68

    Question TCPSocket

    j'ai viré les sleep... ça change rien... [DEBUG] 18.03.2020 20:14:19: First send = OK [DEBUG] 18.03.2020 20:14:19: error sending data : Broken pipe [DEBUG] 18.03.2020 20:14:19: Socket closed [DEBUG] 18.03.2020 20:14:20: error sending first : Bad file descriptor [DEBUG] 18.03.2020 20:14:20: Socket closed [DEBUG] 18.03.2020 20:14:20: error opening socket : Operation canceled [DEBUG] 18.03.2020 20:14:20: error sending first : Bad file descriptor ...
  4. jjacques68

    Question TCPSocket

    J'ai l'impression que l'instruction close() ne libère pas les ressources correctement...
  5. jjacques68

    Question TCPSocket

    c'est celui sur lequel on avait déjà bossé : function QuickApp:onInit() self.sock = net.TCPSocket({timeout = 2000}) 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,{ success = function() self:debug("Socket opened") self.socketClosed = false self:updateProperty("value", true) self:Send("Hello") end, error = function(err) self:debug("error opening socket : ",err) self.sock:close() self.socketClosed = true self:updateProperty("value", false) end }) end ---------------------------------------------------------------- function QuickApp:Close_Socket() self.sock:close() self.socketClosed = true self:debug("Socket closed") self:updateProperty("value", false) end --------------------------------------------------------------- function QuickApp:Send(MaTrame) --reconnect if closed if self.socketClosed == true then self:Open_Socket() fibaro.sleep(3000) end --affiche la trame dans le label self:updateView("LBL_Buffer", "text", tostring(MaTrame)) --envoi la première trame d'essai self.sock:write("\n", { success = function() self:debug("First send = OK") --envoi la data self.sock:write(MaTrame.."\n", { success = function() self:debug("Data send = OK") end, error = function(err) self:debug("error sending data : "..err) self:Close_Socket() fibaro.sleep(500) self:Send(MaTrame) end }) end, error = function(err) self:debug("error sending first : "..err) self:Close_Socket() fibaro.sleep(500) self:Send(MaTrame) end }) end
  6. jjacques68

    Question TCPSocket

    euh je crois que ça vient d'un copier coller... inutile
  7. jjacques68

    Question TCPSocket

    si tu as le temps je veux bien, ça fait 5 heures que je fais toutes sortes d'essais... Ce qui est dingue, c'est que j'utilise le bout de code suivant (dan sun autre QA) pour un envoi unique et à la demande, et j'ai aucun soucis !! le truc, c'est dans ce cas là j'ouvre la socket à chaque envoi, chose que je peux pas faire dans l'autre QA, car il y aune grosse quantité de données envoyées à la suite... puis c'est pas normal... function QuickApp:TurnOffPc(Ip) self.sockOff:connect(tostring(Ip), tonumber(self:getVariable("Port")),{ success = function() self:debug("Socket OFF - opened") fibaro.sleep(100) self.sockOff:write("shutdown;YWRtaW5zaHV0ZG93bg==", { success = function() self:debug("Socket OFF - Data sended") end, error = function(err) self:debug("Socket OFF - error sending data : "..err) self:Close_SocketOff() fibaro.setTimeout(3000, function() self:TurnOffPc(Ip) end) end }) end, error = function(err) self:debug("Socket OFF - error opening : ",err) self:Close_SocketOff() fibaro.setTimeout(3000, function() self:TurnOffPc(Ip) end) end }) end
  8. jjacques68

    Question TCPSocket

    pffffffffffff... je trouve pas ce qui cloche ! Ce qui est sûr : - La connexion du QA est immédiate si le serveur est déjà lancé. - Si le serveur est redémarré, le QA n'arrive pas à se reconnecter malgré le code qu'on mis en place. Pour le refaire partir, je suis obligé de modifier n'importe quoi dans le QA afin de de pouvoir l'enregistrer et donc de le redémarrer. En gros : le serveur en premier, le QA en deuxième. L'inverse est impossible. Faut redémarrer le QA.
  9. jjacques68

    Question TCPSocket

    J'ai l'impression que les boucles dans le Open_Socket() et dans le Send() se prennent les pied dans le tapis...
  10. jjacques68

    Question TCPSocket

    ouai nan j'arrive pas réouvrir la socket ... j'ai cette erreur lors de la tentative de réouverture : pourtant, côté serveur je vois bien la demande arriver... et le serveur l'accepte bien
  11. jjacques68

    WakeOnLan

    en même temps, vu l’actualité, les gens ont peut être autre chose à faire
  12. jjacques68

    WakeOnLan

    pourtant j’ai pas l’impression que beaucoup de personnes possèdent une HC3... c’est plutôt calme les sujets...
  13. jjacques68

    Question TCPSocket

    mouai j’ai encore des difficultés de connexion au serveur ... je vais regardé ça demain. bon une fois que c’est ouvert c’est très stable.
  14. jjacques68

    WakeOnLan

    nan mais j’espère qu’ils vont quand même sortir une MAJ prochainement !
  15. jjacques68

    WakeOnLan

    du coup, j'allume avec la HC2 et j'éteins avec la HC3
  16. jjacques68

    WakeOnLan

    mais attend, le broadcast (en général) peut pas se faire sur une socket TCP ? c'est que pour l'UDP ?
  17. jjacques68

    WakeOnLan

    oui exacte, mais je le suis dis que je le passais sur une socket TCP... Ben visiblement non... Le broadcast passe pas
  18. nan c'est bien avec : alors va comprendre la différence de résultat... encore merci
  19. ah nos messages se croisent, j'essaye...
  20. oui, je viens d'arriver à l'avoir avec : print(PIRAutoID[1].id)
  21. ah punaise non, j'ai pas la même réponse ! voici depuis l'appel d'une scène : [{"baseType":"com.fibaro.actor","interfaces":["quickApp"],"actions":{"turnOff":0,"turnOn":0,"toggle":0},"name":"PIR_Room_232","modified":1584422260,"parentId":0,"type":"com.fibaro.binarySwitch","properties":{"deviceIcon":1011,"saveLogs":false,"logTemp":"","typeTemplateInitialized":true,"state":true,"log":"","uiCallbacks":[],"value":true,"userDescription":"","viewLayout":{"$jason":{"head":{"title":"quickApp_device_57"},"body":{"sections":{"items":[]},"header":{"style":{"height":"0"},"title":"quickApp_device_57"}}}},"categories":["other"],"deviceControlType":20,"smsNotificationType":0,"smsNotificationID":0,"dead":false,"emailNotificationID":0,"deadReason":"","manufacturer":"","pushNotificationType":0,"emailNotificationType":0,"quickAppVariables":[],"pushNotificationID":0,"mainFunction":"-- Binary switch type should handle actions turnOn, turnOff\n-- To update binary switch state, update property \"value\" with boolean\n\nfunction QuickApp:turnOn()\n self:debug(\"binary switch turned on\")\n self:updateProperty(\"value\", true)\nend\n\nfunction QuickApp:turnOff()\n self:debug(\"binary switch turned off\")\n self:updateProperty(\"value\", false) \nend\n\n-- To update controls you can use method self:updateView(<component ID>, <component property>, <desired value>). Eg: \n-- self:updateView(\"slider\", \"value\", \"55\") \n-- self:updateView(\"button1\", \"text\", \"MUTE\") \n-- self:updateView(\"label\", \"text\", \"TURNED ON\") \n\n-- This is QuickApp inital method. It is called right after your QuickApp starts (after each save or on gateway startup). \n-- Here you can set some default values, setup http connection or get QuickApp variables.\n-- To learn more, please visit: https://manuals.fibaro.com/\n\nfunction QuickApp:onInit()\n self:debug(\"onInit\")\nend\n","model":""},"viewXml":true,"roomID":232,"visible":true,"configXml":false,"sortOrder":107,"created":1584422260,"isPlugin":true,"id":136,"enabled":true}] et voici depuis le nagiateur : [{"id":136,"name":"PIR_Room_232","roomID":232,"type":"com.fibaro.binarySwitch","baseType":"com.fibaro.actor","enabled":true,"visible":true,"isPlugin":true,"parentId":0,"viewXml":true,"configXml":false,"interfaces":["quickApp"],"properties":{"categories":["other"],"dead":false,"deadReason":"","deviceControlType":20,"deviceIcon":1011,"emailNotificationID":0,"emailNotificationType":0,"log":"","logTemp":"","mainFunction":"-- Binary switch type should handle actions turnOn, turnOff\n-- To update binary switch state, update property \"value\" with boolean\n\nfunction QuickApp:turnOn()\n self:debug(\"binary switch turned on\")\n self:updateProperty(\"value\", true)\nend\n\nfunction QuickApp:turnOff()\n self:debug(\"binary switch turned off\")\n self:updateProperty(\"value\", false) \nend\n\n-- To update controls you can use method self:updateView(<component ID>, <component property>, <desired value>). Eg: \n-- self:updateView(\"slider\", \"value\", \"55\") \n-- self:updateView(\"button1\", \"text\", \"MUTE\") \n-- self:updateView(\"label\", \"text\", \"TURNED ON\") \n\n-- This is QuickApp inital method. It is called right after your QuickApp starts (after each save or on gateway startup). \n-- Here you can set some default values, setup http connection or get QuickApp variables.\n-- To learn more, please visit: https://manuals.fibaro.com/\n\nfunction QuickApp:onInit()\n self:debug(\"onInit\")\nend\n","manufacturer":"","model":"","pushNotificationID":0,"pushNotificationType":0,"quickAppVariables":[],"saveLogs":false,"smsNotificationID":0,"smsNotificationType":0,"state":true,"typeTemplateInitialized":true,"uiCallbacks":[],"userDescription":"","value":true,"viewLayout":{"$jason":{"body":{"header":{"style":{"height":"0"},"title":"quickApp_device_57"},"sections":{"items":[]}},"head":{"title":"quickApp_device_57"}}}},"actions":{"toggle":0,"turnOff":0,"turnOn":0},"created":1584422260,"modified":1584422260,"sortOrder":107}] et biensûr j'ai besoin de l'id c'est pour ça que : api.get("/devices/?name=PIR_Room_"..roomID).id ne donne rien !
  22. ben j'ai la même réponse que dans le navigateur !! bon attends c'est quoi ce bordel...
  23. jjacques68

    WakeOnLan

    Alors je suis entrain de me casser la tête pour faire le WakeOnLan que l'on connaissait déjà sur la HC2... Un grand merci au(x) personne(s) ayant développée(s) cela sur la HC2... j'ai fait un copié coller un adaptant. Mais je suis confronté au problème de l'adresse de BoradCast... Il semblerait que l'instruction setBroadcast(true) n'existe pas !! Voici le code du QA : (il n'y a pas tout ! juste la fonction principale qui pose problème) ---------------------------------------------------------------------------- function QuickApp:TurnOnPc(MacAdresse) ---------------------------------------------------------------------------- local macAddress = self:convertMacAddress(MacAdresse) -- Create Magic Packet 6 x FF local magicPacket = string.char(0xff, 0xff, 0xff, 0xff, 0xff, 0xff) -- Broadcast Address local broadcastAddress = "255.255.255.255" -- Default port used local wakeOnLanPort = 9 for i = 1, 16 do magicPacket = magicPacket..macAddress end --self.sockOn:setBroadcast(true) self:debug(broadcastAddress) self.sockOn:connect(tostring(broadcastAddress), tonumber(wakeOnLanPort),{ success = function() self:debug("Socket ON - opened") fibaro.sleep(100) self.sockOn:write(magicPacket, { success = function() self:debug("Socket On - Data sended") end, error = function(err) self:debug("Socket On - error sending data : "..err) self:Close_SocketOn() fibaro.setTimeout(3000, function() self:TurnOnPc(MacAdresse) end) end }) end, error = function(err) self:debug("Socket On - error opening : ",err) self:Close_SocketOn() fibaro.setTimeout(3000, function() self:TurnOnPc(MacAdresse) end) end }) end et j'ai l'erreur suivante : Socket On - error opening : Network is unreachable Si quelqu'un à des idées !!
  24. ben ça marche depuis le navigateur !! et pas depuis la scène ???
  25. @Krikroff : ce filtre ne peut pas fonctionner ? sur la propriété "name" ? api.get("/devices/?name=PIR_auto_"..roomID)
×
×
  • Créer...