L'ipx800 n'est pas complètement compatible avec Mi Light

Bonjour @Roupila

Très bien dans ce cas je vais retirer le support mi-light car je ne vois pas comment reprendre le code et fournir un firmware en 24h ou même une semaine.
L’appli iPad est une dernière version. Il y a eu avant beaucoup de versions différentes qui ne fonctionnait pas bien…
L’IPX800 est capable de piloter les produits milight vendus sur notre boutique. Pas forcément tous les autres modèles ou versions…On ne peut pas tous tester !

Si vous avez achetés l’IPX800 juste pour piloter du milight et que vous pensez que vous avez été trompé , contactez nous, on vous reprendra le matériel et on vous remboursera votre achat.

Cdt

2 « J'aime »

Bonjour personnellement jai du milight et ça fonctionne tres bien.
Je ne demande pas à lipx de gérer à 100% les fonctionnalités des lampes, elle n’est pas faite pour ça. Lipx800 a pour mission d’allumer et éteindre à la demande par appui sur un poussoir ou sur alarme ou plage horaire.
Pour le reste des fonctions, je prends les télécommandes.

@Superl59 @Roupila Sur le produit il n’est pas inscrit 100% compatible milight.
N’oubliez pas que GCE sort plusieurs mises à jour par an, gratuitement, sur simple demande des utilisateurs, et cela parfois en quelques jours.
Chez 99 % des fabricants mondiaux de matériel High Tech, il vous faudra acheter un nouveau modèle pour bénéficier de nouvelles fonctions.
Cdt

3 « J'aime »

Ah bon ? si sa seule mission est de faire un on/off pour le miligth je pense que les presets avec changement couleur/dimmer seraient inutile…

bref, ça sert a rien de débattre sur ça et ça ne fait pas avancer le défaut de l’ipx pour la gestion du milight.
Le problème vient du codage de l’API car tout fonctionne normalement avec l’appli android ou ios et la télécommande ou même l’appli de limitlessled v6

il me semble que l’API v6 est rétrocompatible avec les premiers contrôleurs (internet remote control)

@GCE : quelle API avez vous implanté dans l’ipx ?

Je ne sais plus qu’elle API à été implantée mais suite à la sortie de l’Ibox2 on a refait des mises à jour pour rendre compatible l’iBox2 avec l’IPX800.
Nous avons fait en sorte que les lampes Milight qui sont en ventes sur notre site fonctionnent toujours avec l’IPX800.
Nous n’avons pas forcément cherché à implanter tous les autres modèles de lampes ou de bandeau RGB vu qu’on ne les avaient pas sous la main pour faire les tests.

On va quand meme regarder pourquoi ça ne marche pas bien au niveau scénario.

cdt

l’internet remote control de milight (celui que vous vendez) est obsolète et c’est l’API v5
le ibox 1 ou ibox 2 c’est le dernier en date qui supporte l’API 6

j’ai vu que le protocole est completement different entre les 2 api, pour la v5 une simple instruction en udp permet l’allumage et l’arret d’une lampe (41 00 55 et 42 00 55) pour la V6 il y a dabord une requête pour communiquer avec ibox (pour avoir la mac adress) et ensuite l’instruction en hexa et après le retour d’info du contrôleur

sur domoticz, l’interface propose le choix entre V4/v5 et V6, je pense que c’est ce que vous avez voulu faire avec le choix « version contrôleur »

je viens de faire des tests avec un controleur « internet remote controller » et un RGB simple, çà a l’air de fonctionner avec des entrées virtuelles : on passe d’un type d’éclairage a un autre sans problème.

Le problème vient donc du codage de l’api v6 dans l’ipx
Je suis prêt a aider pour résoudre le problème avec vous pour que l’intégration de l’api soit ok dans l’ipx car ce n’est pas un problème de lampe ou de contrôleur ruban (les instructions sont les mêmes pour tous) mais bien un problème de communication entre l’ipx et le contrôleur ibox

1 « J'aime »

Bonjour,

Je suis d’accord avec vous. Dailleurs nous avions choisi milight car le protocole v5 était simple et efficace…On a déchanté quand les nouvelles versions sont arrivées car au final le nouveau protocole est bien plus complexe et n’apporte rien de plus mis à part l’incompatibilité avec les premières versions !
Si vous souhaitez nous aider la première chose serait de nous fournir une description de l’API qui tienne la route :slight_smile:
Ensuite je pense qu’il va nous falloir réécrire une grosse partie de la com entre IPX et iBox…car dans mes souvenir la requête UDP pour obtenir la mac de l’iBox posait problème car la iBox ne répondait pas systématiquement…Sur l’IPX les multiples communications UDP juste pour allumer une lampe c’est beaucoup de ressources !!!

