This site uses cookies! Learn More

Ce site utilise des cookies !

En continuant à utiliser ce site, vous vous engagez à nous permettre de stocker des cookies sur votre ordinateur.

 

Si nous utilisons des cookies et retenons des données anonymes, c’est pour nous aider à mieux gérer notre mesure d’audience, aider nos partenaires commerciaux à nous rémunérer et nos partenaires publicitaires à proposer des annonces qui vous correspondent.

 

Grâce à ces cookies, le forum est en mesure de savoir qui écrit un message et utile pour le système d'authentification.

 

En cliquant sur « J'accepte », vous acceptez l'utilisation par NAS-Forum de cookies publicitaires et de mesure d'audience fine.

micmacx

Commande netcat mais sur synology DS216J

Messages recommandés

Bonjour, 

Je me suis fait ma petite installation domotique sous Domoticz sur un Synology DS216J.

J'ai acheté depuis peu des Ampoules connectés Xiaomi Yeelight qui peuvent être piloté par tcp/ip, Je précise que par domoticz (dans les interrupteurs )tout se commande normalement donc l'installe est complète et fonctionnelle, mais je voudrais pouvoir les piloter via un script Lua sous domotics que voici :

commandArray = {}
    DomDevice = 'Yeelight';
    IP = '192.168.0.20'; --Ici mettre l'adresse IP Fixe de votre Lampe/Ampoule
    PORT = '55443'
 
    if devicechanged[DomDevice]=='Off' then -- turn off
        runcommandoff = "sudo echo -ne '{"id":1,"method":"set_power", "params":["off", "smooth", 500]}\r\n' | nc -w1 " ..IP.." " ..PORT.."";
        os.execute(runcommandoff);
        print(runcommandoff) 
     
    elseif devicechanged[DomDevice]=='Sunrise' then -- turn to sunrise from 0 to 100% on 15 minutes and keep bulb on
        runcommandsunrise = "sudo echo -ne '{"id":1,"method":"set_scene", "params":["cf",3,1,"50,1,16731136,1,360000,2,1700,10,540000,2,2700,100"]}\r\n' | nc -w1 " ..IP.." " ..PORT.."";
        os.execute(runcommandsunrise);
        print(runcommandsunrise) 
     
    elseif devicechanged[DomDevice]=='SunSet' then -- turn to sunset from 100% to 0 on 15 minutes and turn bulb off
        runcommandsunset = "sudo echo -ne '{"id":1,"method":"set_scene", "params":["cf",3,2,"50,2,2700,10,180000,2,1700,5,420000,1,16731136,1"]}\r\n' | nc -w1 " ..IP.." " ..PORT.."";
        os.execute(runcommandsunset);
        print(runcommandsunset) 
   
    end
return commandArray

Voyant que ça ne fonctionne pas, j'ai essayé directement via putty, ce qui m'a donné ça en retour :

-sh: nc: command not found

Linux n'étant pas ma spécialité, j'ai cherché sur le net et j'ai compris que netcat n'est pas installé sur synology.

Après pas mal des recherches et testes, je n'ai pas trouvé les fichiers nécessaires à l'installation de netcat pour DS216J, j'ai cherché après des commandes équivalentes et je n'ai rien trouvé. 😞

J'ai quand même essayé de me connecter à une yeelight en telnet via putty et envoyé une commande :

{"id":1,"method":"set_power", "params":["off", "smooth", 500]} //Eteint la Yeelight
{"id":1,"method":"set_power", "params":["on", "smooth", 500]}  //Allume la Yeelight

Et la Yeelight s'est allumé et éteinte. 🙂 

Est-ce que quelqu'un connaîtrait un bon tuto pour installer netcat ou quelque chose qui pourrait faire la même fonction??? ou encore mieux, une commande déjà intégré dans un synology. 🙂 

Merci d'avance pour vos futures réponses et à bientôt. 🙂 

 

Modifié par micmacx

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Je vais m'auto-répondre :

Pour installer netcat, c'est fait en suivant ce tuto, opkg puis netcat : https://www.codebuilder.fr/blog/installer-ipkg-opkg-java-8-serposcope-nas-synology-dsm-5-6/

Maintenant en me connectant à mon syno par putty avec mon pseudo admin, ça fonctionne, avec la commande "netcat" mais pas "nc", et toujours pas par le script.

Au passage j'ai un peu changé le script et maintenant je n'ai plus aucune erreur dans domoticz 

commandArray = {}
    DomDevice = 'Yeelight';
 
    if devicechanged[DomDevice]=='Off' then -- turn off
        runcommandoff = "sudo echo -ne '{\"id\":1,\"method\":\"set_power\", \"params\":[\"off\", \"smooth\", 500]}\\r\\n' | netcat -w1 192.168.0.20 55443";
        os.execute(runcommandoff);
        print(runcommandoff) 
    elseif devicechanged[DomDevice]=='On' then -- turn off
        runcommandon = "sudo echo -ne '{\"id\":1,\"method\":\"set_power\", \"params\":[\"on\", \"smooth\", 500]}\\r\\n' | netcat -w1 192.168.0.20 55443";
        os.execute(runcommandon);
        print(runcommandon) 
    end
return commandArray

Je pense que ça doit être une question de droits.

Maintenant, comment faire pour changer ces droits pour que domoticz via les scripts lua puisse lancer ces commandes???

 

Merci d'avance pour vos futures réponses (si il y a) et à bientôt. 🙂 🙂 🙂 

Modifié par micmacx

Partager ce message


Lien à poster
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement