gregmmat 5 Signaler ce message Posté(e) 5 juin 2017 (modifié) Bonjour à tous je viens de recevoir mon ampoule yeelight xiaomi buld color mais je n'arrive pas a l'intégrer a ma HC2 pour etre franc je pige rien au api fourni par yeelight https://www.yeelight.com/download/Yeelight_Inter-Operation_Spec.pdf Modifié 14 octobre 2017 par gregmmat Partager ce message Lien à poster Partager sur d’autres sites
ADN182 156 Signaler ce message Posté(e) 28 juin 2017 (modifié) Hello, J'essaye de faire actuellement un VD. J'arrive à dialoguer avec le Yeelight (on/off lunminosité, couleur). Il me reste à savoir de qu'elle manière récupérer les informations de l'ampoule pour mettre à jours le VD dynamiquement. @Krikroff j'aurais besoin de ton avis sur ce sujet. En fait la Yeelight communique en TCP sur un port spécifique 55443 une fois la connexion initialisé si une information vient à changé (via l'applic Xiaomi ou autre) la Yeelight communique l'infos à toutes les client connecté avec elle sur ce port. du coup on récupère l'infos de changement en "temps réél". En sachant cela selon toi. Comment tu procéderais pour la récupération du retour d'infos (on peut également collecter l'infos via une requeêtes TCP qui retourne l'ensemble des caractéristique de la lampes) ? J'ai tenté dans la main loop du VD alors ça fonctionne mais lorsque l'on coupe la Yeelight la connexion TCP est perdu et je ne sais pas comment détecter lorsque je perd celle-ci et en recréer une par la suite. Ci-dessous le code de la Main Loop : -- Recup de l id du module local selfID = fibaro:getSelfId(); local ip = fibaro:get(selfID, 'IPAddress') local port = fibaro:get(selfID, 'TCPPort') local Name = tostring(fibaro:getName(selfID)); -- Fonction de simplification to set label Device function setDevicePropertyValue(id, label, value) fibaro:call(id, "setProperty", "ui."..label..".value", value); end -- Initialisation du Socket TCP if (tcpSocket == nil) then tcpSocket = Net.FTcpSocket(ip, tonumber(port)) --tcpSocket:setReadTimeout(1000); fibaro:debug("Creation de la connexion avec "..Name); end state = tcpSocket:read() or string.char(); fibaro:debug(state); if (state ~= "") then State_decoded = json.decode(state); -- Gestion de l état if State_decoded.params.power then fibaro:debug("Change state to "..State_decoded.params.power) setDevicePropertyValue(selfID, "state", State_decoded.params.power); end -- Gestion de la Luminosité if State_decoded.params.bright then fibaro:debug("Change brightness to "..State_decoded.params.bright) setDevicePropertyValue(selfID, "brightness", State_decoded.params.bright); end else fibaro:debug("Connexion Impossible") fibaro:sleep(10000) tcpSocket:disconnect(); tcpSocket=nil; end Avec ce code une fois la connexion perdu, il ne détecte pas la coupure et il ne se reconnecte pas si on allume à nouveau (électriquemennt) la Yeeight il faut relancé le VD pour cela. Merci d'avance de ton aide Modifié 28 juin 2017 par ADN182 1 Partager ce message Lien à poster Partager sur d’autres sites
Alek6 12 Signaler ce message Posté(e) 2 octobre 2017 Mercî ADN pour ce partage. As-tu finalement trouvé une solution à ton problème de code ? On va quand même pas se laisser bouffer par la communauté jeedom :-) 1 Partager ce message Lien à poster Partager sur d’autres sites
Alek6 12 Signaler ce message Posté(e) 7 décembre 2017 Pour info, l'ampoule est parfaitement fonctionnelle avec Homebridge. Partager ce message Lien à poster Partager sur d’autres sites
ADN182 156 Signaler ce message Posté(e) 10 décembre 2017 Mercî ADN pour ce partage. As-tu finalement trouvé une solution à ton problème de code ? On va quand même pas se laisser bouffer par la communauté jeedom :-)Hello@Alek6, désolé j'ai oublié de te répondre, j'ai arrêté de développer le VD yeelight car j'ai désinstallé les ampoules. Je trouve compliqué de gérer ce type d'ampoule avec la HC2, ça n'apparait pas comme un périphérique de type Lumière. Quoi qu'il en soit je peux te fournir le VD que j'avais commencé si ça te dit ?Envoyé de mon Nexus 5X en utilisant Tapatalk Partager ce message Lien à poster Partager sur d’autres sites
OJC 133 Signaler ce message Posté(e) 28 décembre 2017 (modifié) Salut @ADN182, Je suis intéressé par ton VD pour 'jouer' avec une Yeelight Bedside. Merci =) Modifié 28 décembre 2017 par OJC Partager ce message Lien à poster Partager sur d’autres sites
ADN182 156 Signaler ce message Posté(e) 29 décembre 2017 Hello OJC, Voici, rien d'exceptionnel, mais je pense que tu as le code "géneric" qui te permettra de créer d'autres boutons en fonction de l'api. Yeelight.vfib Il faut que tu renseigne l'Adresse IP dans le VD, il y a un bouton actualisation pour mettre à jour les données de la Lampes (On, Off) il faudrait pouvoir l'activer en continu si la lampe est alimenté dans la Main loop. En reprenant le code du bouton "on" et changeant les params du bouton en t'appuyant sur l'API tu devrais pouvoir ajouter des boutons facilement. local method = "set_power" local Action = "on" Yeelight_Inter-Operation_Spec.pdf 1 Partager ce message Lien à poster Partager sur d’autres sites
ADN182 156 Signaler ce message Posté(e) 29 décembre 2017 @OJC, je viens de relire ton commentaire, la Yeelight Bedside est commandable iniquement en Bluetooth du coup le VD ne pourra pas te servir dans ce cas. Le seul moyen que je connaisse de controller la Bedside est avec Jeedom et le Plugin BLEA de @sarakha63 Partager ce message Lien à poster Partager sur d’autres sites
OJC 133 Signaler ce message Posté(e) 29 décembre 2017 @ADN182 J'ai la version wifi , celle avec le socle doré Partager ce message Lien à poster Partager sur d’autres sites
ADN182 156 Signaler ce message Posté(e) 29 décembre 2017 Ah ben je ne savais pas qu'il l'avait fais en wifi , mince ça fait longtemps ? si j'avais su j'aurais attendu Partager ce message Lien à poster Partager sur d’autres sites
OJC 133 Signaler ce message Posté(e) 29 décembre 2017 Je ne sais pas depuis combien de temps, les miennes sont arrivées de Chine juste avant Noël, commandées début décembre sur Gearbest. 1 Partager ce message Lien à poster Partager sur d’autres sites
OJC 133 Signaler ce message Posté(e) 29 décembre 2017 Nickel comme base de départ, ce VD Pour ceux que ça intéresse, voici ma solution pour avoir une mise à jour en continu sans passer par le Main Loop qui impose un délai de trois secondes. Code du bouton Actualisation : function RefreshLoop() -- Recup de l id du module local selfID = fibaro:getSelfId(); local ip = fibaro:get(selfID, 'IPAddress') local port = fibaro:get(selfID, 'TCPPort') local Name = tostring(fibaro:getName(selfID)); -- Fonction de simplification to set label Device function setDevicePropertyValue(id, label, value) fibaro:call(id, "setProperty", "ui."..label..".value", value); end -- Initialisation du Socket TCP if (tcpSocket == nil) then tcpSocket = Net.FTcpSocket(ip, tonumber(port)) --tcpSocket:setReadTimeout(1000); fibaro:debug("Creation de la connexion avec "..Name); end state, err = tcpSocket:read() or string.char(); fibaro:debug("test"); fibaro:debug(state); if (state ~= "") then State_decoded = json.decode(state); -- Gestion de l'état if State_decoded.params.power then fibaro:debug("Change state to "..State_decoded.params.power) setDevicePropertyValue(selfID, "state", State_decoded.params.power); end -- Gestion de la Luminosité if State_decoded.params.bright then fibaro:debug("Change brightness to "..State_decoded.params.bright) setDevicePropertyValue(selfID, "brightness", State_decoded.params.bright); end else fibaro:debug("Connexion Impossible") fibaro:sleep(10000) tcpSocket:disconnect(); tcpSocket=nil; end RefreshLoop() end RefreshLoop() 1 Partager ce message Lien à poster Partager sur d’autres sites
OJC 133 Signaler ce message Posté(e) 3 janvier 2018 Salut @ADN182 et bonne année Le 28/06/2017 à 15:25, ADN182 a dit : J'ai tenté dans la main loop du VD alors ça fonctionne mais lorsque l'on coupe la Yeelight la connexion TCP est perdu et je ne sais pas comment détecter lorsque je perd celle-ci et en recréer une par la suite. Quand tu parles de couper, cela veut dire débrancher ou éteindre ? Partager ce message Lien à poster Partager sur d’autres sites
ADN182 156 Signaler ce message Posté(e) 3 janvier 2018 (modifié) Salut @OJC bonne année à toi Oui quand je dis couper, c'est "débranché". Plus au sens tu coupe le courant via interrupteur du lustre suspendu. j'ai que des Yeelight douille E27, du coup l'ampoule est privé de courant et ne fonctionne plus forcement. Dans ton cas la lampe de chevet et continuellement branché. Modifié 3 janvier 2018 par ADN182 Partager ce message Lien à poster Partager sur d’autres sites
OJC 133 Signaler ce message Posté(e) 3 janvier 2018 ok, merci pour la précision. Je n'ai pas encore eu le pb du coup avec des lampes de chevet. Je pense que je vais coupler avec le Network Monitor de @Lazer pour vérifier la connexion au réseau wifi et relancer le socket en cas de besoin. Partager ce message Lien à poster Partager sur d’autres sites