Yoctopuce & NEEO, le driver de l'inutile

Yoctopuce & NEEO, le driver de l'inutile

Pendant longtemps, la Rolls des télécommandes universelles a été la série des Pronto, mais Philips a arrêté de les fabriquer il y a une dizaine d'années. Ils avaient probablement épuisé le vivier de clients disposés à lâcher mille dollars pour une télécommande universelle. Aujourd'hui, la relève est plus ou moins bien assurée par l'Harmony de Logitech et NEEO. NEEO offrant un SDK, on s'est demandé si on pouvait l'utiliser pour contrôler des modules Yoctopuce.


Un peu de contexte

NEEO a été financée début janvier 2015 sur Kickstarter. Leur campagne leur permis de lever un peu plus d'un million et demi de dollars pour une télécommande universelle qui promettait beaucoup. Non seulement leur campagne annonçait ce qu'on est en droit d'attendre d'une bonne télécommande universelle comme une utilisation facile ou l'apprentissage de codes infrarouges mais elle évoquait aussi des fonctionnalités plus originales comme la localisation de la télécommande à l'aide d'un smartphone, la personnalisation de l'interface en reconnaissant la main de celui qui la tient, etc..

Alors que la compagne évoquait une disponibilité pour avril 2015, les premiers exemplaires n'ont été livrés que deux ans plus tard en août 2017. Cependant l'attente en valait la peine, malgré l'absence de la plupart des fonctionnalité avancées promises et un firmware plus que perfectible, la télécommande fonctionnait a peu près. Il y a encore peu de temps, il y avait peu de doute à propos de cette télécommande NEEO: elle est pratique, le hardware est visiblement bien au point, et les problèmes logiciels sont fait pour être résolus même si cela prend du temps.

La télécommande NEEO et son brain
La télécommande NEEO et son brain



Le système NEEO se présente sous la forme d'une télécommande avec quelques boutons physiques et un écran tactile capacitif d'excellente qualité, et d'un petit ordinateur, le Brain, qui se charge des calculs.

Le brain est basé sur un Allwinner A20
Le brain est basé sur un Allwinner A20



La configuration du système se fait l'aide d'une application disponible gratuitement sur Google Play et l'Apple Store. En termes de simplicité de configuration, NEEO n'a pas menti, vous entrez le modèle d'un appareil que vous souhaitez piloter, l'application récupère la configuration correspondante sur les serveurs NEEO, et hop! c'est prêt à être utilisé.

NEEO offre aussi un SDK en node.js, qui permet essentiellement de créer des drivers pour des appareils pilotables par IP. Il se trouve que grâce aux YoctoHubs, il est extrêmement facile de fabriquer des appareils pilotables par IP avec des modules Yoctopuce, on a donc décidé d'essayer d'écrire ce driver et ça marche...

Le driver NEEO pour Yoctopuce

Le driver qu'on a écrit est capable de piloter des relais, des servos, des sorties 0-10V, 4-20mA et PWM. Il est aussi capable d'afficher la valeur de n'importe quel capteur Yoctopuce. Pour l'utiliser vous aurez besoin d'un ordinateur connecté sur le même réseau IP que Brain NEEO. Non, il n'est pas possible de faire tourner le driver directement sur le Brain, on a demandé pourquoi au support NEEO, mais on n'a pas reçu de réponse.

Installation

Assurez-vous que Node.js et npm sont installés sur la machine que vous avez choisie, le système d'exploitation n'est pas très important: on a testé sur Windows et Linux, ça marche.

Téléchargez le driver depuis GitHub, copiez les quelques fichiers dans le répertoire de votre choix et tapez dans le même répertoire la commande suivante

npm install


Npm va automatiquement télécharger et installer les librairies NEEO et Yoctopuce nécessaires au bon fonctionnement du driver.

Configuration

Une fois l'installation terminée, vous pouvez lancer le driver en tapant:

node index.js


Le driver va découvrir tout seul le Brain NEEO et les YoctoHubs présents sur le réseau et créer les entrées correspondantes pour les modules compatibles. Si pour une raison ou une autre, le driver éprouve des difficultés à découvrir les hubs ou le brain vous pouvez hardcoder leurs adresses IP au début du code du driver.

