Le site

Codeurs wanted!

Et hop, comme devoirs de vacances, j’ai décidé, sur une excellente sugestion de mon compère Julien, de commencer à développer une API pour l’Ecolomètre. API?? Kezako??? Qu’est-ce qui se cache sous ce sigle barbare? API pour Application Programming Interface, en gros une interface qui permet à des applications tierces d’interagir avec l’Ecolomètre. Intéressant non? L’idée, c’est de permettre à un développeur X (pourquoi pas vous) de créer par exemple une application mobile Iphone, Java ou Android qui permettrait de faire ses relevés depuis son téléphone, sympa non?

Alors si quelqu’un se sent d’attaque, je livre ici les détails de l’API en question.

Le serveur: http://www.ecolometre.com/api (port 80)

Les méthodes:

  • list_monitorings

Cette méthode donne la liste des suivis disponibles pour une utilisateur donné (Conso d’électricité, de gaz, déplacements en voiture, …). Elle prend en entrée le nom d’utilisateur et le mot de passe et renvoie un tableau de tableaux donnant pour chaque suivi sa désignation, l’unité de mesure et le hash qui permet d’identifier le suivi.

    Exemple (basé sur la librairie XML-RPC de Code Igniter):

    $this->xmlrpc->server(“http://www.ecolometre.com/api“, 80);
    $this->xmlrpc->method(‘list_monitorings’);

    $request = array (
                       array(‘MrDemo’, ‘string’),
                       array(‘mrdemo’, ‘string’)
                     );
    $this->xmlrpc->request($request);

        • save_record

        Cette méthode permet d’enregistrer un relevé pour un suivi donné. Elle prend en entrée le nom d’utilisateur, le mot de passe, la légende du relevé (‘Mois de …”), la valeur relevée et le hash qui identifie le suivi pour lequel est effectué le relevé. Elle renvoie un message “success” ou “error”.
        Exemple (basé sur la librairie XML-RPC de Code Igniter):

        $this->xmlrpc->server(“http://www.ecolometre.com/api“, 80);
        $this->xmlrpc->method(‘save_record’);

        $request = array (
                           array(‘MrDemo’, ‘string’),
                           array(‘mrdemo’, ‘string’),
                           array(‘Test API’, ‘string’),
                           array(‘28000’, ‘float’),
                           array(‘gtdeuiskcudy’, ‘string’)
                         );
        $this->xmlrpc->request($request);

        Bien entendu je suis prêt à ajouter des méthodes ou à modifier les méthodes existantes si nécessaire. Ami codeur à toi de jouer!

        33 commentaires sur “Codeurs wanted!”

        1. gregoire dit :

          Hum… Ca pourrait m’intéresser ça… Je cherchais un projet pour me lancer dans le développement iPhone, ça pourrait être sympa ça !
          Bon par contre je promets rien, étant donné que je n’ai pas une infinité de temps à y consacrer malheureusement…

        2. Raf dit :

          Hop hop hop reste là, tu es l’homme providentiel que je recherche! Non je rigole, tu fais comme tu veux, mais si ça te dit d’essayer ne te prive pas. J’ai déjà fait une petite API qui permet de démarrer et que je peux compléter au besoin. Pas de stress, je suis dans le même cas que toi, je n’ai pas une infinité de temps pour l’Ecolomètre, vu que j’ai un vrai boulot à côté, 3 enfants et une femme qui m’occupent déjà largement! Donc si ça prend 1 an, ben ça prend 1 an et puis voilà!

        3. Gregoire dit :

          Je vais avoir 2 semaines avec pas mal de temps libre, je vais me pencher dessus et on verra comment ça aura avancé !

        4. Gregoire dit :

          Je fais quelques premiers tests de requêtes XML-RPC, et ça semble fonctionner.

          J’ai suivi ce petit tuto : http://www.kilbot.com.au/2009/06/14/xml-rpc-on-the-iphone/

          Je reçois bien une réponse, le problème est que je ne sais pas ce que je reçois, et je ne sais pas comment voir ce que je reçois (je débute… :)). J’aurais donc besoin de savoir ce que renvoie le serveur quand on fait un « list_monitorings ».

          Si tu peux également me confirmer que le serveur a bien reçu mes requêtes et que ça s’est bien passé jusque là ça serait chouette 🙂

          Merci 🙂

        5. Une appli Iphone !
          Il va falloir que je continu à faire encore plus activement la promo de ton site.

          Félicitation à toutes les personnes qui soutiennent le projet Ecolomètre.

        6. Bonjour Grégoire,
          Désolé, j’étais en vacances, je réponds avec un peu de retard.
          Super tes essais! Je ne peux pas voir si le serveur a reçu tes requêtes mais si tu as eu une réponse, c’est que c’est bon. La méthode « list_monitorings » renvoie un tableau de tableaux donnant pour chaque suivi sa désignation, l’unité de mesure et le hash. Je ne sais pas bien à quoi ça ressemble sur un Iphone! Je vais t’envoyer mon téléphone par mail, si tu veux tu peux m’appeler pour que je t’explique un peu plus en détail comment ça marche.

          Raf

        7. Bonjour,

          Je suis en train de faire quelques tests avec l’API d’ecolometre.com. L’appel à list_monitorings fonctionne sans problème. Cependant j’imagine qu’il y a ensuite une méthode pour obtenir le détail pour un suivi? Il y a-t-il une description plus complète de l’API disponible?

          Merci,
          Antoine

        8. Raf dit :

          Bonjour Antoine,
          Cool un codeur!! 🙂
          Pour être honnête, l’API se limite à ce qu’il y a ci-dessus pour le moment. Quel feignant ce Raf, oui j’assume! L’idée de départ était de démarrer avec ça pour permettre au moins d’entrer ses données depuis son téléphone ce qui pouvait simplifier les relevés. Mais comme je le dis dans l’articles, je peux enrichir l’API. Tu voudrais quoi? Un tableau avec toutes les valeurs pour chaque suivi?
          Merci à toi de t’intéresser à l’Ecolomètre!

          Raf

        9. Bonjour,
          Effectivement pour faire un client qui serve uniquement à enregistrer des données, l’API existante est suffisante. Mais je me disais que ça pourrait être sympa d’avoir un client de type RIA (pas forcément uniquement dédié aux mobiles d’ailleurs) qui permette aussi de gérer son compte, ses consommations, visualiser les différents suivis et indicateurs,…
          Dans ce cas il faudrait étendre l’API et rajouter une ou plusieurs méthodes pour récupérer l’historiques des différentes valeurs suivies, et pourquoi pas les différents indicateurs que tu calcules. Bref, à étudier 🙂

          Antoine

        10. Gregoire dit :

          Bonjour, je reviens d’outre-tombe ! :p
          J’avais commencé une appli iPhone que j’ai pas eu le temps de réellement avancer. Mais depuis, je me dis plutôt qu’une appli, une web app serait plus appropriée et plus simple à développer.

          En gros ça serait donc juste une page de saisie des données optimisée pour les mobiles. Simple, multi-plateforme, mais ce n’est que mon point de vue. Je m’y remettrai quand j’aurai un peu de temps !

          Bon courage en tous cas !

        11. Alors voilà un petit exemple de client tout simple fait en JavaFX: http://kenai.com/downloads/ecofx/ecoFX.jnlp

          Par contre il y a un problème lors de la requête save_record, le serveur semble retourner quelque chose qui commence par un div plutôt qu’une réponse xml rpc correcte. Une idée d’où ça peut venir?

          Antoine

        12. Raf dit :

          Salut Antoine,
          Je n’ai pas pu tester ton appli, ça peut s’installer sur un téléphone Androïd?
          Par contre, j’ai testé la méthode « save_record », ça me renvoie ce qui est attendu:
          Array
          (
          [message] => Success
          )
          Je vais voir pour ajouter une méthode qui permet d’avoir l’historique de chaque suivi. Tu penses pouvoir générer des grpahiques à partir de ça sur une appli mobile?

          Raf

        Laisser une réponse

        Vous devez être connecté pour publier un commentaire.