Re: [Résolu] scènes Ampoules Yeelight RGB
Publié : 07 mars 2018, 14:10
par phalseb
Bonjour Deennoo,
Merci pour ce script cela fonctionne super bien, je vais essayer de rajouter d'autres animations.
J'ai une petite question, j'ai deux yeelight dans mon salon et j'aimerai que le dummy fonctionne pour les deux. J'ai essayer de rajouter une deuxième adresse ip dans le script mais cela ne fonctionne plus. Peut-on faire ainsi?
IP = '192.168.1.22';'192.168.1.23' --Ici mettre l'adresse IP Fixe de votre Lampe/Ampoule
PORT = '55443'
ou est-ce que je fais une erreur?
je ne comprends pas bien non plus le
commandArray['UpdateDevice'] = 'xx|yy|zz'
Sorry je débute dans domoticz et lit sur le lua que je débute également.
Merci pour votre aide
Re: [Résolu] scènes Ampoules Yeelight RGB
Publié : 07 mars 2018, 17:02
par foudepc83
Pour commander deux ampoules , je fais un groupe qui actionnera deux interrupteurs selecteur
Re: [Résolu] scènes Ampoules Yeelight RGB
Publié : 08 mars 2018, 18:45
par phalseb
Merci pour votre réponse.
J'ai essayé dans le même script et cela fonctionne.
Le voici. Il y a juste la même chose mais en IP1 et IP2.
----------------------------------------------------------
commandArray = {}
DomDevice = 'Yeelight_salon_scenes';
IP1 = '192.168.1.3'; --Ici mettre l'adresse IP Fixe de votre Lampe/Ampoule
IP2 = '192.168.1.2'; --Ici mettre l'adresse IP Fixe de votre Lampe/Ampoule
PORT = '55443'
--IP1
if devicechanged[DomDevice]=='Off' then -- turn off
runcommandoff = "sudo echo -ne '{\"id\":1,\"method\":\"set_power\", \"params\":[\"off\", \"smooth\", 500]}\\r\\n' | nc -w1 " ..IP1.." " ..PORT.."";
os.execute(runcommandoff);
runcommandoff = "sudo echo -ne '{\"id\":1,\"method\":\"set_power\", \"params\":[\"off\", \"smooth\", 500]}\\r\\n' | nc -w1 " ..IP2.." " ..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 " ..IP1.." " ..PORT.."";
os.execute(runcommandsunrise);
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 " ..IP2.." " ..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 " ..IP1.." " ..PORT.."";
os.execute(runcommandsunset);
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 " ..IP2.." " ..PORT.."";
os.execute(runcommandsunset);
print(runcommandsunset)
elseif devicechanged[DomDevice]=='veilleuse' then -- turn to Night Mode
runcommandbaby = "sudo echo -ne '{\"id\":1,\"method\":\"set_power\", \"params\":[\"on\",\"smooth\", 500, 5]}\\r\\n' | nc -w1 " ..IP1.." " ..PORT.."";
os.execute(runcommandbaby);
elseif devicechanged[DomDevice]=='veilleuse' then -- turn to Night Mode
runcommandbaby = "sudo echo -ne '{\"id\":1,\"method\":\"set_power\", \"params\":[\"on\",\"smooth\", 500, 5]}\\r\\n' | nc -w1 " ..IP2.." " ..PORT.."";
os.execute(runcommandbaby);
print(runcommandbaby) --Ce pavé commande le mode veilleuse plus d'info page 12 de l'api yeelight
end
return commandArray
-------------------------------------------------------------------------------
Re: [Résolu] scènes Ampoules Yeelight RGB
Publié : 08 mars 2018, 18:47
par phalseb
Il y a seulement un petit soucis (mais pas grave pour moi), la IP2 réagit une ou deux secondes plus tard.
Je début dans les scripts lua mais je commence tout doucement à comprendre. J'avoue pour l'instant c'est beaucoup de copier coller.
Merci en tout cas pour votre grande aide.
++
Re: [Résolu] scènes Ampoules Yeelight RGB
Publié : 09 mars 2018, 12:23
par foudepc83
C'est bon a savoir pour IP1 et IP2.
Meme avec le groupe, ce n'est pas parfaitement synchronisé avec mes Yeelighs ( Mais Au contraire cela me réveille mieux

)
Re: [Résolu] scènes Ampoules Yeelight RGB
Publié : 10 mars 2018, 18:41
par landaisbenj
Hello.
J'ai eu beaucoup de probleme moi aussi avec le tout premier script que j'avais trouvé sur ton site.
Du coup j'ai eclairci le script a ma facon si ca peut en aider d'autre:
Code : Tout sélectionner
DomDevice = 'Scene Bande Led';
IP = '192.168.0.37';
PORT = '55443'
local methode
local parametre
if dc[DomDevice]=='Off' then
methode = 'set_power'
parametre = '["off", "smooth", 500]'
elseif dc[DomDevice]=='Bright 1%' then -- turn to Baby Mode
methode = 'set_scene'
parametre = '["color", 16737792, 1]'
elseif dc[DomDevice]=='Bright 25%' then -- turn to 25% bright
methode = 'set_scene'
parametre = '["color", 16737792, 25]'
elseif dc[DomDevice]=='Bright 50%' then -- turn to 50% bright
methode = 'set_scene'
parametre = '["color", 16737792, 50]'
elseif dc[DomDevice]=='Bright 75%' then -- turn to 75% bright
methode = 'set_scene'
parametre = '["color", 16737792, 75]'
elseif dc[DomDevice]=='Bright 100%' then -- turn to 75% bright
methode = 'set_scene'
parametre = '["color", 16737792, 100]'
elseif dc[DomDevice]=='Lever du soleil' then -- turn to sunrise mode from 0 to 100% on 15 minutes
methode = 'set_scene'
parametre = '["cf",3,1,"500,2,6000,1,300000,2,2700,10,600000,2,2700,100"]'
elseif dc[DomDevice]=='Couché du soleil' then -- turn to sunset mode from 100% to 0 on 15 minutes and turn off bulb
methode = 'set_scene'
parametre = '["cf",4,2,"500, 2, 2700, 25, 300000, 2, 2700, 50, 600000, 1, 255, 1, 300000, 7, 0,0"]'
elseif dc[DomDevice]=='4-7-8' then -- turn to 4-7-8 mode
methode = 'set_scene'
parametre = '["cf",24,2,"4000,2,4000,30,7000,2,4000,10,8000,2,4000,1"]'
elseif dc[DomDevice]=='Get Prop' then -- turn to Baby Mode
methode = 'get_prop'
parametre = '["model", "name", "fw_ver", "support", "power", "bright", "color_mode", "ct", "rgb", "hue", "sat"]'
end
--local command = "sudo echo -ne '{\"id\":1,\"method\":\""..methode.."\", \"params\":"..parametre.."}\\r\\n' | nc -w1 "..IP.." "..PORT..""
local command = "sudo echo -ne '{\"id\":1,\"method\":\""..methode.."\", \"params\":"..parametre.."}\\r\\n' | nc -w1 "..IP.." "..PORT..""
local handle = io.popen(command)
local result = handle:read("*a")
handle:close()
--print(devicechanged['Scene Bande Led']..': '..command)
--print('Resultat: '..result)
La methode "get_prop" permet de recuperer l'etat du device. Ca peut aider a creer des scenarios (cf) en se basant sur l'application.
J'ai aussi traduit la methode cf:
Methode: start_cf
Utilisation: Cette methode est utiliser pour lancer une sequence de variation de couleur.
Les sequences seront des series de changement d'etat des leds.
Cela peut etre une variation de luminosité, un changement de couleur ou de temperature.
3 Parametres:
{"id":1,"method":"start_cf","params":[ count, action, "flow_expression (Duration, Mode, Value, Brightness, Duration, Mode, Value, Brightness...)"]}
"count": nombre total de changement de sequence avant d'arreter. 0 = changement infini entre les sequences.
"action": action apres le nombre de changement de sequence:
0 = les leds retrouveront l'etats qu'elles avaient avant le debut de la methode.
1 = les leds resteronts dans l'etats ou elle se trouve apres le nombre total de sequence de "count"
2 = les leds passeront off apres le nombre total de sequence de "count"
"flow_expression": sont les sequences de changement de led. Une sequence est defini comme suit:
Duration, Mode, Value, Brightness.
Plusieurs sequences peuvent se succeder en serie de telle sorte: Duration, Mode, Value, Brightness, Duration, Mode, Value, Brightness, Duration, Mode, Value, Brightness...
Duration: En millisecondes, durée graduelle du changement ou de la pause dans l'etat.
Mode: 1 – Changement de couleur, 2 – Changement de temperature, 7 – Aucun changement (pause dans l'etat).
Value: Pour le mode 1, il s'agit de la valeur en RGB. Pour le mode 2, il s'agit de la chaleur de l'ampoule. En mode 7, comme il s'agit d'un pause la valeur est ignorer.
Brightness: Valeur de luminosité de 1 a 100% Ignoré aussi en mode 7. (Apparement si cette valeur egale -1 elle est ignorer en mode 1 ou 2, mais je n'ai que des erreurs avec)
Exemple:
{"id":1,"method":"start_cf","params":[ 4, 2, "100000, 2, 2700, 100, 300000, 1,255, 10, 50000, 7, 0,0, 300000, 2, 5000, 1"]}
Exemple de reponse: {"id":1, "result":["ok"]}
Expression:
"4, 2,": 4 changement de serie de sequence, puis eteins les leds à la fin.
"100000, 2, 2700, 100,": Change graduellement jusqu'a une temperature de led de 2700K a 100% de luminosité pendant 100s
300000, 1,255, 10, Change graduellement jusqu'a la couleur RGB255 (bleu) et 10% de luminosité pedant 5 minutes.
50000, 7, 0,0, Marque une pause de 50s
300000, 2, 5000, 1" Change graduellement jusqu'a une temperature de 500K a 1% de luminosité pendant 5 minutes.