2 « J'aime »

J’ai encore regardé un peu ce matin je pense avoir compris le fonctionnement de l’API V6

Quelques problèmes vont se poser :
On ne peut envoyer qu’une requête a la fois c’est a dire on ne peut pas envoyer une requête allume à 50 % en bleu, il faut tout décomposer :

  • allume la zone 1
  • dimme la zone 1 a 50%
  • passe la zone 1 en bleu
    Donc pour passer en blanc , 100% après ce script il faut
  • allumé la zone 1
  • dimme la zone 1 a 100%
  • passe la zone 1 en blanc

D’après mes tests il faut une petite pause entre les requêtes pour éviter des collisions car il y a un compteur dans l’envoi des requêtes et c’est ça qui fout la m…
Si j’ai le temps je posterai ce soir ce que j’ai pu découvrir sur l’API v6

donc ce que j’ai découvert : tous ce passe en udp

la première requête est immuable, elle sert a avoir les infos de l’ibox 1/2 :

20 00 00 00 16 02 62 3A D5 ED A3 01 AE 08 2D 46 61 41 A7 F6 DC AF D3 E6 00 00 1E

a cette requête on a une réponse de l’ibox du style :

28 00 00 00 11 00 02 FF FF FF FF FF FF XX XX XX XX XX XX ID ID 00

les 7 premiers bits ne bougent pas, les 6 bits FF sont la mac adresse de l’ibox, les bits XX ne bougent pas non plus (je ne sais pas ce que c’est ), les bits ID sont les identifiants de la session et les 00 a la fin ne bouge pas non plus.

pour envoyer une action il faut une requête comme ça :

80 00 00 00 11 ID ID IC IC XX 31 00 00 08 04 02 00 00 00 ZZ CS CS

