[V4] Dev service Milight

Bonjour à tous,

je me penche sur le dev du service milight. Ca prendra surement du temps car je ne suis pas un expert en dev, mais je suis bien motivé :wink:. Pour le moment j’arrive à récupérer la gateway, l’inclure dans Gladys et créer les 4 zones Milight en tant que device.

Prochaine étape, envoyer l’ordre pour allumer/éteindre les lumières.

Il y a du monde qui utilise des milights ?

Quelques aperçus

2 Likes

Salut @link39

Je l’utilise donc je peux être dispo pour faire des tests :slight_smile:

1 Like

Salut @link39,
si tu veux de l’aide sur le dev, ou des reviews, je suis à ta disposition :wink:.
N’hésite pas créer une Pull Request sur le repo Gladys (en draft tant que le developpement n’est pas terminé) afin qu’on puisse y jeter un oeil plus facilement, et suivre le dev.

A +

1 Like

Merci @AlexTrovato et @Totof .
je vais me remettre sur le service dans la semaine et je ferai donc une PR comme indiqué.

J’ai réussi à allumer/éteindre les lumières. Niveau code, je bloque sur la création des paramètres au niveau des devices et la récupération de ceux-ci. Je vous solliciterai surement pour ce point.

à bientôt.

Salut @link39 !

J’ai commencé a bosser sur un service pour les ampoules low cost, et je vais devoir bosser sur un component “Color” => https://github.com/GladysAssistant/Gladys/pull/620

Je suppose que tu vas devoir aussi. Ca te dirait d’accorder nos violons et de voir ce qu’on pourrait faire ?

Salut.

j’ai toujours pas eu le temps d’avancer sur le sujet car trop peu de temps à consacrer à Gladys en ce moment.
Mais oui il faudra que je gère la partie couleur, choses que je ne fais pas actuellement. De manière plus général, je pense que tout les services manipulant des ampoules doivent utiliser le même component ‘color’. Je ne sais pas si @pierre-gilles à déjà réalisé quelque chose dans le module Philips Hue pour les couleurs. Auquel cas nous pourrions nous appuyer la dessus. Je sais qu’il y a eu pas mal de discussion à ce sujet sur le forum mais là j’ai perdu le fil :wink:

Je ne connaissais pas les Magic Device. Ca ressemble carrement au mi-light, c’est récent ? Est-ce que tu as le retour d’état avec ou bien c’est juste de l’envoie de commande ON / OFF / couleur ?

Salut @AlexTrovato,

j’ai essayé de créer une PR en mode Draft mais je n’ai pas trouvé comment faire :sweat_smile: J’ai que l’option Create a pull request.

Salut, sur le bouton “create PR” tu as une petite flèche (dropdown), c’est la que tu trouveras le draft.
Mais je n’ai pas trouvé le moyen de passer de PR a draft, tu n’as pas le droit à l’erreur.
Sinon tu mets “WIP” dans le titre de la PR.

@link39 J’ai appelé ça Magic “Devices” car c’est des ampoules et des bandeaux led low-cost qui sont tous contrôlables par les appli android et iOs appelées “Magic Home”, “Magic Hue”, etc … quelle que soit la marque low cost du device (Bricorama, Carrefour, Wish, AliExpress, Gearbest, et tous les sous marques de sous marques qui utilisent une copie de l’appli Magic Home), ils utilisent quasi tous le même composant wifi et sont tous fabriqués par le même constructeur en chine (Zengge). Du coup, ils parlent tous le même langage, donc y’a moyen de pouvoir prendre le contrôle sur tous les modèles de la même façon, y’a que le packaging et le logo sur l’ampoule qui change …

Certains modèles renvoient l’état après la réception de l’ordre, d’autres non … Mais j’ai trouvé une super lib qui gère tout ça pour moi (j’ai perdu 2 jours a créer un controler qui convertit tout en Bytes, et puis j’ai vu qu’un mec avais déjà fait mieux lol :joy: )

Exemple sur AliExpress, j’ai juste tapé Magic Home dans la recherche, donc ca me remonte tous les devices qui utilisent l’appli Magic Home : https://fr.aliexpress.com/af/magic-home.html?d=y&origin=n&SearchText=magic+home&catId=0&initiative_id=SB_20191201001432

J’avais acheté une ampoule comme celle là. Je me suis rendu compte que sur plusieurs marques différentes c’était la même appli, j’ai commencé à creuser à partir de là.

