Xiaomi et Jeedom : la combo ultime

Jeedom c’est la crème pour la domotique, Xiaomi fait de super produits. L’alliance des deux marchait déjà bien, que faire de mieux ? Et bien après les modules Zigbee Aqara et les lampes Yeelight, voilà les appliances Wifi. Merci qui ? merci Sarakha63.

 

Xiaomi Home

Xiaomi Home : les nouveaux matériels

Alors dans les nouveautés il y a les nouveaux capteurs carrés Aqara. Et c’est tout.

Bon ok, y en a qui suivent, il manque la principale nouveauté : le robot. A mais il est pas tout seul ? Et non non, tant qu’à faire il vient avec des copains.

Donc au total ce sont 8 appliances Xiaomi qui rejoignent le plugin :

  • le robot aspirateur
  • le purificateur d’air
  • l’humidificateur d’air
  • le capteur de pollution d’air
  • le ventilateur (d’air, juste pour faire la suite …)
  • la lampe Philips
  • la prise Wifi
  • la multiprise

Donc tout ca en plus des Yeelight et les capteurs Aqara (qui nécessitent la gateway Wifi/Zigbee). Bref, vous vouliez que du Xiaomi dans votre Jeedom ? On y est presque.

Parcequ’en Wifi, il reste encore à tester pour voir : le cuit riz, la prise pour climatisation, l’ampoule et plafonnier Philips.

Alors du coup, pour l’occasion, mise à jour des pages du plugin dans le menu du haut. Que ce soit celle globale Xiaomi Home ou celle des capteurs Aqara. Mais vous avez aussi le robot, le purificateur, l’humidificateur, les prises, le capteur pollution, le ventilateur, la lampe Philips.

Sinon, comment on ajoute ca dans Jeedom ? Alors, pour pas mal de modèles c’est très très compliqué : on saisit l’ip, on sélectionne le modèle et save. Voilà oui, ouf ca va être dur d’ajouter tout ca.

Subtilitié, certaines appliances (pas de bol, le robot est dans ce cas) ne donnent pas leur token qui permet la communication. Bon ben vous avez deux solutions, et vous savez quoi ? Elles sont dans la doc …

Allez, vu que personne lit la doc, pistes :

  • première solution, vous utilisez l’éxécutable téléchargeable sur la page de config. Mais pour ca, il faut reseter l’appareil et se connecter à son wifi pour lancer l’exe. Là vous pourrez avoir son token, puis le connecter au Wifi.
  • deuxième solution, vous avez le bon gout d’avoir un téléphone Android rooté. Et là, facile, dans la doc vous trouverez le lien vers une app qui permet de récupérer directement tous les tokens présents dans l’app Mi Home. Magique, suffit de bien choisir son tél 🙂

Xiaomi Home : les nouveautés techniques

Alors qu’est-ce qui change dans le plugin exactement ?

Et bien au niveau de la gestion dans Jeedom, ca reste pareil avec l’ajout des nouveaux modules Aqara et Wifi. En revanche au niveau de la communication avec vos produits il y a du changement sur les 3 familles.

  • Aqara : désormais tout passe par le démon python du plugin, plus de commande nodejs séparée. Alors c’est pas que le nodejs c’est pas bien, mais ca évite la multiplication des langages au sein du même plugin. Et puis c’est la faute de Sarakha63, il aime pas nodejs trop facile, il aime bien le python et sa rectitude.
  • Yeelight : alors là aussi les actions rejoignent le daemon python, par contre détail important il n’y a plus de découverte auto des ampoules sur le réseau. En échange vous avez un bouton scan qui permet de récupérer toutes les ampoules du réseau (ouais, vous avez reconnu la fonctionnalité de Broadlink, étrange) Bonus qui peut servir à certains (big up aux vamps de la côte d’azur) on peut même ajouter une ampoule non détectée, par exemple qui n’est pas sur le même réseau.
  • Wifi : bon ben là c’est pas un changement, c’est une nouveauté complète. Mais donc oui ca rejoint le daemon python.

Donc du coup pour résumé, le plugin utilise un daemon unique, écrit en python qui recoit les commandes de Jeedom (peu importe Aqara, Yeelight ou appliances) et balance à la bonne cible dans le format qu’elle attend.

C’est lui aussi qui scanne le réseau, rafraichit les statuts et remonte tout ca à Jeedom. Tout ca dans un daemon aux standards ben oui, parceque du coup, je vous ais dit que Sarakha avait filé un coup de main ? Déjà ? Mince, et vous savez d’où lui vient son côté un peu barré et la tête dans le guidon ? Apparemment c’est hériditaire.

Conclusion

Pour fêter ca, j’offrirais le plugin à 3 personnes au hasard qui posterons un commentaire avec partage sur réseau social de l’article. Si vous avez pas besoin du plugin car vous l’avez déjà, vous pourrez l’offrir à une personne de votre choix pour qu’elle se lance à la combo Jeedom + Xiaomi 🙂

Ah oui, et autant un Homer a beaucoup aider pour cette nouvelle mouture, mais toujours pas d’utilité des canards dans Jeedom. Donc si vous voulez acheter ces nouveaux jouets pour votre Jeedom, évitez la foire aux bons plans au canard.