les 5 premiers bits sont immuable, les 2 ID sont a reprendre de la reponse a la première requête, IC sont un incrément avec un +1, le XX je ne sais pas ce que c’est, à partir de 31, c’est la commande : ça commence toujours par 31 00 00 08 (pour action de lumière) et aprés l’action :
-04 01 00 00 00 on
-04 02 00 00 00 off
-05 00 00 00 00 active blanc froid
-etc
ensuite Z pour la zone (1,2,3,4 ou 0 pour toute zone) et pour finir CZ pour le checksum (addition de la commande et la zone : 31+00+00+08+04+01+00+00+00+01(zone) = 00 40 en hexa

si la commande est exacte on a un retour de l’ibox qui commence par 88 00 00 03, aprés c’est les 2 bits IC et pour finir 00

pour le reste je suppose car je n’ai pas le soft pour vérifier plusieurs commandes d’affilées :

pour un blanc a 50% par exemple :
allumer lampe
envois : 20 00 00 00 16 02 62 3A D5 ED A3 01 AE 08 2D 46 61 41 A7 F6 DC AF D3 E6 00 00 1E
retour : 28 00 00 00 11 00 02 FF FF FF FF FF FF XX XX XX XX XX XX ID ID 00
recup des id et créer IC (=00 01), on précise la zone et on calcul le checksum
envois : 80 00 00 00 11 ID ID IC IC 00 31 00 00 08 04 01 00 00 00 ZZ CS CS
Retour : 88 00 00 00 03 IC IC 00
la lampe est allumée
passe en blanc
envois : 20 00 00 00 16 02 62 3A D5 ED A3 01 AE 08 2D 46 61 41 A7 F6 DC AF D3 E6 00 00 1E
retour : 28 00 00 00 11 00 02 FF FF FF FF FF FF XX XX XX XX XX XX ID ID 00
recup des id et incrémente IC (ic+1), on précise la zone et on calcul le checksum
envois : 80 00 00 00 11 ID ID IC IC 00 31 00 00 08 05 64 00 00 00 ZZ CS CS
retour : 88 00 00 00 03 IC IC 00
La lampe est en blanc
Dimmer a 50%
envois : 20 00 00 00 16 02 62 3A D5 ED A3 01 AE 08 2D 46 61 41 A7 F6 DC AF D3 E6 00 00 1E
retour : 28 00 00 00 11 00 02 FF FF FF FF FF FF XX XX XX XX XX XX ID ID 00
recup des id et incrémente IC (ic+1), on précise la zone et on calcul le checksum
envois : 80 00 00 00 11 id id ic ic 00 31 00 00 08 03 32 00 00 00 zz cs cs
retour : 88 00 00 00 03 IC IC 00
La lampe est à 50%
il faut une courte pause entre les envois sinon l’id saute de temps en temps

la lampe garde les derniers paramètres a l’extinction donc avant d’eteindre la lampe un dimmer a 0 permet de palier la transition violente a l’allumage a 50% (0%->50% au lieu de 100%->50%)

et je pense qu’il faut prioriser les commandes :

  • 1 → allumage (donc a dimmer 0)

  • 2 → changement de couleur

  • 3 → dimmer à ??%

  • 1 → dimmer à 0%

  • 2 → light off

je pense que le code de l’ipx pour le milight est assez approchant de l’api v6 mais en priorisant les commandes comme citées plus haut, en mettant le dimmer à 0 avant la commande d’extinction et en faisant une courte pause entre les commandes je pense que ça peut être parfait

2 « J'aime »

Bonjour,

Je souligne votre effort mais il faut reconnaître que l’api Milight est loin d’etre clair.

Voici les 2 premiers blocages:

  1. l’interrogation de la box…
    Elle ne répond pas systématiquement…

  2. les 2 caractères à rajouter dans la réponse une fois que iBox a répondu…
    Parfois ça ne marche pas il faut revenir au point 1.

Pour le reste des commandes c’est déjà implanté dans l’ipx . Le soucis est au début de la com sur les 2 premiers points.

On va regarder cette histoire de priorité de commande…

1 « J'aime »

Bonjour,

pour moi la box répond tout le temps mais il est vrai que,par moment, les 2 bits ID ne changent pas si on va vite dans l’envoi des requêtes

pour la priorité de commande, je pense que ça peut régler pas mal de problèmes mais aussi avant de off une lampe il faut la passer en dimmer = 0

Bonjour,

Je vous propose d’essayer la dernière version qui fiabilise MiLight dans les scénarios et de me faire un retour.

Cordialement,

Benjamin

3 « J'aime »

Je teste ça ce soir .

Quels sont les modifications : timing ou priorité ( ou les 2)
Je suis curieux :grinning:

J’ai ajusté les timings, les modifications de priorité demanderaient beaucoup plus de temps !

1 « J'aime »

D’accord.
Je teste ça tout à l’heure

désolé je n’ai pas pu tester hier soir

donc pour les retours : le système se comporte mieux dans les scénarios tout du moins dans le scénario que j’ai testé, j’ai constaté que le dimmer ne vient pas en augmentation

vous pouvez tester :
-le dimmer de la lampe sélectionné sur le widget a 10%
-une preset milight sur blanc 100%
-scénario : EV 9 ON/OFF milight 100%

La lampe reste a 10%

2 éme test :

le dimmer ne baisse pas avec la même couleur dans le preset

preset 1 : blanc 100%
preset 2 : blanc 20%

passer d’un preset à l’autre ne fonctionne pas, le blanc reste a 100%

par contre si je mais en preset 2 : bleu 20% la couleur change et le dimmer fonctionne

on dirait que toutes les commandes ne sont pas envoyées a l’ibox / j’exclus la com. entre l’ipx et l’ibox vu que ça marche avec le bleu

Bonjour,

Voici le correctif. Vous pouvez désormais dimmer le blanc.

IPX800_V4.00.35_B23.rar (322,2 Ko)

Cordialement,

Benjamin

4 « J'aime »

bonjour Benjamin,

Le dimmer blanc fonctionne correctement maintenant. merci
Qu’avez vous fait ? c’est l’instruction qui n’a pas été codée ?

Je vais tester d’autres scénarios pour repérer les bugs et je ferai mon rapport sur ce post (ou un autre si c’est plus pratique pour vous)

J’avais parlé plus haut de dimmer a 0 avant de off une ampoule, je sais que c’est une commande en plus mais pas trop difficile a implanter
Cela permettrai d’éviter d’avoir un allumage violent (soft start et soft stop) et surtout une transition douce quand un allumage 20% est précédé d’un 100%

en tout cas merci pour votre travail

1 « J'aime »

Bonjour,

La gestion du blanc et des couleurs était différente, je l’ai du coup harmonisé.

Je vais regarder si la modification est faisable.

Cordialement,

Benjamin

1 « J'aime »

Bonjour,

Voici la version qui permet d’éviter un allumage violent grâce à un passage de dimmer à 0 avant chaque arrêt.

IPX800_V4.00.35_B24.rar (321,9 Ko)

Cordialement,

Benjamin

2 « J'aime »