[SCRIPT] Intégration YEELIGHT/XIAOMI

Discussion et échanges de scripts pour la box eedomus

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar P@t » 25 Mai 2018 08:35

Le script permet juste d'envoyer des commandes de base à la lampe... Pour un vrai plugin, il va falloir adapter le script au fonctionnement de la box eedomus.
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar fullpower » 25 Mai 2018 09:19

Y'a plus qu'à attendre que tu reçoives ta Yeelight :D !
fullpower
 
Messages : 1208
Inscription : 11 Déc 2015

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar P@t » 25 Mai 2018 11:35

fullpower a écrit:Y'a plus qu'à attendre que tu reçoives ta Yeelight :D !

En effet, si ça peut attendre deux semaine, ça sera bien plus pratique pour moi!
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar anne-marie » 26 Mai 2018 08:12

Ca marche impec!
Bien plus rapide qu'en passant par Jeedom
MERCI P@t :P :P
Netatmo - Nabaztag2 - Karotz - Mirror - caméras IP - Zwave - RFXCOM - zigate - ecodevice - Enocean - orvibo - connexoon- google Home - Echo - yeelight etc....
anne-marie
 
Messages : 2473
Inscription : 19 Fév 2014
Localisation : 77

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar fullpower » 26 Mai 2018 08:15

Anne-marie,

