Journal Angharad, mon système de domotique maison

Posté par  (site web personnel) . Licence CC By‑SA.
63
19
août
2014

Pour voir si c'est possible, j'ai voulu me fabriquer mon système domotique du début à la fin.
Les systèmes domotiques qui existent déjà sont souvent très chers pour pas grand-chose j'ai trouvé, de plus ils sont souvent fermés, et j'ai furieusement envie de savoir comment ca fonctionne par en dedans chez moi.

De preuve de concept en prototype, j'ai fini par mettre en place un système qui, bien qu'il ne soit pas encore parfait, est utilisable. Je me suis donc dit qu'un petit journal sur linuxfr serait un bon début pour en parler au monde que ca pourrait intéresser. C'est ma première contribution au libre dans un projet que j'initie, et je ne sais pas comment ca va évoluer encore, je verrai bien…

La partie matérielle est à base d'Arduinos qui sont commandés par un serveur écrit en C et qui fournit des webservices REST/JSON.

J'ai placé des Arduinos UNO dans les pièces que je veux contrôler. Chacun est relié à des relais 5V/10A et des capteurs de température. Les relais permettent d'allumer/éteindre les lumières, des prises et le chauffage électrique. J'utilise le câble USB étendu via un connecteur USB/RJ45 pour connecter l'arduino au serveur et l'alimenter.