90 réflexions au sujet de “Xiaomi et Jeedom : la combo ultime”

  1. Superbe nouvelle , j’ attendais la comptabilité avec le robot aspirateur. Je tente le coup pour gagner le plugin mais dans tous les cas je vais me l’offrir .Bravo pour le travail effectué.

    Répondre
  2. J’adore le ton et l’humour de tes articles 😉 Et bravo à Ludo et tout les autres pour le plugin et toutes ces améliorations

    Répondre
  3. Super boulot les gars Ludo et toi changez le quotidien de beaucoup de personnes alors merci…. grâce à vous j’ai pu progresser dans beaucoup de domaine et perfectionné mon installation domotique.
    Je parles pas de la simplicité des choses à chaque fois je me régale.
    Continuez comme cela même si beaucoup prennent sans remercier il y en à sur qui vous pouvez compter ;-).
    Ce WE je passe une méchante commande de modules c’est certains.

    Répondre
  4. Super, je viens de tester par contre j’ai un probleme avec certain dispositif wifi comme la lampe de bureau ou les multiprises, la récupération du token me retourne une valeur de « 00000000000000000000000000000000 » , par contre pas de problème pour les prises wifi .

    Répondre
      • Merci, je viens d’essayer avec le binaire xiaomiwifi.exe, il ne récupere pas le token pour les multiprises, je n’ai pas vu d’option dans xiaomi home (ios) pour activer un mode devellopeur. Je vais fouiller dans l’application …

        Voila la sortie du binaire:

        [2017-07-20 10:07:33][INFO] : IP 192.168.1.65: 217 – token: 00000000000000000000000000000000
        [2017-07-20 10:07:33][DEBUG] : Unable to decrypt, returning raw bytes.The ‘appdirs’ package is required; normally this is bundled with this package so
        if you get this warning, consult the packager of your distribution.

        Répondre
  5. Salut Lunarok

    Encore merci a toi et sarahka63 pour votre travail magnifique, vos 2 blogs qui sont en tête de liste chez moi et vu tout les jours

    Maintenant il reste a résister d’acheter encore plus de module chez moi 😉

    Répondre
  6. Bonjour,
    ça à l’air vraiment top tout ça… mais je ne possède qu’un iPhone et un Macbook (pas de reflexions désobligeantes s’il vous plait ;)). Du coup impossible de récupérer le Token d’accès pour l’aspirateur avec les deux méthodes que tu donnes :-/

    Une chance pour que tu donnes un exe Osx un jour? Sinon tu sais si il es possible d’extraire le token en sniffant les paquets comme on trouvait dans les tutos des premiers posts pour envoyer des commandes au robot?

    Bonne journée

    Répondre
    • Sachant que l’exe ne fait que lancer un python voilà quoi … Je l’ai utilisé sur Debian sans soucis (j’ai pas de windaube non plus, enfin juste celui du boulot)

      Répondre
      • Effectivement, si c’est un script python, je dois pouvoir le lancer depuis le terminal sans problème 🙂
        Par contre dans le .zip je trouve tout un tas de .pyd (les library que ton script utilise?), mais pas le .py de ton script. Il est doit être embedé dans l’exe j’imagine? Tu pourrais l’ajouter au .zip pour les pauvres utilisateurs de mac comme moi ou ça te dérange que le code source soit lisible?

        J’ai vu un screenshot du widget chez Sarakha, c’est encore mieux que ce que je pensais! J’ai hate de pouvoir tester ça chez moi 🙂

        Répondre
          • Oui je sais bien qu’une fois dans le terminal (la ligne de commande Osx) il faudra que je fasse quelque chose du genre « python xiaowifi.py », mais le script python n’es pas dans l’archive et je ne vois pas comme l’extraire du .exe (ou alors j’ai de la merde dans les yeux, c’est possible aussi :))
            A moins que tu ne me suggères de lancer le .exe pour voir dans la console ce qu’il fait? Dans ce cas il faudra que j’attende lundi d’être au bureau pour ça.

      • Je sais et ça n’enlève rien bien heureusement à la qualité de ton travail. Mais comme Dr Sarakha a mis la main dedans, ça aurais pu changer la donne.
        En tout cas, encore merci pour ce plugin que je vais bientôt tester je pense.

        PS: quel(s) différence entre celui-ci et wifilight pour la gestion des Weelight ?

        Répondre
  7. Encore une maj, décidément ça bosse dur sur le Xioami compatible !!! 🙂
    Le truc qui est chiant avec les maj c’est que forcément cela nous force a vider notre porte monnaie et la c’est pas cool !
    Alors je suis mitigé sur la maj bien ou pas bien… :p

    Merci Lunarok et Sarakha pour votre boulot !

    Ah oui pour info, du coup 90% de mes plugins sont les votres. Bravo les gars !

    Répondre
  8. Hello,

    Je surveille les produits Xiaomi avec une certaine méfiance depuis leur apparition, mais je dois dire que j’ai quand même une grosse curiosité pour ces produits et qui grandit au fur et à mesure, en particulier à cause du plugin que vous développez.
    Du coup, une simple question : est-il possible aujourd’hui d’utiliser les produits Xiaomi avec Jeedom sans installer la moindre application sur son smartphone ?

    Si tel est le cas, je crois que le titre de votre article serai proche de la vérité !

    Répondre
    • Non aujourd’hui il faut absolument l’application Mi Home (et Yeelight) pour faire déjà le paramétrage Wifi et activer les modes locaux pour Yeelight/Aqara. Mais c’est pas infaisable (mais honnêtement, ca demanderait beaucoup de boulot pour juste se passer d’une conf ponctuelle et Mi Home permet les màj de firmware)

      Répondre
    • Comme mentionné par lunarok, c’est indispensable pour l’installation initiale et les mises à jour des firmware des différents composants. Mis à part ces rares occasions, l’installation est autonome et surtout on peut couper les accès de la gateway et des yeelight vers Internet.Je ne sais pas vous, mais, je n’ai pas envie que les chinois sachent quand j’allume mes lumières.

      Répondre
      • Ok, merci, c’est quand même dommage…
        C’est quand même le meilleur moyen pour s’équiper vite grâce au cout des modules largement inférieur à ceux d’autres protocoles…

        Les maj de firmware sont-elles fréquentes ?

        Répondre
          • Dans une installation stable (donc, sans aller sur gearbest acheter le dernier capteur sorti!), je fais les montées de niveau de firmware tous les trois mois. L’appli xiaomi est donc sur mon téléphone, mais je la lance 4 fois par an. Je m’en suis servi pour éclairer une armoire (des bandeaux de led) lors de l’ouverture des portes (1 capteur d’ouverture par porte). Pour une grand armoire, ca fait autour de 100 euros de matos (4 LED, 4 capteurs et la gateway -qui fait d’autres trucs-). Je pense qu’avec autre chose que xiaomi ( + jeedom et le plugin de Lunarok!!), ça serait 3 ou 4 fois plus.

  9. Super nouvelle, bravo à votre patience pour fournir cette immense boulot sur ce plugin à toi et sarakha .

    j’adore l’humour de la conclusion….

    Pour ma part, je ne mange pas de canard c’est trop indigeste 🙂

    Répondre
  10. Salut Cédric,
    Toi et Ludo, vous êtes en train de me faire regretter d’être en vacances loin de la maison ! Nan, je déconne mais j’ai quand même hâte de pouvoir tester tout ça !
    Merci beaucoup pour votre travail et toutes ces heures passées !
    Cédric, si tu me tire au sort, recommance. J’ai déjà ton plugin et je ne sais, malheureusement, pas à qui je pourrais l’offrir. Je préfère que tu l’offres à quelqu’un d’autre.
    Les gars… on vous aime !

    Répondre
  11. Un énorme merci pour ce boulot de titan ! C’est grâce à vos blogs respectifs à ludo et toi que je me suis lancé dans l’aventure jeedom. Pour le moment je tâtonne à dompter la bête mais j’ai investi dans un paquet de capteur et gadget en tout genre à force de vous lire. Ton plugin est une tuerie, je voulais pas céder à l’envie d’acheter le robot mais là maintenant je suis bien embêté 🙂

    Répondre
    • A 260€ avec les derniers bons plans c’est une superbe occase, c’est surement le meilleur robot dispo, il fait tout comme les hauts de gamme en ayant un petit prix.

      Répondre
  12. Super !! merci pour cette mise a jour,

    En revanche petit soucis au moment de relancer les dépendances message d’erreur : Error on shell exec, return value : 1. Details : Array ( [0] => )

    Je ne comprend pas rien fait de particulier pourtant :/

    Répondre
    • et voici le log :

      Traceback (most recent call last):
      File « /var/www/html/plugins/xiaomihome/resources/xiaomihomed/xiaomihomed.py », line 26, in
      import globals
      File « /var/www/html/plugins/xiaomihome/resources/xiaomihomed/globals.py », line 3, in
      from devices.yeelight.flow import *
      File « /var/www/html/plugins/xiaomihome/resources/xiaomihomed/devices/yeelight/flow.py », line 3, in
      from enum import Enum
      ImportError: No module named enum
      [2017-07-20 17:49:08][ERROR] : Impossible de lancer le démon xiaomihomed, vérifiez le log
      Traceback (most recent call last):
      File « /var/www/html/plugins/xiaomihome/resources/xiaomihomed/xiaomihomed.py », line 26, in
      import globals
      File « /var/www/html/plugins/xiaomihome/resources/xiaomihomed/globals.py », line 3, in
      from devices.yeelight.flow import *
      File « /var/www/html/plugins/xiaomihome/resources/xiaomihomed/devices/yeelight/flow.py », line 3, in
      from enum import Enum
      ImportError: No module named enum
      [2017-07-20 17:50:09][ERROR] : Impossible de lancer le démon xiaomihomed, vérifiez le log

      Répondre
        • Voila le log :

          Début de l’installation
          Version actuelle : v0.10.29
          KO, version obsolète à upgrader
          Suppression du Nodejs existant et installation du paquet recommandé
          Reading package lists…
          Building dependency tree…
          Reading state information…
          Package ‘npm’ is not installed, so not removed
          The following packages will be REMOVED:
          libc-ares2* libv8-3.14.5* nodejs* nodejs-legacy* nodered*
          0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded.
          After this operation, 6,571 kB disk space will be freed.
          (Reading database …
          (Reading database … 5%
          (Reading database … 10%
          (Reading database … 15%
          (Reading database … 20%
          (Reading database … 25%
          (Reading database … 30%
          (Reading database … 35%
          (Reading database … 40%
          (Reading database … 45%
          (Reading database … 50%
          (Reading database … 55%
          (Reading database … 60%
          (Reading database … 65%
          (Reading database … 70%
          (Reading database … 75%
          (Reading database … 80%
          (Reading database … 85%
          (Reading database … 90%
          (Reading database … 95%
          (Reading database … 100%
          (Reading database … 123606 files and directories currently installed.)
          Removing nodered (0.15.3) …
          Removing nodejs-legacy (0.10.29~dfsg-2) …
          Removing nodejs (0.10.29~dfsg-2) …
          Removing libc-ares2:armhf (1.10.0-2+deb8u1) …
          Purging configuration files for libc-ares2:armhf (1.10.0-2+deb8u1) …
          Removing libv8-3.14.5 (3.14.5.8-8.1+rpi1) …
          Purging configuration files for libv8-3.14.5 (3.14.5.8-8.1+rpi1) …
          Processing triggers for gnome-menus (3.13.3-6) …
          Processing triggers for desktop-file-utils (0.22-1) …
          Processing triggers for mime-support (3.58) …
          Processing triggers for gnome-icon-theme (3.12.0-1) …
          Processing triggers for man-db (2.7.5-1~bpo8+1) …
          Processing triggers for libc-bin (2.19-18+deb8u10) …
          Utilisation du dépot officiel

          ## Installing the NodeSource Node.js v5.x repo…

          ## Populating apt-get cache…

          + apt-get update
          Hit http://archive.raspberrypi.org jessie InRelease
          Hit http://mirrordirector.raspbian.org jessie InRelease
          Hit http://archive.raspberrypi.org jessie/main armhf Packages
          Hit http://mirrordirector.raspbian.org jessie/main armhf Packages
          Hit http://mirrordirector.raspbian.org jessie/contrib armhf Packages
          Hit http://mirrordirector.raspbian.org jessie/non-free armhf Packages
          Hit http://mirrordirector.raspbian.org jessie/rpi armhf Packages
          Hit http://archive.raspberrypi.org jessie/ui armhf Packages
          Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en_GB
          Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en
          Ign http://mirrordirector.raspbian.org jessie/main Translation-en_GB
          Ign http://mirrordirector.raspbian.org jessie/main Translation-en
          Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en_GB
          Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en
          Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en_GB
          Ign http://archive.raspberrypi.org jessie/main Translation-en_GB
          Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en
          Ign http://archive.raspberrypi.org jessie/main Translation-en
          Ign http://archive.raspberrypi.org jessie/ui Translation-en_GB
          Ign http://archive.raspberrypi.org jessie/ui Translation-en
          Reading package lists…

          ## Confirming « jessie » is supported…

          + curl -sLf -o /dev/null ‘https://deb.nodesource.com/node_5.x/dists/jessie/Release’

          ## Adding the NodeSource signing key to your keyring…

          + curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add –
          OK

          ## Creating apt sources list file for the NodeSource Node.js v5.x repo…

          + echo ‘deb https://deb.nodesource.com/node_5.x jessie main’ > /etc/apt/sources.list.d/nodesource.list
          + echo ‘deb-src https://deb.nodesource.com/node_5.x jessie main’ >> /etc/apt/sources.list.d/nodesource.list

          ## Running `apt-get update` for you…

          + apt-get update
          Hit http://archive.raspberrypi.org jessie InRelease
          Hit http://mirrordirector.raspbian.org jessie InRelease
          Get:1 https://deb.nodesource.com jessie InRelease [3,914 B]
          Hit http://archive.raspberrypi.org jessie/main armhf Packages
          Hit http://mirrordirector.raspbian.org jessie/main armhf Packages
          Hit http://archive.raspberrypi.org jessie/ui armhf Packages
          Hit http://mirrordirector.raspbian.org jessie/contrib armhf Packages
          Hit http://mirrordirector.raspbian.org jessie/non-free armhf Packages
          Get:2 https://deb.nodesource.com jessie/main Sources [764 B]
          Hit http://mirrordirector.raspbian.org jessie/rpi armhf Packages
          Get:3 https://deb.nodesource.com jessie/main armhf Packages [968 B]
          Get:4 https://deb.nodesource.com jessie/main Translation-en_GB [162 B]
          Get:5 https://deb.nodesource.com jessie/main Translation-en [162 B]
          Get:6 https://deb.nodesource.com jessie/main Translation-en_GB [162 B]
          Get:7 https://deb.nodesource.com jessie/main Translation-en [162 B]
          Get:8 https://deb.nodesource.com jessie/main Translation-en_GB [162 B]
          Get:9 https://deb.nodesource.com jessie/main Translation-en [162 B]
          Get:10 https://deb.nodesource.com jessie/main Translation-en_GB [162 B]
          Get:11 https://deb.nodesource.com jessie/main Translation-en [162 B]
          Get:12 https://deb.nodesource.com jessie/main Translation-en_GB [162 B]
          Ign https://deb.nodesource.com jessie/main Translation-en_GB
          Get:13 https://deb.nodesource.com jessie/main Translation-en [162 B]
          Ign https://deb.nodesource.com jessie/main Translation-en
          Ign http://archive.raspberrypi.org jessie/main Translation-en_GB
          Ign http://archive.raspberrypi.org jessie/main Translation-en
          Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en_GB
          Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en
          Ign http://archive.raspberrypi.org jessie/ui Translation-en_GB
          Ign http://mirrordirector.raspbian.org jessie/main Translation-en_GB
          Ign http://mirrordirector.raspbian.org jessie/main Translation-en
          Ign http://archive.raspberrypi.org jessie/ui Translation-en
          Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en_GB
          Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en
          Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en_GB
          Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en
          Fetched 5,646 B in 7s (781 B/s)
          Reading package lists…

          ================================================================================
          ================================================================================

          DEPRECATION WARNING

          Node.js v5.x is no longer actively supported!

          You will not receive security or critical stability updates for this version.

          You should migrate to a supported version of Node.js as soon as possible.
          Use the installation script that corresponds to the version of Node.js you
          wish to install. e.g.

          * https://deb.nodesource.com/setup_4.x — Node.js v4 LTS « Argon » (recommended)
          * https://deb.nodesource.com/setup_6.x — Node.js v6 Current

          Please see https://github.com/nodejs/LTS/ for details about which version
          may be appropriate for you.

          The NodeSource Node.js Linux distributions GitHub repository contains
          information about which versions of Node.js and which Linux distributions
          are supported and how to use the install scripts.
          https://github.com/nodesource/distributions

          ================================================================================
          ================================================================================

          Continuing in 10 seconds …

          ## Run `apt-get install nodejs` (as root) to install Node.js v5.x and npm

          Reading package lists…
          Building dependency tree…
          Reading state information…
          The following extra packages will be installed:
          rlwrap
          The following NEW packages will be installed:
          nodejs rlwrap
          0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
          Need to get 8,129 kB of archives.
          After this operation, 38.7 MB of additional disk space will be used.
          Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main rlwrap armhf 0.41-1 [70.3 kB]
          Get:2 https://deb.nodesource.com/node_5.x/ jessie/main nodejs armhf 5.12.0-1nodesource1~jessie1 [8,058 kB]
          debconf: unable to initialize frontend: Dialog
          debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
          debconf: falling back to frontend: Readline
          debconf: unable to initialize frontend: Readline
          debconf: (This frontend requires a controlling tty.)
          debconf: falling back to frontend: Teletype
          dpkg-preconfigure: unable to re-open stdin:
          Fetched 8,129 kB in 6s (1,235 kB/s)
          Selecting previously unselected package rlwrap.
          (Reading database …
          (Reading database … 5%
          (Reading database … 10%
          (Reading database … 15%
          (Reading database … 20%
          (Reading database … 25%
          (Reading database … 30%
          (Reading database … 35%
          (Reading database … 40%
          (Reading database … 45%
          (Reading database … 50%
          (Reading database … 55%
          (Reading database … 60%
          (Reading database … 65%
          (Reading database … 70%
          (Reading database … 75%
          (Reading database … 80%
          (Reading database … 85%
          (Reading database … 90%
          (Reading database … 95%
          (Reading database … 100%
          (Reading database … 115665 files and directories currently installed.)
          Preparing to unpack …/rlwrap_0.41-1_armhf.deb …
          Unpacking rlwrap (0.41-1) …
          Selecting previously unselected package nodejs.
          Preparing to unpack …/nodejs_5.12.0-1nodesource1~jessie1_armhf.deb …
          Unpacking nodejs (5.12.0-1nodesource1~jessie1) …
          Processing triggers for man-db (2.7.5-1~bpo8+1) …
          Setting up rlwrap (0.41-1) …
          update-alternatives: using /usr/bin/rlwrap to provide /usr/bin/readline-editor (readline-editor) in auto mode
          Setting up nodejs (5.12.0-1nodesource1~jessie1) …
          Version actuelle : v5.12.0
          Reading package lists…
          Building dependency tree…
          Reading state information…
          libffi-dev is already the newest version.
          libssl-dev is already the newest version.
          python-pip is already the newest version.
          python3-pip is already the newest version.
          0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
          Downloading/unpacking yeecli
          Downloading yeecli-0.1.0-py2.py3-none-any.whl
          Downloading/unpacking click>=6.6 (from yeecli)
          Downloading/unpacking yeelight>=0.3.0 (from yeecli)
          Downloading yeelight-0.3.2-py2-none-any.whl
          Downloading/unpacking enum-compat (from yeelight>=0.3.0->yeecli)
          Downloading enum-compat-0.0.2.tar.gz
          Running setup.py (path:/tmp/pip-build-yUzXrh/enum-compat/setup.py) egg_info for package enum-compat

          Downloading/unpacking future (from yeelight>=0.3.0->yeecli)
          Running setup.py (path:/tmp/pip-build-yUzXrh/future/setup.py) egg_info for package future

          warning: no files found matching ‘*.au’ under directory ‘tests’
          warning: no files found matching ‘*.gif’ under directory ‘tests’
          warning: no files found matching ‘*.txt’ under directory ‘tests’
          Downloading/unpacking enum34 (from enum-compat->yeelight>=0.3.0->yeecli)
          Downloading enum34-1.1.6-py2-none-any.whl
          Installing collected packages: yeecli, click, yeelight, enum-compat, future, enum34
          Running setup.py install for enum-compat

          Running setup.py install for future

          warning: no files found matching ‘*.au’ under directory ‘tests’
          warning: no files found matching ‘*.gif’ under directory ‘tests’
          warning: no files found matching ‘*.txt’ under directory ‘tests’
          Installing pasteurize script to /usr/local/bin
          Installing futurize script to /usr/local/bin
          Successfully installed yeecli click yeelight enum-compat future enum34
          Cleaning up…
          Downloading/unpacking mihome
          Downloading mihome-0.1-py2.py3-none-any.whl
          Requirement already satisfied (use –upgrade to upgrade): future in /usr/local/lib/python2.7/dist-packages (from mihome)
          Installing collected packages: mihome
          Successfully installed mihome
          Cleaning up…
          Requirement already satisfied (use –upgrade to upgrade): future in /usr/local/lib/python2.7/dist-packages
          Cleaning up…
          Downloading/unpacking python-mirobo
          Downloading python_mirobo-0.1.1-py3-none-any.whl
          Downloading/unpacking construct (from python-mirobo)
          Running setup.py (path:/tmp/pip-build-z9r7x5bv/construct/setup.py) egg_info for package construct

          Downloading/unpacking cryptography (from python-mirobo)
          Running setup.py (path:/tmp/pip-build-z9r7x5bv/cryptography/setup.py) egg_info for package cryptography

          no previously-included directories found matching ‘docs/_build’
          warning: no previously-included files matching ‘*’ found under directory ‘vectors’
          Downloading/unpacking pretty-cron (from python-mirobo)
          Downloading pretty_cron-1.0.2-py2.py3-none-any.whl
          Downloading/unpacking typing (from python-mirobo)
          Running setup.py (path:/tmp/pip-build-z9r7x5bv/typing/setup.py) egg_info for package typing

          Downloading/unpacking click (from python-mirobo)
          Downloading/unpacking idna>=2.1 (from cryptography->python-mirobo)
          Downloading/unpacking asn1crypto>=0.21.0 (from cryptography->python-mirobo)
          Requirement already satisfied (use –upgrade to upgrade): six>=1.4.1 in /usr/lib/python3/dist-packages (from cryptography->python-mirobo)
          Downloading/unpacking cffi>=1.7 (from cryptography->python-mirobo)
          Running setup.py (path:/tmp/pip-build-z9r7x5bv/cffi/setup.py) egg_info for package cffi

          Downloading/unpacking pycparser (from cffi>=1.7->cryptography->python-mirobo)
          Running setup.py (path:/tmp/pip-build-z9r7x5bv/pycparser/setup.py) egg_info for package pycparser

          warning: no previously-included files matching ‘yacctab.*’ found under directory ‘tests’
          warning: no previously-included files matching ‘lextab.*’ found under directory ‘tests’
          warning: no previously-included files matching ‘yacctab.*’ found under directory ‘examples’
          warning: no previously-included files matching ‘lextab.*’ found under directory ‘examples’
          Installing collected packages: python-mirobo, construct, cryptography, pretty-cron, typing, click, idna, asn1crypto, cffi, pycparser
          Running setup.py install for construct

          Running setup.py install for cryptography

          Installed /tmp/pip-build-z9r7x5bv/cryptography/cffi-1.10.0-py3.4-linux-armv7l.egg
          Searching for pycparser
          Reading https://pypi.python.org/simple/pycparser/
          Best match: pycparser 2.18
          Downloading https://pypi.python.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073d36a17b1491fd09df6ed/pycparser-2.18.tar.gz#md5=72370da54358202a60130e223d488136
          Processing pycparser-2.18.tar.gz
          Writing /tmp/easy_install-2tt8qb69/pycparser-2.18/setup.cfg
          Running pycparser-2.18/setup.py -q bdist_egg –dist-dir /tmp/easy_install-2tt8qb69/pycparser-2.18/egg-dist-tmp-kxmkdk6a
          warning: no previously-included files matching ‘yacctab.*’ found under directory ‘tests’
          warning: no previously-included files matching ‘lextab.*’ found under directory ‘tests’
          warning: no previously-included files matching ‘yacctab.*’ found under directory ‘examples’
          warning: no previously-included files matching ‘lextab.*’ found under directory ‘examples’
          zip_safe flag not set; analyzing archive contents…
          pycparser.ply.__pycache__.yacc.cpython-34: module references __file__
          pycparser.ply.__pycache__.yacc.cpython-34: module MAY be using inspect.getsourcefile
          pycparser.ply.__pycache__.yacc.cpython-34: module MAY be using inspect.stack
          pycparser.ply.__pycache__.lex.cpython-34: module references __file__
          pycparser.ply.__pycache__.lex.cpython-34: module MAY be using inspect.getsourcefile
          pycparser.ply.__pycache__.ygen.cpython-34: module references __file__

          Installed /tmp/pip-build-z9r7x5bv/cryptography/pycparser-2.18-py3.4.egg

          no previously-included directories found matching ‘docs/_build’
          warning: no previously-included files matching ‘*’ found under directory ‘vectors’
          generating cffi module ‘build/temp.linux-armv7l-3.4/_padding.c’
          generating cffi module ‘build/temp.linux-armv7l-3.4/_constant_time.c’
          generating cffi module ‘build/temp.linux-armv7l-3.4/_openssl.c’
          building ‘_openssl’ extension
          arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.4m -c build/temp.linux-armv7l-3.4/_openssl.c -o build/temp.linux-armv7l-3.4/build/temp.linux-armv7l-3.4/_openssl.o -Wconversion -Wno-error=sign-conversion
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘SSL_SESSION_get_master_key’:
          build/temp.linux-armv7l-3.4/_openssl.c:2119:9: warning: conversion to ‘size_t’ from ‘int’ may change the sign of the result [-Wsign-conversion]
          return session->master_key_length;
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:2121:18: warning: conversion to ‘size_t’ from ‘int’ may change the sign of the result [-Wsign-conversion]
          outlen = session->master_key_length;
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_setup_ssl_threads’:
          build/temp.linux-armv7l-3.4/_openssl.c:2535:28: warning: conversion to ‘unsigned int’ from ‘int’ may change the sign of the result [-Wsign-conversion]
          _ssl_locks_count = CRYPTO_num_locks();
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘Cryptography_pem_password_cb’:
          build/temp.linux-armv7l-3.4/_openssl.c:2568:35: warning: conversion to ‘size_t’ from ‘int’ may change the sign of the result [-Wsign-conversion]
          memcpy(buf, st->password, st->length);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_CTX_add_extra_chain_cert’:
          build/temp.linux-armv7l-3.4/_openssl.c:47384:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_add_extra_chain_cert(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_CTX_add_extra_chain_cert’:
          build/temp.linux-armv7l-3.4/_openssl.c:47424:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_add_extra_chain_cert(x0, x1); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_CTX_clear_options’:
          build/temp.linux-armv7l-3.4/_openssl.c:47473:10: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_clear_options(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:47473:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_clear_options(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_CTX_clear_options’:
          build/temp.linux-armv7l-3.4/_openssl.c:47506:14: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_clear_options(x0, x1); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:47506:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_CTX_get_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:47758:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_get_mode(x0);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_CTX_get_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:47781:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_get_mode(x0); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_CTX_get_options’:
          build/temp.linux-armv7l-3.4/_openssl.c:47794:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_get_options(x0);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_CTX_get_options’:
          build/temp.linux-armv7l-3.4/_openssl.c:47817:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_get_options(x0); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_CTX_get_session_cache_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:47830:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_get_session_cache_mode(x0);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_CTX_get_session_cache_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:47853:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_get_session_cache_mode(x0); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_CTX_set_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:49314:10: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_set_mode(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:49314:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_set_mode(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_CTX_set_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:49347:14: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_set_mode(x0, x1); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:49347:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_CTX_set_options’:
          build/temp.linux-armv7l-3.4/_openssl.c:49478:10: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_set_options(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:49478:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_set_options(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_CTX_set_options’:
          build/temp.linux-armv7l-3.4/_openssl.c:49511:14: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_set_options(x0, x1); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:49511:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          In file included from build/temp.linux-armv7l-3.4/_openssl.c:653:0:
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_CTX_set_session_cache_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:49524:45: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_set_session_cache_mode(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:49524:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_set_session_cache_mode(x0, x1);
          ^
          In file included from build/temp.linux-armv7l-3.4/_openssl.c:653:0:
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_CTX_set_session_cache_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:49557:49: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_set_session_cache_mode(x0, x1); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:49557:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_set_session_cache_mode(x0, x1); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_CTX_set_tmp_dh’:
          build/temp.linux-armv7l-3.4/_openssl.c:49873:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_set_tmp_dh(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_CTX_set_tmp_dh’:
          build/temp.linux-armv7l-3.4/_openssl.c:49913:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_set_tmp_dh(x0, x1); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_CTX_set_tmp_ecdh’:
          build/temp.linux-armv7l-3.4/_openssl.c:49926:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_CTX_set_tmp_ecdh(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_CTX_set_tmp_ecdh’:
          build/temp.linux-armv7l-3.4/_openssl.c:49966:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_CTX_set_tmp_ecdh(x0, x1); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_get_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:51667:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_get_mode(x0);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_get_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:51690:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_get_mode(x0); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_get_options’:
          build/temp.linux-armv7l-3.4/_openssl.c:51703:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_get_options(x0);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_get_options’:
          build/temp.linux-armv7l-3.4/_openssl.c:51726:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_get_options(x0); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_set_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:53391:10: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          return SSL_set_mode(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:53391:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_set_mode(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_set_mode’:
          build/temp.linux-armv7l-3.4/_openssl.c:53424:14: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_set_mode(x0, x1); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:53424:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_d_SSL_set_options’:
          build/temp.linux-armv7l-3.4/_openssl.c:53437:10: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          return SSL_set_options(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:53437:3: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          return SSL_set_options(x0, x1);
          ^
          build/temp.linux-armv7l-3.4/_openssl.c: In function ‘_cffi_f_SSL_set_options’:
          build/temp.linux-armv7l-3.4/_openssl.c:53470:14: warning: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion]
          { result = SSL_set_options(x0, x1); }
          ^
          build/temp.linux-armv7l-3.4/_openssl.c:53470:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
          arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.4/build/temp.linux-armv7l-3.4/_openssl.o -lssl -lcrypto -o build/lib.linux-armv7l-3.4/cryptography/hazmat/bindings/_openssl.cpython-34m.so
          building ‘_constant_time’ extension
          arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.4m -c build/temp.linux-armv7l-3.4/_constant_time.c -o build/temp.linux-armv7l-3.4/build/temp.linux-armv7l-3.4/_constant_time.o
          arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.4/build/temp.linux-armv7l-3.4/_constant_time.o -o build/lib.linux-armv7l-3.4/cryptography/hazmat/bindings/_constant_time.cpython-34m.so
          building ‘_padding’ extension
          arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.4m -c build/temp.linux-armv7l-3.4/_padding.c -o build/temp.linux-armv7l-3.4/build/temp.linux-armv7l-3.4/_padding.o
          arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.4/build/temp.linux-armv7l-3.4/_padding.o -o build/lib.linux-armv7l-3.4/cryptography/hazmat/bindings/_padding.cpython-34m.so
          Running setup.py install for typing

          Running setup.py install for cffi
          building ‘_cffi_backend’ extension
          arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/python3.4m -c c/_cffi_backend.c -o build/temp.linux-armv7l-3.4/c/_cffi_backend.o
          arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.4/c/_cffi_backend.o -lffi -o build/lib.linux-armv7l-3.4/_cffi_backend.cpython-34m.so

          Running setup.py install for pycparser

          warning: no previously-included files matching ‘yacctab.*’ found under directory ‘tests’
          warning: no previously-included files matching ‘lextab.*’ found under directory ‘tests’
          warning: no previously-included files matching ‘yacctab.*’ found under directory ‘examples’
          warning: no previously-included files matching ‘lextab.*’ found under directory ‘examples’
          Build the lexing/parsing tables
          Successfully installed python-mirobo construct cryptography pretty-cron typing click idna asn1crypto cffi pycparser
          Cleaning up…
          /var/www/html/plugins/xiaomihome/resources
          └── dgram@1.0.1

          npm WARN enoent ENOENT: no such file or directory, open ‘/var/www/html/plugins/xiaomihome/resources/package.json’
          npm WARN resources No description
          npm WARN resources No repository field.
          npm WARN resources No README data
          npm WARN resources No license field.
          /var/www/html/plugins/xiaomihome/resources
          ├── crypto@0.0.3
          └── dgram@1.0.1

          npm WARN enoent ENOENT: no such file or directory, open ‘/var/www/html/plugins/xiaomihome/resources/package.json’
          npm WARN resources No description
          npm WARN resources No repository field.
          npm WARN resources No README data
          npm WARN resources No license field.
          Fin de l’installation

          Répondre
  13. Merci à Sarakha63 pour son boulot et merci à toi lunarok aussi.
    J’aimerais avoir un peu plus de temps pour pouvoir donner un coup sur l’avancée de Jeedom (ne serait-ce que développer quelques Widget).

    Répondre
  14. Je savais bien Xiaomi surpasserai le zwave…..bravo a vous 2 pour le taf, voila première commande aqara passee sur gearbest. Merci 🙂

    Répondre
  15. Marche pas 🙁
    – remove l’aspirateur de l’appli téléphone mi home
    – reset de l’aspi
    -connexion au wifi aspi
    – lancement de xiaowifi.exe pour récupèrer le token
    – remise en route du wifi habituel sur le pc
    – ajout de l’aspi dans l’appli téléphone
    – ajout de l’équipement dans jeedom (activer, ip, token, sauvegarde)

    Auriez-vous une idée de l’erreur que je fait ?

    Merci à vous deux

    Répondre
  16. Trouvé !
    Les deux méthodes de recherche du token ne donnaient pas la même clef pour moi. La bonne méthode fut celle du mitoolkit.
    Youpi

    Répondre
  17. Robot Xiaomi commandé et depuis ton blog (je fais attention), je suis impatient, du coup je vais recycle mon Ilife qui etait pas si mal, Je pense que je ne serai pas dèçu.

    Répondre
  18. Merci pour l’info, j’espère faire partie des gagnants du plugin car je dois recevoir ma Gateway semaine prochaine.

    Répondre
  19. Salut Lunarok je sais pas si ça vient de moi ça fait 2 jours que je galere j’arrive pas a passer mi home en mode developer pour recuperer le token de la gateway l’appli aurait elle changer ? quand a l’appli pour tel root pour recuperer les token dans mi home j’arrive pas a trouver de lien, pourrait tu m’aider a trouver une piste merci à toi.
    J’ai essayer aussi xiaomihome.exe qui me renvoi bien un token mais qui ne fonctionne pas dans jeedom

    Répondre
  20. dsl mon commentaires precedent est a supprimer !!
    J’ai reussi a mettre en developer l’appli mi home et a passer en mode local, par contre jeedom ne fonctionne toujours pas meme en entrant le password fournit par mi home.
    est ce que j’ai encore raté qq chose (dsl je fais un peu mon boulet !!!)

    Répondre
  21. non le probleme et que j’avais deja associé un smart plug dans jeedom et mi home qui etait plus branché et la mi home avait attribué le meme ip !!
    dsl tout marche a merveille merci pour ton travail !!

    Répondre
  22. Bonjour Lunarok,

    J’ai effectué une MAJ du plugin XIAOMI et depuis j’ai l’erreur suivante : [2017-11-10 23:23:21][ERROR] : Impossible de lancer le démon xiaomihomed, vérifiez le log
    ValueError: bad marshal data (unknown type code), faut t-il faire une manipulation spéciale pour corriger ce problème?

    Répondre
  23. Bonjour,

    je viens de faire ma petite commande chez Gearbest 🙂 J’imagine que pour réaliser ce plugin, vous avez du utiliser les APIs proposées sur ce type de matériel. Auriez-vous des liens vers cette documentation ? Je voudrai voir quel est le niveau de complexité de cette interface.

    Merci d’avance 🙂

    Répondre
  24. Pour ceux qui passent par la:
    pb ds les logs du plugins (demarrage cron KO et gateway non detecté) : no module named future.utils
    Résolu chez moi (debian 9 et python 2.7.13) avec: pip install future

    Répondre
  25. Salut Lunarok,

    Quper idée ce pluging, mais je rencontre une erreur au démarrage du demon ci dessous le log:

    [2019-03-02 01:05:05][INFO] : Lancement démon xiaomihome : /usr/bin/python /var/www/html/plugins/xiaomihome/resources/xiaomihomed/xiaomihomed.py –loglevel debug –socketport 55019 –callback http://127.0.0.1:80/plugins/xiaomihome/core/php/jeeXiaomiHome.php –apikey xxxxxxxxxxxxxxxxxxxxx–cycle 0.05 –pid /tmp/jeedom/xiaomihome/deamon.pid
    Traceback (most recent call last):
    File « /var/www/html/plugins/xiaomihome/resources/xiaomihomed/xiaomihomed.py », line 26, in
    import globals
    File « /var/www/html/plugins/xiaomihome/resources/xiaomihomed/globals.py », line 3, in
    from devices.yeelight.flow import *
    File « /var/www/html/plugins/xiaomihome/resources/xiaomihomed/devices/yeelight/__init__.py », line 5, in
    from .main import Bulb, BulbType, BulbException, discover_bulbs
    File « /var/www/html/plugins/xiaomihome/resources/xiaomihomed/devices/yeelight/main.py », line 9, in
    from future.utils import raise_from
    ImportError: No module named future.utils
    [2019-03-02 01:05:35][ERROR] : Impossible de lancer le démon xiaomihomed. Vérifiez le log.

    D’après ce que j’y comprend je me demande si c’est pas une erreur python liée a une dépendance. Mais toutes les dépendances sont installés correctement, en tout cas c’est ce qu’affice le log d’install des dépendances.

    Si tu me me donner quelques pistes je suis preneur.

    la commande sudo pip install future n’a rien fait.

    Merci.

    Répondre

Laisser un commentaire