Eedomus: Pilotez votre Roomba en Wifi

Nous avons découvert hier la carte RooWifi, une petite carte qui vient se brancher sur la prise PS2 du Roomba pour ensuite permettre d’en prendre le contrôle en Wifi.

Comme nous avons vu, il existe une API complète, qui permet ainsi d’intégrer facilement le Roomba à son système domotique.

Voyons voir un exemple aujourd’hui avec notre box eedomus.

 

I. Récupération des informations

 

Première chose, déjà, si on veut se faciliter la vie: désactiver le nom d’utilisateur et le mot de passe de la carte Roowifi, sinon on pourra avoir du mal à accéder aux informations à cause de la demande d’identification. Comme c’est pour une utilisation locale, ce n’est pas très grave.

Ensuite, pour accéder aux informations, nous avons deux choix possibles.

Le fichier http://IP_DU_ROOMBA/roomba.xml , qui va nous donner une liste complète des options et de leurs valeurs:

 

rombaxml

 

Et le fichier http://IP_DU_ROOMBA/rwr.xml , plus light, qui n’affiche que les valeurs:

 

rwrxml

 

C’est ce fichier que nous utiliserons, plus facile à interroger et plus léger. Sur l’eedomus, il suffira en effet de créer un nouveau périphérique capteur http

 

capteur_HTTP

 

Que nous configurerons de cette facon:

 

eedomus_config_device_batterie_Roomba

 

On indique l’adresse du fichier rwr.xml, puis on indique le chemin Xpath de la donnée à récupérer. Ici je veux récupérer l’état de la charge, qui d’après le premier fichier roomba.xml est donc r18. Le chemin Xpatch est donc /response/r18 . Sur le tableau de bord, on obtient cela:

 

eedomus_etat-batterie_Roomba

 

On peut ainsi récupérer les informations qu’on souhaite (température du Roomba, etc…) de la même facon, en indiquant simplement le chemin XPath de la donnée à récupérer, et faire des scénarios si on veut, comme par exemple faire retourner le Roomba à sa  station si la batterie devient trop faible.

 

II. Pilotage

 

Le pilotage se fera via des requêtes HTTP, chose que maitrise très bien l’eedomus. Les ordres sont plus restreints, mais suffiront à notre utilisation. Les commandes sont au nombre de trois:

  • http://IP_DU_ROOMBA/roomba.cgi?button=CLEAN : lancera le nettoyage automatique
  • http://IP_DU_ROOMBA/roomba.cgi?button=SPOT : lancera un nettoyage sur une zone concentrée
  • http://IP_DU_ROOMBA/roomba.cgi?button=DOCK : fera repartir le Roomba sur sa station de charge

Sur l’eedomus il faut donc créer cette fois un actionneur HTTP:

 

actionneur_HTTP

 

On lui donne un nom:

 

config_capteur_http-roomba1

 

Et dans les valeurs on renseigne les commandes HTTP de cette façon:

 

valeur_capteur_roomba

 

On obtient alors ce périphérique sur l’eedomus, avec les différentes commandes qu’on peut lancer sur le Roomba:

 

actionneur_roomba_eedomus

 

Bien sûr, ces commandes sont utilisables dans des macros et des scénarios. La première utilisation qui me vient à l’idée est de lancer le mode nettoyage quand on active l’alarme en partant:

 

scenario_roomba

 

Comme ca le ménage est fait automatiquement quand on n’est pas là :p A contrario, si on veut être tranquille quand on arrive, s’il est en fonctionnement on peut lui envoyer la commande DOCK quand on désactive l’alarme en rentrant à la maison.

Petite chose à prendre en compte toutefois: si par exemple le Roomba est en cours de nettoyage et que j’envoie une commande DOCK pour qu’il retourne à sa station, cela va avoir pour effet de le stopper. Il faut lui renvoyer une seconde commande DOCK pour qu’il s’exécute (apparemment une commande s’exécute, une seconde stoppe).

 

III. Conclusion

 

Voici un exemple simple d’utilisation de la carte RooWifi avec la box eedomus. Pas besoin de script, cette box a tout ce qu’il faut pour parfaitement utiliser la carte RooWifi et piloter votre Roomba :D Bien sûr d’autres box pourront également le faire, je pense notamment à la Zibase qui peut lire des fichiers xml et envoyer des requêtes HTTP.

Nous verrons un autre exemple avec une autre box que vous appréciez beaucoup dans quelques jours ;-)

 


3 Commentaires
  1. Super post Cédric!
    Mais si tu actives ton alarme en même temps que le Roomba, tu ne risque pas d’embêter les voisins?

  2. Par rapport aux détecteurs de mouvement, je suppose ? Faudrait tester, c’est comme si on avait un “animal de compagnie” à la maison :p Pour ma part je n’utilise les détecteurs de mouvements qu’à certains endroits critiques, où le Roomba ne passe pas.

  3. Bonsoir Cédric
    Super tuto
    ce qui m’intéresse c’est de pouvoir déclencher mon alarme à retardement comme ta règle en première ligne d’actions.
    Comment cela est faisable je n’y arrive pas.
    Merci d’avance pour ton aide.

    Laisser un commentaire

    Ne ratez plus aucune news !

    Inscrivez vous à notre newsletter, et recevez chaque mois toute l'actualité du blog pour ne plus rien louper: actualité, guides, tutoriaux, concours !

    Merci pour votre inscription !