Le programme dans les Arduinos est assez basique, c'est voulu, je préfère que ce soit le serveur qui fasse le travail, donc l'arduino répond à des commandes simples (État d'un interrupteur, température, gestion du chauffage).

Le serveur est écrit en C. Pourquoi ? Parce que je voulais un serveur qui soit petit en mémoire, qui soit rapide à l'exécution et que depuis longtemps je considère que les systèmes embarqués et le C vont bien ensemble, même si ce langage est pas le plus facile à utiliser.
Il devait accepter des commandes utilisateur via un webservice et être autonome autant que possible (ne pas dépendre d'un autre service), au cas où on puisse le faire tourner sur d'autres architectures plus limitées en ressources. Les commandes que le serveur peut exécuter sont bien évidemment gérer les interrupteurs/lumières/chauffage, mais aussi lancer des scripts ou des commandes sur le serveur pour par exemple lancer la musique sur les mpd des machines dispersées. Je suis d'accord que c'est un trou béant dans la sécurité, blinder cette partie fait partie des choses à faire. Il y a aussi un scheduler pour lancer des scripts à intervalles réguliers. J'ai poussé le vice jusqu'à permettre de gérer le résultat des actions, par exemple si tel interrupteur est allumé, on allume l'autre, mais même moi je n'utilise pas ca.

Au gré de mes expérimentations et apprentissages, j'ai vu que libmicrohttpd est une chouette bibliothèque pour faire un serveur web minimaliste, sqlite3 est un moteur de base de données également très efficace, et libconfig permet de gérer des fichiers de conf assez facilement.

Actuellement, le serveur tourne assez bien, ca prend quelque 3Mo en mémoire au démarrage, 6Mo au bout de quelques jours (je continue à traquer les fuites mémoire).

J'aime debian d'amour vrai et les Raspberry Pi sont des belles machines pour faire du bricolage comme ca, donc pour l'instant mon serveur Angharad tourne sur une raspbian, mais je n'exclue pas de changer de crèmerie, parce que j'ai l'impression que la gestion de l'USB est chaotique, j'ai beaucoup de déconnexions intempestives.

Le client qui existe actuellement est une appli jquery qui fait les appels aux webservices. J'y ai aussi ajouté une petite gestion minimaliste de mpd distants en php.
Je prévois de développer une application android dans un proche avenir.

Il me reste quelques problèmes à régler (fuite mémoire), des améliorations à faire (utiliser libusb à la place des read/write sur les fichiers, gérer le multi-langue dans l'appli web) et des évolutions à prévoir (utiliser aussi des Arduino YUN, commander des serrures électroniques), mais en l'état c'est déjà un bon début je pense.

Dans la pratique, je m'en sers actuellement pour allumer/éteindre sans bouger du canapé, couper la prise de courant qui permet uniquement de charger les téléphones/tablettes lorsque je ne m'en sers pas, me réveiller tous les matins par ma douce musique, ou encore allumer puis éteindre les lumières à certaines heures certains soirs lorsque je ne suis pas là pour faire croire que je suis chez moi. On peut trouver plein d'autres utilisations aussi, je cherche encore…

J'ai libéré tout ca sur github parce que si ca intéresse des gens, ca serait dommage que mon code reste dans un coin. Donc si d'aventure des gens sont intéressés pour l'utiliser, ou aider à l'améliorer, libre à eux !

Le serveur Angharad: https://github.com/babelouest/angharad
L'application web: https://github.com/babelouest/angharadweb

  • # Gestion du chauffage

    Posté par  (site web personnel) . Évalué à 10.

    Sinon, puisque tu as mis une sonde de température sur chaque Arduino, il serait intéressant de suivre l'évolution des températures de chaque pièce, et d'y lier l'activation des chauffages pour faire un asservissement en températures ?

    Il serait par exemple possible de pré-chauffer la salle de bain en hiver avant l'heure habituelle de la douche, ou encore estimer les pertes thermiques de chaque pièce (en supposant que l'apport de chaleur ne vient que des convecteurs, et que la température extérieure est connue).
    Tu pourrais ainsi détecter des pièces à fuites thermiques.

    Bref, c'est une super démarche !

    • [^] # Re: Gestion du chauffage

      Posté par  (site web personnel) . Évalué à 10.

      C'est déjà le cas en fait.
      C'est tellement basique que j'ai oublié de le mentionner mais j'ai une tâche qui roule toutes les 5 minutes et qui prend la température partout, et comme chaque commande et son résultat est journalisé, j'ai l'historique et l'évolution de la température partout.

      Et comme on peut programmer les actions, c'est évidemment possible de dire que le chauffage dans le salon est à 20°C de 17h à 23h (quand j'y suis), puis baisse à 18°C la nuit, ou encore le baisser pendant la journée quand tout le monde travaille, etc.

      J'attends cet hiver pour tester grandeur nature le chauffage, pour voir si je me suis pas planté trop fort…
      J'habite au Québec alors le chauffage en hiver est une question fondamentale sur laquelle il ne faut pas déconner.

      • [^] # Re: Gestion du chauffage

        Posté par  . Évalué à 3.

        Et qu'as-tu utilisé comme sonde de température ?

        • [^] # Re: Gestion du chauffage

          Posté par  (site web personnel) . Évalué à 9. Dernière modification le 19 août 2014 à 20:05.

          Dans mon expérimentation, j'ai testé plusieurs capteurs de températures.

          j'ai commencé par un DHT11 parce qu'il était pas cher, puis j'ai acheté un capteur imperméable pour dehors. Quand j'ai acheté le matériel final pour chez moi, je me suis dit qu'un capteur de température plus simple ferait l'affaire pour le chauffage, donc j'ai pris des capteurs analogiques, mais ils sont finalement très mauvais. Ils sont peu fiables, ne donnent pas la bonne température (présentement il fait 26°C dans le salon et 33°C dans la chambre. Je n'y suis pas à l'heure actuelle, mais je sais que c'est faux).

          Je pense que je vais remplacer les capteurs analogiques par des DHT22 qui sont plus précis que les DHT11 (0.5°C de précision pour le DHT22 au lieu de 2°C pour le DHT11).

      • [^] # Re: Gestion du chauffage

        Posté par  (site web personnel) . Évalué à 2.

        Tu as aussi des mesures de consommation de courant ?

        Un collègue avait tenté la modulation de température, et il consommait plus qu'en ayant une température fixe (la "remonté" en température serait très consommateur d'énergie).

        "La première sécurité est la liberté"

        • [^] # Re: Gestion du chauffage

          Posté par  (site web personnel) . Évalué à 7.

          Pour la consommation de courant, je verrai ca dans un an je pense. Les radiateurs étant tous des calorifères électriques, ils sont simplement allumés ou éteints.
          Je peux me tromper, mais je pense que la surconsommation en modulant la température arrive quand tu modules trop, genre passer de chauffage fermé à chauffage à 20°C. Mais passer de 16 ou 17°C à 20°C consomme moins vu que le delta est plus petit. De toutes façons il est exclu de fermer complètement le chauffage chez moi en hiver, même quand je ne suis pas là, car si les tuyaux gèlent, ben ca pète, et t'es marron…

        • [^] # Re: Gestion du chauffage

          Posté par  (site web personnel, Mastodon) . Évalué à 5.

          Ça dépend beaucoup du type d’habitat. Chez moi, avec des murs en pisé très épais, l’inertie thermique est très importante, et effectivement il serait contre-productif de moduler la température sur quelques heures. Et si l’on baisse le chauffage pour une absence de quelques jours, il faut planifier le réchauffement suffisamment longtemps à l’avance !

          • [^] # Re: Gestion du chauffage

            Posté par  (site web personnel) . Évalué à 3.

            Idem chez moi. Au final, je ne module au final que de 0.5 degré… Les bâtiments ayant beaucoup d'inertie fonctionnent mal en modulation. Il mettent longtemps à descendre et la chaudière ensuite tire un max pour remonter !

        • [^] # Re: Gestion du chauffage

          Posté par  . Évalué à 3.

          C'est un compromis qui dépend de l'inertie thermique (et donc isolation, épaisseur des murs, capacité thermique des meubles, etc.).
          Plus la capacité thermique de l'habitat est élevée, plus la montée en température est consommatrice.
          D'un autre côté, si tu peux doser la puissance (la vitesse à laquelle la température va monter, à capacité thermique fixe), tu peux réduire la consommation aussi.

  • # Alimentation?

    Posté par  (site web personnel) . Évalué à 3.

    Comment alimentes-tu ce système: secteur ou batteries?
    As-tu fait des mesures de ce que cela consomme?

    J'aimerais me lancer dans le même genre de montage, et je suis intéressé par des retours d'expérience.

    • [^] # Re: Alimentation?

      Posté par  (site web personnel) . Évalué à 8.

      En fait, pour l'instant j'ai 2 Arduinos reliés à un Raspberry Pi, et le tout est alimenté par un seul adapteteur AC/DC 5V qui fait du 2A, et ca marche bien à date.

      Vu les machines utilisée, la consommation n'est vraiment pas un problème je pense (10W max pour l'instant). Les composants sont tous minimalistes et consomment peu, je ne voulais pas moi non plus avoir un système gourmand en énergie.

  • # Autres projets

    Posté par  . Évalué à 9.

    Je profite de ce journal pour mentionner une liste de projets portant sur la domotique parue sur Hacker News il y a 10 jours :
    https://news.ycombinator.com/item?id=8152714
    (je ne pense pas que cela soit intéressant de reproduire la liste des liens ici ?)

    Désolé, je sais que c'est un peu pénible de voir des commentaires portant essentiellement sur les autres projets lorsque l'on présente son projet. Mais cela me semblait intéressant car la liste semble bien complète.
    Moinssez-moi dans l'oubli si cela n'intéresse personne ! ;-)

  • # c'est dommage

    Posté par  (site web personnel) . Évalué à 10.

    alors que tu aurais pu prendre la domotique SFR toute faite et bien proprio/fermée
    http://www.nextinpact.com/news/89305-apres-reseau-mobile-service-home-by-sfr-est-en-rade.htm

    Je suis déjà sorti !

    ウィズコロナ

  • # Pas mal du tout

    Posté par  (site web personnel) . Évalué à 3.

    Pour m'être un peu coltiné au problème plus d'infos ici

    J'aimerais avoir un peu plus de détail sur le cablage USB / RJ45, cela me parait élégant comme solution et pratique à mettre en oeuvre. Par contre peu tu dire combien de mètre de câble as tu pu tirer sans problème ? peu tu préciser les limites ?

    • [^] # Re: Pas mal du tout

      Posté par  (site web personnel) . Évalué à 3.

      J'ai deux câbles de catégorie 5 qui sont branchés sur les connecteurs. Un câble fait 30m, l'autre 15m.
      Le gros avantage de cette solution, c'est que dans le même câble je fais passer le signal et le courant d'alimentation. Si j'ai compris les commentaires sur le net, c'est les limites du câble qui s'appliquent avec ce système, on pourrait donc pousser jusqu'à 50 ou 100m.
      Faut dire aussi que le câble USB est utilisé strictement comme une liaison série dont la vitesse est 9600 Bauds.

      • [^] # Re: Pas mal du tout

        Posté par  (site web personnel) . Évalué à 2.

        Intéressant, 15m et 30m c'est déjà pas mal. l'adaptateur USB/RJ45 je savais même pas que cela existait :)
        peut tu donner la référence et le fournisseur de l'adaptateur, car une rapide recherche montre que les prix vont de 5€ à 40 €.
        La qualité de celui ci doit être primordiale.

        • [^] # Re: Pas mal du tout

          Posté par  (site web personnel) . Évalué à 2.

          Effectivement les prix sont très variables. Pour le coup j'ai joué l'avare et j'ai acheté sur ebay 6 ou 7 paires mâles/femelles de connecteurs USB/RJ45, à des prix débiles, genre 6$ la paire, livraison gratuite. Ca a mis 3 semaines à arriver, mais c'est pas grave.
          Concernant la qualité, tu as bien raison, puisqu'un connecteur sur deux est défectueux dans mon cas, certains provoquent des déconnexions USB dès qu'on fait transiter du signal. La prochaine fois je choisirai plus scrupuleusement, parce qu'au final, en tenant compte des pertes, le connecteur me revient 2 fois plus cher…

  • # Contrôle du chauffage et de la lumière

    Posté par  . Évalué à 7.

    Bonjour, je suis complètement analphabète dans le domaine de la domotique et les questions associées. Aussi ma question va-t-elle paraitre naïve mais concrètement comment on fait pour contrôler la lumière ou le chauffage. Comment ça se passe entre l'arduino qui reçoit l'ordre de monter la température et le chauffage lui-même ? Il faut un chauffage spécial qui peut être contrôler électroniquement ? Même question pour la lumière, j'imagine qu'il n'y a pas de bras mécanique qui vient appuyer sur le bouton…
    Merci d'avance de vos réponses :D

    • [^] # Re: Contrôle du chauffage et de la lumière

      Posté par  (site web personnel) . Évalué à 7.

      Apprenti électronicien, je vais essayer de te répondre (vous aurez le droit de moinssez avec des pierres si je dit de grosses bétises) sinon allez voir ici

      Avec un relais tu peu contrôler l'apport en courant sur une lampe ou un chauffage.
      D'un coté tu fourni du 5v en millième d'ampère, c'est le courant qui sort d'une broche d'un arduino et c'est le relais qui par un système optique ou plus généralement électromagnétique va fonctionner comme un interrupteur pour du 220 volts par exemple.
      Tu peu donc par programmation allumer ou éteindre la broche de l'arduino, ce qui va déclencher le relais et donc tu contrôle quand tu veux de la lumière, du chauffage etc …

      Un arduino, ou un raspberry, comprend plusieurs broches qui fonctionnent en entrée comme en sortie tu peu donc avoir un capteur de température sur des broches et des relais sur d'autres ou plein d'autres trucs super marrant.
      Je te recommande le site de MC Hobby pour appréhender ce monde merveilleux de l'électronique et par extension de la domotique.

      • [^] # Re: Contrôle du chauffage et de la lumière

        Posté par  (site web personnel) . Évalué à 7.

        Attention tout de même concernant l'alimentation des relais en direct sur un pin de l'Arduino : le courant max par I/O est limité à 40mA (avec un max de 200mA pour l'ensemble du chip).

        Pour un relais alimenté en 5V, il faut compter 40mA mini dans la plupart des cas, donc on est déjà hors des clous (et là je parle de petits relais qui n'ont pas un pouvoir de coupure suffisant pour arrêter un chauffage de plusieurs kW, un relais de puissance a bien sur besoin de plus d'énergie)

        Il est plutôt conseillé d'insérer dans le montage un transistor, qui sera commandé par l'Arduino, et en réponse alimentera (ou non) le relais.

        • [^] # Re: Contrôle du chauffage et de la lumière

          Posté par  (site web personnel) . Évalué à 4.

          Effectivement, mon montage n'est pas encore assez blindé je pense, peux-tu me donner un exemple de transistor intermédiaire ? Question subsidiaire, est-ce qu'on peut alimenter le transistor avec le 5V de l'Arduino ?

          • [^] # Re: Contrôle du chauffage et de la lumière

            Posté par  (site web personnel) . Évalué à 5. Dernière modification le 20 août 2014 à 16:24.

            N'importe quel transistor capable d'encaisser le courant nécessaire fera l'affaire, comme le 2N2222. Il y a un exemple de montage sur cette page
            Et oui, le transistor peut être alimenté avec le même 5V que le microcontroleur sans soucis, sous réserve que l'alim dispose de la puissance nécessaire : via un port USB par exemple, c'est 500mA max.

            • [^] # Re: Contrôle du chauffage et de la lumière

              Posté par  (site web personnel) . Évalué à 3.

              En regardant le schéma du relais, je me demande si celui-ci ne dispose pas déjà d'un blindage par transistor: http://www.robotshop.com/media/files/pdf/schematic-shd020.pdf

              • [^] # Re: Contrôle du chauffage et de la lumière

                Posté par  (site web personnel) . Évalué à 6.

                Alors, soyons précis sur les termes :
                - un relais, c'est un petit boitier (exemple), souvent à 6 ou 8 pins, contenant une bobine et un interrupteur actionné par celle-ci ; le relais ne doit pas être alimenté directement par un µC
                - le schéma que tu postes semble correspondre à un module à relais, c'est à dire un PCB sur lequel sont soudés des relais, divers connecteurs, ainsi que l'électronique "de puissance" nécessaire (un peu comme ce produit) ; dans ce cas tout est déjà prévu, et ça peut être piloté directement par l'Arduino

                Je pense que tu as utilisé un module à relais alors que je parlais de l'alimentation d'un relais seul, d'où une probable confusion ;)

                • [^] # Re: Contrôle du chauffage et de la lumière

                  Posté par  (site web personnel) . Évalué à 2.

                  Ouaip, confusion solide, et dans mon cas, montée de tension non négligeable, car je me voyais devoir refaire tout mon montage qui est déjà à l'étroit dans un boitier de protection creusé dans le mur…

                  J'ai donc bien un module relais qui peut être piloté depuis l'arduino, ouf :)

        • [^] # Re: Contrôle du chauffage et de la lumière

          Posté par  . Évalué à 3.

          Il existe des puces qui contiennent tout ce qu'il faut pour commander un relai ( ou autre chose ). La serie ULN200x ( par exemple ULN2003 qui peut commander 7 relais ~0,50€). Pour un relai, ce n'est pas très utile, mais à partir de 2, cela peut être intéressant.

          • [^] # Et vous trouvez que l'informatique c'est compliqué ?

            Posté par  (site web personnel) . Évalué à 4.

            Note pour les apprentis électronicien comme moi :

            Qui a dit que l'informatique est compliqué, le domaine est vaste certes mais les composants ne sont pas légions.

            En électronique, c'est affreux le nombre de composants qui existent, heureusement la plupart du temps ils sont bien documentés. mais sinon comment faites vous pour vous tenir au courant de ce qui se fait, comment déterminer le bon usage du composant ?

            Conséquence on sort le canon de 105mm pour tuer les mouches exemple 1 arduino pour récupérer la température d'un pièce …

            Sinon Il y a aussi le Biglotron : Entièrement réalisé en matière agnostique, autrement dit, pour éclairer le profane, en roubélure de plastronium salygovalent, il se présente sous la forme néo-classique d'un tripottsolipède rectangle, c'est-à-dire d'un ictère octopolygonal à incidence ipso-facto-verso-rectométrique.
            Son avantage : il ne sert à rien et donc peut servir à tout :)

            • [^] # Re: Et vous trouvez que l'informatique c'est compliqué ?

              Posté par  . Évalué à 3. Dernière modification le 25 août 2014 à 09:02.

              Si tu est comme moi, je n'achéte que dans quelques magasins un ligne et 2 3 en réel la plus part de mes composants sauf cas rare. On peut connaître facilement les nouveautés avec un flux RSS ou leur newsletters. De plus, je suis sur que je pourrais les avoirs puisque c'est des boutiques que je connais.

              Sinon, le bon vieux moyen, c'est le catalogue papier dans les WCs. Tu auras de la lecture pour un bon moment et les pages étant assez fine, ça peut servir en cas de manque de papier.

              Après, tu ne sera jamais le premier à avoir eu le problème, un moteur de recherche sera donc un bon ami ( ou pas ).

            • [^] # Re: Et vous trouvez que l'informatique c'est compliqué ?

              Posté par  . Évalué à 3.

              Et pour la deuxième partie, c'est comme tout, ils y a en qui préfèrent économiser quelques sous et se faire chier et d'autre qui préfèrent ne pas se faire chier et dépenser quelques sous de plus. Sans parler de ceux qui veulent ou non économiser de la place, avoir en stock des composants à multiples usages, avoir une led bleue, etc… Bref, c'est la jungle.

              Après, à partir d'un montage fonctionnel arduino, on peut le réduire au strict minimum ( Attiny, pile, 1 ou 2 condo, sondes, communication ) pour récupérer l'arduino pour un autre montage et passer à la petite série.

              • [^] # Re: Et vous trouvez que l'informatique c'est compliqué ?

                Posté par  (site web personnel) . Évalué à 3.

                Tout a fait d'accord, mais bon les catalogues électroniques non c'est vrai que c'est du costaud quand même à lire … :)

                C'est vrai que je trouves plus facilement des forums sur la robotique ou quelques VRAIS électroniciens circulent et BEAUCOUP de pseudos informaticiens/bidouilleurs qui comme moi conçoivent l'électronique comme une boite de lego à assembler.
                J'ai parcouru plein de sites dédiés, lu pas de bouquin ( celui ci et celui la par exemple)
                mais il manque le déclic pour piger certaines choses et acquérir des réflexes.
                (en informatique sous linux le premier réflexe c'est sauvegarde, sous Windows aussi mais en plus tu reboot si le problème persiste formate et réinstalle :) )

                résultat : 2 ou 3 transfos claqué et au moins 2 fusibles HS (tentatives de réparations sur du 220 v)
                c'est le métier qui rentre …

                On dirait qu'il n'y a pas vraiment de site/Forum comme Linux Fr dédié à l'électronique, enfin plutôt je n'en ai pas trouvé ( donc si vous en connaissez … )

    • [^] # Re: Contrôle du chauffage et de la lumière

      Posté par  . Évalué à 7.

      Effectivement, toute l'astuce va consister à construire des périphériques qui, d'un côté, s'interfacent avec un ordinateur central et, de l'autre, sont capables de piloter des équipements existants.

      Pour la lumière, domotique ou pas, il existe déjà les télérupteurs. Il s'agit d'interrupteurs télécommandés qui viennent se placer directement sur le tableau électrique et qui fonctionnent comme des relais bistables. En fermant un circuit, on alimente un électro-aimant qui inverse la position du bouton, qui peut par ailleurs être manipulé à la main depuis le tableau. L'avantage est que tu peux alors mettre autant d'interrupteurs que tu veux dans tes pièces, là où un va-et-vient ordinaire se limite à deux. Du coup, il est très facile d'ajouter en parallèle un relais ou un triac pour obtenir le même effet mais à l'initiative de ta centrale.

      Pour le chauffage, la plupart des appareils électriques modernes sont équipés d'un fil pilote, qui en principe se passe dans la même gaine que l'alimentation. Lorsqu'il est utilisé, il permet au minimum de demander à l'appareil de basculer entre deux programmes (formellement jour ou nuit), ainsi que certains modes prédéfinis comme la mise hors-gel ou l'arrêt total : http://www.planete-domotique.com/blog/wp-content/uploads/2012/01/ordre_fil_pilote.jpg

      Là encore, ces fils pilotes sont faits pour être gérés par un équipement rudimentaire comme un détecteur d'heures creuses ou un thermostat, mais ils peuvent sans difficulté être exploités par la même centrale.

  • # S.A.R.A.H est ton amie

    Posté par  . Évalué à 3.

    Peut-être que ce projet t'intéressera également, en l'interfaçant à ton système actuel

    (j'avoue ne pas encore avoir eu le temps de regarder comment il fonctionne vraiment, donc pas certain de ses possibilités d'interfaçage)

    http://blog.encausse.net/s-a-r-a-h/
    (vidéos à voir absolument bien sûr)

    La syntèse vocale tout comme les commandes vocales fonctionnent de façon impressionamment efficace, j'espère que c'est connectable à n'importe quel système domotique ouvert :)

    • [^] # Re: S.A.R.A.H est ton amie

      Posté par  . Évalué à 3.

      Hum, je viens de prendre le temps de regarder une vidéo de présentation.. vous pouvez tous oublier mon commentaire
      C'est du C# avec un Kinect.. autant le Kinect est un excellent appareil, bidouillable librement à une époque (moins maintenant), en revanche le C# … :(

      Infos ici: https://www.youtube.com/watch?v=YKBrISsg__E

      Désolé pour les faux espoirs

      • [^] # Re: S.A.R.A.H est ton amie

        Posté par  (site web personnel) . Évalué à 5.

        Et dans mes souvenirs ça ne marche que sous Windows avec Microsoft Speech Recognition.

        S'il y a un problème, il y a une solution; s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

  • # Matériel utilisé

    Posté par  . Évalué à 10.

    Bon, c'est intéressant comme concept, mais j'ai plusieurs remarques par rapport à la solution matérielle mise en place pour les noeuds du système domotique.

    1) Les arduino
    Pourquoi utiliser des arduino partout ? Ils coûtent cher, et pour connecter un capteur de température et quelques relais je ne trouve pas que ce soit très utile. Si le choix d'arduino est motivé par la facilité de programmation via l'environnement arduino, sachez qu'il existe des alternatives.

    Une board MSP430 par exemple, de chez Texas Instruments : http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html#tabs
    Elle coûte 10$ TTC sur le store officiel TI, et elle est programmable via Energia ( http://energia.nu/ ) , un clone libre d'Arduino dédié aux boards de TI. L'avantage du MSP430 est sa consommation de courant ridicule, qui lui permet de fonctionner en autonomie très (très très) longtemps sur une pile.

    2) Ethernet
    Là-encore je pense que c'est beaucoup de complications pour rien : on peut acheter sur le net à peu près n'importe où des NRF24L01+ pour 2 à 4$, qui sont des modules transceivers sans-fils qui opèrent dans la bande des 2.4ghz. Il existe plein de librairies pour les utiliser facilement sous Arduino et Energia. Exit les cables ethernet de partout. Pour alimenter la board, des piles suffisent pour faire tenir la board pendant des mois, des années en l'occurrence pour le MSP430.

    Cela résoudrait en plus vos problèmes avec USB sur le raspberry pi et les déconnexions intempestives, le NRF24L01+ s'interface très bien avec les GPIO du rasp, il existe également des librairies sur le net pour ça.

    • [^] # Re: Matériel utilisé

      Posté par  (site web personnel) . Évalué à 8.

      La réponse courte est que je suis plus informaticien qu'électronicien. J'avais plus d'affinités à manipuler des concepts que je connaissais déjà (liaison série, câble USB/Cat 5, etc.).

      Je ne connais pas les transcievers 2.4GHz, on en parle beaucoup dans les sites web sur la domotique personnelle, mais ce qui me gêne là dedans c'est la sécurité du machin. Si j'ai bien compris, n'importe qui peut intercepter les communications, voire envoyer des commandes aux modules, et monter mon chauffage à 45°C parce que ca le chante. Je ne sais pas comment limiter, voire empêcher cela.

      Je ne connaissais pas les MSP430, ca a l'air intéressant mais est-ce que la consommation est aussi faible si on y branche les capteurs de température et les modules relais 5V/10A ?

      Mon idée dans le serveur Angharad est de toutes façons d'avoir un système polyvalent. Même si maintenant il ne gère que les arduinos en port série, on peut sans trop d'effort, j'espère, l'adapter aussi pour d'autres types de matériel, comme les Arduino YUN (accessibles en WiFi) ou un MSP430 en RF.

      • [^] # Re: Matériel utilisé

        Posté par  . Évalué à 6.

        Les transceivers NRF24L01 ont une adresse réseau ( sous la forme d'une adresse MAC ), et pour envoyer un message à un transceiver il faut absolument connaître cette adresse. Des techniques de reverse engineering existent pour essayer de récuperer cette adresse en écoutant le trafic réseau, mais ça n'est pas facile à réaliser.

        Si vraiment la sécurité est une préoccupation majeure, il est toujours possible de chiffrer les messages réseau en AES ( j'ai vu des implémentations légères pour arduino sur le net en regardant rapidement ), et là le système est inviolable.

        En branchant des capteurs sur le MSP430, ils vont en effet drainer de l'énergie à l'alimentation de la board. Au pire il est toujours possible d'installer une alimentation usb branchée sur le secteur ( qui soit quand même assez fiable, histoire que ça ne mette pas le feu à la maison au bout de quelques jours ), vu que de toutes façons des cables électriques passeront à proximité du module relai.

  • # Prix de l'installation

    Posté par  (site web personnel) . Évalué à 3.

    Génial, super intéressant tout ça (les commentaires en prime, c'est top).

    Juste une petite question, pourrait tu nous dire à combien d'euros (ou $) tu chiffres ton installation (ou une estimation plutôt) ?

    • [^] # Re: Prix de l'installation

      Posté par  (site web personnel) . Évalué à 4.

      Ca dépend de ce qu'on prend en compte.

      Le matériel électronique revient pas très cher en soi:
      - Rpi + boitier + clé WiFi fiable + SDCard + hub USB alimenté + câbles et alim, environ 80$
      - Arduino + Module 4 relais 5V/10A + capteurs + câbles, environ 60$

      Je n'inclus pas le matériel acheté et mis dans un coin parce que mauvais, non utile finalement, ou on verra plus tard (là ca chiffre à beaucoup plus ;) ).

      Par contre, l'installation électrique est ce qui m'a couté le plus cher, parce que je l'ai faite faire par un électricien. Si je le fais moi-même, mon assurance ne couvrirait pas les éventuels dégâts provoqués (incendie par exemple) parce que je ne suis pas électricien.
      Je lui ai demandé de brancher les éléments du circuit électrique aux relais, et pour éviter les problèmes en cas de défaillance de la domotique, la lumière est branchée en va-et-vient avec un interrupteur mural, les prises de courant sont dans l'état "normalement fermé", donc le courant passe si le relais est débranché, et le chauffage est dans l'état "normalement ouvert", donc ne fonctionne pas si le relais est débranché.

      Dans mon cas le prix s'est un peu dilué dans la masse vu que je viens d'acheter un appart' et que j'y ai fait faire quelques travaux, mais avec le prix qu'il m'a demandé pour ca, j'ai préféré n'équiper que 3 pièces sur 6 (2 chambres et une partie du salon). Dans chaque pièce je lui ai demandé de brancher au relais la lumière, le chauffage, et 2 prises de courant. Quand j'aurai stabilisé mon installation et que j'aurai un peu plus les moyens, je ferai faire les autres pièces, mais ca sera pas avant quelques mois.

      • [^] # Re: Prix de l'installation

        Posté par  (site web personnel) . Évalué à 5.

        Par contre, l'installation électrique est ce qui m'a couté le plus cher, parce que je l'ai faite faire par un électricien. Si je le fais moi-même, mon assurance ne couvrirait pas les éventuels dégâts provoqués (incendie par exemple) parce que je ne suis pas électricien.

        Sérieux?

        (en Belgique):
        je viens de faire mon installation électrique seul et la seule demande des assurances (enfin de la loi) c'est de faire venir une entreprise qui vérifie la qualité de l’installation

        • [^] # Re: Prix de l'installation

          Posté par  (site web personnel) . Évalué à 3.

          Sérieux?

          J'ai pas vérifié par moi-même, mais c'est ce qu'on m'a dit autour de moi (je suis au Québec).
          Dans tous les cas, faire des trous dans les murs, tirer les brins, faire les branchements, je pourrais éventuellement le faire, mais j'aurais eu beaucoup de mal à le faire seul, alors autant le faire faire par quelqu'un qui sait. Pour le coup je ne regrette pas.

  • # VMC double flux et bientôt thermostat

    Posté par  . Évalué à 2.

    Bonjour,

    Je me suis lancé également dans la domotique grâce au raspberry. J'y ai installé raspbian, trifouillé des sondes de température Dallas DS18b20 avec le 1-wire et jouer avec un relais. J'ai codé une application en PHP pour pouvoir piloter ma VMC double-flux. En effet, je ne souhaitais pas qu'elle tourne tout le temps, et donc en fonction des températures en entrée et en sortie, je l'allumes ou l'éteint. Le tout est programmable via un fichier de configuration XML (j'en ai parlé un peu sur le blog que j'avais ouvert à l'époque http://domoblink.blogspot.fr/).

    Entre temps, j'ai joué avec l'arduino pour fabriquer une sonde de température sans-fils (433Mhz). En me basant sur l'excellent blog d'Idleman (qui m'a fait rentrer dans le domaine).

    En ce moment, je suis en cours de développement d'un thermostat d'ambiance. Je compte utiliser un arduino pour récupérer la température et piloter un écran LCD (avec lequel j'avais joué au début et qui ne m'a jamais servi). L'arduino sera le boitier dans le salon qui récupèrera la température et l'affichera sur l'écran. Du côté de la chaudière, je vais y installer une bananapi qui pilotera le relais. Je suis développer l'application en ce moment en J2EE qui me permettra de créer les programmes plus finement que les thermostats du marché, c-a-d avec plusieurs températures possibles (moins de chauffe le matin, plus le soir par exemple), avec différentes programmes pré-définis sur lesquels je peux basculer facilement (vacances - week-end absent….), le tout joignable depuis le web (desktop, smartphone…) pour pouvoir rallumer le chauffage quand je rentrerais de vacances.

    Si vous me demandez pourquoi en java, je vous répondrais que je suis une quiche en C, et que je me débrouille assez bien en J2EE. Et du point de vue puissance, je pense que le bananapi fera l'affaire (prendre également en compte que l'application ne sera utilisée que par un utilisateur à la fois).

    Je prends note des commentaires surtout celui sur les sondes de température pour voir si mon choix de sonde Dallas est toujours pertinent.

    Vous noterez je pense que mes développements domotiques tournent autour des économies d'énergies, mon dada.

    • [^] # Re: VMC double flux et bientôt thermostat

      Posté par  (site web personnel) . Évalué à 7.

      (…) une bananapi qui pilotera le relais.

      Mais tu vas faire quoi de toute cette puissance ?

      Vas-tu calculer plusieurs centaines de fois par seconde un algorithme complexe pour maintenir ta chaudière en mode chauffe ?

      Ou alors Java consomme bien plus que ce que j'imaginais !? ;)

  • # Domoticz

    Posté par  (site web personnel) . Évalué à 1.

    A une époque j'ai regarder ce qu'il existait coté domotique assez simple à utiliser.
    J'ai été séduit (sans pour autant céder à la tentation) par le couple domoticz sur raspberry pi + rfxcom
    Avantage : utilisation d'une large gamme de sonde du commerce grace au module rfxcom (notamment de la plupart des sondes de station météo) et logiciel libre (domoticz) sous linux qui semblais plutôt bien foutu pour piloter le tout.

    Deux articles sur le sujet au hasard :
    http://touteladomotique.com/index.php?option=com_content&view=article&id=792:2013022101&catid=5:domotique&Itemid=89#.U_XYXWOYQuI
    http://blog.domadoo.fr/2014/02/27/utilisation-du-logiciel-domoticz-sur-raspberry-pi/

  • # Commentaire supprimé

    Posté par  . Évalué à 4.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: Fuite de mémoire

      Posté par  (site web personnel) . Évalué à 4.

      Jusqu'à il y a peu, j'avais des fuites mémoires bien pires dues à l'oubli de certaines étapes dans mon code.
      J'ai donc regardé du coté de ce garbage collector en C, j'ai même modifié mon code pour l'accueillir, mais je sais plus pourquoi, ca ne marchait pas.
      Par contre, je me dis maintenant que si je peux l'éviter, je le ferai, vu que les fuites sont plus petites, il ne doit pas rester grand-chose.

      Je me demande même si ma façon de constater qu'il y a des fuites mémoires est la bonne, vu que je regarde que le résultat de la commande:

      ps u p `pgrep angharad`

      valgrind est peu prolixe, ou alors j'ai compris comment m'en servir.

      Je vais regarder du coté du détecteur de fuites de boehm, ca pourra peut-être m'aider, merci :)

      • [^] # Commentaire supprimé

        Posté par  . Évalué à 9.

        Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Re: Fuite de mémoire

          Posté par  (site web personnel) . Évalué à 4.

          Ah, merci des précisions, en recompilant comme il faut, j'ai le résultat suivant:

          ==6274== LEAK SUMMARY:
          ==6274==    definitely lost: 0 bytes in 0 blocks
          ==6274==    indirectly lost: 0 bytes in 0 blocks
          ==6274==      possibly lost: 0 bytes in 0 blocks
          ==6274==    still reachable: 3,253 bytes in 55 blocks
          ==6274==         suppressed: 0 bytes in 0 blocks
          

          Et les blocs mentionnés sont tous externes, comme par exemple:

          ==6274== 2,420 bytes in 41 blocks are still reachable in loss record 10 of 10
          ==6274==    at 0x4835978: malloc (vg_replace_malloc.c:263)
          ==6274==    by 0x4B7B397: ??? (in /lib/arm-linux-gnueabihf/libgcrypt.so.11.7.0)
          ==6274==
          

          Donc faut que je continue à creuser…

          • [^] # Commentaire supprimé

            Posté par  . Évalué à 7. Dernière modification le 22 août 2014 à 00:28.

            Ce commentaire a été supprimé par l’équipe de modération.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.