Dès que le driver a découvert les premiers modules vous pouvez les ajouter à la télécommande en ajoutant un nouveau device dans l'application NEEO. Cherchez simplement "Yoctopuce" lorsque l'application vous demande le nom de modèle à ajouter et tous les modules découverts vous seront proposés. Le driver étant purement local, il n'utilise pas les serveurs NEEO et peut donc être installé même si les serveurs NEEO sont injoignables.

Ajouter des modules Yoctopuce (non on ne sait pas pourquoi les TV LG apparaissent aussi)
Ajouter des modules Yoctopuce (non on ne sait pas pourquoi les TV LG apparaissent aussi)


Le driver crée en fait des accessoires, ce qui fait que vous devez les ajouter manuellement dans le panel "shortcuts" des "rooms" dans lesquelles vous voulez les utiliser.

Tadaaa! (oui c'est écrit petit et en majuscules, mais on ne peut pas changer)
Tadaaa! (oui c'est écrit petit et en majuscules, mais on ne peut pas changer)


Les capteurs sont affichés sous la forme d'une chaîne de caractères nom + valeur + unité, les relais sous la forme d'un bouton et et les autres actuateurs sont affichés sous la forme d'un curseur. Les noms par défaut sont en fait les nom logiques des fonctions concernées, plus exactement la chaîne retournée par get_friendlyName().

Démo

On a vous a préparé une petite démo qui met en scène

Le système NEEO ne laissant à l'utilisateur quasiment aucune latitude en terme de design graphique, l'interface du driver est un peu brute de décoffrage, mais ça marche:

  



Conclusion: tout ça pour ça

Lorsqu'on a décidé de développer ce driver, on était bien conscient que ce driver n'intéresserait que l'intersection des clients NEEO et des clients Yoctopuce, autant dire une poignée de gens. Mais on s'était dit que cela pourrait donner des idées aux autres. Seulement voilà, la semaine dernière NEEO a annoncé son acquisition par la société Control4 et que par conséquent:

  • Control4 ne vendant pas aux particuliers, la télécommande NEEO n'est dorénavant plus commercialisée.
  • Hors correctifs critiques, le firmware de la télécommande n'évoluera plus.
  • L'infrastructure existante (comprendre les serveurs NEEO) restera active et utilisable pendant deux ans à compter de la date d'acquisition par Control4.

Le moins que l'on puisse dire, c'est que la communauté NEEO n'a pas été spécialement emballée par cette annonce pourtant présentée comme un événement extraordinairement positif. Tout le monde a très bien compris les conséquences d'un tel changement:

  • Les nombreuses fonctionnalités promises lors que la campagne Kickstarter, et qui n'avaient pas encore été implémentées, comme l'apprentissage de codes IR, ne le seront jamais.
  • Les télécommandes qui tombent en panne ne pourront pas être remplacées
  • Une fois les serveurs NEEO arrêtés, il ne sera plus possible d'ajouter de nouveaux appareils dans les télécommandes
  • Si elle n'est plus maintenue, l'application NEEO indispensable à la configuration du système, va disparaître à moyen terme. En effet, Google a l'habitude de changer régulièrement les règles de Google Play et d'éliminer les applications qui ne respectent pas les nouvelles règles. Un moyen comme un autre de faire le ménage mais sans pitié pour les applications orphelines.

Pour résumer, NEEO a délibérément décidé de saborder un produit prometteur qu'il avait construit à l'aide de sa communauté de clients, lesquels clients se sentent aujourd'hui un peu floués. En ce qui nous concerne, tout le travail de développement du driver NEEO pour les modules Yoctopuce tombe un peu l'eau, mais on s'est dit que puisqu'il était écrit, autant le publier. Moi, personnellement, j'espère juste que cette sordide histoire rejoindra le Nest Revolv et le drone Zano au Panthéon des mises en garde à propos des objets qui ont besoin de serveurs tiers pour fonctionner.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.