tu as réussi à créer des commandes pour définir la t° et la luminosité en même temps ?
Ca ne veut pas chez moi ...
A l'execution, pas de msg d'erreur, mais la lampe ne change pas d’état pour autant...
(l'adresse ip est ok)

EDIT : en fait c'est le mode lune qui n'est pas reconnu ...
fullpower
 
Messages : 1208
Inscription : 11 Déc 2015

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar anne-marie » 26 Mai 2018 08:20

Non, je n'ai pas encore essayé mais je suis en train de le faire.
Tu as essayé de passer par une macro?
Edit: Ah zut si le mode lune n'est pas reconnu
Netatmo - Nabaztag2 - Karotz - Mirror - caméras IP - Zwave - RFXCOM - zigate - ecodevice - Enocean - orvibo - connexoon- google Home - Echo - yeelight etc....
anne-marie
 
Messages : 2473
Inscription : 19 Fév 2014
Localisation : 77

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar fullpower » 26 Mai 2018 08:22

Je suis entrain de relever les valeur de t° (CT) car il ne prends pas des valeurs intermédiaires autres que 2700/4000/5200/6500 ...
les macro ? je ne m'en sers que pour la tempo.
Tu utilises comment les macros avec les plafonniers ?
EDIT : Ah ok j'ai compris ...une macro avec chaque état : allumage, une autre mise en couleur etc... vu ! oui pas bête ! merci ! ;)


@P@T : comment faire pour cumuler plusieurs commandes en une seule ?
je souhaiterai passer la lampe sur un blanc chaud (2700k) à 10 % de luminosité par ex ..
http://192.168.1.26/script/?exec=yeelig ... mooth|5000

Ca me met un erreur, ma commande doit être erronée ...
fullpower
 
Messages : 1208
Inscription : 11 Déc 2015

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar anne-marie » 26 Mai 2018 11:43

Curieux, de mon coté, ça ne donne rien avec cette commande
http://[VAR1]/script/?exec=yeelight.php&ip=[VAR2]&method=set_ct&params=2700 peu importe la valeur
Par contre, pas de problème pour ON, OFF et la luminosité
Netatmo - Nabaztag2 - Karotz - Mirror - caméras IP - Zwave - RFXCOM - zigate - ecodevice - Enocean - orvibo - connexoon- google Home - Echo - yeelight etc....
anne-marie
 
Messages : 2473
Inscription : 19 Fév 2014
Localisation : 77

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar fullpower » 26 Mai 2018 12:08

Peu etre qu'il faut mettre les paramètres d'effet en + et utiliser la commande set_ct_abx au lieu de set_ct tout court...
"http://192.168.1.26/script/?exec=yeelight.php&ip=192.168.1.40&method=set_ct_abx&params=2700|smooth|5000"

Chez moi cette commande passe bien ...je passe bien d'un blanc froid par exemple à un blanc chaud en 5 s ...
fullpower
 
Messages : 1208
Inscription : 11 Déc 2015

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar P@t » 26 Mai 2018 12:19

Je viens de faire quelques tests sur la lampe de fullpower... en effet, la méthode set_ct_abx nécessite obligatoirement les 3 paramètres (params=2700|smooth|500), sinon, ça renvoit une erreur.

Pour avoir un changement instantané: params=2700|sudden|500 (le 3e paramètre est ignoré)
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar P@t » 26 Mai 2018 12:28

Voici un nouveau script qui permet d'envoyer plusieurs commandes:

Code : Tout sélectionner
<?

// Récupération des arguments
$ip = getArg('ip');

$commands = array();
foreach ($_GET as $prop => $value)
{
    if (preg_match('/^method(\d*)$/', $prop, $match) and !empty($_GET['params'.$match[1]]))
    {
       $commands[] = array(
            'method' => $_GET['method'.$match[1]],
            'params' => explode('|', $_GET['params'.$match[1]]),
        );
    }
}

// Liste des propriétées yeelight
$properties = array(
    'power', // on: smart LED is turned on / off: smart LED is turned off
    'bright', // Brightness percentage. Range 1 ~ 100
    'ct', // Color temperature. Range 1700 ~ 6500(k)
    'rgb', // Color. Range 1 ~ 16777215
    'hue', // Hue. Range 0 ~ 359
    'sat', // Saturation. Range 0 ~ 100
    'color_mode', // 1: rgb mode / 2: color temperature mode / 3: hsv mode
    'flowing', // 0: no flow is running / 1:color flow is running
    'delayoff', // The remaining time of a sleep timer. Range 1 ~ 60 (minutes)
    'flow_params', // Current flow parameters (only meaningful when 'flowing' is 1)
    'music_on', // 1: Music mode is on / 0: Music mode is off
    'name', // The name of the device set by “set_name” command
    'bg_power', // Background light power status
    'bg_flowing', // Background light is flowing
    'bg_flow_params', // Current flow parameters of background light
    'bg_ct', // Color temperature of background light
    'bg_lmode', // 1: rgb mode / 2: color temperature mode / 3: hsv mode
    'bg_bright', // Brightness percentage of background light
    'bg_rgb', // Color of background light
    'bg_hue', // Hue of background light
    'nl_br', // Brightness of night mode light
);

// Si l'arument method n'est pas présent, on récupère l'état de la lampe (méthode get_prop)
// On utilise l'ensemble des paramètres par défaut ($properties)
if (empty($commands))
{
    $commands[] = array(
        'method' => 'get_prop',
        'params' => $properties,
    );
}

// Création du socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Connexion à la lampe
socket_connect($sock, $ip, '55443');

// On génère le XML
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$xml .= '<yeelight>';

// On lance les commandes
foreach ($commands as $command)
{
    // On convertit la couleur hexadécimale
    if ($command['method'] == 'set_rgb' and preg_match('/^[0-9a-fA-F]{6}$/', $command['params'][0]))
    {
        $command['params'][0] = hexdec($command['params'][0]);
    }
    if ($command['method'] == 'set_scene' and $command['params'][0] == 'color' and preg_match('/^[0-9a-fA-F]{6}$/', $command['params'][1]))
    {
        $command['params'][1] = hexdec($command['params'][1]);
    }

    // On ajoute les guillemets pour les chaines de caractères (pour la commande json)
    // Si le paramètre contient autre chose que des chiffres, on ajoute les guillemets
    foreach ($command['params'] as $key => &$param)
    {
        if (!preg_match('/^\d*$/', $param))
        {
            $command['params'][$key] = '"'.$param.'"';
        }
    }

    $command_id = rand();
    $method = $command['method'];
    $params = implode(',',$command['params']);
   
    // Commande pour récupérer les propriété de la lampe (json)
    $json = '{"id":'.$command_id.',"method":"'.$method.'","params":['.$params.']}';

    // Envoi de la commande
    socket_write($sock, $json."\r\n");
   
    // Lecture de la réponse
    while ($response = sdk_json_decode(socket_read( $sock, 4096 )) and !isset($response['error']) and !isset($response['result'])) {}

    // Affichage des résultats pour le polling
    if ($method == 'get_prop' and isset($response['result']))
    {
        foreach ($properties as $key => $property)
        {
            $xml .= '<'.$property.'>'.$response['result'][$key].'</'.$property.'>';
        }
    }
   
    // Affichage de la réponse après l'envoi d'une commande
    else if (isset($response['result']) and $response['result'][0] == 'ok')
    {
        // Affichage de la réponse
        $xml .= '<command id="'.$command_id.'">';
        $xml .= '<method>'.$method.'</method>';
        $xml .= '<params>'.$params.'</params>';
        $xml .= '<result>ok</result>';
        $xml .= '</command>';
    }
   
    // Affichage du code et message d'erreur
    else if (isset($response['error']))
    {
        $xml .= '<command id="'.$command_id.'">';
        $xml .= '<method>'.$method.'</method>';
        $xml .= '<params>'.$params.'</params>';
        $xml .= '<error>';
        $xml .= '<code>'.$response['error']['code'].'</code>';
        $xml .= '<message>'.$response['error']['message'].'</message>';
        $xml .= '</error>';
        $xml .= '</command>';
    }
   
    // Affichage d'une erreur en cas de non réponse
    else
    {
        $xml .= '<error>Une erreur est survenue</error>';
    }
}

$xml .= '</yeelight>';

// Envoi du header
sdk_header('text/xml');

// On écrit le XML
echo $xml;

?>

Notez que la lampe doit d'abord être allumée pour prendre en compte les paramètres de changement de luminosité ou autre...

Désormais, vous pouvez également mettre une valeur hexadécimale pour le changement de couleur: par exemple method=set_rgb&params=FF1512
Dernière édition par P@t le 26 Mai 2018 14:07, édité 4 fois.
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar P@t » 26 Mai 2018 13:32

En jetant un oeil à la documentation, je viens de tomber sur les scènes... et en fait, ça permet de régler plusieurs chose en même temps.... Dans ton exemple fullpower, il suffirait de faire:

Code : Tout sélectionner
http://localhost/script/?exec=yeelight.php&ip=[VAR1]&method=set_scene&params=ct|2700|10

Cette scène allume la lampe, règle le ct à 2700 et l'intensité à 10%. Pour plus d'infos, cf page 14 de la documentation
Je pense d'ailleurs que c'est la méthode qu'il faut utiliser pour un actionneur eedomus

Même chose pour le mode couleur:
Code : Tout sélectionner
http://localhost/script/?exec=yeelight.php&ip=[VAR1]&method=set_scene&params=color|FF0000|50

Cette scène allume la lampe, règle la couleur sur rouge et l'intensité à 50%
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar fullpower » 26 Mai 2018 16:17

:clap: :clap:

Rien que le ON/OFF c'est déja une grosse avancee pour integrer nos Yeelight !
Attends de recevoir ta lampe ..je pense que tu vas vite t'en prendre une 2e ... :D
fullpower
 
Messages : 1208
Inscription : 11 Déc 2015

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar anne-marie » 26 Mai 2018 17:16

GENIAL ! Depuis le temps qu'on en rêvait :D
Merci pour ton super travail P@t :clap:
Netatmo - Nabaztag2 - Karotz - Mirror - caméras IP - Zwave - RFXCOM - zigate - ecodevice - Enocean - orvibo - connexoon- google Home - Echo - yeelight etc....
anne-marie
 
Messages : 2473
Inscription : 19 Fév 2014
Localisation : 77

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar P@t » 26 Mai 2018 20:13

J'ai oublié de donner les exemples pour lancer plusieurs commandes...

On va reprendre l'exmple que j'ai donné avec la scène:
Code : Tout sélectionner
http://localhost/script/?exec=yeelight.php&ip=[VAR1]&method=set_scene&params=ct|2700|10

Je rapelle que ceci allume la lampe et règle le ct à 2700 et la luminosité à 10% ( cf page 14 de la documentation)

Pour faire la même chose avec des commandes séparées, on peut faire avec la nouvelle version du script:
Code : Tout sélectionner
http://localhost/script/?exec=yeelight.php&ip=[VAR1]&method1=set_power&params1=on|smooth|500&method2=set_ct_abx&params2=2700|smooth|500&method3=set_bright&params3=10|smooth|500


En gros, on utilise method1, method2, etc... dans les arguments, avec params1, params2, etc...
Comme vous pouvez le constater, l'utilisation des scènes prévues dans l'API sont préférables!
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar anne-marie » 27 Mai 2018 11:26

@Fullpower
As-tu réussi à mettre le mode lune, celui qu'on obtient avec la touche M de la télécommande?
J'ai remarqué que ça générait une valeur dans nl_br mais ça ne suffit pas quand je la modifie.
@P@t Je pense qu'il faudrait ajouter le paramètre 'mode' (page 12) car la valeur 5 est spécifique au plafonnier (Ceiling) et peut-etre aussi 'model' (page 5)
J'ai essayé de modifier le script mais j'y comprends rien :roll: :D
Netatmo - Nabaztag2 - Karotz - Mirror - caméras IP - Zwave - RFXCOM - zigate - ecodevice - Enocean - orvibo - connexoon- google Home - Echo - yeelight etc....
anne-marie
 
Messages : 2473
Inscription : 19 Fév 2014
Localisation : 77

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar enr37 » 27 Mai 2018 11:49

Salut,
je déborde un peu. j'ai commencé par des hue qui sont le top mais le zigbee a courte portée grrrrr :evil: puis je suis passé aux innr qui sont quasiment aussi bien pour moins cher. mais quelqu'un a fait un comparatif (en terme d'impression pas de faits techniques)entre hue et yeelight ? il y a aussi les milight mais ca je trouve un peu galère.
Bref, quel est votre ressenti yeeelight, vs Hue ? Même si j'ai un peu peur de la sécurité des yeelight pour les mettre dans mon réseau wifi avec des updates firmware qui doivent être très faibles...
actionnaire de photoshop. partageur des 450 icones sur abavala et dans votre box.
Le savoir ne vaut que s'il est partagé par tous !
enr37
 
Messages : 1358
Inscription : 06 Juin 2013
Localisation : 37

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar anne-marie » 27 Mai 2018 12:12

@enr37
Je n'ai pas de lampes Hue et vu l'écart de prix, je pense que j'en aurai jamais.
Franchement, je suis très satisfaite. J'ai 2 plafonniers, 6 ampoules blanches, 3 RGB et 3 rubans led.
Ca m'aurait couté une fortune en Hue d'autant que je profite très souvent de codes réduction grace à Technoseb que je remercie au passage :D
Et en plus compatible IFTTT et Google Home, que dire de mieux.
Pas besoin de planquer des modules derrière les interrupteurs mais évidemment si besoin d'allumer alors que l'interrupteur est éteint, ça ne marche pas, comme une ampoule RGB zwave, sauf que ça ne perturbe pas le réseau puisque c'est du wifi.
C'est quoi innr?
Netatmo - Nabaztag2 - Karotz - Mirror - caméras IP - Zwave - RFXCOM - zigate - ecodevice - Enocean - orvibo - connexoon- google Home - Echo - yeelight etc....
anne-marie
 
Messages : 2473
Inscription : 19 Fév 2014
Localisation : 77

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar fullpower » 27 Mai 2018 12:58

@Anne marie : non j'ai pas réussi à passer en mode "lune" ... :?

-> INNR c'est une marque de lampes connectées ...
https://www.innrlighting.com/en/home


@enr37 : J'ai également des MILIGHT pour lesquelles j'avais fait un tuto assez alambiqué pour les piloter (changer la couleur) en fonction de la t° de mon salon...
Les Milight passent par un pont wifi, les commandes sont en UDP ... elles sont toutes aussi intéressantes que les Yeelight..mais ma préférence va à ces dernières ..surtout avec le prochain plugin de P@t ! :lol:
Ca sera génial !
Le prix est le premier critère de choix..et je ne connais pas les HUE ...mais bon si Phillips collabore avec Xiaomi/Yeelight (plafonnier Yeelight/Phillipps) ...c'est qu'il doit y trouver un intérêt commercial !
Dernière édition par fullpower le 19 Oct 2018 19:13, édité 1 fois.
fullpower
 
Messages : 1208
Inscription : 11 Déc 2015

Re: [SCRIPT] Intégration YEELIGHT/XIAOMI

Messagepar P@t » 27 Mai 2018 13:01

Pour le mode lune, essayez ceci (sans modifier le script!)
Code : Tout sélectionner
http://localhost/script/?exec=yeelight.php&ip=[VAR1]&method=set_scene&params=nightlight|10

(où 10 est l'intensité lumineuse)

Sinon, je pense que ceci marche aussi:
Code : Tout sélectionner
http://localhost/script/?exec=yeelight.php&ip=[VAR1]&method=set_power&params=on|smooth|500|5

@anne-marie, sur ce 2e exemple, le 4e paramètre (5) est celui dont tu parles.
P@t
 
Messages : 223
Inscription : 04 Déc 2017

PrécédentSuivant

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 12 invité(s)