Page 1 sur 3

Bibliothèque script API Yeelight

Publié : 02 mars 2018, 12:02
par foudepc83
Bonjour,

Je me permets de créer ce dossier pour tout le monde puissent partager les scripts et commandes API permettant commander les lampes Xiaomi :
J'utilise le script qui a été fourni par Deenoo :

http://domo-attitude.fr/yeelight-effects-domoticz/
http://domo-attitude.fr/yeelight-domoticz-scene/

A vos doigts ;)

Re: Bibliothèque script API Yeelight

Publié : 02 mars 2018, 12:08
par foudepc83
Réveille ( flash rapide , puis flash lente ) => Car malentendant

Code : Tout sélectionner

'{\"id\":1,\"method\":\"set_scene\", \"params\":[\"cf_\",0,0,\"300,2,4000,100,300,2,4000,1,800,7,0,0,100,2,4000,100,100,2,4000,1,800,7,0,0\"]}
Alarme

Code : Tout sélectionner

{\"id\":1,\"method\":\"set_scene\", \"params\":[\"cf_\",30,0,\"500,1,16711680,100,500,1,16711680,1,50,1,16711680,100,500,1,16711680,1\"]}
3500K à 25 %

Code : Tout sélectionner

{\"id\":1,\"method\":\"set_scene\", \"params\":[\"ct\",3500, 25]}
3500K à 75%

Code : Tout sélectionner

{\"id\":1,\"method\":\"set_scene\", \"params\":[\"ct\",3500, 75]}
6000K à 75%

Code : Tout sélectionner

{\"id\":1,\"method\":\"set_scene\", \"params\":[\"ct\",6000, 75]}
Mode rose quand on est avec sa copine :D

Code : Tout sélectionner

{\"id\":1,\"method\":\"set_scene\", \"params\":[\"color\",16711933, 100]}

J'ai prévu d'en faire d'autre mais il me faut du temps libre pour tester ;)

à vous ;)

Re: Bibliothèque script API Yeelight

Publié : 02 mars 2018, 12:12
par christophe2836
foudepc83 a écrit :Bonjour,

Je me permets de créer ce dossier pour tout le monde puissent partager les scripts et commandes API permettant commander les lampes Xiaomi :
J'utilise le script qui a été fourni par Deenoo :

http://domo-attitude.fr/yeelight-effects-domoticz/
http://domo-attitude.fr/yeelight-domoticz-scene/

A vos doigts ;)
Super ! Merci.



Envoyé de mon iPhone en utilisant Tapatalk

Re: Bibliothèque script API Yeelight

Publié : 02 mars 2018, 22:01
par Jeff
foudepc83 a écrit :Bonjour,

Je me permets de créer ce dossier pour tout le monde puissent partager les scripts et commandes API permettant commander les lampes Xiaomi :
J'utilise le script qui a été fourni par Deenoo :

http://domo-attitude.fr/yeelight-effects-domoticz/
http://domo-attitude.fr/yeelight-domoticz-scene/

A vos doigts ;)
Merci à vous, j'ai bien copié sans essayé de bien comprendre mais je sais où sont les sources au besoin ;)

Re: Bibliothèque script API Yeelight

Publié : 05 mars 2018, 09:35
par foudepc83
Jeff a écrit :
foudepc83 a écrit :Bonjour,

Je me permets de créer ce dossier pour tout le monde puissent partager les scripts et commandes API permettant commander les lampes Xiaomi :
J'utilise le script qui a été fourni par Deenoo :

http://domo-attitude.fr/yeelight-effects-domoticz/
http://domo-attitude.fr/yeelight-domoticz-scene/

A vos doigts ;)
Merci à vous, j'ai bien copié sans essayé de bien comprendre mais je sais où sont les sources au besoin ;)
Justement, cela permet de partager les commandes API de l'ampoules sans devoir tester certain paramètres.

mais ravie d'avoir partagé

Re: Bibliothèque script API Yeelight

Publié : 11 mars 2018, 10:28
par landaisbenj
Hello.

Moi je m'etais simplifié les scripts de deennoo pour les comprendres. J'ai aussi traduit la partie methode cf de l'api qui est la plus compliqué.
Si ca peut aider:

Code : Tout sélectionner

local script = ' [Scene Bande Led] ' ; commandArray={}
-- ****************************************************** -  Ouverture  - ****************************************************** --
if devicechanged['Scene Bande Led'] then
-- Chargement du fichier de fonction et init des logs
print('\n--------------------------------------------- '..script..' --------------------------------------------------------')
--################################################################################################################################--

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 -- Allume en orange/chaud à 1%
        methode = 'set_scene'
        parametre = '["color", 16737792, 1]'
    elseif dc[DomDevice]=='Bright 25%' then -- Allume en orange/chaud à 25% 
        methode = 'set_scene'
        parametre = '["color", 16737792, 25]'
    elseif dc[DomDevice]=='Bright 50%' then -- Allume en orange/chaud à 50%
        methode = 'set_scene'
        parametre = '["color", 16737792, 50]'
    elseif dc[DomDevice]=='Bright 75%' then --  Allume en orange/chaud à 75%
        methode = 'set_scene'
        parametre = '["color", 16737792, 75]'
    elseif dc[DomDevice]=='Bright 100%' then --  Allume en orange/chaud à 75%
        methode = 'set_scene'
        parametre = '["color", 16737792, 100]'
    elseif dc[DomDevice]=='Lever du soleil' then -- Allume en 0.5s a une chaleur de 6000K a 1% puis varie pendant 5m a 2700K 10% puis 2700K 100% pendant 10m
        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 -- Modifie la couleur en orange a 50% en 10m puis descend a 1% en 5m
        methode = 'set_scene'
        parametre = '["cf",2,2,"600000, 1, 16737792, 50, 300000, 1, 16737792, 1,"]'
    elseif dc[DomDevice]=='4-7-8' then -- mode d'aide a l'endormissement 4-7-8
        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 -- recupere les proprietés des led
        methode = 'get_prop'
        parametre = '["model", "name", "fw_ver", "support", "power", "bright", "color_mode", "ct", "rgb", "hue", "sat"]'
    end
    --creer la commande et l'envoi
    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(command)
    --print(result)
end

return commandArray
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 (rouge) 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.

Re: Bibliothèque script API Yeelight

Publié : 12 mars 2018, 12:21
par foudepc83
Bravo Merci du partage !

Re: Bibliothèque script API Yeelight

Publié : 25 juil. 2018, 13:13
par le belge
Bonjour à tous ,

je reprends un peu mon installation actuelle :

pour résumer:
trois interrupteurs double chacon
1 pour Mme
1 pour Moi
1 à l'entrée de la chambre

un ruban yeelight (tête de lit)=>bouton gauche interrupteur
un ventilateur de plafond =>bouton droit interrupteur
du coup nous n'avons plus de lampe en plafonnier uniquement le ruban en tête de lit

pour l'instant , on peut allumer ou éteindre les deux des 3 interrupteurs

le truc qui m’embête c'est Mme adore le rose du coup elle voulait avoir cette couleur sur le ruban , moi ça ne me plaît pas !

alors la question , est-ce qu'il serait possible :
d'avoir dans des plages horaires du blanc et le reste du temps du rose

je ne demande pas un script tout fait ... juste des infos pour la base du script ....

Merci à vous

Re: Bibliothèque script API Yeelight

Publié : 25 juil. 2018, 14:41
par landaisbenj
Hello.

C'est tout simple. Par script :
Si appui sur le device et que l'heure est supérieur a telle heure et inférieur a telle heure alors
rose
sinon
blanc...
fin
Sinon peut être en créant une scène ?

Ou alors un autre script qui dirait
Si j'appuie sur le device et que la lumière est off alors
allumer en blanc
Sinon si j'appuie sur le device et que la lumiere est on et que j'ai deja appuyé il y a moins de 5 seconde alors
passer en rose
sinon
eteindre
fin

Re: Bibliothèque script API Yeelight

Publié : 25 juil. 2018, 15:11
par le belge
Salut à toi !

ok donc avec les scripts j'ai beaucoup de possibilité , je ne savais pas que je pouvais faire des appuis différent sur les interrupteurs

donc l'idée est de faire mes besoins avec des phrases comme toi et ensuite je tente en Lua

bon ben , je me penche la-dessus !

pour ne pas polluer ce topic , je vais en ouvrir un autre

Merci à toi