Contrôler sa maison par email

Contrôler sa maison par email

En Europe, la plupart des fenêtres de toit sont fabriquées par Velux au point que dans le langage courant Velux est devenu un nom commun comme frigidaire en son temps. Figurez-vous que Velux fabrique maintenant des fenêtres motorisées. Évidement la question qui se pose est: qu'est-ce qu'il faut rajouter pour pouvoir piloter la fenêtre depuis un ordinateur?




Contrôler ce Velux depuis un ordinateur, voila qui est fort tentant...
Contrôler ce Velux depuis un ordinateur, voila qui est fort tentant...



La première idée qui vient à l'esprit, c'est de hacker la télécommande en plaçant des relais en parallèle avec les boutons, malheureusement ce n'est pas vraiment possible: la télécommande est basée sur un principe de boutons contextuels. Ce qui signifie que ces boutons de la télécommande de ne sont pas directement reliés aux fonctions de la fenêtre.

Pas la peine d'essayer de hacker la télécommande: trop compliqué
Pas la peine d'essayer de hacker la télécommande: trop compliqué


Par contre, Velux commercialise l'interface KLF 100 spécialement dédiée à ce genre de bricolage: en gros il s'agit d'une télécommande avec trois contacts en entrée et il est possible de la programmer pour qu'elle effectue certaines actions quand les entrées sont mises en contact.

L'interface KLF 100, par contre est prévue pour...
L'interface KLF 100, par contre est prévue pour...



... Il suffit d'établir un contact entre ces pins pour contrôler le Velux
... Il suffit d'établir un contact entre ces pins pour contrôler le Velux



Du coup un simple Yocto-Relay fait l'affaire: il suffit de le connecter au KLF 100 de manière à pouvoir faire contact entre les pins haut et C (fermeture) ou bas et C (ouverture). Nous sommes maintenant capable de piloter la fenêtre par USB, ce qui n'est déjà pas si mal.

Le câblage est des plus trivial
Le câblage est des plus trivial


Il y a même un tas de place sous le boîtier pour installer notre Yocto-Relay
Il y a même un tas de place sous le boîtier pour installer notre Yocto-Relay


Cependant piloter les fenêtres depuis l'intérieur de la maison n'est pas aussi excitant que la possibilité de le faire depuis n'importe où dans le monde. L'idée est donc de créer un petit programme qui pilote l'interface KLF 100 et que ce programme soit lui même contrôlé par email.

L'avantage de cette méthode est qu'il n'est pas nécessaire d'ouvrir un port sur son routeur ADSL. L'inconvénient est le manque de réactivité: il peut se passer plusieurs minutes entre l'envoi d'une commande et son exécution, mais quand il s'agit d'ouvrir une fenêtre on n'est a priori pas à deux minutes près.

Le contrôle de la maison passe par l'intermédiaire des serveurs d'un hébergeur mail
Le contrôle de la maison passe par l'intermédiaire des serveurs d'un hébergeur mail



On va donc créer une adresse email pour notre maison. Et on enverra nos ordres d'ouverture/fermeture directement à cette adresse. A charge du programme de contrôle d'aller récupérer ces mails, d'exécuter les ordres correspondants et d'envoyer une confirmation. Pour plus de souplesse, on va coder ce programme sous la forme d'un service Windows: ainsi pas besoin de démarrer le soft de contrôle à la main, il suffira que le PC de contrôle soit allumé.

Le codage en lui-même est fait en C#. Comme d'habitude, la partie qui sert à gérer le Yocto-Relay ne prend que quelques lignes.

public bool ExecuteCommand(string command, ref string errmsg)
  {
    string fctname;
    switch (command)
      {
        case "OPEN": fctname = "openWindow"; break;
        case "CLOSE": fctname = "closeWindow"; break;
        default: errmsg = "unknown command: " + command;return false;
      }

    YRelay r = YRelay.FindRelay(fctname);
    if (r.isOnline())
      {
        r.pulse(500);
        return true;
      }

    errmsg = "Command  "+command+"failed, Relay "+fctname+" is offline";
    return false;
  }



Le programme s'attend à trouver un Yocto-Relay avec une première fonction YoctoRelay nommée "openWindow" et une seconde nommée "closeWindow". Une fois par minute, il va se connecter par Imap sur la boîte mail créée pour l'occasion, télécharger tous les nouveaux mails et exécuter l'ordre donné dans le dernier, puis renvoyer un email de confirmation au donneur d'ordre.

Le reste de l'implémentation n'a pas beaucoup d'intérêt dans le cadre de cet article. Vous pourrez cependant trouver le projet complet, avec les sources ici. Vous pouvez même le voir en action.

  



Notez que cette technique basée email n'est pas simplement limitée à l'ouverture d'une fenêtre, les possibilité sont immenses: Rien ne vous empêche d'allumer votre chauffage à distance de la même manière, rajoutez une électro-vanne, et vous pourrez piloter votre arrosage, avec un Yocto-Temperature vous pourriez même demander à votre maison quelle température il fait. Tout ça depuis n'importe où dans le monde.

Pensez quand même à implémenter un système de mot de passe dans vos mails de contrôle si vous ne voulez pas que n'importe qui puisse jouer avec votre maison...

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.