Bref, revenons à nos moutons. Y’a pas encore de Couleurs dans Gladys, mais si tu veux voir comment j’oriente la recherche, y’a une PR sur le github avec les magic devices. Sur conseil de pierre-gilles, j’essaye de tout gérer en HSL. Le plus dur je trouve c’est d’imaginer le color-picker dans une box sur le dashboard. Il doit rester simple je pense. Les options “compliquées” doivent se retrouver dans la configuration du device dans l’onglet integration:

Je pense d’ailleurs que je devrais pas faire un pop up des couleurs, ca sera surement chiant a utiliser sur mobile. Une roue de couleurs aussi. Avoir une simple liste limitée a par exemple 8 couleurs devrait suffire pour le dashboard. Pour les Scenes et les Integrations, je pense proposer un component complet.

EDIT: je me rend compte aussi que le multi feature sur le dashboard et pas super, je vais surement regarder là dedans avant. J’ai bien vu un component MultiLevelDeviceFeature mais je sais pas a quoi il sert. Une idée @AlexTrovato ou @pierre-gilles ? J’ai pas encore vu de component l’utiliser.

Salut, pour le MultiLevelDeviceFeature je passe mon tour, j’avoue que je ne me suis pas encore beaucoup penché sur le core de Gladys, je me concentre surtout sur la partie services.

Ok, en tout cas pour le front j’ai l’impression que c’est le DeviceRow qui gère chaque feature d’un device.

Oui en effet, et après tu as SensorDeviceFeature et BinaryDeviceFeature qui sont actuellement utilisés. L’affichage est donc bien principalement gérée par feature, non pas par device. Mais aussi, le device ne connaît pas son propre type (light, switch…), ce ne sont que les features qui le connaissent.

Le problème d’afficher tout en feature dans le dashboard, c’est qu’on se sent obligé de répéter le nom du device (dans mon exemple “Plafond”). Je pense qu’il faudrait afficher le nom du device, puis dans une sub-box les features. Enfin, ca me semble plus intuitif.

Super boulot, en ce qui concerne la variation de couleurs, on en a parlé ici.
La vue d’un cercle chromatique a été mise en avant.

Pour un affichage de plusieurs features en un, on a eu ce débat plein de fois sur le forum (Probablement dans le sujet “parlons de Gladys 4”), et je suis complètement pour :slight_smile: Si un capteur gère en même temps la température, l’humidité, la luminosité, ça fait sens de n’afficher qu’une fois le périphérique et de grouper les informations retournées, on gagne de la place.

Il faut juste trouver une façon clean de le faire, si quelqu’un a des idées de présentations je suis preneur.

Je suis pas fan de ce genre de solution, je trouve ça fouilli et pas forcément utile de présent 16 millions de couleurs à l’utilisateurs :stuck_out_tongue: je préfère une sélection de 10-16 couleurs judicieusement choisie, comme la palette qu’à proposé @renaiku en PR

Autant pour moi, je pensais qu’un mixe des 2 était pas mal.

Pour ce qui est du regroupement des features par devices dans les box du dashboard, j’ai des idées qui germent. Mon principal problème actuellement est que les box sont dans des “table”. et que du style css est appliqué par cellule, donc je fait du css/html un peu dégueulasse pour le moment pour arriver à l’affichage montré plus haut.

Une fois mon service terminé, je ferais d’autres PR par rapports aux box du dashboard. Pour le moment elles posent soucis lorsqu’un device a plus qu’1 feature, c’est pas assez souple pour avoir un rendu sympa sans bidouiller le css (les table sont mes ennemis jurés au travail aussi :joy: ).

Pour ce qui est des couleurs … J’ai effectivement proposé un petit choix de couleurs. J’ai le sentiment que le dashboard doit rester simple a utiliser depuis un téléphone bas de gamme. Mais je suis pas contre l’idée de proposer un cercle chromatique dans les options avancées du device, ou lorsqu’on créera des scènes. Encore une fois, le dashboard doit rester ultra sobre. Les bidouilleurs sauront aller dans les options au fin fond de l’UI pour manipuler à leur guise.

Personnaliser la liste de couleurs affichées dans une feature sur le dashboard est tout a fait imaginable bien sûr :wink: Mais c’est pas dans en haut de la liste des choses a faire pour que l’affichage soit fait correctement. Je dois d’abord voir comment faire du multi feature par device dans une box, que l’idée soit validée par la commu, que ca soit merge sur le git de Gladys (pour éviter d’avoir des PR qui dépendent de PR qui dépendent de PR, …). Et ca, c’est bien sûr si c’est moi qui me penche dessus en premier ! N’importe qui avec un minimum de bagage en javascript pourrait se lancer dans l’aventure :wave:

1 Like