tag:linuxfr.org,2005:/tags/angharad/public
LinuxFr.org : les contenus étiquetés avec « angharad »
2016-10-03T15:55:02+02:00
/favicon.png
tag:linuxfr.org,2005:News/37574
2016-09-30T10:36:25+02:00
2016-10-03T16:08:24+02:00
Ma domotique avec le système Angharad, troisième génération
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<div><p>Angharad gère les lumières, les thermostats, les interrupteurs, les capteurs, les images des caméras, la musique. </p>
<p>C’est mon système domotique maison à base de <em>C</em>, d’API REST et de client Web avec plein de JQuery dedans. Dans sa 3<sup>e</sup> génération, c’est un ensemble de bibliothèques gérant les protocoles Z-Wave et Taulas pour créer facilement plein de modules domotiques. L’API est documentée sur GitHub. Sagremor, le client Web écrit avec AngularJS, permet de tout piloter.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6769746875622e636f6d2f626162656c6f756573742f73616772656d6f722f7261772f6d61737465722f736e617073686f74732f64617368626f6172642d66696c6c65642e706e67/dashboard-filled.png" alt="Angharad web client"></p></div><ul><li>lien nᵒ 1 : <a title="http://linuxfr.org/users/superzen/journaux/ma-domotique-avec-le-systeme-angharad-3e-generation" hreflang="fr" href="https://linuxfr.org/redirect/98248">Journal à l’origine de la dépêche</a></li><li>lien nᵒ 2 : <a title="https://github.com/babelouest/angharad" hreflang="en" href="https://linuxfr.org/redirect/98259">Dépôt Git Angharad </a></li><li>lien nᵒ 3 : <a title="https://github.com/babelouest/sagremor" hreflang="en" href="https://linuxfr.org/redirect/98260">Dépôt Git Sagremor avec copies d’écran</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#pr%C3%A9ambule">Préambule</a></li>
<li><a href="#cheminement">Cheminement</a></li>
<li>
<a href="#angharad-%C3%A7a-fait-quoi-concr%C3%A8tement">Angharad, ça fait quoi concrètement ?</a><ul>
<li><a href="#domotique-pure">Domotique pure</a></li>
<li>
<a href="#autres-services">Autres services</a><ul>
<li><a href="#motion">Motion</a></li>
<li><a href="#mpd">MPD</a></li>
<li><a href="#liquidsoap">Liquidsoap</a></li>
</ul>
</li>
<li><a href="#application-cliente">Application cliente</a></li>
</ul>
</li>
<li><a href="#essaye-donc">Essaye donc !</a></li>
</ul><h2 id="préambule">Préambule</h2>
<p>Il y a quelques deux ans de ça, j’ai parlé de mon <a href="//linuxfr.org/users/superzen/journaux/angharad-mon-systeme-de-domotique-maison">système domotique maison</a> à base d’API REST et de client Web avec plein de JQuery dedans. Depuis, j’ai continué ce projet avec entrain et il en est maintenant dans sa 3<sup>e</sup> génération : <a href="https://github.com/babelouest/angharad">Angharad sur GitHub</a>.</p>
<p>Pourquoi 3<sup>e</sup> génération et pas version 3.0 ? Parce qu’au début, c’était pas mal un serveur autonome, mais avec le temps, c’est devenu un ensemble de logiciels qui forment un écosystème et se parlent entre eux via des protocoles <em>ad hoc</em>.</p>
<p>Pourquoi je n’ai pas parlé de la 2<sup>e</sup> génération ? Surtout parce qu’elle n’est pas venue en une seule fois ; les idées et les améliorations sont venues petit à petit pendant l’année qui a suivi mon premier journal. Les principales améliorations ont été l’ajout du support de <a href="https://fr.wikipedia.org/wiki/Z-Wave">Z-Wave</a>, l’ajout de services Web en PHP pour gérer les photos et les flux d’une instance <a href="http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome">Motion</a> et les lecteurs de musique avec <a href="https://www.musicpd.org/"><em>mpd</em></a>.</p>
<h2 id="cheminement">Cheminement</h2>
<p>Puis je voyais <a href="https://fr.wikipedia.org/wiki/AngularJS">AngularJS</a> et je voyais aussi que mes API REST étaient quand même pas super propres : que du <em>status 200</em>, même en cas d’erreur, et je me disais que supporter une autre base de données, normaliser par‐ci, uniformiser par‐là aurait été pas mal.</p>
<p>Et puis, je me demandais si les service annexes, caméra et musique, pouvaient être intégrés facilement à mon idée de serveur d’API REST en <em>C</em>, parce que j’aime bien le <em>C</em>.</p>
<p>Et j’ai commencé un nouveau module pour brancher un capteur de température à un Raspberry <em>Pi</em> et y accéder avec une API REST et j’ai trouvé que, même en réutilisant mon code, c’était long et fastidieux pour coder un simple <a href="https://fr.wikipedia.org/wiki/Service_web">service Web</a>.</p>
<p>Je me suis donc mis à faire des bibliothèques qui me faciliteraient la <a href="https://github.com/babelouest/ulfius">manipulation des requêtes HTTP</a> (celui‐là, j’en ai déjà <a href="//linuxfr.org/users/superzen/journaux/ulfius-framework-pour-faire-des-api-web-en-c">parlé</a> il n’y a pas très longtemps), les <a href="https://github.com/babelouest/yder"><em>logs</em></a> ou encore les <a href="https://github.com/babelouest/hoel">requêtes SQL</a>.</p>
<p>Je n’ai pas inventé l’eau chaude non plus, mais quand je cherchais des bibliothèques existantes, je n’en trouvais pas qui me paraissaient simples, efficaces et pas trop lourdes.</p>
<h2 id="angharad-ça-fait-quoi-concrètement">Angharad, ça fait quoi concrètement ?</h2>
<p>Cela gère les lumières, les thermostats, les interrupteurs, les capteurs, les images des caméras, la musique. Cela automatise tout ça avec des scripts et des tâches planifiées, ça gère des alertes, et ça supervise les données également.</p>
<h3 id="domotique-pure">Domotique pure</h3>
<p>Pour la partie domotique pure (lumières, interrupteurs, thermostats, capteurs), ça gère le protocole Z-Wave via la bibliothèque <a href="http://www.openzwave.com/">Openzwave</a> et une clef USB Z-Wave.</p>
<p>Cela gère aussi le protocole <a href="https://github.com/babelouest/taulas">Taulas</a> qui est une évolution du protocole de communication que j’avais mis en place avec les Arduinos du début. Donc en utilisant des Arduinos ou autre chose, du moment que ça respecte le protocole, ça parle avec le serveur.</p>
<p><img src="https://img.linuxfr.org/img/68747470733a2f2f6769746875622e636f6d2f626162656c6f756573742f73616772656d6f722f7261772f6d61737465722f736e617073686f74732f6d6f6e69746f722e706e67/monitor.png" alt="Monitoring avec Angharad"></p>
<p>On peut rajouter d’autres protocoles domotiques si ça nous chante, il « suffit » de programmer sa <a href="https://github.com/babelouest/benoic/tree/master/device-modules">bibliothèque</a> qui implémente les bonnes fonctions, on la compile, on la copie dans le répertoire dédié, on recharge les modules avec l’API <em>Kivabien</em><sup>©</sup> et, hop, on a un nouveau type de périphérique, sans même avoir à relancer le serveur, grâce à la magie de <code>dlopen()</code> et <code>dlsync()</code>.</p>
<h3 id="autres-services">Autres services</h3>
<p><em><strong>There is no IOT, just devices dedicated to a simple task.</strong></em><br>
Pour les autres services (caméras, musique, etc.), on utilise un principe similaire avec des bibliothèques compilées et chargées pendant l’exécution. Là, le système est plus permissif et autorise à créer ses propres API et faire ses propres accès à la base de données.</p>
<h4 id="motion">Motion</h4>
<p>Cela permet d’accéder aux flux temps réel et aux images enregistrées par un service <em>Motion</em>.<br>
Pour accéder aux images, il faut que le serveur Angharad puisse accéder au répertoire sur lequel sont les images <em>Motion</em>, donc un répertoire réseau ou quelque chose du genre.<br>
Pour accéder au flux, c’est directement grâce à l’adresse URL fournie au service. J’ai essayé de <em>proxyfier</em> le flux MJPEG, mais sans grand succès…</p>
<h4 id="mpd">MPD</h4>
<p>Chez moi, j’ai placé des Raspberry <em>Pi</em> dans pas mal de pièces, branchés sur des haut‐parleurs. La plupart du temps, j’y fais jouer une webradio locale que j’ai créée via LiquidSoap et <a href="https://fr.wikipedia.org/wiki/Icecast">Icecast</a>. J’ai donc limité les commandes MPD à <code>stop</code>, <code>play</code>, <code>pause</code>, changer le volume et lancer une liste de lecture. Mais, bon, lister les artistes, albums, chansons, fichiers ne serait pas hyper compliqué à gérer.</p>
<p><img src="https://img.linuxfr.org/img/68747470733a2f2f6769746875622e636f6d2f626162656c6f756573742f73616772656d6f722f7261772f6d61737465722f736e617073686f74732f4d757369632e706e67/Music.png" alt="Jukebox Angharad"></p>
<h4 id="liquidsoap">Liquidsoap</h4>
<p>D’ailleurs, ladite webradio est un peu gérable elle aussi, on a accès aux infos des dix derniers morceaux joués, et on peut faire <code>play</code>, <code>pause</code>, <code>stop</code> et <code>next</code> sur la radio.</p>
<h3 id="application-cliente">Application cliente</h3>
<p>On gère sa maison via <a href="https://github.com/babelouest/sagremor">Sagremor</a>, qui est une application AngularJS 1.5 avec du <a href="https://fr.wikipedia.org/wiki/Bootstrap_%28framework%29">Bootstrap</a> dedans. Elle permet de manipuler toutes les API. Je ne suis pas très fort en ergonomie et encore moins en design <em>eye candy</em>, mais l’interface a l’air assez intuitive, au moins pour les commandes de base (allumer, éteindre, etc.), pour que ma blonde ou un invité s’en serve sans que j’ai à expliquer.</p>
<p>Pour le coté pratique, j’ai deux tablettes Android <a href="http://ubislate.ca/product.php?prodid=1">Ubislate 7Ci</a>, j’y ai collé un Firefox qui fait tourner l’application cliente, et je les ai placées à chaque entrée chez moi juste à côté de la porte.</p>
<p>J’ai toujours le projet de faire une application cliente Android et, maintenant que j’ai une machine un peu plus récente, j’ai pu m’y mettre. Parce que développer des applications Android quand on ne peut pas lancer l’émulateur Android sur sa machine, c’est pas facile…</p>
<h2 id="essaye-donc">Essaye donc !</h2>
<p>C’est tout libre, les bibliothèques sont en LGPL, les programmes serveurs GPL v3, l’application cliente est sous licence MIT.</p>
<p>Je n’ai pas la prétention de faire mieux que les autres, comme <a href="https://domoticz.com/">Domoticz</a> ou <a href="https://www.jeedom.com/">Jeedom</a>, juste d’avoir un serveur domotique qui réponde à mes besoins ; et puis c’est un bon moyen d’apprendre des nouvelles technos et de tester des concepts.</p>
<p>J’aimerais bien fédérer des amateurs autour de ce projet, mais je ne sais pas trop par où commencer. S’il y a des curieux pour tester et participer, c’est avec plaisir !</p></div><div><a href="https://linuxfr.org/news/ma-domotique-avec-le-systeme-angharad-troisieme-generation.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/110154/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/ma-domotique-avec-le-systeme-angharad-troisieme-generation#comments">ouvrir dans le navigateur</a>
</p>
Babelouest
Davy Defaud
Benoît Sibaud
ZeroHeure
palm123
tuiu pol
https://linuxfr.org/nodes/110154/comments.atom
tag:linuxfr.org,2005:Diary/36873
2016-09-28T18:32:39+02:00
2016-09-29T08:09:57+02:00
Ma domotique avec le Système Angharad, 3e génération
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#pr%C3%A9ambule">Préambule</a></li>
<li><a href="#cheminement">Cheminement</a></li>
<li>
<a href="#angharad-ca-fait-quoi-concr%C3%A8tement">Angharad, ca fait quoi concrètement ?</a><ul>
<li><a href="#domotique-pure">Domotique pure</a></li>
<li>
<a href="#autres-services">Autres services</a><ul>
<li><a href="#motion">Motion</a></li>
<li><a href="#mpd">MPD</a></li>
<li><a href="#liquidsoap">Liquidsoap</a></li>
</ul>
</li>
<li><a href="#application-cliente">Application cliente</a></li>
</ul>
</li>
<li><a href="#essaye-donc">Essaye donc!</a></li>
</ul><h2 id="préambule">Préambule</h2>
<p>Il y a quelques deux ans de ca, j'ai parlé de mon <a href="//linuxfr.org/users/superzen/journaux/angharad-mon-systeme-de-domotique-maison">système domotique maison</a> à base d'API REST et de client Web avec plein de JQuery dedans.<br>
Depuis, j'ai continué ce projet avec entrain, et il en est maintenant dans sa 3e génération: <a href="https://github.com/babelouest/angharad">Angharad sur Github</a></p>
<p>Pourquoi 3e génération et pas version 3.0 ? Parce que au début c'était pas mal un serveur autonome, mais avec le temps c'est devenu un d'ensemble de logiciels qui forment un écosystème et se parlent entre eux via des protocoles ad hoc.</p>
<p>Pourquoi j'ai pas parlé de la 2e génération ? Surtout parce qu'elle n'est pas venue en une seule fois, les idées et les améliorations sont venues petit à petit pendant l'année qui a suivi mon premier journal. Les principales améliorations ont été l'ajout du support de <a href="https://fr.wikipedia.org/wiki/Z-Wave">Z-Wave</a>, l'ajout de webservices en PHP pour gérer les photos et les flux d'une instance <a href="http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome">Motion</a> et les lecteurs de musique avec <a href="https://www.musicpd.org/">mpd</a>.</p>
<h2 id="cheminement">Cheminement</h2>
<p>Puis je voyais Angularjs, et je voyais aussi que mes API REST étaient quand même pas super propres: que du status 200, même en cas d'erreur, et je me disais que supporter une autre base de données, normaliser par ci, uniformiser par là aurait été pas mal.</p>
<p>Et puis je me demandais si les service annexes, caméra et musique, pouvaient être intégrés facilement à mon idée de serveur d'API REST en C, parce que j'aime bien le C.</p>
<p>Et j'ai commencé un nouveau module pour brancher un capteur de température à un RPi et y accéder avec une API REST, et j'ai trouvé que même en réutilisant mon code, c'était long et fastidueux pour coder un simple webservice.</p>
<p>J'en ai donc commencé par faire des lirairies qui me faciliteraient la <a href="https://github.com/babelouest/ulfius">manipulation des requêtes HTTP</a> (celui-là j'en ai déjà <a href="//linuxfr.org/users/superzen/journaux/ulfius-framework-pour-faire-des-api-web-en-c">parlé</a> y'a pas long), les <a href="https://github.com/babelouest/yder">logs</a>, ou encore les <a href="https://github.com/babelouest/hoel">requêtes SQL</a>.</p>
<p>J'ai pas inventé l'eau chaude non plus, mais quand je cherchais des librairies existantes, j'en trouvais pas qui me paraissaient simples, efficaces, et pas trop lourdes.</p>
<h2 id="angharad-ca-fait-quoi-concrètement">Angharad, ca fait quoi concrètement ?</h2>
<p>Ca gère les lumières, les thermostats, les interrupteurs, les capteurs, les images des caméras, la musique. Ca automatise tout ca avec des scripts et des tâches planifiées, ca gère des alertes, et ca monitore les données aussi.</p>
<h3 id="domotique-pure">Domotique pure</h3>
<p>Pour la partie domotique pure (lumières, interrupteurs, thermostats, capteurs), ca gère le protocole Z-Wave via la librairie <a href="http://www.openzwave.com/">Openzwave</a> et une clé usb Z-Wave.</p>
<p>Ca gère aussi le protocole Taulas qui est une évolution du protocole de communication que j'avais mis en place avec les Arduinos du début. Donc en utilisant des Arduinos ou autre chose, du moment que ca respecte le protocole, ca parle avec serveur.</p>
<p>On peut rajouter d'autres protocoles domotiques si ca nous chante, il <em>"suffit"</em> de programmer sa <a href="https://github.com/babelouest/benoic/tree/master/device-modules">librairie</a> qui implémente les bonnes fonctions, on la compile, on la copie dans le répertoire dédié, on recharge les modules avec l'API kivabien, et hop, on a un nouveau type de device sans même avoir à relancer le serveur grâce à la magie de dlopen/dlsync.</p>
<h3 id="autres-services">Autres services</h3>
<p><em><strong>There is no IOT, just devices dedicated to a simple task.</strong></em></p>
<p>Pour les autres services (caméras, musique, etc.), on utilise un principe similaire avec des librairies compilées et chargées pendant l'exécution. Là, le système est plus permissif et autorise à créer ses propres API et faire ses propres accès à la BD.</p>
<h4 id="motion">Motion</h4>
<p>Ca permet d'accéder au flux temps réel et aux images enregistrées par un service motion.<br>
Pour accéder aux images, il faut que le serveur Angharad puisse accéder au répertoire sur lequel sont les images motion, donc un répertoire réseau ou quelque chose du genre.<br>
Pour accéder au flux, on y accède directement grâce à l'url qu'on a fournie au service. J'ai essayé de proxyfier le flux MJPEG mais sans grand succès…</p>
<h4 id="mpd">MPD</h4>
<p>Chez moi, j'ai placé des Raspberry pi dans pas mal de pièces, branchées sur des haut-parleurs. La plupart du temps, j'y fais jouer une webradio locale que j'ai créé via liquidsoap et icecast. J'ai donc limité les commandes MPD à stop/play/pause, changer le volume, et lancer une playlist. Mais bon, lister les artistes, albums, chansons, fichiers serait pas hyper compliqué à gérer.</p>
<h4 id="liquidsoap">Liquidsoap</h4>
<p>D'ailleurs, ladite webradio est un peu gérable elle aussi, on a accès aux infos des dix derniers morceaux joués, et on peut faire play/pause/stop/next sur la radio.</p>
<h3 id="application-cliente">Application cliente</h3>
<p>On gère sa maison via <a href="https://github.com/babelouest/sagremor">Sagremor</a> qui est une application AngularJS 1.5 avec du <a href="https://fr.wikipedia.org/wiki/Bootstrap_%28framework%29">Bootstrap</a> dedans. Elle permet de manipuler toutes les API. Je ne suis pas très fort en ergonomie et encore moins en design eye candy, mais l'interface a l'air assez intuitive, au moins pour les commandes de base (allumer, éteindre, etc.), pour que ma blonde ou un invité s'en serve sans que j'ai à expliquer.</p>
<p>Pour le coté pratique, j'ai deux tablettes android <a href="http://ubislate.ca/product.php?prodid=1">Ubislate 7Ci</a>, j'y ai collé un Firefox qui fait tourner l'application cliente, et je les ai placées à chaque entrée chez moi juste à coté de la porte.</p>
<p>J'ai toujours le projet de faire une application cliente Android, et maintenant que j'ai une machine un peu plus récente, j'ai pu m'y mettre. Parce que développer des applications Android quand on peut pas lancer l'émulateur Android sur sa machine, c'est pas facile…</p>
<h2 id="essaye-donc">Essaye donc!</h2>
<p>C'est tout libre, les librairies sont LGPL, les programmes serveur GPL v3, l'appli client est sous licence MIT.</p>
<p>Je n'ai pas la prétention de faire mieux que les autres comme <a href="https://domoticz.com/">Domoticz</a> ou <a href="https://www.jeedom.com/">Jeedom</a>, juste d'avoir un serveur domotique qui réponde à mes besoins, et puis c'est un bon moyen d'apprendre des nouvelles technos et de tester des concepts.</p>
<p>J'aimerais bien fédérer des amateurs autour de ce projet, mais je ne sais pas trop par où commencer. Si il y a des curieux pour tester et participer, c'est avec plaisir!</p><div><a href="https://linuxfr.org/users/superzen/journaux/ma-domotique-avec-le-systeme-angharad-3e-generation.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/110150/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/superzen/journaux/ma-domotique-avec-le-systeme-angharad-3e-generation#comments">ouvrir dans le navigateur</a>
</p>
Babelouest
https://linuxfr.org/nodes/110150/comments.atom
tag:linuxfr.org,2005:Diary/35187
2014-08-19T17:46:41+02:00
2014-08-19T17:46:41+02:00
Angharad, mon système de domotique maison
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<p>Pour voir si c'est possible, j'ai voulu me fabriquer mon système domotique du début à la fin.<br>
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.</p>
<p>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…</p>
<p>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.</p>
<p>J'ai placé des <a href="http://arduino.cc/en/Main/arduinoBoardUno">Arduinos UNO</a> dans les pièces que je veux contrôler. Chacun est relié à des <a href="http://www.robotshop.com/eu/fr/relais-5v-8-canaux.html">relais 5V/10A</a> 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 <a href="http://i00.i.aliimg.com/photo/v0/400550788/_font_b_USB_b_font_RJ45.jpg">connecteur USB/RJ45</a> pour connecter l'arduino au serveur et l'alimenter.</p>
<p>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).</p>
<p>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.<br>
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.</p>
<p>Au gré de mes expérimentations et apprentissages, j'ai vu que <a href="http://www.gnu.org/software/libmicrohttpd/">libmicrohttpd</a> est une chouette bibliothèque pour faire un serveur web minimaliste, <a href="http://www.sqlite.org/">sqlite3</a> est un moteur de base de données également très efficace, et <a href="http://www.hyperrealm.com/libconfig/">libconfig</a> permet de gérer des fichiers de conf assez facilement.</p>
<p>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).</p>
<p>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.</p>
<p>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.<br>
Je prévois de développer une application android dans un proche avenir.</p>
<p>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.</p>
<p>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…</p>
<p>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 !</p>
<p>Le serveur Angharad: <a href="https://github.com/babelouest/angharad">https://github.com/babelouest/angharad</a><br>
L'application web: <a href="https://github.com/babelouest/angharadweb">https://github.com/babelouest/angharadweb</a></p><div><a href="https://linuxfr.org/users/superzen/journaux/angharad-mon-systeme-de-domotique-maison.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103064/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/superzen/journaux/angharad-mon-systeme-de-domotique-maison#comments">ouvrir dans le navigateur</a>
</p>
Babelouest
https://linuxfr.org/nodes/103064/comments.atom